updating tests

This commit is contained in:
Jakub Doka 2024-11-10 18:59:29 +01:00
parent 335e6ec20a
commit 654005eea2
No known key found for this signature in database
GPG key ID: C6E9A89936B8C143
7 changed files with 113 additions and 63 deletions

View file

@ -640,14 +640,13 @@ main := fn(): uint {
a.b = .(0) a.b = .(0)
innera := do_stuff(a.b.c) innera := do_stuff(a.b.c)
//val := optional() val := optional()
//if val == null { if val == null {
// return 20 return 20
//} }
//val.inner = 100 val.inner = 100
//inner := do_stuff(val.inner) inner := do_stuff(val.inner)
return innera return innera + inner
//+ inner
} }
``` ```

View file

@ -4360,7 +4360,7 @@ impl<'a> Codegen<'a> {
self.ci.nodes.basic_blocks(); self.ci.nodes.basic_blocks();
self.ci.nodes.graphviz(self.ty_display(ty::Id::VOID)); self.ci.nodes.graphviz(self.ty_display(ty::Id::VOID));
} else { } else {
self.ci.nodes.graphviz_in_browser(self.ty_display(ty::Id::VOID)); //self.ci.nodes.graphviz_in_browser(self.ty_display(ty::Id::VOID));
} }
self.errors.borrow().len() == prev_err_len self.errors.borrow().len() == prev_err_len

View file

@ -8,18 +8,18 @@ main:
ST r1, r254, 3a, 1h ST r1, r254, 3a, 1h
LI32 r9, 0w LI32 r9, 0w
ST r9, r254, 4a, 4h ST r9, r254, 4a, 4h
LI32 r12, 2w LD r4, r254, 4a, 4h
ST r12, r254, 8a, 4h LI32 r1, 2w
LD r3, r254, 8a, 4h ST r1, r254, 8a, 4h
ANDI r3, r3, 4294967295d LD r5, r254, 8a, 4h
ANDI r12, r12, 4294967295d ANDI r5, r5, 4294967295d
JEQ r3, r12, :0 ANDI r1, r1, 4294967295d
JEQ r5, r1, :0
LI64 r1, 0d LI64 r1, 0d
JMP :1 JMP :1
0: LD r10, r254, 4a, 4h 0: ANDI r4, r4, 4294967295d
ANDI r10, r10, 4294967295d
ANDI r9, r9, 4294967295d ANDI r9, r9, 4294967295d
JEQ r10, r9, :2 JEQ r4, r9, :2
LI64 r1, 64d LI64 r1, 64d
JMP :1 JMP :1
2: LI64 r1, 512d 2: LI64 r1, 512d

View file

@ -58,8 +58,8 @@ new:
ADDI64 r254, r254, 24d ADDI64 r254, r254, 24d
JALA r0, r31, 0a JALA r0, r31, 0a
push: push:
ADDI64 r254, r254, -192d ADDI64 r254, r254, -176d
ST r31, r254, 0a, 192h ST r31, r254, 0a, 176h
CP r32, r3 CP r32, r3
LI64 r33, 1d LI64 r33, 1d
LD r34, r2, 8a, 8h LD r34, r2, 8a, 8h
@ -76,20 +76,19 @@ push:
CP r3, r39 CP r3, r39
JAL r31, r0, :malloc JAL r31, r0, :malloc
CP r40, r1 CP r40, r1
CP r41, r36
ST r38, r41, 16a, 8h
LI64 r1, 0d LI64 r1, 0d
CP r41, r40 CP r42, r40
JNE r41, r1, :3 JNE r42, r1, :3
JMP :4 JMP :4
3: CP r40, r41 3: CP r40, r42
CP r42, r36 MULI64 r43, r34, 8d
ST r38, r42, 16a, 8h LD r44, r41, 0a, 8h
LD r36, r42, 8a, 8h
MULI64 r43, r36, 8d
LD r44, r42, 0a, 8h
ADD64 r45, r44, r43 ADD64 r45, r44, r43
CP r46, r40 CP r46, r40
9: LD r2, r42, 0a, 8h 9: LD r2, r41, 0a, 8h
LD r47, r42, 8a, 8h LD r47, r41, 8a, 8h
JNE r45, r44, :5 JNE r45, r44, :5
JEQ r47, r37, :6 JEQ r47, r37, :6
CP r4, r39 CP r4, r39
@ -98,30 +97,29 @@ push:
CP r1, r40 CP r1, r40
JMP :7 JMP :7
6: CP r1, r40 6: CP r1, r40
7: ST r1, r42, 0a, 8h 7: ST r1, r41, 0a, 8h
JMP :8 JMP :8
5: CP r1, r40 5: CP r1, r40
CP r4, r39 CP r4, r39
ADDI64 r41, r46, 8d ADDI64 r48, r46, 8d
ADDI64 r48, r44, 8d ADDI64 r42, r44, 8d
LD r49, r44, 0a, 8h LD r49, r44, 0a, 8h
ST r49, r46, 0a, 8h ST r49, r46, 0a, 8h
CP r44, r48 CP r44, r42
CP r46, r41 CP r46, r48
JMP :9 JMP :9
0: CP r42, r36 0: CP r41, r36
8: LD r50, r42, 8a, 8h 8: LD r50, r41, 8a, 8h
MULI64 r51, r50, 8d MULI64 r51, r50, 8d
LD r52, r42, 0a, 8h LD r52, r41, 0a, 8h
ADD64 r1, r52, r51 ADD64 r1, r52, r51
CP r3, r32 CP r3, r32
ST r3, r1, 0a, 8h ST r3, r1, 0a, 8h
LD r53, r42, 8a, 8h ADD64 r39, r50, r33
ADD64 r54, r53, r33 ST r39, r41, 8a, 8h
ST r54, r42, 8a, 8h 4: LD r31, r254, 0a, 176h
4: LD r31, r254, 0a, 192h ADDI64 r254, r254, 176d
ADDI64 r254, r254, 192d
JALA r0, r31, 0a JALA r0, r31, 0a
code size: 955 code size: 929
ret: 69 ret: 69
status: Ok(()) status: Ok(())

View file

@ -21,19 +21,8 @@ scalar_values:
LI64 r1, 0d LI64 r1, 0d
JALA r0, r31, 0a JALA r0, r31, 0a
structs: structs:
ADDI64 r254, r254, -32d LI64 r1, 0d
LI64 r1, 5d
ST r1, r254, 16a, 8h
ST r1, r254, 24a, 8h
LD r5, r254, 16a, 8h
ADDI64 r7, r5, 15d
ST r7, r254, 0a, 8h
LI64 r10, 20d
ST r10, r254, 8a, 8h
LD r1, r254, 0a, 8h
SUB64 r1, r1, r10
ADDI64 r254, r254, 32d
JALA r0, r31, 0a JALA r0, r31, 0a
code size: 307 code size: 182
ret: 0 ret: 0
status: Ok(()) status: Ok(())

View file

@ -1,6 +1,6 @@
main: main:
ADDI64 r254, r254, -104d ADDI64 r254, r254, -112d
ST r31, r254, 40a, 64h ST r31, r254, 40a, 72h
LI64 r32, 4d LI64 r32, 4d
ADDI64 r33, r254, 24d ADDI64 r33, r254, 24d
ADDI64 r34, r254, 0d ADDI64 r34, r254, 0d
@ -14,10 +14,10 @@ main:
LD r36, r254, 8a, 8h LD r36, r254, 8a, 8h
LD r37, r254, 16a, 8h LD r37, r254, 16a, 8h
ADD64 r38, r37, r36 ADD64 r38, r37, r36
LD r37, r254, 0a, 8h LD r39, r254, 0a, 8h
SUB64 r1, r37, r38 SUB64 r1, r39, r38
LD r31, r254, 40a, 64h LD r31, r254, 40a, 72h
ADDI64 r254, r254, 104d ADDI64 r254, r254, 112d
JALA r0, r31, 0a JALA r0, r31, 0a
opaque: opaque:
ADDI64 r254, r254, -16d ADDI64 r254, r254, -16d

View file

@ -0,0 +1,64 @@
do_stuff:
CP r1, r2
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -104d
ST r31, r254, 32a, 72h
ADDI64 r32, r254, 16d
JAL r31, r0, :optionala
ST r1, r254, 16a, 16h
LI8 r33, 0b
LD r34, r254, 16a, 1h
ANDI r34, r34, 255d
ANDI r33, r33, 255d
JNE r34, r33, :0
LI64 r1, 10d
JMP :1
0: LI64 r35, 0d
ST r35, r254, 24a, 8h
LD r2, r254, 24a, 8h
JAL r31, r0, :do_stuff
CP r36, r1
ADDI64 r37, r254, 0d
JAL r31, r0, :optional
ST r1, r254, 0a, 16h
LD r38, r254, 0a, 1h
ANDI r38, r38, 255d
ANDI r33, r33, 255d
JNE r38, r33, :2
LI64 r1, 20d
JMP :1
2: LI64 r39, 100d
ST r39, r254, 8a, 8h
LD r2, r254, 8a, 8h
JAL r31, r0, :do_stuff
ADD64 r1, r1, r36
1: LD r31, r254, 32a, 72h
ADDI64 r254, r254, 104d
JALA r0, r31, 0a
optional:
ADDI64 r254, r254, -16d
LI8 r4, 1b
ADDI64 r3, r254, 0d
ST r4, r254, 0a, 1h
LI64 r4, 10d
ST r4, r254, 8a, 8h
LD r1, r3, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
optionala:
ADDI64 r254, r254, -24d
ADDI64 r1, r254, 0d
LI64 r3, 1d
LI8 r7, 1b
ADDI64 r6, r254, 8d
ST r3, r254, 0a, 8h
ST r7, r254, 8a, 1h
ADDI64 r11, r6, 8d
BMC r1, r11, 8h
LD r1, r6, 0a, 16h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
code size: 568
ret: 100
status: Ok(())