@@ -5836,10 +5836,8 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
5836
5836
case SIMD_v128_load :
5837
5837
{
5838
5838
uint32 offset , addr ;
5839
- offset = read_uint32 (
5840
- frame_ip ); // TODO: Check with an offset!
5841
- addr = GET_OPERAND (uint32 , I32 , 0 );
5842
- frame_ip += 2 ;
5839
+ offset = read_uint32 (frame_ip );
5840
+ addr = POP_I32 ();
5843
5841
addr_ret = GET_OFFSET ();
5844
5842
CHECK_MEMORY_OVERFLOW (16 );
5845
5843
PUT_V128_TO_ADDR (frame_lp + addr_ret , LOAD_V128 (maddr ));
@@ -5934,9 +5932,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
5934
5932
uint32 offset , addr ;
5935
5933
offset = read_uint32 (frame_ip );
5936
5934
V128 data = POP_V128 ();
5937
- int32 base = POP_I32 ();
5938
- offset += base ;
5939
- addr = GET_OPERAND (uint32 , I32 , 0 );
5935
+ addr = POP_I32 ();
5940
5936
5941
5937
CHECK_MEMORY_OVERFLOW (4 );
5942
5938
STORE_V128 (maddr , data );
@@ -6466,7 +6462,6 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
6466
6462
6467
6463
#define SIMD_LOAD_LANE_COMMON (vec , register , lane , width ) \
6468
6464
do { \
6469
- addr = GET_OPERAND(uint32, I32, 0); \
6470
6465
addr_ret = GET_OFFSET(); \
6471
6466
CHECK_MEMORY_OVERFLOW(width / 8); \
6472
6467
if (width == 64) { \
@@ -6483,8 +6478,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
6483
6478
uint32 offset, addr; \
6484
6479
offset = read_uint32(frame_ip); \
6485
6480
V128 vec = POP_V128(); \
6486
- int32 base = POP_I32(); \
6487
- offset += base; \
6481
+ addr = POP_I32(); \
6488
6482
int lane = *frame_ip++; \
6489
6483
SIMD_LOAD_LANE_COMMON(vec, register, lane, width); \
6490
6484
} while (0)
@@ -6514,11 +6508,8 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
6514
6508
uint32 offset, addr; \
6515
6509
offset = read_uint32(frame_ip); \
6516
6510
V128 vec = POP_V128(); \
6517
- int32 base = POP_I32(); \
6518
- offset += base; \
6511
+ addr = POP_I32(); \
6519
6512
int lane = *frame_ip++; \
6520
- addr = GET_OPERAND(uint32, I32, 0); \
6521
- addr_ret = GET_OFFSET(); \
6522
6513
CHECK_MEMORY_OVERFLOW(width / 8); \
6523
6514
if (width == 64) { \
6524
6515
STORE_I64(maddr, vec.register[lane]); \
@@ -6555,8 +6546,7 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
6555
6546
do { \
6556
6547
uint32 offset, addr; \
6557
6548
offset = read_uint32(frame_ip); \
6558
- int32 base = POP_I32(); \
6559
- offset += base; \
6549
+ addr = POP_I32(); \
6560
6550
int32 lane = 0; \
6561
6551
V128 vec = { 0 }; \
6562
6552
SIMD_LOAD_LANE_COMMON(vec, register, lane, width); \
0 commit comments