forked from koniifer/ableos
updating tests and fixing bug
This commit is contained in:
parent
3763805c3a
commit
ce4b937bda
|
@ -733,7 +733,7 @@ some_func := fn($Elem: type): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
main := fn(): void {
|
main := fn(): void {
|
||||||
some_func(0)
|
some_func(u8)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
@ -1740,12 +1740,12 @@ impl Codegen {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ty::Kind::Slice(arr) => {
|
ty::Kind::Slice(arr) => {
|
||||||
let arr = &self.tys.arrays[arr as usize];
|
let arr = self.tys.arrays[arr as usize];
|
||||||
let item_size = self.tys.size_of(arr.ty);
|
let item_size = self.tys.size_of(arr.ty);
|
||||||
for (i, value) in fields.iter().enumerate() {
|
for (i, value) in fields.iter().enumerate() {
|
||||||
let loc = loc.as_ref().offset(i as u32 * item_size);
|
let loc = loc.as_ref().offset(i as u32 * item_size);
|
||||||
let value =
|
let value =
|
||||||
self.expr_ctx(value, Ctx::default().with_loc(loc).with_ty(ty))?;
|
self.expr_ctx(value, Ctx::default().with_loc(loc).with_ty(arr.ty))?;
|
||||||
self.ci.free_loc(value.loc);
|
self.ci.free_loc(value.loc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@ main:
|
||||||
ADDI64 r254, r254, -72d
|
ADDI64 r254, r254, -72d
|
||||||
ST r31, r254, 48a, 24h
|
ST r31, r254, 48a, 24h
|
||||||
LI64 r32, 1d
|
LI64 r32, 1d
|
||||||
ST r32, r254, 0a, 24h
|
ST r32, r254, 0a, 8h
|
||||||
LI64 r32, 2d
|
LI64 r32, 2d
|
||||||
ST r32, r254, 8a, 24h
|
ST r32, r254, 8a, 8h
|
||||||
LI64 r32, 4d
|
LI64 r32, 4d
|
||||||
ST r32, r254, 16a, 24h
|
ST r32, r254, 16a, 8h
|
||||||
ADDI64 r32, r254, 0d
|
ADDI64 r32, r254, 0d
|
||||||
ADDI64 r33, r254, 24d
|
ADDI64 r33, r254, 24d
|
||||||
BMC r32, r33, 24h
|
BMC r32, r33, 24h
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
main:
|
main:
|
||||||
ADDI64 r254, r254, -24d
|
ADDI64 r254, r254, -24d
|
||||||
ST r31, r254, 0a, 24h
|
ST r31, r254, 0a, 24h
|
||||||
LRA r32, r0, :string
|
LRA r32, r0, :abඞ
|
||||||
|
56789
|
||||||
CP r2, r32
|
CP r2, r32
|
||||||
JAL r31, r0, :str_len
|
JAL r31, r0, :str_len
|
||||||
CP r32, r1
|
CP r32, r1
|
||||||
LRA r33, r0, :string
|
LRA r33, r0, :fff
|
||||||
CP r2, r33
|
CP r2, r33
|
||||||
JAL r31, r0, :str_len
|
JAL r31, r0, :str_len
|
||||||
CP r33, r1
|
CP r33, r1
|
||||||
|
|
16
hblang/tests/codegen_tests_some_generic_code.txt
Normal file
16
hblang/tests/codegen_tests_some_generic_code.txt
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
main:
|
||||||
|
ADDI64 r254, r254, -8d
|
||||||
|
ST r31, r254, 0a, 8h
|
||||||
|
JAL r31, r0, :some_func
|
||||||
|
LD r31, r254, 0a, 8h
|
||||||
|
ADDI64 r254, r254, 8d
|
||||||
|
JALA r0, r31, 0a
|
||||||
|
some_func:
|
||||||
|
ADDI64 r254, r254, -8d
|
||||||
|
ST r31, r254, 0a, 8h
|
||||||
|
LD r31, r254, 0a, 8h
|
||||||
|
ADDI64 r254, r254, 8d
|
||||||
|
JALA r0, r31, 0a
|
||||||
|
code size: 133
|
||||||
|
ret: 0
|
||||||
|
status: Ok(())
|
Loading…
Reference in a new issue