aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-26 23:48:29 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-26 23:48:29 +0000
commit410c7a1ab1b78cc906166942a679991eaf3e1525 (patch)
treed89af7e1a942434fa7e4a845fa0e18f61fe9199d /src/main/java
parent97d49104a1d63a4c65ec4c16f572995e843549b7 (diff)
Add TODO
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java b/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
index c53f9779..6c3dec78 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/WasmTarget.java
@@ -63,6 +63,13 @@ public enum WasmTarget {
}
public WasmValueType functionPointerType() {
+ // TODO: there's a problem here: wasm64 uses 32-bit function pointers,
+ // but C uses void* for all pointers, which will be 64-bit on wasm64.
+ // We could either:
+ // * Change the C definition of a closure to use a 32-bit int, and cast
+ // it to a void* on use, or
+ // * Change the Wasm backend to treat Patio function pointers as 64-bit,
+ // and convert from 32-bit to 64-bit when referencing table indices.
return WasmValueType.I32;
}