mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 22:58:46 +00:00
Begin to add support for experimental wasm64
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//+private
|
//+private
|
||||||
//+build wasm32
|
//+build wasm32, wasm64
|
||||||
package sync
|
package sync
|
||||||
|
|
||||||
import "core:intrinsics"
|
import "core:intrinsics"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//+private
|
//+private
|
||||||
//+build wasm32
|
//+build wasm32, wasm64
|
||||||
package sync
|
package sync
|
||||||
|
|
||||||
_current_thread_id :: proc "contextless" () -> int {
|
_current_thread_id :: proc "contextless" () -> int {
|
||||||
|
|||||||
+11
-1
@@ -452,6 +452,15 @@ gb_global TargetMetrics target_js_wasm32 = {
|
|||||||
str_lit(""),
|
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 = {
|
gb_global TargetMetrics target_wasi_wasm32 = {
|
||||||
TargetOs_wasi,
|
TargetOs_wasi,
|
||||||
TargetArch_wasm32,
|
TargetArch_wasm32,
|
||||||
@@ -504,6 +513,7 @@ gb_global NamedTargetMetrics named_targets[] = {
|
|||||||
{ str_lit("freestanding_wasm32"), &target_freestanding_wasm32 },
|
{ str_lit("freestanding_wasm32"), &target_freestanding_wasm32 },
|
||||||
{ str_lit("wasi_wasm32"), &target_wasi_wasm32 },
|
{ str_lit("wasi_wasm32"), &target_wasi_wasm32 },
|
||||||
{ str_lit("js_wasm32"), &target_js_wasm32 },
|
{ str_lit("js_wasm32"), &target_js_wasm32 },
|
||||||
|
{ str_lit("js_wasm64"), &target_js_wasm64 },
|
||||||
|
|
||||||
{ str_lit("freestanding_amd64_sysv"), &target_freestanding_amd64_sysv },
|
{ 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, "--export-table ");
|
||||||
link_flags = gb_string_appendc(link_flags, "--allow-undefined ");
|
link_flags = gb_string_appendc(link_flags, "--allow-undefined ");
|
||||||
if (bc->metrics.arch == TargetArch_wasm64) {
|
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) {
|
if (bc->no_entry_point) {
|
||||||
link_flags = gb_string_appendc(link_flags, "--no-entry ");
|
link_flags = gb_string_appendc(link_flags, "--no-entry ");
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
//+build js wasm32
|
//+build js wasm32, js wasm64
|
||||||
package wasm_js_interface
|
package wasm_js_interface
|
||||||
|
|
||||||
foreign import dom_lib "odin_dom"
|
foreign import dom_lib "odin_dom"
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
//+build js wasm32
|
//+build js wasm32, js wasm64
|
||||||
package wasm_js_interface
|
package wasm_js_interface
|
||||||
|
|
||||||
foreign import dom_lib "odin_dom"
|
foreign import dom_lib "odin_dom"
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
//+build js wasm32
|
//+build js wasm32, js wasm64
|
||||||
package wasm_js_interface
|
package wasm_js_interface
|
||||||
|
|
||||||
import "core:mem"
|
import "core:mem"
|
||||||
|
|||||||
Reference in New Issue
Block a user