@@ -39,9 +39,9 @@ typedef float64 CellType_F64;
3939 goto out_of_bounds ; \
4040 } while (0 )
4141
42- #define CHECK_ATOMIC_MEMORY_ACCESS () do { \
43- if (((uintptr_t)maddr & ((1 << align) - 1)) != 0) \
44- goto unaligned_atomic; \
42+ #define CHECK_ATOMIC_MEMORY_ACCESS () do { \
43+ if (((uintptr_t)maddr & (((uintptr_t) 1 << align) - 1)) != 0)\
44+ goto unaligned_atomic; \
4545 } while (0)
4646
4747static inline uint32
@@ -189,7 +189,7 @@ read_leb(const uint8 *buf, uint32 *p_offset, uint32 maxbits, bool sign)
189189 }
190190 if (sign && (shift < maxbits ) && (byte & 0x40 )) {
191191 /* Sign extend */
192- result |= - (( uint64 )1 << shift ) ;
192+ result |= (~(( uint64 )0 )) << shift ;
193193 }
194194 * p_offset = offset ;
195195 return result ;
@@ -2060,31 +2060,19 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
20602060
20612061 HANDLE_OP (WASM_OP_I32_SHL ):
20622062 {
2063- #if defined(BUILD_TARGET_X86_64 ) || defined(BUILD_TARGET_X86_32 )
2064- DEF_OP_NUMERIC (uint32 , uint32 , I32 , <<);
2065- #else
20662063 DEF_OP_NUMERIC2 (uint32 , uint32 , I32 , <<);
2067- #endif
20682064 HANDLE_OP_END ();
20692065 }
20702066
20712067 HANDLE_OP (WASM_OP_I32_SHR_S ):
20722068 {
2073- #if defined(BUILD_TARGET_X86_64 ) || defined(BUILD_TARGET_X86_32 )
2074- DEF_OP_NUMERIC (int32 , uint32 , I32 , >>);
2075- #else
20762069 DEF_OP_NUMERIC2 (int32 , uint32 , I32 , >>);
2077- #endif
20782070 HANDLE_OP_END ();
20792071 }
20802072
20812073 HANDLE_OP (WASM_OP_I32_SHR_U ):
20822074 {
2083- #if defined(BUILD_TARGET_X86_64 ) || defined(BUILD_TARGET_X86_32 )
2084- DEF_OP_NUMERIC (uint32 , uint32 , I32 , >>);
2085- #else
20862075 DEF_OP_NUMERIC2 (uint32 , uint32 , I32 , >>);
2087- #endif
20882076 HANDLE_OP_END ();
20892077 }
20902078
@@ -2211,31 +2199,19 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
22112199
22122200 HANDLE_OP (WASM_OP_I64_SHL ):
22132201 {
2214- #if defined(BUILD_TARGET_X86_64 ) || defined(BUILD_TARGET_X86_32 )
2215- DEF_OP_NUMERIC_64 (uint64 , uint64 , I64 , <<);
2216- #else
22172202 DEF_OP_NUMERIC2_64 (uint64 , uint64 , I64 , <<);
2218- #endif
22192203 HANDLE_OP_END ();
22202204 }
22212205
22222206 HANDLE_OP (WASM_OP_I64_SHR_S ):
22232207 {
2224- #if defined(BUILD_TARGET_X86_64 ) || defined(BUILD_TARGET_X86_32 )
2225- DEF_OP_NUMERIC_64 (int64 , uint64 , I64 , >>);
2226- #else
22272208 DEF_OP_NUMERIC2_64 (int64 , uint64 , I64 , >>);
2228- #endif
22292209 HANDLE_OP_END ();
22302210 }
22312211
22322212 HANDLE_OP (WASM_OP_I64_SHR_U ):
22332213 {
2234- #if defined(BUILD_TARGET_X86_64 ) || defined(BUILD_TARGET_X86_32 )
2235- DEF_OP_NUMERIC_64 (uint64 , uint64 , I64 , >>);
2236- #else
22372214 DEF_OP_NUMERIC2_64 (uint64 , uint64 , I64 , >>);
2238- #endif
22392215 HANDLE_OP_END ();
22402216 }
22412217
@@ -2266,12 +2242,12 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
22662242
22672243 HANDLE_OP (WASM_OP_F32_NEG ):
22682244 {
2269- int32 i32 = ( int32 ) frame_sp [-1 ];
2270- int32 sign_bit = i32 & (1 << 31 );
2245+ uint32 u32 = frame_sp [-1 ];
2246+ uint32 sign_bit = u32 & (( uint32 ) 1 << 31 );
22712247 if (sign_bit )
2272- frame_sp [-1 ] = i32 & ~(1 << 31 );
2248+ frame_sp [-1 ] = u32 & ~(( uint32 ) 1 << 31 );
22732249 else
2274- frame_sp [-1 ] = ( uint32 )( i32 | (1 << 31 ) );
2250+ frame_sp [-1 ] = u32 | (( uint32 ) 1 << 31 );
22752251 HANDLE_OP_END ();
22762252 }
22772253
@@ -2360,12 +2336,12 @@ wasm_interp_call_func_bytecode(WASMModuleInstance *module,
23602336
23612337 HANDLE_OP (WASM_OP_F64_NEG ):
23622338 {
2363- int64 i64 = GET_I64_FROM_ADDR (frame_sp - 2 );
2364- int64 sign_bit = i64 & (((int64 )1 ) << 63 );
2339+ uint64 u64 = GET_I64_FROM_ADDR (frame_sp - 2 );
2340+ uint64 sign_bit = u64 & (((uint64 )1 ) << 63 );
23652341 if (sign_bit )
2366- PUT_I64_TO_ADDR (frame_sp - 2 , (( uint64 ) i64 & ~(((uint64 )1 ) << 63 )));
2342+ PUT_I64_TO_ADDR (frame_sp - 2 , (u64 & ~(((uint64 )1 ) << 63 )));
23672343 else
2368- PUT_I64_TO_ADDR (frame_sp - 2 , (( uint64 ) i64 | (((uint64 )1 ) << 63 )));
2344+ PUT_I64_TO_ADDR (frame_sp - 2 , (u64 | (((uint64 )1 ) << 63 )));
23692345 HANDLE_OP_END ();
23702346 }
23712347
0 commit comments