aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorQuentin Carbonneaux <[email protected]>2024-10-01 19:38:15 +0200
committerQuentin Carbonneaux <[email protected]>2024-10-01 19:42:50 +0200
commit90050202f57b22243f5d3dd434a81df2f89de9ed (patch)
treed72a890222adcf345e6cbfa1b1d7ac2639cc9a0d /test
parent626f0b278137ff6f8b7d910d9b3fc3cbdfbb39fc (diff)
fix various codegen bugs on arm64
- dynamic allocations could generate bad 'and' instructions (for the and with -16 in salloc()). - symbols used in w context would generate adrp and add instructions on wN registers while they seem to only work on xN registers. Thanks to Rosie for reporting them.
Diffstat (limited to 'test')
-rw-r--r--test/isel5.ssa16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/isel5.ssa b/test/isel5.ssa
new file mode 100644
index 0000000..9c546d7
--- /dev/null
+++ b/test/isel5.ssa
@@ -0,0 +1,16 @@
+# make sure the local symbols used for
+# fp constants do not get a _ prefix
+# on apple arm hardware
+
+export function w $main() {
+@start
+ %r =d copy d_1.2
+ %x =w call $printf(l $fmt, ..., d %r)
+ ret 0
+}
+
+data $fmt = { b "%.06f\n", b 0 }
+
+# >>> output
+# 1.200000
+# <<<