aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/backends
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/shedlang/compiler/backends')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/WasmPatioCodeGen.java24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/WasmPatioCodeGen.java b/src/main/java/org/shedlang/compiler/backends/wasm/WasmPatioCodeGen.java
index aa687d63..60af8c99 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/WasmPatioCodeGen.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/WasmPatioCodeGen.java
@@ -293,7 +293,16 @@ public class WasmPatioCodeGen {
case PatioDataLayoutArray patioDataLayoutArray ->
sizeOf(patioDataLayoutArray.element()) * patioDataLayoutArray.size();
- case PatioDataLayoutScalar patioDataLayoutScalar ->
+ case PatioDataLayoutBool patioDataLayoutBool ->
+ 1;
+
+ case PatioDataLayoutByte patioDataLayoutByte ->
+ 1;
+
+ case PatioDataLayoutFunctionPointer patioDataLayoutFunctionPointer ->
+ 4;
+
+ case PatioDataLayoutInt patioDataLayoutInt ->
4;
case PatioDataLayoutStruct patioDataLayoutStruct ->
@@ -315,8 +324,17 @@ public class WasmPatioCodeGen {
wasmOffset += sizeOf(patioDataLayoutArray.element()) * patioOffset;
patioDataLayout = patioDataLayoutArray.element();
}
- case PatioDataLayoutScalar patioDataLayoutScalar -> {
- throw new RuntimeException("offset not allowed for scalars");
+ case PatioDataLayoutBool patioDataLayoutBool -> {
+ throw new RuntimeException("offset not allowed for bools");
+ }
+ case PatioDataLayoutByte patioDataLayoutByte -> {
+ throw new RuntimeException("offset not allowed for bytes");
+ }
+ case PatioDataLayoutFunctionPointer patioDataLayoutFunctionPointer -> {
+ throw new RuntimeException("offset not allowed for function ptrs");
+ }
+ case PatioDataLayoutInt patioDataLayoutInt -> {
+ throw new RuntimeException("offset not allowed for ints");
}
case PatioDataLayoutStruct patioDataLayoutStruct -> {
for (var i = 0; i < patioOffset; i++) {