Apply clang-format for interpreter source files (#772)

And update source debugging document.
This commit is contained in:
Wenyong Huang
2021-10-08 11:44:39 +08:00
committed by GitHub
parent 8d9bf18ac3
commit 6415e1b006
12 changed files with 9750 additions and 9224 deletions
-1
View File
@@ -57,7 +57,6 @@ extern "C" {
#define STORE_PTR(addr, ptr) do { \
*(void**)addr = (void*)ptr; \
} while (0)
#define LOAD_PTR(addr) (*(void**)(addr))
#else /* WASM_CPU_SUPPORTS_UNALIGNED_ADDR_ACCESS != 0 */
+8 -9
View File
@@ -449,7 +449,7 @@ typedef struct WASMBranchBlock {
* @return the aligned value
*/
inline static unsigned
align_uint (unsigned v, unsigned b)
align_uint(unsigned v, unsigned b)
{
unsigned m = b - 1;
return (v + m) & ~m;
@@ -462,7 +462,7 @@ inline static uint32
wasm_string_hash(const char *str)
{
unsigned h = (unsigned)strlen(str);
const uint8 *p = (uint8*)str;
const uint8 *p = (uint8 *)str;
const uint8 *end = p + h;
while (p != end)
@@ -547,9 +547,10 @@ wasm_type_equal(const WASMType *type1, const WASMType *type2)
return (type1->param_count == type2->param_count
&& type1->result_count == type2->result_count
&& memcmp(type1->types, type2->types,
(uint32)(type1->param_count
+ type1->result_count)) == 0)
? true : false;
(uint32)(type1->param_count + type1->result_count))
== 0)
? true
: false;
}
inline static uint32
@@ -566,8 +567,7 @@ wasm_get_smallest_type_idx(WASMType **types, uint32 type_count,
}
static inline uint32
block_type_get_param_types(BlockType *block_type,
uint8 **p_param_types)
block_type_get_param_types(BlockType *block_type, uint8 **p_param_types)
{
uint32 param_count = 0;
if (!block_type->is_value_type) {
@@ -584,8 +584,7 @@ block_type_get_param_types(BlockType *block_type,
}
static inline uint32
block_type_get_result_types(BlockType *block_type,
uint8 **p_result_types)
block_type_get_result_types(BlockType *block_type, uint8 **p_result_types)
{
uint32 result_count = 0;
if (block_type->is_value_type) {
+5 -5
View File
@@ -31,7 +31,7 @@ typedef struct WASMInterpFrame {
#endif
#if WASM_ENABLE_FAST_INTERP != 0
/* return offset of the first return value of current frame.
/* Return offset of the first return value of current frame,
the callee will put return values here continuously */
uint32 ret_offset;
uint32 *lp;
@@ -68,15 +68,15 @@ typedef struct WASMInterpFrame {
static inline unsigned
wasm_interp_interp_frame_size(unsigned all_cell_num)
{
return align_uint((uint32)offsetof(WASMInterpFrame, lp)
+ all_cell_num * 5, 4);
return align_uint((uint32)offsetof(WASMInterpFrame, lp) + all_cell_num * 5,
4);
}
void
wasm_interp_call_wasm(struct WASMModuleInstance *module_inst,
struct WASMExecEnv *exec_env,
struct WASMFunctionInstance *function,
uint32 argc, uint32 argv[]);
struct WASMFunctionInstance *function, uint32 argc,
uint32 argv[]);
#ifdef __cplusplus
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+9 -11
View File
@@ -23,8 +23,9 @@ extern "C" {
*
* @return return module loaded, NULL if failed
*/
WASMModule*
wasm_loader_load(const uint8 *buf, uint32 size, char *error_buf, uint32 error_buf_size);
WASMModule *
wasm_loader_load(const uint8 *buf, uint32 size, char *error_buf,
uint32 error_buf_size);
/**
* Load a WASM module from a specified WASM section list.
@@ -35,9 +36,9 @@ wasm_loader_load(const uint8 *buf, uint32 size, char *error_buf, uint32 error_bu
*
* @return return WASM module loaded, NULL if failed
*/
WASMModule*
wasm_loader_load_from_sections(WASMSection *section_list,
char *error_buf, uint32 error_buf_size);
WASMModule *
wasm_loader_load_from_sections(WASMSection *section_list, char *error_buf,
uint32 error_buf_size);
/**
* Unload a WASM module.
@@ -64,12 +65,9 @@ wasm_loader_unload(WASMModule *module);
*/
bool
wasm_loader_find_block_addr(WASMExecEnv *exec_env,
BlockAddr *block_addr_cache,
const uint8 *start_addr,
const uint8 *code_end_addr,
uint8 block_type,
uint8 **p_else_addr,
wasm_loader_find_block_addr(WASMExecEnv *exec_env, BlockAddr *block_addr_cache,
const uint8 *start_addr, const uint8 *code_end_addr,
uint8 block_type, uint8 **p_else_addr,
uint8 **p_end_addr);
#if WASM_ENABLE_REF_TYPES != 0
File diff suppressed because it is too large Load Diff
+226 -227
View File
@@ -673,14 +673,9 @@ typedef enum WASMAtomicEXTOpcode {
WASM_OP_ATOMIC_RMW_I64_CMPXCHG32_U = 0x4e,
} WASMAtomicEXTOpcode;
#ifdef __cplusplus
}
#endif
#if WASM_ENABLE_DEBUG_INTERP != 0
#define DEF_DEBUG_BREAK_HANDLE(_name) \
_name[DEBUG_OP_BREAK] = \
HANDLE_OPCODE (DEBUG_OP_BREAK); /* 0xd6 */
_name[DEBUG_OP_BREAK] = HANDLE_OPCODE(DEBUG_OP_BREAK); /* 0xd6 */
#else
#define DEF_DEBUG_BREAK_HANDLE(_name)
#endif
@@ -691,228 +686,232 @@ typedef enum WASMAtomicEXTOpcode {
#define WASM_INSTRUCTION_NUM 256
#define DEFINE_GOTO_TABLE(type, _name) \
static type _name[WASM_INSTRUCTION_NUM] = { \
HANDLE_OPCODE (WASM_OP_UNREACHABLE), /* 0x00 */ \
HANDLE_OPCODE (WASM_OP_NOP), /* 0x01 */ \
HANDLE_OPCODE (WASM_OP_BLOCK), /* 0x02 */ \
HANDLE_OPCODE (WASM_OP_LOOP), /* 0x03 */ \
HANDLE_OPCODE (WASM_OP_IF), /* 0x04 */ \
HANDLE_OPCODE (WASM_OP_ELSE), /* 0x05 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x06), /* 0x06 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x07), /* 0x07 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x08), /* 0x08 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x09), /* 0x09 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x0a), /* 0x0a */ \
HANDLE_OPCODE (WASM_OP_END), /* 0x0b */ \
HANDLE_OPCODE (WASM_OP_BR), /* 0x0c */ \
HANDLE_OPCODE (WASM_OP_BR_IF), /* 0x0d */ \
HANDLE_OPCODE (WASM_OP_BR_TABLE), /* 0x0e */ \
HANDLE_OPCODE (WASM_OP_RETURN), /* 0x0f */ \
HANDLE_OPCODE (WASM_OP_CALL), /* 0x10 */ \
HANDLE_OPCODE (WASM_OP_CALL_INDIRECT), /* 0x11 */ \
HANDLE_OPCODE (WASM_OP_RETURN_CALL), /* 0x12 */ \
HANDLE_OPCODE (WASM_OP_RETURN_CALL_INDIRECT), /* 0x13 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x14), /* 0x14 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x15), /* 0x15 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x16), /* 0x16 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x17), /* 0x17 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x18), /* 0x18 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x19), /* 0x19 */ \
HANDLE_OPCODE (WASM_OP_DROP), /* 0x1a */ \
HANDLE_OPCODE (WASM_OP_SELECT), /* 0x1b */ \
HANDLE_OPCODE (WASM_OP_SELECT_T), /* 0x1c */ \
HANDLE_OPCODE (WASM_OP_GET_GLOBAL_64), /* 0x1d */ \
HANDLE_OPCODE (WASM_OP_SET_GLOBAL_64), /* 0x1e */ \
HANDLE_OPCODE (WASM_OP_SET_GLOBAL_AUX_STACK), /* 0x1f */ \
HANDLE_OPCODE (WASM_OP_GET_LOCAL), /* 0x20 */ \
HANDLE_OPCODE (WASM_OP_SET_LOCAL), /* 0x21 */ \
HANDLE_OPCODE (WASM_OP_TEE_LOCAL), /* 0x22 */ \
HANDLE_OPCODE (WASM_OP_GET_GLOBAL), /* 0x23 */ \
HANDLE_OPCODE (WASM_OP_SET_GLOBAL), /* 0x24 */ \
HANDLE_OPCODE (WASM_OP_TABLE_GET), /* 0x25 */ \
HANDLE_OPCODE (WASM_OP_TABLE_SET), /* 0x26 */ \
HANDLE_OPCODE (WASM_OP_UNUSED_0x27), /* 0x27 */ \
HANDLE_OPCODE (WASM_OP_I32_LOAD), /* 0x28 */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD), /* 0x29 */ \
HANDLE_OPCODE (WASM_OP_F32_LOAD), /* 0x2a */ \
HANDLE_OPCODE (WASM_OP_F64_LOAD), /* 0x2b */ \
HANDLE_OPCODE (WASM_OP_I32_LOAD8_S), /* 0x2c */ \
HANDLE_OPCODE (WASM_OP_I32_LOAD8_U), /* 0x2d */ \
HANDLE_OPCODE (WASM_OP_I32_LOAD16_S), /* 0x2e */ \
HANDLE_OPCODE (WASM_OP_I32_LOAD16_U), /* 0x2f */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD8_S), /* 0x30 */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD8_U), /* 0x31 */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD16_S), /* 0x32 */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD16_U), /* 0x33 */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD32_S), /* 0x34 */ \
HANDLE_OPCODE (WASM_OP_I64_LOAD32_U), /* 0x35 */ \
HANDLE_OPCODE (WASM_OP_I32_STORE), /* 0x36 */ \
HANDLE_OPCODE (WASM_OP_I64_STORE), /* 0x37 */ \
HANDLE_OPCODE (WASM_OP_F32_STORE), /* 0x38 */ \
HANDLE_OPCODE (WASM_OP_F64_STORE), /* 0x39 */ \
HANDLE_OPCODE (WASM_OP_I32_STORE8), /* 0x3a */ \
HANDLE_OPCODE (WASM_OP_I32_STORE16), /* 0x3b */ \
HANDLE_OPCODE (WASM_OP_I64_STORE8), /* 0x3c */ \
HANDLE_OPCODE (WASM_OP_I64_STORE16), /* 0x3d */ \
HANDLE_OPCODE (WASM_OP_I64_STORE32), /* 0x3e */ \
HANDLE_OPCODE (WASM_OP_MEMORY_SIZE), /* 0x3f */ \
HANDLE_OPCODE (WASM_OP_MEMORY_GROW), /* 0x40 */ \
HANDLE_OPCODE (WASM_OP_I32_CONST), /* 0x41 */ \
HANDLE_OPCODE (WASM_OP_I64_CONST), /* 0x42 */ \
HANDLE_OPCODE (WASM_OP_F32_CONST), /* 0x43 */ \
HANDLE_OPCODE (WASM_OP_F64_CONST), /* 0x44 */ \
HANDLE_OPCODE (WASM_OP_I32_EQZ), /* 0x45 */ \
HANDLE_OPCODE (WASM_OP_I32_EQ), /* 0x46 */ \
HANDLE_OPCODE (WASM_OP_I32_NE), /* 0x47 */ \
HANDLE_OPCODE (WASM_OP_I32_LT_S), /* 0x48 */ \
HANDLE_OPCODE (WASM_OP_I32_LT_U), /* 0x49 */ \
HANDLE_OPCODE (WASM_OP_I32_GT_S), /* 0x4a */ \
HANDLE_OPCODE (WASM_OP_I32_GT_U), /* 0x4b */ \
HANDLE_OPCODE (WASM_OP_I32_LE_S), /* 0x4c */ \
HANDLE_OPCODE (WASM_OP_I32_LE_U), /* 0x4d */ \
HANDLE_OPCODE (WASM_OP_I32_GE_S), /* 0x4e */ \
HANDLE_OPCODE (WASM_OP_I32_GE_U), /* 0x4f */ \
HANDLE_OPCODE (WASM_OP_I64_EQZ), /* 0x50 */ \
HANDLE_OPCODE (WASM_OP_I64_EQ), /* 0x51 */ \
HANDLE_OPCODE (WASM_OP_I64_NE), /* 0x52 */ \
HANDLE_OPCODE (WASM_OP_I64_LT_S), /* 0x53 */ \
HANDLE_OPCODE (WASM_OP_I64_LT_U), /* 0x54 */ \
HANDLE_OPCODE (WASM_OP_I64_GT_S), /* 0x55 */ \
HANDLE_OPCODE (WASM_OP_I64_GT_U), /* 0x56 */ \
HANDLE_OPCODE (WASM_OP_I64_LE_S), /* 0x57 */ \
HANDLE_OPCODE (WASM_OP_I64_LE_U), /* 0x58 */ \
HANDLE_OPCODE (WASM_OP_I64_GE_S), /* 0x59 */ \
HANDLE_OPCODE (WASM_OP_I64_GE_U), /* 0x5a */ \
HANDLE_OPCODE (WASM_OP_F32_EQ), /* 0x5b */ \
HANDLE_OPCODE (WASM_OP_F32_NE), /* 0x5c */ \
HANDLE_OPCODE (WASM_OP_F32_LT), /* 0x5d */ \
HANDLE_OPCODE (WASM_OP_F32_GT), /* 0x5e */ \
HANDLE_OPCODE (WASM_OP_F32_LE), /* 0x5f */ \
HANDLE_OPCODE (WASM_OP_F32_GE), /* 0x60 */ \
HANDLE_OPCODE (WASM_OP_F64_EQ), /* 0x61 */ \
HANDLE_OPCODE (WASM_OP_F64_NE), /* 0x62 */ \
HANDLE_OPCODE (WASM_OP_F64_LT), /* 0x63 */ \
HANDLE_OPCODE (WASM_OP_F64_GT), /* 0x64 */ \
HANDLE_OPCODE (WASM_OP_F64_LE), /* 0x65 */ \
HANDLE_OPCODE (WASM_OP_F64_GE), /* 0x66 */ \
HANDLE_OPCODE (WASM_OP_I32_CLZ), /* 0x67 */ \
HANDLE_OPCODE (WASM_OP_I32_CTZ), /* 0x68 */ \
HANDLE_OPCODE (WASM_OP_I32_POPCNT), /* 0x69 */ \
HANDLE_OPCODE (WASM_OP_I32_ADD), /* 0x6a */ \
HANDLE_OPCODE (WASM_OP_I32_SUB), /* 0x6b */ \
HANDLE_OPCODE (WASM_OP_I32_MUL), /* 0x6c */ \
HANDLE_OPCODE (WASM_OP_I32_DIV_S), /* 0x6d */ \
HANDLE_OPCODE (WASM_OP_I32_DIV_U), /* 0x6e */ \
HANDLE_OPCODE (WASM_OP_I32_REM_S), /* 0x6f */ \
HANDLE_OPCODE (WASM_OP_I32_REM_U), /* 0x70 */ \
HANDLE_OPCODE (WASM_OP_I32_AND), /* 0x71 */ \
HANDLE_OPCODE (WASM_OP_I32_OR), /* 0x72 */ \
HANDLE_OPCODE (WASM_OP_I32_XOR), /* 0x73 */ \
HANDLE_OPCODE (WASM_OP_I32_SHL), /* 0x74 */ \
HANDLE_OPCODE (WASM_OP_I32_SHR_S), /* 0x75 */ \
HANDLE_OPCODE (WASM_OP_I32_SHR_U), /* 0x76 */ \
HANDLE_OPCODE (WASM_OP_I32_ROTL), /* 0x77 */ \
HANDLE_OPCODE (WASM_OP_I32_ROTR), /* 0x78 */ \
HANDLE_OPCODE (WASM_OP_I64_CLZ), /* 0x79 */ \
HANDLE_OPCODE (WASM_OP_I64_CTZ), /* 0x7a */ \
HANDLE_OPCODE (WASM_OP_I64_POPCNT), /* 0x7b */ \
HANDLE_OPCODE (WASM_OP_I64_ADD), /* 0x7c */ \
HANDLE_OPCODE (WASM_OP_I64_SUB), /* 0x7d */ \
HANDLE_OPCODE (WASM_OP_I64_MUL), /* 0x7e */ \
HANDLE_OPCODE (WASM_OP_I64_DIV_S), /* 0x7f */ \
HANDLE_OPCODE (WASM_OP_I64_DIV_U), /* 0x80 */ \
HANDLE_OPCODE (WASM_OP_I64_REM_S), /* 0x81 */ \
HANDLE_OPCODE (WASM_OP_I64_REM_U), /* 0x82 */ \
HANDLE_OPCODE (WASM_OP_I64_AND), /* 0x83 */ \
HANDLE_OPCODE (WASM_OP_I64_OR), /* 0x84 */ \
HANDLE_OPCODE (WASM_OP_I64_XOR), /* 0x85 */ \
HANDLE_OPCODE (WASM_OP_I64_SHL), /* 0x86 */ \
HANDLE_OPCODE (WASM_OP_I64_SHR_S), /* 0x87 */ \
HANDLE_OPCODE (WASM_OP_I64_SHR_U), /* 0x88 */ \
HANDLE_OPCODE (WASM_OP_I64_ROTL), /* 0x89 */ \
HANDLE_OPCODE (WASM_OP_I64_ROTR), /* 0x8a */ \
HANDLE_OPCODE (WASM_OP_F32_ABS), /* 0x8b */ \
HANDLE_OPCODE (WASM_OP_F32_NEG), /* 0x8c */ \
HANDLE_OPCODE (WASM_OP_F32_CEIL), /* 0x8d */ \
HANDLE_OPCODE (WASM_OP_F32_FLOOR), /* 0x8e */ \
HANDLE_OPCODE (WASM_OP_F32_TRUNC), /* 0x8f */ \
HANDLE_OPCODE (WASM_OP_F32_NEAREST), /* 0x90 */ \
HANDLE_OPCODE (WASM_OP_F32_SQRT), /* 0x91 */ \
HANDLE_OPCODE (WASM_OP_F32_ADD), /* 0x92 */ \
HANDLE_OPCODE (WASM_OP_F32_SUB), /* 0x93 */ \
HANDLE_OPCODE (WASM_OP_F32_MUL), /* 0x94 */ \
HANDLE_OPCODE (WASM_OP_F32_DIV), /* 0x95 */ \
HANDLE_OPCODE (WASM_OP_F32_MIN), /* 0x96 */ \
HANDLE_OPCODE (WASM_OP_F32_MAX), /* 0x97 */ \
HANDLE_OPCODE (WASM_OP_F32_COPYSIGN), /* 0x98 */ \
HANDLE_OPCODE (WASM_OP_F64_ABS), /* 0x99 */ \
HANDLE_OPCODE (WASM_OP_F64_NEG), /* 0x9a */ \
HANDLE_OPCODE (WASM_OP_F64_CEIL), /* 0x9b */ \
HANDLE_OPCODE (WASM_OP_F64_FLOOR), /* 0x9c */ \
HANDLE_OPCODE (WASM_OP_F64_TRUNC), /* 0x9d */ \
HANDLE_OPCODE (WASM_OP_F64_NEAREST), /* 0x9e */ \
HANDLE_OPCODE (WASM_OP_F64_SQRT), /* 0x9f */ \
HANDLE_OPCODE (WASM_OP_F64_ADD), /* 0xa0 */ \
HANDLE_OPCODE (WASM_OP_F64_SUB), /* 0xa1 */ \
HANDLE_OPCODE (WASM_OP_F64_MUL), /* 0xa2 */ \
HANDLE_OPCODE (WASM_OP_F64_DIV), /* 0xa3 */ \
HANDLE_OPCODE (WASM_OP_F64_MIN), /* 0xa4 */ \
HANDLE_OPCODE (WASM_OP_F64_MAX), /* 0xa5 */ \
HANDLE_OPCODE (WASM_OP_F64_COPYSIGN), /* 0xa6 */ \
HANDLE_OPCODE (WASM_OP_I32_WRAP_I64), /* 0xa7 */ \
HANDLE_OPCODE (WASM_OP_I32_TRUNC_S_F32), /* 0xa8 */ \
HANDLE_OPCODE (WASM_OP_I32_TRUNC_U_F32), /* 0xa9 */ \
HANDLE_OPCODE (WASM_OP_I32_TRUNC_S_F64), /* 0xaa */ \
HANDLE_OPCODE (WASM_OP_I32_TRUNC_U_F64), /* 0xab */ \
HANDLE_OPCODE (WASM_OP_I64_EXTEND_S_I32), /* 0xac */ \
HANDLE_OPCODE (WASM_OP_I64_EXTEND_U_I32), /* 0xad */ \
HANDLE_OPCODE (WASM_OP_I64_TRUNC_S_F32), /* 0xae */ \
HANDLE_OPCODE (WASM_OP_I64_TRUNC_U_F32), /* 0xaf */ \
HANDLE_OPCODE (WASM_OP_I64_TRUNC_S_F64), /* 0xb0 */ \
HANDLE_OPCODE (WASM_OP_I64_TRUNC_U_F64), /* 0xb1 */ \
HANDLE_OPCODE (WASM_OP_F32_CONVERT_S_I32), /* 0xb2 */ \
HANDLE_OPCODE (WASM_OP_F32_CONVERT_U_I32), /* 0xb3 */ \
HANDLE_OPCODE (WASM_OP_F32_CONVERT_S_I64), /* 0xb4 */ \
HANDLE_OPCODE (WASM_OP_F32_CONVERT_U_I64), /* 0xb5 */ \
HANDLE_OPCODE (WASM_OP_F32_DEMOTE_F64), /* 0xb6 */ \
HANDLE_OPCODE (WASM_OP_F64_CONVERT_S_I32), /* 0xb7 */ \
HANDLE_OPCODE (WASM_OP_F64_CONVERT_U_I32), /* 0xb8 */ \
HANDLE_OPCODE (WASM_OP_F64_CONVERT_S_I64), /* 0xb9 */ \
HANDLE_OPCODE (WASM_OP_F64_CONVERT_U_I64), /* 0xba */ \
HANDLE_OPCODE (WASM_OP_F64_PROMOTE_F32), /* 0xbb */ \
HANDLE_OPCODE (WASM_OP_I32_REINTERPRET_F32), /* 0xbc */ \
HANDLE_OPCODE (WASM_OP_I64_REINTERPRET_F64), /* 0xbd */ \
HANDLE_OPCODE (WASM_OP_F32_REINTERPRET_I32), /* 0xbe */ \
HANDLE_OPCODE (WASM_OP_F64_REINTERPRET_I64), /* 0xbf */ \
HANDLE_OPCODE (WASM_OP_I32_EXTEND8_S), /* 0xc0 */ \
HANDLE_OPCODE (WASM_OP_I32_EXTEND16_S), /* 0xc1 */ \
HANDLE_OPCODE (WASM_OP_I64_EXTEND8_S), /* 0xc2 */ \
HANDLE_OPCODE (WASM_OP_I64_EXTEND16_S), /* 0xc3 */ \
HANDLE_OPCODE (WASM_OP_I64_EXTEND32_S), /* 0xc4 */ \
HANDLE_OPCODE (WASM_OP_DROP_64), /* 0xc5 */ \
HANDLE_OPCODE (WASM_OP_SELECT_64), /* 0xc6 */ \
HANDLE_OPCODE (EXT_OP_GET_LOCAL_FAST), /* 0xc7 */ \
HANDLE_OPCODE (EXT_OP_SET_LOCAL_FAST_I64), /* 0xc8 */ \
HANDLE_OPCODE (EXT_OP_SET_LOCAL_FAST), /* 0xc9 */ \
HANDLE_OPCODE (EXT_OP_TEE_LOCAL_FAST), /* 0xca */ \
HANDLE_OPCODE (EXT_OP_TEE_LOCAL_FAST_I64), /* 0xcb */ \
HANDLE_OPCODE (EXT_OP_COPY_STACK_TOP), /* 0xcc */ \
HANDLE_OPCODE (EXT_OP_COPY_STACK_TOP_I64), /* 0xcd */ \
HANDLE_OPCODE (EXT_OP_COPY_STACK_VALUES), /* 0xce */ \
HANDLE_OPCODE (WASM_OP_IMPDEP), /* 0xcf */ \
HANDLE_OPCODE (WASM_OP_REF_NULL), /* 0xd0 */ \
HANDLE_OPCODE (WASM_OP_REF_IS_NULL), /* 0xd1 */ \
HANDLE_OPCODE (WASM_OP_REF_FUNC), /* 0xd2 */ \
HANDLE_OPCODE (EXT_OP_BLOCK), /* 0xd3 */ \
HANDLE_OPCODE (EXT_OP_LOOP), /* 0xd4 */ \
HANDLE_OPCODE (EXT_OP_IF), /* 0xd5 */ \
}; \
do { \
static type _name[WASM_INSTRUCTION_NUM] = { \
HANDLE_OPCODE(WASM_OP_UNREACHABLE), /* 0x00 */ \
HANDLE_OPCODE(WASM_OP_NOP), /* 0x01 */ \
HANDLE_OPCODE(WASM_OP_BLOCK), /* 0x02 */ \
HANDLE_OPCODE(WASM_OP_LOOP), /* 0x03 */ \
HANDLE_OPCODE(WASM_OP_IF), /* 0x04 */ \
HANDLE_OPCODE(WASM_OP_ELSE), /* 0x05 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x06), /* 0x06 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x07), /* 0x07 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x08), /* 0x08 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x09), /* 0x09 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x0a), /* 0x0a */ \
HANDLE_OPCODE(WASM_OP_END), /* 0x0b */ \
HANDLE_OPCODE(WASM_OP_BR), /* 0x0c */ \
HANDLE_OPCODE(WASM_OP_BR_IF), /* 0x0d */ \
HANDLE_OPCODE(WASM_OP_BR_TABLE), /* 0x0e */ \
HANDLE_OPCODE(WASM_OP_RETURN), /* 0x0f */ \
HANDLE_OPCODE(WASM_OP_CALL), /* 0x10 */ \
HANDLE_OPCODE(WASM_OP_CALL_INDIRECT), /* 0x11 */ \
HANDLE_OPCODE(WASM_OP_RETURN_CALL), /* 0x12 */ \
HANDLE_OPCODE(WASM_OP_RETURN_CALL_INDIRECT), /* 0x13 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x14), /* 0x14 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x15), /* 0x15 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x16), /* 0x16 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x17), /* 0x17 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x18), /* 0x18 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x19), /* 0x19 */ \
HANDLE_OPCODE(WASM_OP_DROP), /* 0x1a */ \
HANDLE_OPCODE(WASM_OP_SELECT), /* 0x1b */ \
HANDLE_OPCODE(WASM_OP_SELECT_T), /* 0x1c */ \
HANDLE_OPCODE(WASM_OP_GET_GLOBAL_64), /* 0x1d */ \
HANDLE_OPCODE(WASM_OP_SET_GLOBAL_64), /* 0x1e */ \
HANDLE_OPCODE(WASM_OP_SET_GLOBAL_AUX_STACK), /* 0x1f */ \
HANDLE_OPCODE(WASM_OP_GET_LOCAL), /* 0x20 */ \
HANDLE_OPCODE(WASM_OP_SET_LOCAL), /* 0x21 */ \
HANDLE_OPCODE(WASM_OP_TEE_LOCAL), /* 0x22 */ \
HANDLE_OPCODE(WASM_OP_GET_GLOBAL), /* 0x23 */ \
HANDLE_OPCODE(WASM_OP_SET_GLOBAL), /* 0x24 */ \
HANDLE_OPCODE(WASM_OP_TABLE_GET), /* 0x25 */ \
HANDLE_OPCODE(WASM_OP_TABLE_SET), /* 0x26 */ \
HANDLE_OPCODE(WASM_OP_UNUSED_0x27), /* 0x27 */ \
HANDLE_OPCODE(WASM_OP_I32_LOAD), /* 0x28 */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD), /* 0x29 */ \
HANDLE_OPCODE(WASM_OP_F32_LOAD), /* 0x2a */ \
HANDLE_OPCODE(WASM_OP_F64_LOAD), /* 0x2b */ \
HANDLE_OPCODE(WASM_OP_I32_LOAD8_S), /* 0x2c */ \
HANDLE_OPCODE(WASM_OP_I32_LOAD8_U), /* 0x2d */ \
HANDLE_OPCODE(WASM_OP_I32_LOAD16_S), /* 0x2e */ \
HANDLE_OPCODE(WASM_OP_I32_LOAD16_U), /* 0x2f */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD8_S), /* 0x30 */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD8_U), /* 0x31 */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD16_S), /* 0x32 */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD16_U), /* 0x33 */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD32_S), /* 0x34 */ \
HANDLE_OPCODE(WASM_OP_I64_LOAD32_U), /* 0x35 */ \
HANDLE_OPCODE(WASM_OP_I32_STORE), /* 0x36 */ \
HANDLE_OPCODE(WASM_OP_I64_STORE), /* 0x37 */ \
HANDLE_OPCODE(WASM_OP_F32_STORE), /* 0x38 */ \
HANDLE_OPCODE(WASM_OP_F64_STORE), /* 0x39 */ \
HANDLE_OPCODE(WASM_OP_I32_STORE8), /* 0x3a */ \
HANDLE_OPCODE(WASM_OP_I32_STORE16), /* 0x3b */ \
HANDLE_OPCODE(WASM_OP_I64_STORE8), /* 0x3c */ \
HANDLE_OPCODE(WASM_OP_I64_STORE16), /* 0x3d */ \
HANDLE_OPCODE(WASM_OP_I64_STORE32), /* 0x3e */ \
HANDLE_OPCODE(WASM_OP_MEMORY_SIZE), /* 0x3f */ \
HANDLE_OPCODE(WASM_OP_MEMORY_GROW), /* 0x40 */ \
HANDLE_OPCODE(WASM_OP_I32_CONST), /* 0x41 */ \
HANDLE_OPCODE(WASM_OP_I64_CONST), /* 0x42 */ \
HANDLE_OPCODE(WASM_OP_F32_CONST), /* 0x43 */ \
HANDLE_OPCODE(WASM_OP_F64_CONST), /* 0x44 */ \
HANDLE_OPCODE(WASM_OP_I32_EQZ), /* 0x45 */ \
HANDLE_OPCODE(WASM_OP_I32_EQ), /* 0x46 */ \
HANDLE_OPCODE(WASM_OP_I32_NE), /* 0x47 */ \
HANDLE_OPCODE(WASM_OP_I32_LT_S), /* 0x48 */ \
HANDLE_OPCODE(WASM_OP_I32_LT_U), /* 0x49 */ \
HANDLE_OPCODE(WASM_OP_I32_GT_S), /* 0x4a */ \
HANDLE_OPCODE(WASM_OP_I32_GT_U), /* 0x4b */ \
HANDLE_OPCODE(WASM_OP_I32_LE_S), /* 0x4c */ \
HANDLE_OPCODE(WASM_OP_I32_LE_U), /* 0x4d */ \
HANDLE_OPCODE(WASM_OP_I32_GE_S), /* 0x4e */ \
HANDLE_OPCODE(WASM_OP_I32_GE_U), /* 0x4f */ \
HANDLE_OPCODE(WASM_OP_I64_EQZ), /* 0x50 */ \
HANDLE_OPCODE(WASM_OP_I64_EQ), /* 0x51 */ \
HANDLE_OPCODE(WASM_OP_I64_NE), /* 0x52 */ \
HANDLE_OPCODE(WASM_OP_I64_LT_S), /* 0x53 */ \
HANDLE_OPCODE(WASM_OP_I64_LT_U), /* 0x54 */ \
HANDLE_OPCODE(WASM_OP_I64_GT_S), /* 0x55 */ \
HANDLE_OPCODE(WASM_OP_I64_GT_U), /* 0x56 */ \
HANDLE_OPCODE(WASM_OP_I64_LE_S), /* 0x57 */ \
HANDLE_OPCODE(WASM_OP_I64_LE_U), /* 0x58 */ \
HANDLE_OPCODE(WASM_OP_I64_GE_S), /* 0x59 */ \
HANDLE_OPCODE(WASM_OP_I64_GE_U), /* 0x5a */ \
HANDLE_OPCODE(WASM_OP_F32_EQ), /* 0x5b */ \
HANDLE_OPCODE(WASM_OP_F32_NE), /* 0x5c */ \
HANDLE_OPCODE(WASM_OP_F32_LT), /* 0x5d */ \
HANDLE_OPCODE(WASM_OP_F32_GT), /* 0x5e */ \
HANDLE_OPCODE(WASM_OP_F32_LE), /* 0x5f */ \
HANDLE_OPCODE(WASM_OP_F32_GE), /* 0x60 */ \
HANDLE_OPCODE(WASM_OP_F64_EQ), /* 0x61 */ \
HANDLE_OPCODE(WASM_OP_F64_NE), /* 0x62 */ \
HANDLE_OPCODE(WASM_OP_F64_LT), /* 0x63 */ \
HANDLE_OPCODE(WASM_OP_F64_GT), /* 0x64 */ \
HANDLE_OPCODE(WASM_OP_F64_LE), /* 0x65 */ \
HANDLE_OPCODE(WASM_OP_F64_GE), /* 0x66 */ \
HANDLE_OPCODE(WASM_OP_I32_CLZ), /* 0x67 */ \
HANDLE_OPCODE(WASM_OP_I32_CTZ), /* 0x68 */ \
HANDLE_OPCODE(WASM_OP_I32_POPCNT), /* 0x69 */ \
HANDLE_OPCODE(WASM_OP_I32_ADD), /* 0x6a */ \
HANDLE_OPCODE(WASM_OP_I32_SUB), /* 0x6b */ \
HANDLE_OPCODE(WASM_OP_I32_MUL), /* 0x6c */ \
HANDLE_OPCODE(WASM_OP_I32_DIV_S), /* 0x6d */ \
HANDLE_OPCODE(WASM_OP_I32_DIV_U), /* 0x6e */ \
HANDLE_OPCODE(WASM_OP_I32_REM_S), /* 0x6f */ \
HANDLE_OPCODE(WASM_OP_I32_REM_U), /* 0x70 */ \
HANDLE_OPCODE(WASM_OP_I32_AND), /* 0x71 */ \
HANDLE_OPCODE(WASM_OP_I32_OR), /* 0x72 */ \
HANDLE_OPCODE(WASM_OP_I32_XOR), /* 0x73 */ \
HANDLE_OPCODE(WASM_OP_I32_SHL), /* 0x74 */ \
HANDLE_OPCODE(WASM_OP_I32_SHR_S), /* 0x75 */ \
HANDLE_OPCODE(WASM_OP_I32_SHR_U), /* 0x76 */ \
HANDLE_OPCODE(WASM_OP_I32_ROTL), /* 0x77 */ \
HANDLE_OPCODE(WASM_OP_I32_ROTR), /* 0x78 */ \
HANDLE_OPCODE(WASM_OP_I64_CLZ), /* 0x79 */ \
HANDLE_OPCODE(WASM_OP_I64_CTZ), /* 0x7a */ \
HANDLE_OPCODE(WASM_OP_I64_POPCNT), /* 0x7b */ \
HANDLE_OPCODE(WASM_OP_I64_ADD), /* 0x7c */ \
HANDLE_OPCODE(WASM_OP_I64_SUB), /* 0x7d */ \
HANDLE_OPCODE(WASM_OP_I64_MUL), /* 0x7e */ \
HANDLE_OPCODE(WASM_OP_I64_DIV_S), /* 0x7f */ \
HANDLE_OPCODE(WASM_OP_I64_DIV_U), /* 0x80 */ \
HANDLE_OPCODE(WASM_OP_I64_REM_S), /* 0x81 */ \
HANDLE_OPCODE(WASM_OP_I64_REM_U), /* 0x82 */ \
HANDLE_OPCODE(WASM_OP_I64_AND), /* 0x83 */ \
HANDLE_OPCODE(WASM_OP_I64_OR), /* 0x84 */ \
HANDLE_OPCODE(WASM_OP_I64_XOR), /* 0x85 */ \
HANDLE_OPCODE(WASM_OP_I64_SHL), /* 0x86 */ \
HANDLE_OPCODE(WASM_OP_I64_SHR_S), /* 0x87 */ \
HANDLE_OPCODE(WASM_OP_I64_SHR_U), /* 0x88 */ \
HANDLE_OPCODE(WASM_OP_I64_ROTL), /* 0x89 */ \
HANDLE_OPCODE(WASM_OP_I64_ROTR), /* 0x8a */ \
HANDLE_OPCODE(WASM_OP_F32_ABS), /* 0x8b */ \
HANDLE_OPCODE(WASM_OP_F32_NEG), /* 0x8c */ \
HANDLE_OPCODE(WASM_OP_F32_CEIL), /* 0x8d */ \
HANDLE_OPCODE(WASM_OP_F32_FLOOR), /* 0x8e */ \
HANDLE_OPCODE(WASM_OP_F32_TRUNC), /* 0x8f */ \
HANDLE_OPCODE(WASM_OP_F32_NEAREST), /* 0x90 */ \
HANDLE_OPCODE(WASM_OP_F32_SQRT), /* 0x91 */ \
HANDLE_OPCODE(WASM_OP_F32_ADD), /* 0x92 */ \
HANDLE_OPCODE(WASM_OP_F32_SUB), /* 0x93 */ \
HANDLE_OPCODE(WASM_OP_F32_MUL), /* 0x94 */ \
HANDLE_OPCODE(WASM_OP_F32_DIV), /* 0x95 */ \
HANDLE_OPCODE(WASM_OP_F32_MIN), /* 0x96 */ \
HANDLE_OPCODE(WASM_OP_F32_MAX), /* 0x97 */ \
HANDLE_OPCODE(WASM_OP_F32_COPYSIGN), /* 0x98 */ \
HANDLE_OPCODE(WASM_OP_F64_ABS), /* 0x99 */ \
HANDLE_OPCODE(WASM_OP_F64_NEG), /* 0x9a */ \
HANDLE_OPCODE(WASM_OP_F64_CEIL), /* 0x9b */ \
HANDLE_OPCODE(WASM_OP_F64_FLOOR), /* 0x9c */ \
HANDLE_OPCODE(WASM_OP_F64_TRUNC), /* 0x9d */ \
HANDLE_OPCODE(WASM_OP_F64_NEAREST), /* 0x9e */ \
HANDLE_OPCODE(WASM_OP_F64_SQRT), /* 0x9f */ \
HANDLE_OPCODE(WASM_OP_F64_ADD), /* 0xa0 */ \
HANDLE_OPCODE(WASM_OP_F64_SUB), /* 0xa1 */ \
HANDLE_OPCODE(WASM_OP_F64_MUL), /* 0xa2 */ \
HANDLE_OPCODE(WASM_OP_F64_DIV), /* 0xa3 */ \
HANDLE_OPCODE(WASM_OP_F64_MIN), /* 0xa4 */ \
HANDLE_OPCODE(WASM_OP_F64_MAX), /* 0xa5 */ \
HANDLE_OPCODE(WASM_OP_F64_COPYSIGN), /* 0xa6 */ \
HANDLE_OPCODE(WASM_OP_I32_WRAP_I64), /* 0xa7 */ \
HANDLE_OPCODE(WASM_OP_I32_TRUNC_S_F32), /* 0xa8 */ \
HANDLE_OPCODE(WASM_OP_I32_TRUNC_U_F32), /* 0xa9 */ \
HANDLE_OPCODE(WASM_OP_I32_TRUNC_S_F64), /* 0xaa */ \
HANDLE_OPCODE(WASM_OP_I32_TRUNC_U_F64), /* 0xab */ \
HANDLE_OPCODE(WASM_OP_I64_EXTEND_S_I32), /* 0xac */ \
HANDLE_OPCODE(WASM_OP_I64_EXTEND_U_I32), /* 0xad */ \
HANDLE_OPCODE(WASM_OP_I64_TRUNC_S_F32), /* 0xae */ \
HANDLE_OPCODE(WASM_OP_I64_TRUNC_U_F32), /* 0xaf */ \
HANDLE_OPCODE(WASM_OP_I64_TRUNC_S_F64), /* 0xb0 */ \
HANDLE_OPCODE(WASM_OP_I64_TRUNC_U_F64), /* 0xb1 */ \
HANDLE_OPCODE(WASM_OP_F32_CONVERT_S_I32), /* 0xb2 */ \
HANDLE_OPCODE(WASM_OP_F32_CONVERT_U_I32), /* 0xb3 */ \
HANDLE_OPCODE(WASM_OP_F32_CONVERT_S_I64), /* 0xb4 */ \
HANDLE_OPCODE(WASM_OP_F32_CONVERT_U_I64), /* 0xb5 */ \
HANDLE_OPCODE(WASM_OP_F32_DEMOTE_F64), /* 0xb6 */ \
HANDLE_OPCODE(WASM_OP_F64_CONVERT_S_I32), /* 0xb7 */ \
HANDLE_OPCODE(WASM_OP_F64_CONVERT_U_I32), /* 0xb8 */ \
HANDLE_OPCODE(WASM_OP_F64_CONVERT_S_I64), /* 0xb9 */ \
HANDLE_OPCODE(WASM_OP_F64_CONVERT_U_I64), /* 0xba */ \
HANDLE_OPCODE(WASM_OP_F64_PROMOTE_F32), /* 0xbb */ \
HANDLE_OPCODE(WASM_OP_I32_REINTERPRET_F32), /* 0xbc */ \
HANDLE_OPCODE(WASM_OP_I64_REINTERPRET_F64), /* 0xbd */ \
HANDLE_OPCODE(WASM_OP_F32_REINTERPRET_I32), /* 0xbe */ \
HANDLE_OPCODE(WASM_OP_F64_REINTERPRET_I64), /* 0xbf */ \
HANDLE_OPCODE(WASM_OP_I32_EXTEND8_S), /* 0xc0 */ \
HANDLE_OPCODE(WASM_OP_I32_EXTEND16_S), /* 0xc1 */ \
HANDLE_OPCODE(WASM_OP_I64_EXTEND8_S), /* 0xc2 */ \
HANDLE_OPCODE(WASM_OP_I64_EXTEND16_S), /* 0xc3 */ \
HANDLE_OPCODE(WASM_OP_I64_EXTEND32_S), /* 0xc4 */ \
HANDLE_OPCODE(WASM_OP_DROP_64), /* 0xc5 */ \
HANDLE_OPCODE(WASM_OP_SELECT_64), /* 0xc6 */ \
HANDLE_OPCODE(EXT_OP_GET_LOCAL_FAST), /* 0xc7 */ \
HANDLE_OPCODE(EXT_OP_SET_LOCAL_FAST_I64), /* 0xc8 */ \
HANDLE_OPCODE(EXT_OP_SET_LOCAL_FAST), /* 0xc9 */ \
HANDLE_OPCODE(EXT_OP_TEE_LOCAL_FAST), /* 0xca */ \
HANDLE_OPCODE(EXT_OP_TEE_LOCAL_FAST_I64), /* 0xcb */ \
HANDLE_OPCODE(EXT_OP_COPY_STACK_TOP), /* 0xcc */ \
HANDLE_OPCODE(EXT_OP_COPY_STACK_TOP_I64), /* 0xcd */ \
HANDLE_OPCODE(EXT_OP_COPY_STACK_VALUES), /* 0xce */ \
HANDLE_OPCODE(WASM_OP_IMPDEP), /* 0xcf */ \
HANDLE_OPCODE(WASM_OP_REF_NULL), /* 0xd0 */ \
HANDLE_OPCODE(WASM_OP_REF_IS_NULL), /* 0xd1 */ \
HANDLE_OPCODE(WASM_OP_REF_FUNC), /* 0xd2 */ \
HANDLE_OPCODE(EXT_OP_BLOCK), /* 0xd3 */ \
HANDLE_OPCODE(EXT_OP_LOOP), /* 0xd4 */ \
HANDLE_OPCODE(EXT_OP_IF), /* 0xd5 */ \
}; \
do { \
_name[WASM_OP_MISC_PREFIX] = \
HANDLE_OPCODE (WASM_OP_MISC_PREFIX); /* 0xfc */ \
HANDLE_OPCODE(WASM_OP_MISC_PREFIX); /* 0xfc */ \
_name[WASM_OP_ATOMIC_PREFIX] = \
HANDLE_OPCODE (WASM_OP_ATOMIC_PREFIX); /* 0xfe */ \
HANDLE_OPCODE(WASM_OP_ATOMIC_PREFIX); /* 0xfe */ \
DEF_DEBUG_BREAK_HANDLE(_name) \
} while (0)
#endif /* end of _WASM_OPCODE_H */
} while (0)
#ifdef __cplusplus
}
#endif
#endif /* end of _WASM_OPCODE_H */
File diff suppressed because it is too large Load Diff
+33 -46
View File
@@ -247,7 +247,7 @@ typedef struct WASMSubModInstNode {
*
* @return the code block of the function
*/
static inline uint8*
static inline uint8 *
wasm_get_func_code(WASMFunctionInstance *func)
{
#if WASM_ENABLE_FAST_INTERP == 0
@@ -264,12 +264,12 @@ wasm_get_func_code(WASMFunctionInstance *func)
*
* @return the code block end of the function
*/
static inline uint8*
static inline uint8 *
wasm_get_func_code_end(WASMFunctionInstance *func)
{
#if WASM_ENABLE_FAST_INTERP == 0
return func->is_import_func
? NULL : func->u.func->code + func->u.func->code_size;
return func->is_import_func ? NULL
: func->u.func->code + func->u.func->code_size;
#else
return func->is_import_func
? NULL
@@ -278,20 +278,19 @@ wasm_get_func_code_end(WASMFunctionInstance *func)
}
WASMModule *
wasm_load(const uint8 *buf, uint32 size,
char *error_buf, uint32 error_buf_size);
wasm_load(const uint8 *buf, uint32 size, char *error_buf,
uint32 error_buf_size);
WASMModule *
wasm_load_from_sections(WASMSection *section_list,
char *error_buf, uint32_t error_buf_size);
wasm_load_from_sections(WASMSection *section_list, char *error_buf,
uint32_t error_buf_size);
void
wasm_unload(WASMModule *module);
WASMModuleInstance *
wasm_instantiate(WASMModule *module, bool is_sub_inst,
uint32 stack_size, uint32 heap_size,
char *error_buf, uint32 error_buf_size);
wasm_instantiate(WASMModule *module, bool is_sub_inst, uint32 stack_size,
uint32 heap_size, char *error_buf, uint32 error_buf_size);
void
wasm_dump_perf_profiling(const WASMModuleInstance *module_inst);
@@ -300,8 +299,8 @@ void
wasm_deinstantiate(WASMModuleInstance *module_inst, bool is_sub_inst);
WASMFunctionInstance *
wasm_lookup_function(const WASMModuleInstance *module_inst,
const char *name, const char *signature);
wasm_lookup_function(const WASMModuleInstance *module_inst, const char *name,
const char *signature);
#if WASM_ENABLE_MULTI_MODULE != 0
WASMGlobalInstance *
@@ -315,8 +314,7 @@ wasm_lookup_table(const WASMModuleInstance *module_inst, const char *name);
#endif
bool
wasm_call_function(WASMExecEnv *exec_env,
WASMFunctionInstance *function,
wasm_call_function(WASMExecEnv *exec_env, WASMFunctionInstance *function,
unsigned argc, uint32 argv[]);
bool
@@ -330,7 +328,7 @@ wasm_create_exec_env_singleton(WASMModuleInstance *module_inst);
void
wasm_set_exception(WASMModuleInstance *module, const char *exception);
const char*
const char *
wasm_get_exception(WASMModuleInstance *module);
uint32
@@ -345,38 +343,32 @@ void
wasm_module_free(WASMModuleInstance *module_inst, uint32 ptr);
uint32
wasm_module_dup_data(WASMModuleInstance *module_inst,
const char *src, uint32 size);
wasm_module_dup_data(WASMModuleInstance *module_inst, const char *src,
uint32 size);
bool
wasm_validate_app_addr(WASMModuleInstance *module_inst,
uint32 app_offset, uint32 size);
wasm_validate_app_addr(WASMModuleInstance *module_inst, uint32 app_offset,
uint32 size);
bool
wasm_validate_app_str_addr(WASMModuleInstance *module_inst,
uint32 app_offset);
wasm_validate_app_str_addr(WASMModuleInstance *module_inst, uint32 app_offset);
bool
wasm_validate_native_addr(WASMModuleInstance *module_inst,
void *native_ptr, uint32 size);
wasm_validate_native_addr(WASMModuleInstance *module_inst, void *native_ptr,
uint32 size);
void *
wasm_addr_app_to_native(WASMModuleInstance *module_inst,
uint32 app_offset);
wasm_addr_app_to_native(WASMModuleInstance *module_inst, uint32 app_offset);
uint32
wasm_addr_native_to_app(WASMModuleInstance *module_inst,
void *native_ptr);
wasm_addr_native_to_app(WASMModuleInstance *module_inst, void *native_ptr);
bool
wasm_get_app_addr_range(WASMModuleInstance *module_inst,
uint32 app_offset,
uint32 *p_app_start_offset,
uint32 *p_app_end_offset);
wasm_get_app_addr_range(WASMModuleInstance *module_inst, uint32 app_offset,
uint32 *p_app_start_offset, uint32 *p_app_end_offset);
bool
wasm_get_native_addr_range(WASMModuleInstance *module_inst,
uint8_t *native_ptr,
wasm_get_native_addr_range(WASMModuleInstance *module_inst, uint8_t *native_ptr,
uint8_t **p_native_start_addr,
uint8_t **p_native_end_addr);
@@ -384,19 +376,15 @@ bool
wasm_enlarge_memory(WASMModuleInstance *module, uint32 inc_page_count);
bool
wasm_call_indirect(WASMExecEnv *exec_env,
uint32_t tbl_idx,
uint32_t element_indices,
uint32_t argc, uint32_t argv[]);
wasm_call_indirect(WASMExecEnv *exec_env, uint32_t tbl_idx,
uint32_t element_indices, uint32_t argc, uint32_t argv[]);
#if WASM_ENABLE_THREAD_MGR != 0
bool
wasm_set_aux_stack(WASMExecEnv *exec_env,
uint32 start_offset, uint32 size);
wasm_set_aux_stack(WASMExecEnv *exec_env, uint32 start_offset, uint32 size);
bool
wasm_get_aux_stack(WASMExecEnv *exec_env,
uint32 *start_offset, uint32 *size);
wasm_get_aux_stack(WASMExecEnv *exec_env, uint32 *start_offset, uint32 *size);
#endif
void
@@ -427,13 +415,12 @@ wasm_elem_is_declarative(uint32 mode)
}
bool
wasm_enlarge_table(WASMModuleInstance *module_inst,
uint32 table_idx, uint32 inc_entries, uint32 init_val);
wasm_enlarge_table(WASMModuleInstance *module_inst, uint32 table_idx,
uint32 inc_entries, uint32 init_val);
#endif /* WASM_ENABLE_REF_TYPES != 0 */
static inline WASMTableInstance *
wasm_get_table_inst(const WASMModuleInstance *module_inst,
const uint32 tbl_idx)
wasm_get_table_inst(const WASMModuleInstance *module_inst, const uint32 tbl_idx)
{
/* careful, it might be a table in another module */
WASMTableInstance *tbl_inst = module_inst->tables[tbl_idx];
+11 -7
View File
@@ -14,8 +14,12 @@ llvm-dwarfdump-12 test.wasm
```
## Debugging with interpreter
1. Install dependent libraries
``` bash
apt update && apt install cmake make g++ libxml2-dev -y
```
1. Build iwasm with source debugging feature
2. Build iwasm with source debugging feature
``` bash
cd ${WAMR_ROOT}/product-mini/platforms/linux
mkdir build && cd build
@@ -23,21 +27,21 @@ cmake .. -DWAMR_BUILD_DEBUG_INTERP=1
make
```
2. Execute iwasm with debug engine enabled
3. Execute iwasm with debug engine enabled
``` bash
iwasm -g=127.0.0.1:1234 test.wasm
```
3. Build customized lldb (assume you have already built llvm)
4. Build customized lldb (assume you have already cloned llvm)
``` bash
cd ${WAMR_ROOT}/core/deps/llvm
git apply ../../../../build-scripts/lldb-wasm.patch
mkdir build && cd build
cmake ../llvm -DLLVM_ENABLE_PROJECTS="clang,lldb" -DLLVM_TARGETS_TO_BUILD:STRING="X86;WebAssembly"
git apply ../../../build-scripts/lldb-wasm.patch
mkdir build_lldb && cd build_lldb
cmake -DCMAKE_BUILD_TYPE:STRING="Release" -DLLVM_ENABLE_PROJECTS="clang;lldb" -DLLVM_TARGETS_TO_BUILD:STRING="X86;WebAssembly" -DLLVM_ENABLE_LIBXML2:BOOL=ON ../llvm
make -j $(nproc)
```
4. Launch customized lldb and connect to iwasm
5. Launch customized lldb and connect to iwasm
``` bash
lldb
(lldb) process connect -p wasm connect://127.0.0.1:1234