summaryrefslogtreecommitdiff
path: root/src/binary-reader-ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary-reader-ast.c')
-rw-r--r--src/binary-reader-ast.c808
1 files changed, 404 insertions, 404 deletions
diff --git a/src/binary-reader-ast.c b/src/binary-reader-ast.c
index 3295d1be..9ab3c7bc 100644
--- a/src/binary-reader-ast.c
+++ b/src/binary-reader-ast.c
@@ -29,8 +29,8 @@
#define CHECK_RESULT(expr) \
do { \
- if (WASM_FAILED(expr)) \
- return WASM_ERROR; \
+ if (WABT_FAILED(expr)) \
+ return WABT_ERROR; \
} while (0)
typedef enum LabelType {
@@ -43,82 +43,82 @@ typedef enum LabelType {
typedef struct LabelNode {
LabelType label_type;
- WasmExpr** first;
- WasmExpr* last;
+ WabtExpr** first;
+ WabtExpr* last;
} LabelNode;
-WASM_DEFINE_VECTOR(label_node, LabelNode);
+WABT_DEFINE_VECTOR(label_node, LabelNode);
typedef struct Context {
- WasmAllocator* allocator;
- WasmBinaryErrorHandler* error_handler;
- WasmModule* module;
+ WabtAllocator* allocator;
+ WabtBinaryErrorHandler* error_handler;
+ WabtModule* module;
- WasmFunc* current_func;
+ WabtFunc* current_func;
LabelNodeVector label_stack;
uint32_t max_depth;
- WasmExpr** current_init_expr;
+ WabtExpr** current_init_expr;
} Context;
static void handle_error(Context* ctx, uint32_t offset, const char* message);
-static void WASM_PRINTF_FORMAT(2, 3)
+static void WABT_PRINTF_FORMAT(2, 3)
print_error(Context* ctx, const char* format, ...) {
- WASM_SNPRINTF_ALLOCA(buffer, length, format);
- handle_error(ctx, WASM_UNKNOWN_OFFSET, buffer);
+ WABT_SNPRINTF_ALLOCA(buffer, length, format);
+ handle_error(ctx, WABT_UNKNOWN_OFFSET, buffer);
}
-static void push_label(Context* ctx, LabelType label_type, WasmExpr** first) {
+static void push_label(Context* ctx, LabelType label_type, WabtExpr** first) {
LabelNode label;
label.label_type = label_type;
label.first = first;
label.last = NULL;
ctx->max_depth++;
- wasm_append_label_node_value(ctx->allocator, &ctx->label_stack, &label);
+ wabt_append_label_node_value(ctx->allocator, &ctx->label_stack, &label);
}
-static WasmResult pop_label(Context* ctx) {
+static WabtResult pop_label(Context* ctx) {
if (ctx->label_stack.size == 0) {
print_error(ctx, "popping empty label stack");
- return WASM_ERROR;
+ return WABT_ERROR;
}
ctx->max_depth--;
ctx->label_stack.size--;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult get_label_at(Context* ctx,
+static WabtResult get_label_at(Context* ctx,
LabelNode** label,
uint32_t depth) {
if (depth >= ctx->label_stack.size) {
print_error(ctx, "accessing stack depth: %u >= max: %" PRIzd, depth,
ctx->label_stack.size);
- return WASM_ERROR;
+ return WABT_ERROR;
}
*label = &ctx->label_stack.data[ctx->label_stack.size - depth - 1];
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult top_label(Context* ctx, LabelNode** label) {
+static WabtResult top_label(Context* ctx, LabelNode** label) {
return get_label_at(ctx, label, 0);
}
static void dup_name(Context* ctx,
- WasmStringSlice* name,
- WasmStringSlice* out_name) {
+ WabtStringSlice* name,
+ WabtStringSlice* out_name) {
if (name->length > 0) {
- *out_name = wasm_dup_string_slice(ctx->allocator, *name);
+ *out_name = wabt_dup_string_slice(ctx->allocator, *name);
} else {
- WASM_ZERO_MEMORY(*out_name);
+ WABT_ZERO_MEMORY(*out_name);
}
}
-static WasmResult append_expr(Context* ctx, WasmExpr* expr) {
+static WabtResult append_expr(Context* ctx, WabtExpr* expr) {
LabelNode* label;
- if (WASM_FAILED(top_label(ctx, &label))) {
- wasm_free(ctx->allocator, expr);
- return WASM_ERROR;
+ if (WABT_FAILED(top_label(ctx, &label))) {
+ wabt_free(ctx->allocator, expr);
+ return WABT_ERROR;
}
if (*label->first) {
label->last->next = expr;
@@ -126,7 +126,7 @@ static WasmResult append_expr(Context* ctx, WasmExpr* expr) {
} else {
*label->first = label->last = expr;
}
- return WASM_OK;
+ return WABT_OK;
}
static void handle_error(Context* ctx, uint32_t offset, const char* message) {
@@ -136,903 +136,903 @@ static void handle_error(Context* ctx, uint32_t offset, const char* message) {
}
}
-static void on_error(WasmBinaryReaderContext* reader_context,
+static void on_error(WabtBinaryReaderContext* reader_context,
const char* message) {
Context* ctx = reader_context->user_data;
handle_error(ctx, reader_context->offset, message);
}
-static WasmResult on_signature_count(uint32_t count, void* user_data) {
+static WabtResult on_signature_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_func_type_ptrs(ctx->allocator, &ctx->module->func_types, count);
- return WASM_OK;
+ wabt_reserve_func_type_ptrs(ctx->allocator, &ctx->module->func_types, count);
+ return WABT_OK;
}
-static WasmResult on_signature(uint32_t index,
+static WabtResult on_signature(uint32_t index,
uint32_t param_count,
- WasmType* param_types,
+ WabtType* param_types,
uint32_t result_count,
- WasmType* result_types,
+ WabtType* result_types,
void* user_data) {
Context* ctx = user_data;
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_FUNC_TYPE;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_FUNC_TYPE;
- WasmFuncType* func_type = &field->func_type;
- WASM_ZERO_MEMORY(*func_type);
+ WabtFuncType* func_type = &field->func_type;
+ WABT_ZERO_MEMORY(*func_type);
- wasm_reserve_types(ctx->allocator, &func_type->sig.param_types, param_count);
+ wabt_reserve_types(ctx->allocator, &func_type->sig.param_types, param_count);
func_type->sig.param_types.size = param_count;
memcpy(func_type->sig.param_types.data, param_types,
- param_count * sizeof(WasmType));
+ param_count * sizeof(WabtType));
- wasm_reserve_types(ctx->allocator, &func_type->sig.result_types,
+ wabt_reserve_types(ctx->allocator, &func_type->sig.result_types,
result_count);
func_type->sig.result_types.size = result_count;
memcpy(func_type->sig.result_types.data, result_types,
- result_count * sizeof(WasmType));
+ result_count * sizeof(WabtType));
assert(index < ctx->module->func_types.capacity);
- WasmFuncTypePtr* func_type_ptr =
- wasm_append_func_type_ptr(ctx->allocator, &ctx->module->func_types);
+ WabtFuncTypePtr* func_type_ptr =
+ wabt_append_func_type_ptr(ctx->allocator, &ctx->module->func_types);
*func_type_ptr = func_type;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_import_count(uint32_t count, void* user_data) {
+static WabtResult on_import_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_import_ptrs(ctx->allocator, &ctx->module->imports, count);
- return WASM_OK;
+ wabt_reserve_import_ptrs(ctx->allocator, &ctx->module->imports, count);
+ return WABT_OK;
}
-static WasmResult on_import(uint32_t index,
- WasmStringSlice module_name,
- WasmStringSlice field_name,
+static WabtResult on_import(uint32_t index,
+ WabtStringSlice module_name,
+ WabtStringSlice field_name,
void* user_data) {
Context* ctx = user_data;
assert(index < ctx->module->imports.capacity);
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_IMPORT;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_IMPORT;
- WasmImport* import = &field->import;
- WASM_ZERO_MEMORY(*import);
- import->module_name = wasm_dup_string_slice(ctx->allocator, module_name);
- import->field_name = wasm_dup_string_slice(ctx->allocator, field_name);
+ WabtImport* import = &field->import;
+ WABT_ZERO_MEMORY(*import);
+ import->module_name = wabt_dup_string_slice(ctx->allocator, module_name);
+ import->field_name = wabt_dup_string_slice(ctx->allocator, field_name);
- WasmImportPtr* import_ptr =
- wasm_append_import_ptr(ctx->allocator, &ctx->module->imports);
+ WabtImportPtr* import_ptr =
+ wabt_append_import_ptr(ctx->allocator, &ctx->module->imports);
*import_ptr = import;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_import_func(uint32_t import_index,
+static WabtResult on_import_func(uint32_t import_index,
uint32_t func_index,
uint32_t sig_index,
void* user_data) {
Context* ctx = user_data;
assert(import_index == ctx->module->imports.size - 1);
assert(sig_index < ctx->module->func_types.size);
- WasmImport* import = ctx->module->imports.data[import_index];
+ WabtImport* import = ctx->module->imports.data[import_index];
- import->kind = WASM_EXTERNAL_KIND_FUNC;
- import->func.decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE |
- WASM_FUNC_DECLARATION_FLAG_SHARED_SIGNATURE;
- import->func.decl.type_var.type = WASM_VAR_TYPE_INDEX;
+ import->kind = WABT_EXTERNAL_KIND_FUNC;
+ import->func.decl.flags = WABT_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE |
+ WABT_FUNC_DECLARATION_FLAG_SHARED_SIGNATURE;
+ import->func.decl.type_var.type = WABT_VAR_TYPE_INDEX;
import->func.decl.type_var.index = sig_index;
import->func.decl.sig = ctx->module->func_types.data[sig_index]->sig;
- WasmFuncPtr func_ptr = &import->func;
- wasm_append_func_ptr_value(ctx->allocator, &ctx->module->funcs, &func_ptr);
+ WabtFuncPtr func_ptr = &import->func;
+ wabt_append_func_ptr_value(ctx->allocator, &ctx->module->funcs, &func_ptr);
ctx->module->num_func_imports++;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_import_table(uint32_t import_index,
+static WabtResult on_import_table(uint32_t import_index,
uint32_t table_index,
- WasmType elem_type,
- const WasmLimits* elem_limits,
+ WabtType elem_type,
+ const WabtLimits* elem_limits,
void* user_data) {
Context* ctx = user_data;
assert(import_index == ctx->module->imports.size - 1);
- WasmImport* import = ctx->module->imports.data[import_index];
- import->kind = WASM_EXTERNAL_KIND_TABLE;
+ WabtImport* import = ctx->module->imports.data[import_index];
+ import->kind = WABT_EXTERNAL_KIND_TABLE;
import->table.elem_limits = *elem_limits;
- WasmTablePtr table_ptr = &import->table;
- wasm_append_table_ptr_value(ctx->allocator, &ctx->module->tables, &table_ptr);
+ WabtTablePtr table_ptr = &import->table;
+ wabt_append_table_ptr_value(ctx->allocator, &ctx->module->tables, &table_ptr);
ctx->module->num_table_imports++;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_import_memory(uint32_t import_index,
+static WabtResult on_import_memory(uint32_t import_index,
uint32_t memory_index,
- const WasmLimits* page_limits,
+ const WabtLimits* page_limits,
void* user_data) {
Context* ctx = user_data;
assert(import_index == ctx->module->imports.size - 1);
- WasmImport* import = ctx->module->imports.data[import_index];
- import->kind = WASM_EXTERNAL_KIND_MEMORY;
+ WabtImport* import = ctx->module->imports.data[import_index];
+ import->kind = WABT_EXTERNAL_KIND_MEMORY;
import->memory.page_limits = *page_limits;
- WasmMemoryPtr memory_ptr = &import->memory;
- wasm_append_memory_ptr_value(ctx->allocator, &ctx->module->memories,
+ WabtMemoryPtr memory_ptr = &import->memory;
+ wabt_append_memory_ptr_value(ctx->allocator, &ctx->module->memories,
&memory_ptr);
ctx->module->num_memory_imports++;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_import_global(uint32_t import_index,
+static WabtResult on_import_global(uint32_t import_index,
uint32_t global_index,
- WasmType type,
- WasmBool mutable_,
+ WabtType type,
+ WabtBool mutable_,
void* user_data) {
Context* ctx = user_data;
assert(import_index == ctx->module->imports.size - 1);
- WasmImport* import = ctx->module->imports.data[import_index];
- import->kind = WASM_EXTERNAL_KIND_GLOBAL;
+ WabtImport* import = ctx->module->imports.data[import_index];
+ import->kind = WABT_EXTERNAL_KIND_GLOBAL;
import->global.type = type;
import->global.mutable_ = mutable_;
- WasmGlobalPtr global_ptr = &import->global;
- wasm_append_global_ptr_value(ctx->allocator, &ctx->module->globals,
+ WabtGlobalPtr global_ptr = &import->global;
+ wabt_append_global_ptr_value(ctx->allocator, &ctx->module->globals,
&global_ptr);
ctx->module->num_global_imports++;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_function_signatures_count(uint32_t count,
+static WabtResult on_function_signatures_count(uint32_t count,
void* user_data) {
Context* ctx = user_data;
- wasm_reserve_func_ptrs(ctx->allocator, &ctx->module->funcs, count);
- return WASM_OK;
+ wabt_reserve_func_ptrs(ctx->allocator, &ctx->module->funcs, count);
+ return WABT_OK;
}
-static WasmResult on_function_signature(uint32_t index,
+static WabtResult on_function_signature(uint32_t index,
uint32_t sig_index,
void* user_data) {
Context* ctx = user_data;
assert(index < ctx->module->funcs.capacity);
assert(sig_index < ctx->module->func_types.size);
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_FUNC;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_FUNC;
- WasmFunc* func = &field->func;
- WASM_ZERO_MEMORY(*func);
- func->decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE |
- WASM_FUNC_DECLARATION_FLAG_SHARED_SIGNATURE;
- func->decl.type_var.type = WASM_VAR_TYPE_INDEX;
+ WabtFunc* func = &field->func;
+ WABT_ZERO_MEMORY(*func);
+ func->decl.flags = WABT_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE |
+ WABT_FUNC_DECLARATION_FLAG_SHARED_SIGNATURE;
+ func->decl.type_var.type = WABT_VAR_TYPE_INDEX;
func->decl.type_var.index = sig_index;
func->decl.sig = ctx->module->func_types.data[sig_index]->sig;
- WasmFuncPtr* func_ptr =
- wasm_append_func_ptr(ctx->allocator, &ctx->module->funcs);
+ WabtFuncPtr* func_ptr =
+ wabt_append_func_ptr(ctx->allocator, &ctx->module->funcs);
*func_ptr = func;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_table_count(uint32_t count, void* user_data) {
+static WabtResult on_table_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_table_ptrs(ctx->allocator, &ctx->module->tables, count);
- return WASM_OK;
+ wabt_reserve_table_ptrs(ctx->allocator, &ctx->module->tables, count);
+ return WABT_OK;
}
-static WasmResult on_table(uint32_t index,
- WasmType elem_type,
- const WasmLimits* elem_limits,
+static WabtResult on_table(uint32_t index,
+ WabtType elem_type,
+ const WabtLimits* elem_limits,
void* user_data) {
Context* ctx = user_data;
assert(index < ctx->module->tables.capacity);
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_TABLE;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_TABLE;
- WasmTable* table = &field->table;
- WASM_ZERO_MEMORY(*table);
+ WabtTable* table = &field->table;
+ WABT_ZERO_MEMORY(*table);
table->elem_limits = *elem_limits;
- WasmTablePtr* table_ptr =
- wasm_append_table_ptr(ctx->allocator, &ctx->module->tables);
+ WabtTablePtr* table_ptr =
+ wabt_append_table_ptr(ctx->allocator, &ctx->module->tables);
*table_ptr = table;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_memory_count(uint32_t count, void* user_data) {
+static WabtResult on_memory_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_memory_ptrs(ctx->allocator, &ctx->module->memories, count);
- return WASM_OK;
+ wabt_reserve_memory_ptrs(ctx->allocator, &ctx->module->memories, count);
+ return WABT_OK;
}
-static WasmResult on_memory(uint32_t index,
- const WasmLimits* page_limits,
+static WabtResult on_memory(uint32_t index,
+ const WabtLimits* page_limits,
void* user_data) {
Context* ctx = user_data;
assert(index < ctx->module->memories.capacity);
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_MEMORY;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_MEMORY;
- WasmMemory* memory = &field->memory;
- WASM_ZERO_MEMORY(*memory);
+ WabtMemory* memory = &field->memory;
+ WABT_ZERO_MEMORY(*memory);
memory->page_limits = *page_limits;
- WasmMemoryPtr* memory_ptr =
- wasm_append_memory_ptr(ctx->allocator, &ctx->module->memories);
+ WabtMemoryPtr* memory_ptr =
+ wabt_append_memory_ptr(ctx->allocator, &ctx->module->memories);
*memory_ptr = memory;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_global_count(uint32_t count, void* user_data) {
+static WabtResult on_global_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_global_ptrs(ctx->allocator, &ctx->module->globals, count);
- return WASM_OK;
+ wabt_reserve_global_ptrs(ctx->allocator, &ctx->module->globals, count);
+ return WABT_OK;
}
-static WasmResult begin_global(uint32_t index,
- WasmType type,
- WasmBool mutable_,
+static WabtResult begin_global(uint32_t index,
+ WabtType type,
+ WabtBool mutable_,
void* user_data) {
Context* ctx = user_data;
assert(index - ctx->module->num_global_imports <
ctx->module->globals.capacity);
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_GLOBAL;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_GLOBAL;
- WasmGlobal* global = &field->global;
- WASM_ZERO_MEMORY(*global);
+ WabtGlobal* global = &field->global;
+ WABT_ZERO_MEMORY(*global);
global->type = type;
global->mutable_ = mutable_;
- WasmGlobalPtr* global_ptr =
- wasm_append_global_ptr(ctx->allocator, &ctx->module->globals);
+ WabtGlobalPtr* global_ptr =
+ wabt_append_global_ptr(ctx->allocator, &ctx->module->globals);
*global_ptr = global;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult begin_global_init_expr(uint32_t index, void* user_data) {
+static WabtResult begin_global_init_expr(uint32_t index, void* user_data) {
Context* ctx = user_data;
assert(index == ctx->module->globals.size - 1);
- WasmGlobal* global = ctx->module->globals.data[index];
+ WabtGlobal* global = ctx->module->globals.data[index];
ctx->current_init_expr = &global->init_expr;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult end_global_init_expr(uint32_t index, void* user_data) {
+static WabtResult end_global_init_expr(uint32_t index, void* user_data) {
Context* ctx = user_data;
ctx->current_init_expr = NULL;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_export_count(uint32_t count, void* user_data) {
+static WabtResult on_export_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_export_ptrs(ctx->allocator, &ctx->module->exports, count);
- return WASM_OK;
+ wabt_reserve_export_ptrs(ctx->allocator, &ctx->module->exports, count);
+ return WABT_OK;
}
-static WasmResult on_export(uint32_t index,
- WasmExternalKind kind,
+static WabtResult on_export(uint32_t index,
+ WabtExternalKind kind,
uint32_t item_index,
- WasmStringSlice name,
+ WabtStringSlice name,
void* user_data) {
Context* ctx = user_data;
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_EXPORT;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_EXPORT;
- WasmExport* export = &field->export_;
- WASM_ZERO_MEMORY(*export);
- export->name = wasm_dup_string_slice(ctx->allocator, name);
+ WabtExport* export = &field->export_;
+ WABT_ZERO_MEMORY(*export);
+ export->name = wabt_dup_string_slice(ctx->allocator, name);
switch (kind) {
- case WASM_EXTERNAL_KIND_FUNC:
+ case WABT_EXTERNAL_KIND_FUNC:
assert(item_index < ctx->module->funcs.size);
break;
- case WASM_EXTERNAL_KIND_TABLE:
+ case WABT_EXTERNAL_KIND_TABLE:
assert(item_index < ctx->module->tables.size);
break;
- case WASM_EXTERNAL_KIND_MEMORY:
+ case WABT_EXTERNAL_KIND_MEMORY:
assert(item_index < ctx->module->memories.size);
break;
- case WASM_EXTERNAL_KIND_GLOBAL:
+ case WABT_EXTERNAL_KIND_GLOBAL:
assert(item_index < ctx->module->globals.size);
break;
- case WASM_NUM_EXTERNAL_KINDS:
+ case WABT_NUM_EXTERNAL_KINDS:
assert(0);
break;
}
- export->var.type = WASM_VAR_TYPE_INDEX;
+ export->var.type = WABT_VAR_TYPE_INDEX;
export->var.index = item_index;
export->kind = kind;
assert(index < ctx->module->exports.capacity);
- WasmExportPtr* export_ptr =
- wasm_append_export_ptr(ctx->allocator, &ctx->module->exports);
+ WabtExportPtr* export_ptr =
+ wabt_append_export_ptr(ctx->allocator, &ctx->module->exports);
*export_ptr = export;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_start_function(uint32_t func_index, void* user_data) {
+static WabtResult on_start_function(uint32_t func_index, void* user_data) {
Context* ctx = user_data;
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_START;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_START;
- field->start.type = WASM_VAR_TYPE_INDEX;
+ field->start.type = WABT_VAR_TYPE_INDEX;
assert(func_index < ctx->module->funcs.size);
field->start.index = func_index;
ctx->module->start = &field->start;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_function_bodies_count(uint32_t count, void* user_data) {
+static WabtResult on_function_bodies_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
assert(ctx->module->num_func_imports + count == ctx->module->funcs.size);
(void)ctx;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult begin_function_body(WasmBinaryReaderContext* context,
+static WabtResult begin_function_body(WabtBinaryReaderContext* context,
uint32_t index) {
Context* ctx = context->user_data;
assert(index < ctx->module->funcs.size);
ctx->current_func = ctx->module->funcs.data[index];
push_label(ctx, LABEL_TYPE_FUNC, &ctx->current_func->first_expr);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_local_decl(uint32_t decl_index,
+static WabtResult on_local_decl(uint32_t decl_index,
uint32_t count,
- WasmType type,
+ WabtType type,
void* user_data) {
Context* ctx = user_data;
size_t old_local_count = ctx->current_func->local_types.size;
size_t new_local_count = old_local_count + count;
- wasm_reserve_types(ctx->allocator, &ctx->current_func->local_types,
+ wabt_reserve_types(ctx->allocator, &ctx->current_func->local_types,
new_local_count);
- WasmTypeVector* types = &ctx->current_func->local_types;
+ WabtTypeVector* types = &ctx->current_func->local_types;
size_t i;
for (i = 0; i < count; ++i)
types->data[old_local_count + i] = type;
types->size = new_local_count;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_binary_expr(WasmOpcode opcode, void* user_data) {
+static WabtResult on_binary_expr(WabtOpcode opcode, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_binary_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_binary_expr(ctx->allocator);
expr->binary.opcode = opcode;
return append_expr(ctx, expr);
}
-static WasmResult on_block_expr(uint32_t num_types,
- WasmType* sig_types,
+static WabtResult on_block_expr(uint32_t num_types,
+ WabtType* sig_types,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_block_expr(ctx->allocator);
- WasmTypeVector src;
- WASM_ZERO_MEMORY(src);
+ WabtExpr* expr = wabt_new_block_expr(ctx->allocator);
+ WabtTypeVector src;
+ WABT_ZERO_MEMORY(src);
src.size = num_types;
src.data = sig_types;
- wasm_extend_types(ctx->allocator, &expr->block.sig, &src);
+ wabt_extend_types(ctx->allocator, &expr->block.sig, &src);
append_expr(ctx, expr);
push_label(ctx, LABEL_TYPE_BLOCK, &expr->block.first);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_br_expr(uint32_t depth, void* user_data) {
+static WabtResult on_br_expr(uint32_t depth, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_br_expr(ctx->allocator);
- expr->br.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_br_expr(ctx->allocator);
+ expr->br.var.type = WABT_VAR_TYPE_INDEX;
expr->br.var.index = depth;
return append_expr(ctx, expr);
}
-static WasmResult on_br_if_expr(uint32_t depth, void* user_data) {
+static WabtResult on_br_if_expr(uint32_t depth, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_br_if_expr(ctx->allocator);
- expr->br_if.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_br_if_expr(ctx->allocator);
+ expr->br_if.var.type = WABT_VAR_TYPE_INDEX;
expr->br_if.var.index = depth;
return append_expr(ctx, expr);
}
-static WasmResult on_br_table_expr(WasmBinaryReaderContext* context,
+static WabtResult on_br_table_expr(WabtBinaryReaderContext* context,
uint32_t num_targets,
uint32_t* target_depths,
uint32_t default_target_depth) {
Context* ctx = context->user_data;
- WasmExpr* expr = wasm_new_br_table_expr(ctx->allocator);
- wasm_reserve_vars(ctx->allocator, &expr->br_table.targets, num_targets);
+ WabtExpr* expr = wabt_new_br_table_expr(ctx->allocator);
+ wabt_reserve_vars(ctx->allocator, &expr->br_table.targets, num_targets);
expr->br_table.targets.size = num_targets;
uint32_t i;
for (i = 0; i < num_targets; ++i) {
- WasmVar* var = &expr->br_table.targets.data[i];
- var->type = WASM_VAR_TYPE_INDEX;
+ WabtVar* var = &expr->br_table.targets.data[i];
+ var->type = WABT_VAR_TYPE_INDEX;
var->index = target_depths[i];
}
- expr->br_table.default_target.type = WASM_VAR_TYPE_INDEX;
+ expr->br_table.default_target.type = WABT_VAR_TYPE_INDEX;
expr->br_table.default_target.index = default_target_depth;
return append_expr(ctx, expr);
}
-static WasmResult on_call_expr(uint32_t func_index, void* user_data) {
+static WabtResult on_call_expr(uint32_t func_index, void* user_data) {
Context* ctx = user_data;
assert(func_index < ctx->module->funcs.size);
- WasmExpr* expr = wasm_new_call_expr(ctx->allocator);
- expr->call.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_call_expr(ctx->allocator);
+ expr->call.var.type = WABT_VAR_TYPE_INDEX;
expr->call.var.index = func_index;
return append_expr(ctx, expr);
}
-static WasmResult on_call_indirect_expr(uint32_t sig_index, void* user_data) {
+static WabtResult on_call_indirect_expr(uint32_t sig_index, void* user_data) {
Context* ctx = user_data;
assert(sig_index < ctx->module->func_types.size);
- WasmExpr* expr = wasm_new_call_indirect_expr(ctx->allocator);
- expr->call_indirect.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_call_indirect_expr(ctx->allocator);
+ expr->call_indirect.var.type = WABT_VAR_TYPE_INDEX;
expr->call_indirect.var.index = sig_index;
return append_expr(ctx, expr);
}
-static WasmResult on_compare_expr(WasmOpcode opcode, void* user_data) {
+static WabtResult on_compare_expr(WabtOpcode opcode, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_compare_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_compare_expr(ctx->allocator);
expr->compare.opcode = opcode;
return append_expr(ctx, expr);
}
-static WasmResult on_convert_expr(WasmOpcode opcode, void* user_data) {
+static WabtResult on_convert_expr(WabtOpcode opcode, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_convert_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_convert_expr(ctx->allocator);
expr->convert.opcode = opcode;
return append_expr(ctx, expr);
}
-static WasmResult on_current_memory_expr(void* user_data) {
+static WabtResult on_current_memory_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_current_memory_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_current_memory_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult on_drop_expr(void* user_data) {
+static WabtResult on_drop_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_drop_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_drop_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult on_else_expr(void* user_data) {
+static WabtResult on_else_expr(void* user_data) {
Context* ctx = user_data;
LabelNode* label;
CHECK_RESULT(top_label(ctx, &label));
if (label->label_type != LABEL_TYPE_IF) {
print_error(ctx, "else expression without matching if");
- return WASM_ERROR;
+ return WABT_ERROR;
}
LabelNode* parent_label;
CHECK_RESULT(get_label_at(ctx, &parent_label, 1));
- assert(parent_label->last->type == WASM_EXPR_TYPE_IF);
+ assert(parent_label->last->type == WABT_EXPR_TYPE_IF);
label->label_type = LABEL_TYPE_ELSE;
label->first = &parent_label->last->if_.false_;
label->last = NULL;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_end_expr(void* user_data) {
+static WabtResult on_end_expr(void* user_data) {
Context* ctx = user_data;
return pop_label(ctx);
}
-static WasmResult on_f32_const_expr(uint32_t value_bits, void* user_data) {
+static WabtResult on_f32_const_expr(uint32_t value_bits, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_F32;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_F32;
expr->const_.f32_bits = value_bits;
return append_expr(ctx, expr);
}
-static WasmResult on_f64_const_expr(uint64_t value_bits, void* user_data) {
+static WabtResult on_f64_const_expr(uint64_t value_bits, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_F64;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_F64;
expr->const_.f64_bits = value_bits;
return append_expr(ctx, expr);
}
-static WasmResult on_get_global_expr(uint32_t global_index, void* user_data) {
+static WabtResult on_get_global_expr(uint32_t global_index, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_get_global_expr(ctx->allocator);
- expr->get_global.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_get_global_expr(ctx->allocator);
+ expr->get_global.var.type = WABT_VAR_TYPE_INDEX;
expr->get_global.var.index = global_index;
return append_expr(ctx, expr);
}
-static WasmResult on_get_local_expr(uint32_t local_index, void* user_data) {
+static WabtResult on_get_local_expr(uint32_t local_index, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_get_local_expr(ctx->allocator);
- expr->get_local.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_get_local_expr(ctx->allocator);
+ expr->get_local.var.type = WABT_VAR_TYPE_INDEX;
expr->get_local.var.index = local_index;
return append_expr(ctx, expr);
}
-static WasmResult on_grow_memory_expr(void* user_data) {
+static WabtResult on_grow_memory_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_grow_memory_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_grow_memory_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult on_i32_const_expr(uint32_t value, void* user_data) {
+static WabtResult on_i32_const_expr(uint32_t value, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_I32;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_I32;
expr->const_.u32 = value;
return append_expr(ctx, expr);
}
-static WasmResult on_i64_const_expr(uint64_t value, void* user_data) {
+static WabtResult on_i64_const_expr(uint64_t value, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_I64;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_I64;
expr->const_.u64 = value;
return append_expr(ctx, expr);
}
-static WasmResult on_if_expr(uint32_t num_types,
- WasmType* sig_types,
+static WabtResult on_if_expr(uint32_t num_types,
+ WabtType* sig_types,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_if_expr(ctx->allocator);
- WasmTypeVector src;
- WASM_ZERO_MEMORY(src);
+ WabtExpr* expr = wabt_new_if_expr(ctx->allocator);
+ WabtTypeVector src;
+ WABT_ZERO_MEMORY(src);
src.size = num_types;
src.data = sig_types;
- wasm_extend_types(ctx->allocator, &expr->if_.true_.sig, &src);
+ wabt_extend_types(ctx->allocator, &expr->if_.true_.sig, &src);
append_expr(ctx, expr);
push_label(ctx, LABEL_TYPE_IF, &expr->if_.true_.first);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_load_expr(WasmOpcode opcode,
+static WabtResult on_load_expr(WabtOpcode opcode,
uint32_t alignment_log2,
uint32_t offset,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_load_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_load_expr(ctx->allocator);
expr->load.opcode = opcode;
expr->load.align = 1 << alignment_log2;
expr->load.offset = offset;
return append_expr(ctx, expr);
}
-static WasmResult on_loop_expr(uint32_t num_types,
- WasmType* sig_types,
+static WabtResult on_loop_expr(uint32_t num_types,
+ WabtType* sig_types,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_loop_expr(ctx->allocator);
- WasmTypeVector src;
- WASM_ZERO_MEMORY(src);
+ WabtExpr* expr = wabt_new_loop_expr(ctx->allocator);
+ WabtTypeVector src;
+ WABT_ZERO_MEMORY(src);
src.size = num_types;
src.data = sig_types;
- wasm_extend_types(ctx->allocator, &expr->loop.sig, &src);
+ wabt_extend_types(ctx->allocator, &expr->loop.sig, &src);
append_expr(ctx, expr);
push_label(ctx, LABEL_TYPE_LOOP, &expr->loop.first);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_nop_expr(void* user_data) {
+static WabtResult on_nop_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_nop_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_nop_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult on_return_expr(void* user_data) {
+static WabtResult on_return_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_return_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_return_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult on_select_expr(void* user_data) {
+static WabtResult on_select_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_select_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_select_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult on_set_global_expr(uint32_t global_index, void* user_data) {
+static WabtResult on_set_global_expr(uint32_t global_index, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_set_global_expr(ctx->allocator);
- expr->set_global.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_set_global_expr(ctx->allocator);
+ expr->set_global.var.type = WABT_VAR_TYPE_INDEX;
expr->set_global.var.index = global_index;
return append_expr(ctx, expr);
}
-static WasmResult on_set_local_expr(uint32_t local_index, void* user_data) {
+static WabtResult on_set_local_expr(uint32_t local_index, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_set_local_expr(ctx->allocator);
- expr->set_local.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_set_local_expr(ctx->allocator);
+ expr->set_local.var.type = WABT_VAR_TYPE_INDEX;
expr->set_local.var.index = local_index;
return append_expr(ctx, expr);
}
-static WasmResult on_store_expr(WasmOpcode opcode,
+static WabtResult on_store_expr(WabtOpcode opcode,
uint32_t alignment_log2,
uint32_t offset,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_store_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_store_expr(ctx->allocator);
expr->store.opcode = opcode;
expr->store.align = 1 << alignment_log2;
expr->store.offset = offset;
return append_expr(ctx, expr);
}
-static WasmResult on_tee_local_expr(uint32_t local_index, void* user_data) {
+static WabtResult on_tee_local_expr(uint32_t local_index, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_tee_local_expr(ctx->allocator);
- expr->tee_local.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_tee_local_expr(ctx->allocator);
+ expr->tee_local.var.type = WABT_VAR_TYPE_INDEX;
expr->tee_local.var.index = local_index;
return append_expr(ctx, expr);
}
-static WasmResult on_unary_expr(WasmOpcode opcode, void* user_data) {
+static WabtResult on_unary_expr(WabtOpcode opcode, void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_unary_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_unary_expr(ctx->allocator);
expr->unary.opcode = opcode;
return append_expr(ctx, expr);
}
-static WasmResult on_unreachable_expr(void* user_data) {
+static WabtResult on_unreachable_expr(void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_unreachable_expr(ctx->allocator);
+ WabtExpr* expr = wabt_new_unreachable_expr(ctx->allocator);
return append_expr(ctx, expr);
}
-static WasmResult end_function_body(uint32_t index, void* user_data) {
+static WabtResult end_function_body(uint32_t index, void* user_data) {
Context* ctx = user_data;
CHECK_RESULT(pop_label(ctx));
ctx->current_func = NULL;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_elem_segment_count(uint32_t count, void* user_data) {
+static WabtResult on_elem_segment_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_elem_segment_ptrs(ctx->allocator, &ctx->module->elem_segments,
+ wabt_reserve_elem_segment_ptrs(ctx->allocator, &ctx->module->elem_segments,
count);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult begin_elem_segment(uint32_t index,
+static WabtResult begin_elem_segment(uint32_t index,
uint32_t table_index,
void* user_data) {
Context* ctx = user_data;
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_ELEM_SEGMENT;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_ELEM_SEGMENT;
- WasmElemSegment* segment = &field->elem_segment;
- WASM_ZERO_MEMORY(*segment);
- segment->table_var.type = WASM_VAR_TYPE_INDEX;
+ WabtElemSegment* segment = &field->elem_segment;
+ WABT_ZERO_MEMORY(*segment);
+ segment->table_var.type = WABT_VAR_TYPE_INDEX;
segment->table_var.index = table_index;
assert(index == ctx->module->elem_segments.size);
assert(index < ctx->module->elem_segments.capacity);
- WasmElemSegmentPtr* segment_ptr =
- wasm_append_elem_segment_ptr(ctx->allocator, &ctx->module->elem_segments);
+ WabtElemSegmentPtr* segment_ptr =
+ wabt_append_elem_segment_ptr(ctx->allocator, &ctx->module->elem_segments);
*segment_ptr = segment;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult begin_elem_segment_init_expr(uint32_t index,
+static WabtResult begin_elem_segment_init_expr(uint32_t index,
void* user_data) {
Context* ctx = user_data;
assert(index == ctx->module->elem_segments.size - 1);
- WasmElemSegment* segment = ctx->module->elem_segments.data[index];
+ WabtElemSegment* segment = ctx->module->elem_segments.data[index];
ctx->current_init_expr = &segment->offset;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult end_elem_segment_init_expr(uint32_t index, void* user_data) {
+static WabtResult end_elem_segment_init_expr(uint32_t index, void* user_data) {
Context* ctx = user_data;
ctx->current_init_expr = NULL;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_elem_segment_function_index_count(
- WasmBinaryReaderContext* context,
+static WabtResult on_elem_segment_function_index_count(
+ WabtBinaryReaderContext* context,
uint32_t index,
uint32_t count) {
Context* ctx = context->user_data;
assert(index == ctx->module->elem_segments.size - 1);
- WasmElemSegment* segment = ctx->module->elem_segments.data[index];
- wasm_reserve_vars(ctx->allocator, &segment->vars, count);
- return WASM_OK;
+ WabtElemSegment* segment = ctx->module->elem_segments.data[index];
+ wabt_reserve_vars(ctx->allocator, &segment->vars, count);
+ return WABT_OK;
}
-static WasmResult on_elem_segment_function_index(uint32_t index,
+static WabtResult on_elem_segment_function_index(uint32_t index,
uint32_t func_index,
void* user_data) {
Context* ctx = user_data;
assert(index == ctx->module->elem_segments.size - 1);
- WasmElemSegment* segment = ctx->module->elem_segments.data[index];
- WasmVar* var = wasm_append_var(ctx->allocator, &segment->vars);
- var->type = WASM_VAR_TYPE_INDEX;
+ WabtElemSegment* segment = ctx->module->elem_segments.data[index];
+ WabtVar* var = wabt_append_var(ctx->allocator, &segment->vars);
+ var->type = WABT_VAR_TYPE_INDEX;
var->index = func_index;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_data_segment_count(uint32_t count, void* user_data) {
+static WabtResult on_data_segment_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
- wasm_reserve_data_segment_ptrs(ctx->allocator, &ctx->module->data_segments,
+ wabt_reserve_data_segment_ptrs(ctx->allocator, &ctx->module->data_segments,
count);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult begin_data_segment(uint32_t index,
+static WabtResult begin_data_segment(uint32_t index,
uint32_t memory_index,
void* user_data) {
Context* ctx = user_data;
- WasmModuleField* field =
- wasm_append_module_field(ctx->allocator, ctx->module);
- field->type = WASM_MODULE_FIELD_TYPE_DATA_SEGMENT;
+ WabtModuleField* field =
+ wabt_append_module_field(ctx->allocator, ctx->module);
+ field->type = WABT_MODULE_FIELD_TYPE_DATA_SEGMENT;
- WasmDataSegment* segment = &field->data_segment;
- WASM_ZERO_MEMORY(*segment);
- segment->memory_var.type = WASM_VAR_TYPE_INDEX;
+ WabtDataSegment* segment = &field->data_segment;
+ WABT_ZERO_MEMORY(*segment);
+ segment->memory_var.type = WABT_VAR_TYPE_INDEX;
segment->memory_var.index = memory_index;
assert(index == ctx->module->data_segments.size);
assert(index < ctx->module->data_segments.capacity);
- WasmDataSegmentPtr* segment_ptr =
- wasm_append_data_segment_ptr(ctx->allocator, &ctx->module->data_segments);
+ WabtDataSegmentPtr* segment_ptr =
+ wabt_append_data_segment_ptr(ctx->allocator, &ctx->module->data_segments);
*segment_ptr = segment;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult begin_data_segment_init_expr(uint32_t index,
+static WabtResult begin_data_segment_init_expr(uint32_t index,
void* user_data) {
Context* ctx = user_data;
assert(index == ctx->module->data_segments.size - 1);
- WasmDataSegment* segment = ctx->module->data_segments.data[index];
+ WabtDataSegment* segment = ctx->module->data_segments.data[index];
ctx->current_init_expr = &segment->offset;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult end_data_segment_init_expr(uint32_t index, void* user_data) {
+static WabtResult end_data_segment_init_expr(uint32_t index, void* user_data) {
Context* ctx = user_data;
ctx->current_init_expr = NULL;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_data_segment_data(uint32_t index,
+static WabtResult on_data_segment_data(uint32_t index,
const void* data,
uint32_t size,
void* user_data) {
Context* ctx = user_data;
assert(index == ctx->module->data_segments.size - 1);
- WasmDataSegment* segment = ctx->module->data_segments.data[index];
- segment->data = wasm_alloc(ctx->allocator, size, WASM_DEFAULT_ALIGN);
+ WabtDataSegment* segment = ctx->module->data_segments.data[index];
+ segment->data = wabt_alloc(ctx->allocator, size, WABT_DEFAULT_ALIGN);
segment->size = size;
memcpy(segment->data, data, size);
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_function_names_count(uint32_t count, void* user_data) {
+static WabtResult on_function_names_count(uint32_t count, void* user_data) {
Context* ctx = user_data;
if (count > ctx->module->funcs.size) {
print_error(
ctx, "expected function name count (%u) <= function count (%" PRIzd ")",
count, ctx->module->funcs.size);
- return WASM_ERROR;
+ return WABT_ERROR;
}
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_function_name(uint32_t index,
- WasmStringSlice name,
+static WabtResult on_function_name(uint32_t index,
+ WabtStringSlice name,
void* user_data) {
Context* ctx = user_data;
- WasmStringSlice new_name;
+ WabtStringSlice new_name;
dup_name(ctx, &name, &new_name);
- WasmBinding* binding = wasm_insert_binding(
+ WabtBinding* binding = wabt_insert_binding(
ctx->allocator, &ctx->module->func_bindings, &new_name);
binding->index = index;
- WasmFunc* func = ctx->module->funcs.data[index];
+ WabtFunc* func = ctx->module->funcs.data[index];
func->name = new_name;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_local_names_count(uint32_t index,
+static WabtResult on_local_names_count(uint32_t index,
uint32_t count,
void* user_data) {
Context* ctx = user_data;
- WasmModule* module = ctx->module;
+ WabtModule* module = ctx->module;
assert(index < module->funcs.size);
- WasmFunc* func = module->funcs.data[index];
- uint32_t num_params_and_locals = wasm_get_num_params_and_locals(func);
+ WabtFunc* func = module->funcs.data[index];
+ uint32_t num_params_and_locals = wabt_get_num_params_and_locals(func);
if (count > num_params_and_locals) {
print_error(ctx, "expected local name count (%d) <= local count (%d)",
count, num_params_and_locals);
- return WASM_ERROR;
+ return WABT_ERROR;
}
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_init_expr_f32_const_expr(uint32_t index,
+static WabtResult on_init_expr_f32_const_expr(uint32_t index,
uint32_t value,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_F32;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_F32;
expr->const_.f32_bits = value;
*ctx->current_init_expr = expr;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_init_expr_f64_const_expr(uint32_t index,
+static WabtResult on_init_expr_f64_const_expr(uint32_t index,
uint64_t value,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_F64;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_F64;
expr->const_.f64_bits = value;
*ctx->current_init_expr = expr;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_init_expr_get_global_expr(uint32_t index,
+static WabtResult on_init_expr_get_global_expr(uint32_t index,
uint32_t global_index,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_get_global_expr(ctx->allocator);
- expr->get_global.var.type = WASM_VAR_TYPE_INDEX;
+ WabtExpr* expr = wabt_new_get_global_expr(ctx->allocator);
+ expr->get_global.var.type = WABT_VAR_TYPE_INDEX;
expr->get_global.var.index = global_index;
*ctx->current_init_expr = expr;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_init_expr_i32_const_expr(uint32_t index,
+static WabtResult on_init_expr_i32_const_expr(uint32_t index,
uint32_t value,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_I32;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_I32;
expr->const_.u32 = value;
*ctx->current_init_expr = expr;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_init_expr_i64_const_expr(uint32_t index,
+static WabtResult on_init_expr_i64_const_expr(uint32_t index,
uint64_t value,
void* user_data) {
Context* ctx = user_data;
- WasmExpr* expr = wasm_new_const_expr(ctx->allocator);
- expr->const_.type = WASM_TYPE_I64;
+ WabtExpr* expr = wabt_new_const_expr(ctx->allocator);
+ expr->const_.type = WABT_TYPE_I64;
expr->const_.u64 = value;
*ctx->current_init_expr = expr;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmResult on_local_name(uint32_t func_index,
+static WabtResult on_local_name(uint32_t func_index,
uint32_t local_index,
- WasmStringSlice name,
+ WabtStringSlice name,
void* user_data) {
Context* ctx = user_data;
- WasmModule* module = ctx->module;
- WasmFunc* func = module->funcs.data[func_index];
- uint32_t num_params = wasm_get_num_params(func);
- WasmStringSlice new_name;
+ WabtModule* module = ctx->module;
+ WabtFunc* func = module->funcs.data[func_index];
+ uint32_t num_params = wabt_get_num_params(func);
+ WabtStringSlice new_name;
dup_name(ctx, &name, &new_name);
- WasmBindingHash* bindings;
- WasmBinding* binding;
+ WabtBindingHash* bindings;
+ WabtBinding* binding;
uint32_t index;
if (local_index < num_params) {
/* param name */
@@ -1043,12 +1043,12 @@ static WasmResult on_local_name(uint32_t func_index,
bindings = &func->local_bindings;
index = local_index - num_params;
}
- binding = wasm_insert_binding(ctx->allocator, bindings, &new_name);
+ binding = wabt_insert_binding(ctx->allocator, bindings, &new_name);
binding->index = index;
- return WASM_OK;
+ return WABT_OK;
}
-static WasmBinaryReader s_binary_reader = {
+static WabtBinaryReader s_binary_reader = {
.user_data = NULL,
.on_error = on_error,
@@ -1144,32 +1144,32 @@ static WasmBinaryReader s_binary_reader = {
.on_init_expr_i64_const_expr = on_init_expr_i64_const_expr,
};
-static void wasm_destroy_label_node(WasmAllocator* allocator, LabelNode* node) {
+static void wabt_destroy_label_node(WabtAllocator* allocator, LabelNode* node) {
if (*node->first)
- wasm_destroy_expr_list(allocator, *node->first);
+ wabt_destroy_expr_list(allocator, *node->first);
}
-WasmResult wasm_read_binary_ast(struct WasmAllocator* allocator,
+WabtResult wabt_read_binary_ast(struct WabtAllocator* allocator,
const void* data,
size_t size,
- const WasmReadBinaryOptions* options,
- WasmBinaryErrorHandler* error_handler,
- struct WasmModule* out_module) {
+ const WabtReadBinaryOptions* options,
+ WabtBinaryErrorHandler* error_handler,
+ struct WabtModule* out_module) {
Context ctx;
- WASM_ZERO_MEMORY(ctx);
+ WABT_ZERO_MEMORY(ctx);
ctx.allocator = allocator;
ctx.error_handler = error_handler;
ctx.module = out_module;
- WasmBinaryReader reader;
- WASM_ZERO_MEMORY(reader);
+ WabtBinaryReader reader;
+ WABT_ZERO_MEMORY(reader);
reader = s_binary_reader;
reader.user_data = &ctx;
- WasmResult result =
- wasm_read_binary(allocator, data, size, &reader, 1, options);
- WASM_DESTROY_VECTOR_AND_ELEMENTS(allocator, ctx.label_stack, label_node);
- if (WASM_FAILED(result))
- wasm_destroy_module(allocator, out_module);
+ WabtResult result =
+ wabt_read_binary(allocator, data, size, &reader, 1, options);
+ WABT_DESTROY_VECTOR_AND_ELEMENTS(allocator, ctx.label_stack, label_node);
+ if (WABT_FAILED(result))
+ wabt_destroy_module(allocator, out_module);
return result;
}