updating tests
This commit is contained in:
parent
335e6ec20a
commit
654005eea2
|
@ -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
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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(())
|
||||||
|
|
|
@ -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(())
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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(())
|
Loading…
Reference in a new issue