diff options
author | Michael Forney <mforney@mforney.org> | 2019-04-16 12:26:18 -0700 |
---|---|---|
committer | Michael Forney <mforney@mforney.org> | 2019-04-16 12:26:18 -0700 |
commit | de004660726acb148bf0022706b7019ca560172d (patch) | |
tree | de95581449d1db324c074859615501cf8f0bc5c3 /tests | |
parent | 953e1e6f287d8bc00b2ef8d2197a20a549274eb3 (diff) |
tests -> test
Diffstat (limited to 'tests')
122 files changed, 0 insertions, 927 deletions
diff --git a/tests/add-int-pointer.c b/tests/add-int-pointer.c deleted file mode 100644 index be1a60f..0000000 --- a/tests/add-int-pointer.c +++ /dev/null @@ -1,4 +0,0 @@ -int x[2]; -void f(void) { - 1 + x; -} diff --git a/tests/add-int-pointer.qbe b/tests/add-int-pointer.qbe deleted file mode 100644 index 22825ee..0000000 --- a/tests/add-int-pointer.qbe +++ /dev/null @@ -1,10 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - %.1 =l extsw 1 - %.2 =l mul %.1, 4 - %.3 =l add $x, %.2 - ret -} -export data $x = align 4 { z 8 } diff --git a/tests/alignas.c b/tests/alignas.c deleted file mode 100644 index 394045d..0000000 --- a/tests/alignas.c +++ /dev/null @@ -1 +0,0 @@ -_Alignas(int) char x[4]; diff --git a/tests/alignas.qbe b/tests/alignas.qbe deleted file mode 100644 index 7cf0e40..0000000 --- a/tests/alignas.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { z 4 } diff --git a/tests/basic.c b/tests/basic.c deleted file mode 100644 index 061ed7e..0000000 --- a/tests/basic.c +++ /dev/null @@ -1,3 +0,0 @@ -int main(void) { - return 0; -} diff --git a/tests/basic.qbe b/tests/basic.qbe deleted file mode 100644 index 40d18e9..0000000 --- a/tests/basic.qbe +++ /dev/null @@ -1,6 +0,0 @@ -export -function w $main() { -@start.1 -@body.2 - ret 0 -} diff --git a/tests/bitfield-compound-assign.c b/tests/bitfield-compound-assign.c deleted file mode 100644 index 5ca42e4..0000000 --- a/tests/bitfield-compound-assign.c +++ /dev/null @@ -1,7 +0,0 @@ -struct { - int : 4, x : 9, : 3; -} s; - -void f(void) { - s.x += 3; -} diff --git a/tests/bitfield-compound-assign.qbe b/tests/bitfield-compound-assign.qbe deleted file mode 100644 index 829f5f6..0000000 --- a/tests/bitfield-compound-assign.qbe +++ /dev/null @@ -1,21 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - %.1 =l copy $s - %.2 =l mul 0, 1 - %.3 =l add %.1, %.2 - %.4 =l copy %.3 - %.5 =w loadsw %.4 - %.6 =w shl %.5, 19 - %.7 =w sar %.6, 23 - %.8 =w add %.7, 3 - %.9 =w loaduw %.4 - %.10 =w and %.9, 18446744073709543439 - %.11 =w shl %.8, 4 - %.12 =w and %.11, 8176 - %.13 =w or %.10, %.12 - storew %.13, %.4 - ret -} -export data $s = align 4 { z 4 } diff --git a/tests/bitfield-load-signed.c b/tests/bitfield-load-signed.c deleted file mode 100644 index 837ad24..0000000 --- a/tests/bitfield-load-signed.c +++ /dev/null @@ -1,7 +0,0 @@ -struct { - signed : 4, x : 15, : 13; -} s; - -void f(void) { - s.x; -} diff --git a/tests/bitfield-load-signed.qbe b/tests/bitfield-load-signed.qbe deleted file mode 100644 index bc3f457..0000000 --- a/tests/bitfield-load-signed.qbe +++ /dev/null @@ -1,14 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - %.1 =l copy $s - %.2 =l mul 0, 1 - %.3 =l add %.1, %.2 - %.4 =l copy %.3 - %.5 =w loadsw %.4 - %.6 =w shl %.5, 13 - %.7 =w sar %.6, 17 - ret -} -export data $s = align 4 { z 4 } diff --git a/tests/bitfield-load-unsigned.c b/tests/bitfield-load-unsigned.c deleted file mode 100644 index 5a9e5fa..0000000 --- a/tests/bitfield-load-unsigned.c +++ /dev/null @@ -1,7 +0,0 @@ -struct { - unsigned : 4, x : 15, : 13; -} s; - -void f(void) { - s.x; -} diff --git a/tests/bitfield-load-unsigned.qbe b/tests/bitfield-load-unsigned.qbe deleted file mode 100644 index c4ea94b..0000000 --- a/tests/bitfield-load-unsigned.qbe +++ /dev/null @@ -1,14 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - %.1 =l copy $s - %.2 =l mul 0, 1 - %.3 =l add %.1, %.2 - %.4 =l copy %.3 - %.5 =w loaduw %.4 - %.6 =w shl %.5, 13 - %.7 =w shr %.6, 17 - ret -} -export data $s = align 4 { z 4 } diff --git a/tests/builtin-alloca.c b/tests/builtin-alloca.c deleted file mode 100644 index f086f19..0000000 --- a/tests/builtin-alloca.c +++ /dev/null @@ -1,3 +0,0 @@ -void f(void) { - int *x = __builtin_alloca(32); -} diff --git a/tests/builtin-alloca.qbe b/tests/builtin-alloca.qbe deleted file mode 100644 index 75a1fe1..0000000 --- a/tests/builtin-alloca.qbe +++ /dev/null @@ -1,12 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc8 8 -@body.2 - %.2 =l add %.1, 0 - %.3 =l extsw 32 - %.4 =l alloc16 %.3 - %.5 =l copy %.4 - storel %.5, %.2 - ret -} diff --git a/tests/builtin-constant-p.c b/tests/builtin-constant-p.c deleted file mode 100644 index fa16ed3..0000000 --- a/tests/builtin-constant-p.c +++ /dev/null @@ -1,3 +0,0 @@ -int f(void); -int x = __builtin_constant_p(1+2*3); -int y = __builtin_constant_p(f()); diff --git a/tests/builtin-constant-p.qbe b/tests/builtin-constant-p.qbe deleted file mode 100644 index f92388f..0000000 --- a/tests/builtin-constant-p.qbe +++ /dev/null @@ -1,2 +0,0 @@ -export data $x = align 4 { w 1, } -export data $y = align 4 { w 0, } diff --git a/tests/builtin-inff.c b/tests/builtin-inff.c deleted file mode 100644 index 2dcd040..0000000 --- a/tests/builtin-inff.c +++ /dev/null @@ -1 +0,0 @@ -float x = __builtin_inff(); diff --git a/tests/builtin-inff.qbe b/tests/builtin-inff.qbe deleted file mode 100644 index 5eb8060..0000000 --- a/tests/builtin-inff.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { s s_inf, } diff --git a/tests/builtin-nanf.c b/tests/builtin-nanf.c deleted file mode 100644 index d239a46..0000000 --- a/tests/builtin-nanf.c +++ /dev/null @@ -1 +0,0 @@ -float x = __builtin_nanf(""); diff --git a/tests/builtin-nanf.qbe b/tests/builtin-nanf.qbe deleted file mode 100644 index 5fd7ac2..0000000 --- a/tests/builtin-nanf.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { s s_nan, } diff --git a/tests/builtin-va-copy.c b/tests/builtin-va-copy.c deleted file mode 100644 index 7a69596..0000000 --- a/tests/builtin-va-copy.c +++ /dev/null @@ -1,4 +0,0 @@ -void f(void) { - static __builtin_va_list a, b; - __builtin_va_copy(a, b); -} diff --git a/tests/builtin-va-copy.qbe b/tests/builtin-va-copy.qbe deleted file mode 100644 index 7d88659..0000000 --- a/tests/builtin-va-copy.qbe +++ /dev/null @@ -1,20 +0,0 @@ -data $.La.2 = align 8 { z 24 } -data $.Lb.3 = align 8 { z 24 } -export -function $f() { -@start.1 -@body.2 - %.1 =l loadl $.Lb.3 - storel %.1, $.La.2 - %.2 =l add $.Lb.3, 8 - %.3 =l add $.La.2, 8 - %.4 =l loadl %.2 - storel %.4, %.3 - %.5 =l add %.2, 8 - %.6 =l add %.3, 8 - %.7 =l loadl %.5 - storel %.7, %.6 - %.8 =l add %.5, 8 - %.9 =l add %.6, 8 - ret -} diff --git a/tests/cast-bool-char.c b/tests/cast-bool-char.c deleted file mode 100644 index d05f575..0000000 --- a/tests/cast-bool-char.c +++ /dev/null @@ -1,3 +0,0 @@ -int main(void) { - return (_Bool)(unsigned char)256; -} diff --git a/tests/cast-bool-char.qbe b/tests/cast-bool-char.qbe deleted file mode 100644 index 81d4eba..0000000 --- a/tests/cast-bool-char.qbe +++ /dev/null @@ -1,10 +0,0 @@ -export -function w $main() { -@start.1 -@body.2 - %.1 =w copy 256 - %.2 =w extub %.1 - %.3 =w cnew %.2, 0 - %.4 =w extub %.3 - ret %.4 -} diff --git a/tests/common-real-int-sign.c b/tests/common-real-int-sign.c deleted file mode 100644 index e31aaeb..0000000 --- a/tests/common-real-int-sign.c +++ /dev/null @@ -1,3 +0,0 @@ -int main(void) { - return 0 > -1u; -} diff --git a/tests/common-real-int-sign.qbe b/tests/common-real-int-sign.qbe deleted file mode 100644 index 09f4060..0000000 --- a/tests/common-real-int-sign.qbe +++ /dev/null @@ -1,10 +0,0 @@ -export -function w $main() { -@start.1 -@body.2 - %.1 =w copy 0 - %.2 =w copy 0 - %.3 =w sub %.2, 1 - %.4 =w cugtw %.1, %.3 - ret %.4 -} diff --git a/tests/compare-char.c b/tests/compare-char.c deleted file mode 100644 index 5219647..0000000 --- a/tests/compare-char.c +++ /dev/null @@ -1,3 +0,0 @@ -int main(void) { - return (unsigned char)0 < (unsigned char)256; -} diff --git a/tests/compare-char.qbe b/tests/compare-char.qbe deleted file mode 100644 index a0a1c03..0000000 --- a/tests/compare-char.qbe +++ /dev/null @@ -1,11 +0,0 @@ -export -function w $main() { -@start.1 -@body.2 - %.1 =w copy 0 - %.2 =w copy 256 - %.3 =w extub %.1 - %.4 =w extub %.2 - %.5 =w cultw %.3, %.4 - ret %.5 -} diff --git a/tests/compatible-enum-types.c b/tests/compatible-enum-types.c deleted file mode 100644 index c605e90..0000000 --- a/tests/compatible-enum-types.c +++ /dev/null @@ -1,4 +0,0 @@ -enum {A = 1} x; -unsigned x; -enum {B = -1} y; -int y; diff --git a/tests/compatible-enum-types.qbe b/tests/compatible-enum-types.qbe deleted file mode 100644 index a9a9224..0000000 --- a/tests/compatible-enum-types.qbe +++ /dev/null @@ -1,2 +0,0 @@ -export data $x = align 4 { z 4 } -export data $y = align 4 { z 4 } diff --git a/tests/compatible-function-types.c b/tests/compatible-function-types.c deleted file mode 100644 index 0e63a1c..0000000 --- a/tests/compatible-function-types.c +++ /dev/null @@ -1,17 +0,0 @@ -void f1(); -void f1(int, void *); - -int f2(); -int f2(double); - -void f3() {} -void f3(void); - -void f4(int, char *); -void f4(int, char *); - -void f5(x, y) unsigned x; double y; {} -void f5(unsigned, double); - -void f6(const char *, ...); -void f6(const char[], ...); diff --git a/tests/compatible-function-types.qbe b/tests/compatible-function-types.qbe deleted file mode 100644 index 27d9b32..0000000 --- a/tests/compatible-function-types.qbe +++ /dev/null @@ -1,16 +0,0 @@ -export -function $f3() { -@start.1 -@body.2 - ret -} -export -function $f5(w %.1, d %.3) { -@start.3 - %.2 =l alloc4 4 - storew %.1, %.2 - %.4 =l alloc8 8 - stored %.3, %.4 -@body.4 - ret -} diff --git a/tests/compound-assignment.c b/tests/compound-assignment.c deleted file mode 100644 index d7efcc6..0000000 --- a/tests/compound-assignment.c +++ /dev/null @@ -1,4 +0,0 @@ -void f(void) { - int x[1] = {0}, *p = x; - *p++ += 1; -} diff --git a/tests/compound-assignment.qbe b/tests/compound-assignment.qbe deleted file mode 100644 index 35e71a5..0000000 --- a/tests/compound-assignment.qbe +++ /dev/null @@ -1,18 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc4 4 - %.3 =l alloc8 8 -@body.2 - %.2 =l add %.1, 0 - storew 0, %.2 - %.4 =l add %.3, 0 - storel %.1, %.4 - %.5 =l loadl %.3 - %.6 =l add %.5, 4 - storel %.6, %.3 - %.7 =w loadsw %.5 - %.8 =w add %.7, 1 - storew %.8, %.5 - ret -} diff --git a/tests/compound-literal-static.c b/tests/compound-literal-static.c deleted file mode 100644 index 1b1afc9..0000000 --- a/tests/compound-literal-static.c +++ /dev/null @@ -1 +0,0 @@ -int *x = &(int){2}; diff --git a/tests/compound-literal-static.qbe b/tests/compound-literal-static.qbe deleted file mode 100644 index c18ec1d..0000000 --- a/tests/compound-literal-static.qbe +++ /dev/null @@ -1,2 +0,0 @@ -data $.L.1 = align 4 { w 2, } -export data $x = align 8 { l $.L.1, } diff --git a/tests/const-expr-div.c b/tests/const-expr-div.c deleted file mode 100644 index 3ea302a..0000000 --- a/tests/const-expr-div.c +++ /dev/null @@ -1 +0,0 @@ -int x = -2 / -1; diff --git a/tests/const-expr-div.qbe b/tests/const-expr-div.qbe deleted file mode 100644 index 3faa638..0000000 --- a/tests/const-expr-div.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { w 2, } diff --git a/tests/const-expr-mod.c b/tests/const-expr-mod.c deleted file mode 100644 index 024c94c..0000000 --- a/tests/const-expr-mod.c +++ /dev/null @@ -1 +0,0 @@ -int x = -2 % -1; diff --git a/tests/const-expr-mod.qbe b/tests/const-expr-mod.qbe deleted file mode 100644 index a67781d..0000000 --- a/tests/const-expr-mod.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { w 0, } diff --git a/tests/const-expr-shr.c b/tests/const-expr-shr.c deleted file mode 100644 index 6a46b98..0000000 --- a/tests/const-expr-shr.c +++ /dev/null @@ -1 +0,0 @@ -int x = -1 >> 1; diff --git a/tests/const-expr-shr.qbe b/tests/const-expr-shr.qbe deleted file mode 100644 index 675fc96..0000000 --- a/tests/const-expr-shr.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { w 18446744073709551615, } diff --git a/tests/const-init.c b/tests/const-init.c deleted file mode 100644 index 4d33888..0000000 --- a/tests/const-init.c +++ /dev/null @@ -1 +0,0 @@ -const struct {struct {int x, y;} t;} s = {{{1}, 2}}; diff --git a/tests/const-init.qbe b/tests/const-init.qbe deleted file mode 100644 index fb5d305..0000000 --- a/tests/const-init.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $s = align 4 { w 1, w 2, } diff --git a/tests/escaped-newline.c b/tests/escaped-newline.c deleted file mode 100644 index d659179..0000000 --- a/tests/escaped-newline.c +++ /dev/null @@ -1,2 +0,0 @@ -int split\ -ident = 3; diff --git a/tests/escaped-newline.qbe b/tests/escaped-newline.qbe deleted file mode 100644 index cd2b5bf..0000000 --- a/tests/escaped-newline.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $splitident = align 4 { w 3, } diff --git a/tests/float-const-leading-dot.c b/tests/float-const-leading-dot.c deleted file mode 100644 index bfed54a..0000000 --- a/tests/float-const-leading-dot.c +++ /dev/null @@ -1 +0,0 @@ -float x = .5; diff --git a/tests/float-const-leading-dot.qbe b/tests/float-const-leading-dot.qbe deleted file mode 100644 index 12ae325..0000000 --- a/tests/float-const-leading-dot.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { s s_0x1p-1, } diff --git a/tests/float-promote.c b/tests/float-promote.c deleted file mode 100644 index 572719a..0000000 --- a/tests/float-promote.c +++ /dev/null @@ -1,8 +0,0 @@ -void g1(); -void g2(int, ...); -void g3(float); -void f(void) { - g1(1.0f); - g2(0, 1.0f); - g3(1.0f); -} diff --git a/tests/float-promote.qbe b/tests/float-promote.qbe deleted file mode 100644 index 052b1fa..0000000 --- a/tests/float-promote.qbe +++ /dev/null @@ -1,11 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - %.1 =d exts s_0x1p+0 - call $g1(d %.1) - %.2 =d exts s_0x1p+0 - call $g2(w 0, d %.2, ...) - call $g3(s s_0x1p+0) - ret -} diff --git a/tests/float-to-uint32.c b/tests/float-to-uint32.c deleted file mode 100644 index a82c89d..0000000 --- a/tests/float-to-uint32.c +++ /dev/null @@ -1,4 +0,0 @@ -float g(void); -unsigned f(void) { - return g(); -} diff --git a/tests/float-to-uint32.qbe b/tests/float-to-uint32.qbe deleted file mode 100644 index a8463f3..0000000 --- a/tests/float-to-uint32.qbe +++ /dev/null @@ -1,9 +0,0 @@ -export -function w $f() { -@start.1 -@body.2 - %.1 =s call $g() - %.2 =l stosi %.1 - %.3 =w copy %.2 - ret %.3 -} diff --git a/tests/float-to-uint64.c b/tests/float-to-uint64.c deleted file mode 100644 index 10e7809..0000000 --- a/tests/float-to-uint64.c +++ /dev/null @@ -1,4 +0,0 @@ -float g(void); -unsigned long long f(void) { - return g(); -} diff --git a/tests/float-to-uint64.qbe b/tests/float-to-uint64.qbe deleted file mode 100644 index 3c3aa01..0000000 --- a/tests/float-to-uint64.qbe +++ /dev/null @@ -1,18 +0,0 @@ -export -function l $f() { -@start.1 -@body.2 - %.1 =s call $g() - %.2 =w cges %.1, s_0x1p+63 - jnz %.2, @ftou_big.4, @ftou_small.3 -@ftou_small.3 - %.3 =l stosi %.1 - jmp @ftou_join.5 -@ftou_big.4 - %.4 =s sub %.1, s_0x1p+63 - %.5 =l stosi %.4 - %.6 =l xor %.5, 9223372036854775808 -@ftou_join.5 - %.7 =l phi @ftou_small.3 %.3, @ftou_big.4 %.6 - ret %.7 -} diff --git a/tests/for-loop.c b/tests/for-loop.c deleted file mode 100644 index ea769c5..0000000 --- a/tests/for-loop.c +++ /dev/null @@ -1,6 +0,0 @@ -void g(int); -void f(void) { - int i; - for (i = 0; i < 10; ++i) - g(i); -} diff --git a/tests/for-loop.qbe b/tests/for-loop.qbe deleted file mode 100644 index 56b38b1..0000000 --- a/tests/for-loop.qbe +++ /dev/null @@ -1,21 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc4 4 -@body.2 - storew 0, %.1 -@for_cond.3 - %.2 =w loadsw %.1 - %.3 =w csltw %.2, 10 - jnz %.3, @for_body.4, @for_join.6 -@for_body.4 - %.4 =w loadsw %.1 - call $g(w %.4) -@for_cont.5 - %.5 =w loadsw %.1 - %.6 =w add %.5, 1 - storew %.6, %.1 - jmp @for_cond.3 -@for_join.6 - ret -} diff --git a/tests/global-align.c b/tests/global-align.c deleted file mode 100644 index 9d35d91..0000000 --- a/tests/global-align.c +++ /dev/null @@ -1 +0,0 @@ -_Alignas(8) char c; diff --git a/tests/global-align.qbe b/tests/global-align.qbe deleted file mode 100644 index 1b833ed..0000000 --- a/tests/global-align.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $c = align 8 { z 1 } diff --git a/tests/hello.c b/tests/hello.c deleted file mode 100644 index bad06bc..0000000 --- a/tests/hello.c +++ /dev/null @@ -1,5 +0,0 @@ -int puts(const char *); -int main(void) { - puts("hello"); - return 0; -} diff --git a/tests/hello.qbe b/tests/hello.qbe deleted file mode 100644 index 3e695ab..0000000 --- a/tests/hello.qbe +++ /dev/null @@ -1,9 +0,0 @@ -data $.Lstring.2 = align 1 { b "hello", z 1, } -export -function w $main() { -@start.1 -@body.2 - %.1 =l copy $.Lstring.2 - %.2 =w call $puts(l %.1) - ret 0 -} diff --git a/tests/initializer-long-string.c b/tests/initializer-long-string.c deleted file mode 100644 index 4de06d4..0000000 --- a/tests/initializer-long-string.c +++ /dev/null @@ -1 +0,0 @@ -char s[4] = "hello"; diff --git a/tests/initializer-long-string.qbe b/tests/initializer-long-string.qbe deleted file mode 100644 index 3aa2f6f..0000000 --- a/tests/initializer-long-string.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $s = align 1 { b "hell", } diff --git a/tests/initializer-nested-array-address.c b/tests/initializer-nested-array-address.c deleted file mode 100644 index fb8bbd5..0000000 --- a/tests/initializer-nested-array-address.c +++ /dev/null @@ -1,2 +0,0 @@ -int x[2][3]; -int *y = &x[1][2]; diff --git a/tests/initializer-nested-array-address.qbe b/tests/initializer-nested-array-address.qbe deleted file mode 100644 index 5379590..0000000 --- a/tests/initializer-nested-array-address.qbe +++ /dev/null @@ -1,2 +0,0 @@ -export data $y = align 8 { l $x + 20, } -export data $x = align 4 { z 24 } diff --git a/tests/initializer-replace-local.c b/tests/initializer-replace-local.c deleted file mode 100644 index 8b93ef2..0000000 --- a/tests/initializer-replace-local.c +++ /dev/null @@ -1,10 +0,0 @@ -void f(void) { - struct { - char s[6]; - } x = { - .s[0] = 'x', - .s[4] = 'y', - .s = "hello", - .s[1] = 'a', - }; -} diff --git a/tests/initializer-replace-local.qbe b/tests/initializer-replace-local.qbe deleted file mode 100644 index 72ad90a..0000000 --- a/tests/initializer-replace-local.qbe +++ /dev/null @@ -1,22 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc4 6 -@body.2 - %.2 =l add %.1, 0 - storeb 104, %.2 - %.3 =l add %.1, 1 - storeb 101, %.3 - %.4 =l add %.1, 2 - storeb 108, %.4 - %.5 =l add %.1, 3 - storeb 108, %.5 - %.6 =l add %.1, 4 - storeb 111, %.6 - %.7 =l add %.1, 1 - %.8 =w copy 97 - storeb %.8, %.7 - %.9 =l add %.1, 5 - storeb 0, %.9 - ret -} diff --git a/tests/initializer-replace-static.c b/tests/initializer-replace-static.c deleted file mode 100644 index c1fa376..0000000 --- a/tests/initializer-replace-static.c +++ /dev/null @@ -1,6 +0,0 @@ -struct { - char s[6]; -} x = { - .s = "hello", - .s[1] = 'a', -}; diff --git a/tests/initializer-replace-static.qbe b/tests/initializer-replace-static.qbe deleted file mode 100644 index 18b774e..0000000 --- a/tests/initializer-replace-static.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 1 { b "hallo", z 1, } diff --git a/tests/initializer-short-string.c b/tests/initializer-short-string.c deleted file mode 100644 index 32e2aec..0000000 --- a/tests/initializer-short-string.c +++ /dev/null @@ -1,3 +0,0 @@ -void f(void) { - char s[10] = "abc"; -} diff --git a/tests/initializer-short-string.qbe b/tests/initializer-short-string.qbe deleted file mode 100644 index 5b95ea1..0000000 --- a/tests/initializer-short-string.qbe +++ /dev/null @@ -1,27 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc4 10 -@body.2 - %.2 =l add %.1, 0 - storeb 97, %.2 - %.3 =l add %.1, 1 - storeb 98, %.3 - %.4 =l add %.1, 2 - storeb 99, %.4 - %.5 =l add %.1, 3 - storeb 0, %.5 - %.6 =l add %.1, 4 - storeb 0, %.6 - %.7 =l add %.1, 5 - storeb 0, %.7 - %.8 =l add %.1, 6 - storeb 0, %.8 - %.9 =l add %.1, 7 - storeb 0, %.9 - %.10 =l add %.1, 8 - storeb 0, %.10 - %.11 =l add %.1, 9 - storeb 0, %.11 - ret -} diff --git a/tests/initializer-string-array.c b/tests/initializer-string-array.c deleted file mode 100644 index 9ccc9d0..0000000 --- a/tests/initializer-string-array.c +++ /dev/null @@ -1,3 +0,0 @@ -void f(void) { - char x[][4] = {"abc", "xyz"}; -} diff --git a/tests/initializer-string-array.qbe b/tests/initializer-string-array.qbe deleted file mode 100644 index 87a03fd..0000000 --- a/tests/initializer-string-array.qbe +++ /dev/null @@ -1,23 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc4 8 -@body.2 - %.2 =l add %.1, 0 - storeb 97, %.2 - %.3 =l add %.1, 1 - storeb 98, %.3 - %.4 =l add %.1, 2 - storeb 99, %.4 - %.5 =l add %.1, 3 - storeb 0, %.5 - %.6 =l add %.1, 4 - storeb 120, %.6 - %.7 =l add %.1, 5 - storeb 121, %.7 - %.8 =l add %.1, 6 - storeb 122, %.8 - %.9 =l add %.1, 7 - storeb 0, %.9 - ret -} diff --git a/tests/initializer-string.c b/tests/initializer-string.c deleted file mode 100644 index c92f897..0000000 --- a/tests/initializer-string.c +++ /dev/null @@ -1,4 +0,0 @@ -char x[] = "hello"; -void f(void) { - char y[] = "hello"; -} diff --git a/tests/initializer-string.qbe b/tests/initializer-string.qbe deleted file mode 100644 index ba992da..0000000 --- a/tests/initializer-string.qbe +++ /dev/null @@ -1,20 +0,0 @@ -export data $x = align 1 { b "hello", z 1, } -export -function $f() { -@start.1 - %.1 =l alloc4 6 -@body.2 - %.2 =l add %.1, 0 - storeb 104, %.2 - %.3 =l add %.1, 1 - storeb 101, %.3 - %.4 =l add %.1, 2 - storeb 108, %.4 - %.5 =l add %.1, 3 - storeb 108, %.5 - %.6 =l add %.1, 4 - storeb 111, %.6 - %.7 =l add %.1, 5 - storeb 0, %.7 - ret -} diff --git a/tests/initializer-unsigned-string.c b/tests/initializer-unsigned-string.c deleted file mode 100644 index a932889..0000000 --- a/tests/initializer-unsigned-string.c +++ /dev/null @@ -1 +0,0 @@ -unsigned char s[] = "abc"; diff --git a/tests/initializer-unsigned-string.qbe b/tests/initializer-unsigned-string.qbe deleted file mode 100644 index 46be123..0000000 --- a/tests/initializer-unsigned-string.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $s = align 1 { b "abc", z 1, } diff --git a/tests/label-typedef.c b/tests/label-typedef.c deleted file mode 100644 index f3744e3..0000000 --- a/tests/label-typedef.c +++ /dev/null @@ -1,4 +0,0 @@ -typedef int x; -void f(void) { -x:; -} diff --git a/tests/label-typedef.qbe b/tests/label-typedef.qbe deleted file mode 100644 index b11f621..0000000 --- a/tests/label-typedef.qbe +++ /dev/null @@ -1,7 +0,0 @@ -export -function $f() { -@start.1 -@body.2 -@x.3 - ret -} diff --git a/tests/local-align.c b/tests/local-align.c deleted file mode 100644 index 8fc3736..0000000 --- a/tests/local-align.c +++ /dev/null @@ -1,3 +0,0 @@ -void f(void) { - _Alignas(16) char x[4]; -} diff --git a/tests/local-align.qbe b/tests/local-align.qbe deleted file mode 100644 index bc3b85c..0000000 --- a/tests/local-align.qbe +++ /dev/null @@ -1,7 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc16 4 -@body.2 - ret -} diff --git a/tests/local-init.c b/tests/local-init.c deleted file mode 100644 index 0e886d7..0000000 --- a/tests/local-init.c +++ /dev/null @@ -1,6 +0,0 @@ -void f(void) { - struct { - char c[8]; - long long i[3]; - } s = {'a'}; -} diff --git a/tests/local-init.qbe b/tests/local-init.qbe deleted file mode 100644 index 8d7346a..0000000 --- a/tests/local-init.qbe +++ /dev/null @@ -1,22 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc8 32 -@body.2 - %.2 =l add %.1, 0 - %.3 =w copy 97 - storeb %.3, %.2 - %.4 =l add %.1, 1 - storeb 0, %.4 - %.5 =l add %.1, 2 - storeh 0, %.5 - %.6 =l add %.1, 4 - storew 0, %.6 - %.7 =l add %.1, 8 - storel 0, %.7 - %.8 =l add %.1, 16 - storel 0, %.8 - %.9 =l add %.1, 24 - storel 0, %.9 - ret -} diff --git a/tests/lvalue-conversion.c b/tests/lvalue-conversion.c deleted file mode 100644 index 6bbc326..0000000 --- a/tests/lvalue-conversion.c +++ /dev/null @@ -1,6 +0,0 @@ -void g(); -void f(void) { - static const unsigned char c = 0; - g(c); - g(~c); -} diff --git a/tests/lvalue-conversion.qbe b/tests/lvalue-conversion.qbe deleted file mode 100644 index ac5fbc3..0000000 --- a/tests/lvalue-conversion.qbe +++ /dev/null @@ -1,14 +0,0 @@ -data $.Lc.2 = align 1 { b 0, } -export -function $f() { -@start.1 -@body.2 - %.1 =w loadub $.Lc.2 - %.2 =w extub %.1 - call $g(w %.2) - %.3 =w loadub $.Lc.2 - %.4 =w extub %.3 - %.5 =w xor %.4, 18446744073709551615 - call $g(w %.5) - ret -} diff --git a/tests/nested-array.c b/tests/nested-array.c deleted file mode 100644 index 0f0a121..0000000 --- a/tests/nested-array.c +++ /dev/null @@ -1 +0,0 @@ -int x[2][3]; diff --git a/tests/nested-array.qbe b/tests/nested-array.qbe deleted file mode 100644 index cfc6bed..0000000 --- a/tests/nested-array.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { z 24 } diff --git a/tests/sizeof-compound-literal.c b/tests/sizeof-compound-literal.c deleted file mode 100644 index b25d06a..0000000 --- a/tests/sizeof-compound-literal.c +++ /dev/null @@ -1 +0,0 @@ -int x = sizeof (int){1}; diff --git a/tests/sizeof-compound-literal.qbe b/tests/sizeof-compound-literal.qbe deleted file mode 100644 index 23be3d8..0000000 --- a/tests/sizeof-compound-literal.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { w 4, } diff --git a/tests/sizeof-postfix.c b/tests/sizeof-postfix.c deleted file mode 100644 index 9062517..0000000 --- a/tests/sizeof-postfix.c +++ /dev/null @@ -1,4 +0,0 @@ -int x; -int f(void) { - return sizeof (x)++; -} diff --git a/tests/sizeof-postfix.qbe b/tests/sizeof-postfix.qbe deleted file mode 100644 index d9eedd8..0000000 --- a/tests/sizeof-postfix.qbe +++ /dev/null @@ -1,8 +0,0 @@ -export -function w $f() { -@start.1 -@body.2 - %.1 =w copy 4 - ret %.1 -} -export data $x = align 4 { z 4 } diff --git a/tests/struct-copy.c b/tests/struct-copy.c deleted file mode 100644 index 33084aa..0000000 --- a/tests/struct-copy.c +++ /dev/null @@ -1,8 +0,0 @@ -struct s { - char s[5]; - float f; -} x; - -void f(void) { - struct s y = x; -} diff --git a/tests/struct-copy.qbe b/tests/struct-copy.qbe deleted file mode 100644 index 4778921..0000000 --- a/tests/struct-copy.qbe +++ /dev/null @@ -1,21 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc4 12 -@body.2 - %.2 =l add %.1, 0 - %.3 =l loaduw $x - storew %.3, %.2 - %.4 =l add $x, 4 - %.5 =l add %.2, 4 - %.6 =l loaduw %.4 - storew %.6, %.5 - %.7 =l add %.4, 4 - %.8 =l add %.5, 4 - %.9 =l loaduw %.7 - storew %.9, %.8 - %.10 =l add %.7, 4 - %.11 =l add %.8, 4 - ret -} -export data $x = align 4 { z 12 } diff --git a/tests/struct-passing.c b/tests/struct-passing.c deleted file mode 100644 index 54c65a2..0000000 --- a/tests/struct-passing.c +++ /dev/null @@ -1,11 +0,0 @@ -struct s { - int x; - struct { - char y[3]; - short z; - } s[2]; - double w; -}; - -void f(struct s s) { -} diff --git a/tests/struct-passing.qbe b/tests/struct-passing.qbe deleted file mode 100644 index 07bd483..0000000 --- a/tests/struct-passing.qbe +++ /dev/null @@ -1,8 +0,0 @@ -type :.2 = { b 3, h, } -type :s.1 = { w, :.2 2, d, } -export -function $f(:s.1 %.1) { -@start.1 -@body.2 - ret -} diff --git a/tests/struct-return-1.c b/tests/struct-return-1.c deleted file mode 100644 index e1631a8..0000000 --- a/tests/struct-return-1.c +++ /dev/null @@ -1,3 +0,0 @@ -struct s {int x;} f(void) { - return (struct s){2}; -} diff --git a/tests/struct-return-1.qbe b/tests/struct-return-1.qbe deleted file mode 100644 index fcdf699..0000000 --- a/tests/struct-return-1.qbe +++ /dev/null @@ -1,10 +0,0 @@ -type :s.1 = { w, } -export -function :s.1 $f() { -@start.1 - %.1 =l alloc4 4 -@body.2 - %.2 =l add %.1, 0 - storew 2, %.2 - ret %.1 -} diff --git a/tests/struct-return-2.c b/tests/struct-return-2.c deleted file mode 100644 index 726e667..0000000 --- a/tests/struct-return-2.c +++ /dev/null @@ -1,4 +0,0 @@ -struct {int x, y;} g(void); -int f(void) { - return g().y; -} diff --git a/tests/struct-return-2.qbe b/tests/struct-return-2.qbe deleted file mode 100644 index 415ec2f..0000000 --- a/tests/struct-return-2.qbe +++ /dev/null @@ -1,14 +0,0 @@ -type :.1 = { w, w, } -export -function w $f() { -@start.1 -@body.2 - %.1 =:.1 call $g() - %.2 =l copy %.1 - %.3 =l copy %.2 - %.4 =l mul 4, 1 - %.5 =l add %.3, %.4 - %.6 =l copy %.5 - %.7 =w loadsw %.6 - ret %.7 -} diff --git a/tests/subtract-pointer.c b/tests/subtract-pointer.c deleted file mode 100644 index 1de9dde..0000000 --- a/tests/subtract-pointer.c +++ /dev/null @@ -1,3 +0,0 @@ -void f(int *x, int *y) { - x - y; -} diff --git a/tests/subtract-pointer.qbe b/tests/subtract-pointer.qbe deleted file mode 100644 index 0e7e9a3..0000000 --- a/tests/subtract-pointer.qbe +++ /dev/null @@ -1,16 +0,0 @@ -export -function $f(l %.1, l %.3) { -@start.1 - %.2 =l alloc8 8 - storel %.1, %.2 - %.4 =l alloc8 8 - storel %.3, %.4 -@body.2 - %.5 =l loadl %.2 - %.6 =l copy %.5 - %.7 =l loadl %.4 - %.8 =l copy %.7 - %.9 =l sub %.6, %.8 - %.10 =l div %.9, 4 - ret -} diff --git a/tests/switch.c b/tests/switch.c deleted file mode 100644 index b1b7733..0000000 --- a/tests/switch.c +++ /dev/null @@ -1,10 +0,0 @@ -void f(void) { - switch (0) { - case 3: break; - case 52: break; - case -3: break; - default: break; - case 0: break; - case 101: break; - } -} diff --git a/tests/switch.qbe b/tests/switch.qbe deleted file mode 100644 index bb69c15..0000000 --- a/tests/switch.qbe +++ /dev/null @@ -1,62 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - jmp @switch_cond.3 -@switch_case.5 - jmp @switch_join.4 -@switch_case.6 - jmp @switch_join.4 -@switch_case.7 - jmp @switch_join.4 -@switch_default.8 - jmp @switch_join.4 -@switch_case.9 - jmp @switch_join.4 -@switch_case.10 - jmp @switch_join.4 -@switch_cond.3 - %.1 =w ceqw 0, 52 - jnz %.1, @switch_case.6, @switch_ne.11 -@switch_ne.11 - %.2 =w cultw 0, 52 - jnz %.2, @switch_lt.12, @switch_gt.13 -@switch_lt.12 - %.3 =w ceqw 0, 3 - jnz %.3, @switch_case.5, @switch_ne.14 -@switch_ne.14 - %.4 =w cultw 0, 3 - jnz %.4, @switch_lt.15, @switch_gt.16 -@switch_lt.15 - %.5 =w ceqw 0, 0 - jnz %.5, @switch_case.9, @switch_ne.17 -@switch_ne.17 - %.6 =w cultw 0, 0 - jnz %.6, @switch_lt.18, @switch_gt.19 -@switch_lt.18 - jmp @switch_default.8 -@switch_gt.19 - jmp @switch_default.8 -@switch_gt.16 - jmp @switch_default.8 -@switch_gt.13 - %.7 =w ceqw 0, 18446744073709551613 - jnz %.7, @switch_case.7, @switch_ne.20 -@switch_ne.20 - %.8 =w cultw 0, 18446744073709551613 - jnz %.8, @switch_lt.21, @switch_gt.22 -@switch_lt.21 - %.9 =w ceqw 0, 101 - jnz %.9, @switch_case.10, @switch_ne.23 -@switch_ne.23 - %.10 =w cultw 0, 101 - jnz %.10, @switch_lt.24, @switch_gt.25 -@switch_lt.24 - jmp @switch_default.8 -@switch_gt.25 - jmp @switch_default.8 -@switch_gt.22 - jmp @switch_default.8 -@switch_join.4 - ret -} diff --git a/tests/tentative.c b/tests/tentative.c deleted file mode 100644 index 1f484ae..0000000 --- a/tests/tentative.c +++ /dev/null @@ -1,2 +0,0 @@ -int x; -int x = 5; diff --git a/tests/tentative.qbe b/tests/tentative.qbe deleted file mode 100644 index bf252fd..0000000 --- a/tests/tentative.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { w 5, } diff --git a/tests/typedef-name.c b/tests/typedef-name.c deleted file mode 100644 index ab85460..0000000 --- a/tests/typedef-name.c +++ /dev/null @@ -1,4 +0,0 @@ -typedef int x; -void f(void) { - long x; -} diff --git a/tests/typedef-name.qbe b/tests/typedef-name.qbe deleted file mode 100644 index 5ce995e..0000000 --- a/tests/typedef-name.qbe +++ /dev/null @@ -1,7 +0,0 @@ -export -function $f() { -@start.1 - %.1 =l alloc8 8 -@body.2 - ret -} diff --git a/tests/typedef.c b/tests/typedef.c deleted file mode 100644 index 763d37d..0000000 --- a/tests/typedef.c +++ /dev/null @@ -1,2 +0,0 @@ -typedef int T; -T x; diff --git a/tests/typedef.qbe b/tests/typedef.qbe deleted file mode 100644 index 7cf0e40..0000000 --- a/tests/typedef.qbe +++ /dev/null @@ -1 +0,0 @@ -export data $x = align 4 { z 4 } diff --git a/tests/typeof.c b/tests/typeof.c deleted file mode 100644 index d6a218f..0000000 --- a/tests/typeof.c +++ /dev/null @@ -1,20 +0,0 @@ -int v; -typedef int* t; -int f() {v = 1; return 0;} -int main() { - __typeof__(f()) x = 123; - __typeof__(t) y = &x; - - if (x != 123) - return 1; - if (*y != 123) - return 2; - if (sizeof(y) != sizeof(int*)) - return 3; - if (sizeof(x) != sizeof(int)) - return 4; - if (v != 0) - return 5; - - return 0; -} diff --git a/tests/typeof.qbe b/tests/typeof.qbe deleted file mode 100644 index 5cd138f..0000000 --- a/tests/typeof.qbe +++ /dev/null @@ -1,54 +0,0 @@ -export -function w $f() { -@start.1 -@body.2 - storew 1, $v - ret 0 -} -export -function w $main() { -@start.3 - %.1 =l alloc4 4 - %.3 =l alloc8 8 -@body.4 - %.2 =l add %.1, 0 - storew 123, %.2 - %.4 =l add %.3, 0 - storel %.1, %.4 - %.5 =w loadsw %.1 - %.6 =w cnew %.5, 123 - %.7 =w cnew %.6, 0 - jnz %.7, @if_true.5, @if_false.6 -@if_true.5 - ret 1 -@if_false.6 - %.8 =l loadl %.3 - %.9 =w loadsw %.8 - %.10 =w cnew %.9, 123 - %.11 =w cnew %.10, 0 - jnz %.11, @if_true.7, @if_false.8 -@if_true.7 - ret 2 -@if_false.8 - %.12 =w cnel 8, 8 - %.13 =w cnew %.12, 0 - jnz %.13, @if_true.9, @if_false.10 -@if_true.9 - ret 3 -@if_false.10 - %.14 =w cnel 4, 4 - %.15 =w cnew %.14, 0 - jnz %.15, @if_true.11, @if_false.12 -@if_true.11 - ret 4 -@if_false.12 - %.16 =w loadsw $v - %.17 =w cnew %.16, 0 - %.18 =w cnew %.17, 0 - jnz %.18, @if_true.13, @if_false.14 -@if_true.13 - ret 5 -@if_false.14 - ret 0 -} -export data $v = align 4 { z 4 } diff --git a/tests/uint32-to-float.c b/tests/uint32-to-float.c deleted file mode 100644 index 0a045be..0000000 --- a/tests/uint32-to-float.c +++ /dev/null @@ -1,4 +0,0 @@ -unsigned g(void); -float f(void) { - return g(); -} diff --git a/tests/uint32-to-float.qbe b/tests/uint32-to-float.qbe deleted file mode 100644 index 0e90531..0000000 --- a/tests/uint32-to-float.qbe +++ /dev/null @@ -1,9 +0,0 @@ -export -function s $f() { -@start.1 -@body.2 - %.1 =w call $g() - %.2 =l extuw %.1 - %.3 =s sltof %.2 - ret %.3 -} diff --git a/tests/uint64-to-float.c b/tests/uint64-to-float.c deleted file mode 100644 index b4e7fc6..0000000 --- a/tests/uint64-to-float.c +++ /dev/null @@ -1,4 +0,0 @@ -unsigned long long g(void); -float f(void) { - return g(); -} diff --git a/tests/uint64-to-float.qbe b/tests/uint64-to-float.qbe deleted file mode 100644 index 6542c29..0000000 --- a/tests/uint64-to-float.qbe +++ /dev/null @@ -1,20 +0,0 @@ -export -function s $f() { -@start.1 -@body.2 - %.1 =l call $g() - %.2 =w csltl %.1, 0 - jnz %.2, @utof_big.4, @utof_small.3 -@utof_small.3 - %.3 =s sltof %.1 - jmp @utof_join.5 -@utof_big.4 - %.4 =l and %.1, 1 - %.5 =l shr %.1, 1 - %.6 =l or %.5, %.4 - %.7 =s sltof %.6 - %.8 =s add %.7, %.7 -@utof_join.5 - %.9 =s phi @utof_small.3 %.3, @utof_big.4 %.8 - ret %.9 -} diff --git a/tests/union-passing.c b/tests/union-passing.c deleted file mode 100644 index ddf35f2..0000000 --- a/tests/union-passing.c +++ /dev/null @@ -1,2 +0,0 @@ -void f(union {int x; float y;} u) { -} diff --git a/tests/union-passing.qbe b/tests/union-passing.qbe deleted file mode 100644 index 2edd8db..0000000 --- a/tests/union-passing.qbe +++ /dev/null @@ -1,7 +0,0 @@ -type :.1 = { { w } { s } } -export -function $f(:.1 %.1) { -@start.1 -@body.2 - ret -} diff --git a/tests/union.c b/tests/union.c deleted file mode 100644 index 9b4e5f9..0000000 --- a/tests/union.c +++ /dev/null @@ -1,4 +0,0 @@ -union { - int x; - double y; -} a = {.x = 5}, b = {.y = 7.5}; diff --git a/tests/union.qbe b/tests/union.qbe deleted file mode 100644 index adbda57..0000000 --- a/tests/union.qbe +++ /dev/null @@ -1,2 +0,0 @@ -export data $a = align 8 { w 5, z 4 } -export data $b = align 8 { d d_0x1.ep+2, } diff --git a/tests/unused-return.c b/tests/unused-return.c deleted file mode 100644 index 815fcb1..0000000 --- a/tests/unused-return.c +++ /dev/null @@ -1,4 +0,0 @@ -int g(void); -void f(void) { - g(); -} diff --git a/tests/unused-return.qbe b/tests/unused-return.qbe deleted file mode 100644 index d269c7f..0000000 --- a/tests/unused-return.qbe +++ /dev/null @@ -1,7 +0,0 @@ -export -function $f() { -@start.1 -@body.2 - %.1 =w call $g() - ret -} diff --git a/tests/varargs.c b/tests/varargs.c deleted file mode 100644 index 0b5a73d..0000000 --- a/tests/varargs.c +++ /dev/null @@ -1,12 +0,0 @@ -void f(int n, ...) { - __builtin_va_list ap; - - __builtin_va_start(ap, n); - while (n) { - __builtin_va_arg(ap, int); - __builtin_va_arg(ap, float); - __builtin_va_arg(ap, char *); - --n; - } - __builtin_va_end(ap); -} diff --git a/tests/varargs.qbe b/tests/varargs.qbe deleted file mode 100644 index 16db877..0000000 --- a/tests/varargs.qbe +++ /dev/null @@ -1,22 +0,0 @@ -export -function $f(w %.1, ...) { -@start.1 - %.2 =l alloc4 4 - storew %.1, %.2 - %.3 =l alloc8 24 -@body.2 - vastart %.3 -@while_cond.3 - %.4 =w loadsw %.2 - jnz %.4, @while_body.4, @while_join.5 -@while_body.4 - %.5 =w vaarg %.3 - %.6 =s vaarg %.3 - %.7 =l vaarg %.3 - %.8 =w loadsw %.2 - %.9 =w sub %.8, 1 - storew %.9, %.2 - jmp @while_cond.3 -@while_join.5 - ret -} |