extract tests out of src
This commit is contained in:
parent
aad52241c8
commit
36635660b4
35 changed files with 10 additions and 3 deletions
43
test/abi3.ssa
Normal file
43
test/abi3.ssa
Normal file
|
@ -0,0 +1,43 @@
|
|||
type :four = {l, b, w}
|
||||
|
||||
data $z = { w 0 }
|
||||
|
||||
function $test() {
|
||||
@start
|
||||
%a =w loadw $z
|
||||
%y =w add %a, %a
|
||||
|
||||
%s =l alloc8 16 # allocate a :four struct
|
||||
%s1 =l add %s, 12 # get address of the w
|
||||
storel 4, %s # set the l
|
||||
storew 5, %s1 # set the w
|
||||
|
||||
# only the last argument should be on the stack
|
||||
%f =l add $F, %y
|
||||
%x =w call %f(w %y, w 1, w 2, w 3, :four %s, w 6)
|
||||
|
||||
# store the result in the
|
||||
# global variable a
|
||||
|
||||
%x1 =w add %y, %x
|
||||
storew %x1, $a
|
||||
ret
|
||||
}
|
||||
|
||||
# >>> driver
|
||||
# #include <stdio.h>
|
||||
# struct four { long l; char c; int i; };
|
||||
# extern void test(void);
|
||||
# int F(int a0, int a1, int a2, int a3, struct four s, int a6) {
|
||||
# printf("%d %d %d %d %d %d %d\n",
|
||||
# a0, a1, a2, a3, (int)s.l, s.i, a6);
|
||||
# return 42;
|
||||
# }
|
||||
# int a;
|
||||
# int main() { test(); printf("%d\n", a); return 0; }
|
||||
# <<<
|
||||
|
||||
# >>> output
|
||||
# 0 1 2 3 4 5 6
|
||||
# 42
|
||||
# <<<
|
Loading…
Add table
Add a link
Reference in a new issue