diff options
author | Quentin Carbonneaux <quentin@c9x.me> | 2017-04-08 21:40:39 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin@c9x.me> | 2017-04-08 22:10:01 -0400 |
commit | f4ddc9e54ed589b8d168cd39ebf2a5572b32431b (patch) | |
tree | 2d039c10d5ab9d17c1274fbffd75d793a3e3b1ad | |
parent | e4bc35149cc790e3ad034f6643f75c33765b142c (diff) | |
download | roux-f4ddc9e54ed589b8d168cd39ebf2a5572b32431b.tar.gz |
enable arm64 tests
The vararg tests had to be changed because va_list is 32-bit wide on arm. The astute reader will notice that the way we pass va_list values is wrong, we should be using the ':valist' type as defined below instead of 'l'. But eh, that works for now, because of the ABI. type :valist = align 8 { 32 }
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | test/dark.ssa | 1 | ||||
-rw-r--r-- | test/vararg1.ssa | 4 | ||||
-rw-r--r-- | test/vararg2.ssa | 28 |
4 files changed, 21 insertions, 17 deletions
diff --git a/Makefile b/Makefile index 45e4b50..6fc7d07 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,9 @@ clean-gen: clean check: $(OBJDIR)/$(BIN) tools/test.sh all +check-arm64: $(OBJDIR)/$(BIN) + TARGET=arm64 tools/test.sh all + 80: @for F in $(SRCALL); \ do \ @@ -79,4 +82,4 @@ check: $(OBJDIR)/$(BIN) }" < $$F; \ done -.PHONY: clean clean-gen check 80 install uninstall +.PHONY: clean clean-gen check check-arm64 80 install uninstall diff --git a/test/dark.ssa b/test/dark.ssa index 373b1b1..a1b2e60 100644 --- a/test/dark.ssa +++ b/test/dark.ssa @@ -1,3 +1,4 @@ +# skip arm64 # a hack example, # we use a dark type to get # a pointer to the stack. diff --git a/test/vararg1.ssa b/test/vararg1.ssa index 28b3d0e..393743c 100644 --- a/test/vararg1.ssa +++ b/test/vararg1.ssa @@ -1,7 +1,7 @@ export function d $f(l %x, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp %i =l vaarg %vp %n =d vaarg %vp @@ -11,7 +11,7 @@ function d $f(l %x, ...) { export function w $g(l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp %r =w call $vprintf(l %fmt, l %vp) ret %r diff --git a/test/vararg2.ssa b/test/vararg2.ssa index 7f72acb..5ad057a 100644 --- a/test/vararg2.ssa +++ b/test/vararg2.ssa @@ -6,7 +6,7 @@ export function $qbeprint0(l %fmt, ...) { storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -32,7 +32,7 @@ export function $qbeprint0(l %fmt, ...) { export function $qbecall0(l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret @@ -46,7 +46,7 @@ export function $qbeprint1(w %argw0, l %fmt, ...) { storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -72,7 +72,7 @@ export function $qbeprint1(w %argw0, l %fmt, ...) { export function $qbecall1(w %argw0, l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret @@ -86,7 +86,7 @@ export function $qbeprint2(d %argd0, l %fmt, ...) { storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -112,7 +112,7 @@ export function $qbeprint2(d %argd0, l %fmt, ...) { export function $qbecall2(d %argd0, l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret @@ -126,7 +126,7 @@ export function $qbeprint3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -152,7 +152,7 @@ export function $qbeprint3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) export function $qbecall3(w %argw0, w %argw1, w %argw2, w %argw3, l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret @@ -166,7 +166,7 @@ export function $qbeprint4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d % storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -192,7 +192,7 @@ export function $qbeprint4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d % export function $qbecall4(d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret @@ -206,7 +206,7 @@ export function $qbeprint5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d % storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -232,7 +232,7 @@ export function $qbeprint5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d % export function $qbecall5(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret @@ -246,7 +246,7 @@ export function $qbeprint6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w % storew 2122789, %fmtint storew 2123557, %fmtdbl storew 0, %emptys - %vp =l alloc8 24 + %vp =l alloc8 32 %fmt1 =l add 1, %fmt vastart %vp @loop @@ -272,7 +272,7 @@ export function $qbeprint6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w % export function $qbecall6(w %argw0, w %argw1, w %argw2, w %argw3, w %argw4, w %argw5, w %argw6, w %argw7, w %argw8, w %argw9, d %argd0, d %argd1, d %argd2, d %argd3, d %argd4, d %argd5, d %argd6, d %argd7, d %argd8, d %argd9, l %fmt, ...) { @start - %vp =l alloc8 24 + %vp =l alloc8 32 vastart %vp call $vprintf(l %fmt, l %vp) ret |