aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-05-21 13:30:43 +0100
committergingerBill <bill@gingerbill.org>2022-05-21 13:30:43 +0100
commitdfbe68bcfe91e1f54eaa47c685d6229f37656f6c (patch)
treeb24272d4b6ebfef34d786e90cbbf7b38f4a769ae
parent3049e07f72f51fd9868066c602dbca922643cfb0 (diff)
Begin to add support for experimental wasm64
-rw-r--r--core/sync/futex_wasm.odin2
-rw-r--r--core/sync/primitives_wasm.odin2
-rw-r--r--src/build_settings.cpp12
-rw-r--r--vendor/wasm/js/dom.odin2
-rw-r--r--vendor/wasm/js/events.odin2
-rw-r--r--vendor/wasm/js/memory.odin2
6 files changed, 16 insertions, 6 deletions
diff --git a/core/sync/futex_wasm.odin b/core/sync/futex_wasm.odin
index 9e96614d6..a32935143 100644
--- a/core/sync/futex_wasm.odin
+++ b/core/sync/futex_wasm.odin
@@ -1,5 +1,5 @@
//+private
-//+build wasm32
+//+build wasm32, wasm64
package sync
import "core:intrinsics"
diff --git a/core/sync/primitives_wasm.odin b/core/sync/primitives_wasm.odin
index 283971ac5..ac36404d9 100644
--- a/core/sync/primitives_wasm.odin
+++ b/core/sync/primitives_wasm.odin
@@ -1,5 +1,5 @@
//+private
-//+build wasm32
+//+build wasm32, wasm64
package sync
_current_thread_id :: proc "contextless" () -> int {
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index 767ce2149..8bc889635 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -452,6 +452,15 @@ gb_global TargetMetrics target_js_wasm32 = {
str_lit(""),
};
+gb_global TargetMetrics target_js_wasm64 = {
+ TargetOs_js,
+ TargetArch_wasm64,
+ 8,
+ 16,
+ str_lit("wasm64-js-js"),
+ str_lit(""),
+};
+
gb_global TargetMetrics target_wasi_wasm32 = {
TargetOs_wasi,
TargetArch_wasm32,
@@ -504,6 +513,7 @@ gb_global NamedTargetMetrics named_targets[] = {
{ str_lit("freestanding_wasm32"), &target_freestanding_wasm32 },
{ str_lit("wasi_wasm32"), &target_wasi_wasm32 },
{ str_lit("js_wasm32"), &target_js_wasm32 },
+ { str_lit("js_wasm64"), &target_js_wasm64 },
{ str_lit("freestanding_amd64_sysv"), &target_freestanding_amd64_sysv },
};
@@ -1151,7 +1161,7 @@ void init_build_context(TargetMetrics *cross_target) {
// link_flags = gb_string_appendc(link_flags, "--export-table ");
link_flags = gb_string_appendc(link_flags, "--allow-undefined ");
if (bc->metrics.arch == TargetArch_wasm64) {
- link_flags = gb_string_appendc(link_flags, "-mwas64 ");
+ link_flags = gb_string_appendc(link_flags, "-mwasm64 ");
}
if (bc->no_entry_point) {
link_flags = gb_string_appendc(link_flags, "--no-entry ");
diff --git a/vendor/wasm/js/dom.odin b/vendor/wasm/js/dom.odin
index 9f9f2fa96..044476d41 100644
--- a/vendor/wasm/js/dom.odin
+++ b/vendor/wasm/js/dom.odin
@@ -1,4 +1,4 @@
-//+build js wasm32
+//+build js wasm32, js wasm64
package wasm_js_interface
foreign import dom_lib "odin_dom"
diff --git a/vendor/wasm/js/events.odin b/vendor/wasm/js/events.odin
index 93ea94ede..12a68937f 100644
--- a/vendor/wasm/js/events.odin
+++ b/vendor/wasm/js/events.odin
@@ -1,4 +1,4 @@
-//+build js wasm32
+//+build js wasm32, js wasm64
package wasm_js_interface
foreign import dom_lib "odin_dom"
diff --git a/vendor/wasm/js/memory.odin b/vendor/wasm/js/memory.odin
index f6f4f82a4..84bb16d01 100644
--- a/vendor/wasm/js/memory.odin
+++ b/vendor/wasm/js/memory.odin
@@ -1,4 +1,4 @@
-//+build js wasm32
+//+build js wasm32, js wasm64
package wasm_js_interface
import "core:mem"