summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/spectest-interp.cc51
1 files changed, 22 insertions, 29 deletions
diff --git a/src/tools/spectest-interp.cc b/src/tools/spectest-interp.cc
index 17426767..f333648e 100644
--- a/src/tools/spectest-interp.cc
+++ b/src/tools/spectest-interp.cc
@@ -847,7 +847,11 @@ class SpectestHostImportDelegate : public HostImportDelegate {
interp::Func* func,
interp::FuncSignature* func_sig,
const ErrorCallback& callback) override {
- if (import->field_name == "print") {
+ if (import->field_name == "print" || import->field_name == "print_i32" ||
+ import->field_name == "print_f32" ||
+ import->field_name == "print_f64" ||
+ import->field_name == "print_i32_f32" ||
+ import->field_name == "print_f64_f64") {
cast<HostFunc>(func)->callback = DefaultHostCallback;
return wabt::Result::Ok;
} else {
@@ -891,34 +895,23 @@ class SpectestHostImportDelegate : public HostImportDelegate {
wabt::Result ImportGlobal(interp::GlobalImport* import,
interp::Global* global,
const ErrorCallback& callback) override {
- if (import->field_name == "global") {
- switch (global->typed_value.type) {
- case Type::I32:
- global->typed_value.value.i32 = 666;
- break;
-
- case Type::F32: {
- float value = 666.6f;
- memcpy(&global->typed_value.value.f32_bits, &value, sizeof(value));
- break;
- }
-
- case Type::I64:
- global->typed_value.value.i64 = 666;
- break;
-
- case Type::F64: {
- double value = 666.6;
- memcpy(&global->typed_value.value.f64_bits, &value, sizeof(value));
- break;
- }
-
- default:
- PrintError(callback, "bad type for host global import " PRIimport,
- PRINTF_IMPORT_ARG(*import));
- return wabt::Result::Error;
- }
-
+ if (import->field_name == "global_i32") {
+ global->typed_value.type = Type::I32;
+ global->typed_value.value.i32 = 666;
+ return wabt::Result::Ok;
+ } else if (import->field_name == "global_f32") {
+ global->typed_value.type = Type::F32;
+ float value = 666.6f;
+ memcpy(&global->typed_value.value.f32_bits, &value, sizeof(value));
+ return wabt::Result::Ok;
+ } else if (import->field_name == "global_i64") {
+ global->typed_value.type = Type::I64;
+ global->typed_value.value.i64 = 666;
+ return wabt::Result::Ok;
+ } else if (import->field_name == "global_f64") {
+ global->typed_value.type = Type::F64;
+ double value = 666.6;
+ memcpy(&global->typed_value.value.f64_bits, &value, sizeof(value));
return wabt::Result::Ok;
} else {
PrintError(callback, "unknown host global import " PRIimport,