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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 9750 additions and 9224 deletions

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 */

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) {

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

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

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

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];

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