making use of zero register

This commit is contained in:
Jakub Doka 2024-11-13 10:28:16 +01:00
parent 3c86eafe72
commit f524013c34
No known key found for this signature in database
GPG key ID: C6E9A89936B8C143
66 changed files with 802 additions and 831 deletions

View file

@ -1765,6 +1765,11 @@ impl Nodes {
(*target, self[*target].outputs.as_slice())
}
}
fn is_hard_zero(&self, nid: Nid) -> bool {
self[nid].kind == Kind::CInt { value: 0 }
&& self[nid].outputs.iter().all(|&n| self[n].kind != Kind::Phi)
}
}
enum CondOptRes {
@ -2943,7 +2948,6 @@ impl<'a> Codegen<'a> {
self.strip_var(&mut rhs);
self.implicit_unwrap(right.pos(), &mut rhs);
let (ty, aclass) = self.binop_ty(pos, &mut lhs, &mut rhs, op);
let fty = ty.bin_ret(op);
if matches!(
op,
TokenKind::Lt
@ -2967,9 +2971,12 @@ impl<'a> Codegen<'a> {
}
}
}
let inps = [VOID, lhs.id, rhs.id];
let bop =
self.ci.nodes.new_node_lit(fty, Kind::BinOp { op }, inps, self.tys);
let bop = self.ci.nodes.new_node_lit(
ty.bin_ret(op),
Kind::BinOp { op },
[VOID, lhs.id, rhs.id],
self.tys,
);
self.ci.nodes.pass_aclass(aclass, bop.id);
Some(bop)
}

View file

@ -398,7 +398,8 @@ impl Nodes {
fn is_never_used(&self, nid: Nid, tys: &Types) -> bool {
let node = &self[nid];
match node.kind {
Kind::CInt { .. } => node.outputs.iter().all(|&o| {
Kind::CInt { value: 0 } => false,
Kind::CInt { value: 1.. } => node.outputs.iter().all(|&o| {
matches!(self[o].kind, Kind::BinOp { op }
if op.imm_binop(self[o].ty).is_some()
&& self.is_const(self[o].inputs[2])

View file

@ -223,6 +223,7 @@ impl HbvmBackend {
Kind::Die => {
self.emit(instrs::un());
}
Kind::CInt { value: 0 } => self.emit(instrs::cp(atr(allocs[0]), reg::ZERO)),
Kind::CInt { value } if node.ty.is_float() => {
self.emit(match node.ty {
ty::Id::F32 => instrs::li32(
@ -563,7 +564,11 @@ impl<'a> Function<'a> {
}
);
debug_assert!(self.nodes[nid].kind != Kind::Phi || self.nodes[nid].ty != ty::Id::VOID);
regalloc2::VReg::new(nid as _, regalloc2::RegClass::Int)
if self.nodes.is_hard_zero(nid) {
regalloc2::VReg::new(NEVER as _, regalloc2::RegClass::Int)
} else {
regalloc2::VReg::new(nid as _, regalloc2::RegClass::Int)
}
}
fn emit_node(&mut self, nid: Nid, prev: Nid) {
@ -680,6 +685,7 @@ impl<'a> Function<'a> {
self.add_instr(nid, vec![]);
self.emit_node(node.outputs[0], nid);
}
Kind::CInt { value: 0 } if self.nodes.is_hard_zero(nid) => {}
Kind::CInt { .. } => {
let ops = vec![self.drg(nid)];
self.add_instr(nid, ops);
@ -687,6 +693,11 @@ impl<'a> Function<'a> {
Kind::Entry => {
self.backrefs[nid as usize] = self.add_block(nid);
self.add_instr(NEVER, vec![regalloc2::Operand::reg_fixed_def(
regalloc2::VReg::new(NEVER as _, regalloc2::RegClass::Int),
regalloc2::PReg::new(0, regalloc2::RegClass::Int),
)]);
let (ret, mut parama) = self.tys.parama(self.sig.ret);
let mut typs = self.sig.args.args();
#[expect(clippy::unnecessary_to_owned)]

View file

@ -10,34 +10,34 @@ main:
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
sin:
LI32 r4, 1124073472w
LI32 r5, 1078530011w
FMUL32 r7, r2, r4
FDIV32 r9, r7, r5
FTI32 r11, r9, 1b
ANDI r10, r11, 255d
ITF64 r5, r11
MULI64 r4, r10, 4d
LRA r3, r0, :SIN_TABLE
LI32 r7, 1086918619w
FC64T32 r9, r5, 1b
ADDI64 r5, r11, 64d
ADD64 r8, r3, r4
LI32 r1, 1132462080w
FMUL32 r6, r9, r7
ANDI r7, r5, 255d
LI32 r5, 1056964608w
LD r4, r8, 0a, 4h
FDIV32 r8, r6, r1
MULI64 r6, r7, 4d
FMUL32 r10, r4, r5
FSUB32 r11, r2, r8
ADD64 r9, r3, r6
FMUL32 r2, r11, r10
LD r12, r9, 0a, 4h
FSUB32 r5, r12, r2
FMUL32 r7, r5, r11
FADD32 r1, r4, r7
LI32 r6, 1124073472w
LI32 r7, 1078530011w
FMUL32 r9, r2, r6
FDIV32 r11, r9, r7
FTI32 r1, r11, 1b
ANDI r12, r1, 255d
ITF64 r6, r1
MULI64 r5, r12, 4d
LRA r4, r0, :SIN_TABLE
LI32 r9, 1086918619w
FC64T32 r11, r6, 1b
ADDI64 r6, r1, 64d
ADD64 r10, r4, r5
LI32 r3, 1132462080w
FMUL32 r8, r11, r9
ANDI r9, r6, 255d
LI32 r7, 1056964608w
LD r5, r10, 0a, 4h
FDIV32 r10, r8, r3
MULI64 r8, r9, 4d
FMUL32 r12, r5, r7
FSUB32 r1, r2, r10
ADD64 r11, r4, r8
FMUL32 r4, r1, r12
LD r2, r11, 0a, 4h
FSUB32 r7, r2, r4
FMUL32 r9, r7, r1
FADD32 r1, r5, r9
JALA r0, r31, 0a
code size: 1303
ret: 826

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -14,13 +14,13 @@ main:
ADDI64 r254, r254, 56d
JALA r0, r31, 0a
pass:
LD r4, r2, 8a, 8h
MULI64 r7, r4, 8d
LD r5, r2, 0a, 8h
ADD64 r10, r7, r2
ADD64 r9, r4, r5
LD r1, r10, 0a, 8h
ADD64 r1, r1, r9
LD r6, r2, 8a, 8h
MULI64 r9, r6, 8d
LD r7, r2, 0a, 8h
ADD64 r12, r9, r2
ADD64 r11, r6, r7
LD r3, r12, 0a, 8h
ADD64 r1, r3, r11
JALA r0, r31, 0a
code size: 231
ret: 8

View file

@ -1,6 +1,6 @@
main:
LRA r1, r0, :SIN_TABLE
LD r1, r1, 80a, 8h
LRA r3, r0, :SIN_TABLE
LD r1, r3, 80a, 8h
JALA r0, r31, 0a
code size: 767
ret: 1736

View file

@ -2,12 +2,11 @@ main:
LI64 r1, 1d
JNE r2, r1, :0
JMP :1
0: LI64 r7, 0d
JNE r2, r7, :2
0: JNE r2, r0, :2
LI64 r1, 2d
JMP :1
2: LI64 r1, 3d
1: JALA r0, r31, 0a
code size: 79
code size: 69
ret: 2
status: Ok(())

View file

@ -11,16 +11,16 @@ main:
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
str_len:
LI64 r3, 0d
CP r1, r3
2: LD r7, r2, 0a, 1h
ANDI r9, r7, 255d
JNE r9, r3, :0
CP r5, r0
CP r1, r5
2: LD r9, r2, 0a, 1h
ANDI r11, r9, 255d
JNE r11, r5, :0
JMP :1
0: ADDI64 r2, r2, 1d
ADDI64 r1, r1, 1d
JMP :2
1: JALA r0, r31, 0a
code size: 205
code size: 198
ret: 16
status: Ok(())

View file

@ -4,10 +4,10 @@ main:
ADDI64 r254, r254, -8d
ST r31, r254, 0a, 8h
JAL r31, r0, :foo
LI64 r1, 0d
CP r1, r0
LD r31, r254, 0a, 8h
ADDI64 r254, r254, 8d
JALA r0, r31, 0a
code size: 95
code size: 88
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
LRA r1, r0, :a
LD r1, r1, 0a, 8h
LRA r3, r0, :a
LD r1, r3, 0a, 8h
JALA r0, r31, 0a
code size: 47
ret: 50

View file

@ -1,6 +1,6 @@
main:
LRA r1, r0, :a
LD r1, r1, 0a, 8h
LRA r3, r0, :a
LD r1, r3, 0a, 8h
JALA r0, r31, 0a
code size: 47
ret: 50

View file

@ -1,11 +1,11 @@
cond:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -24d
ST r31, r254, 0a, 24h
JAL r31, r0, :cond
LI64 r32, 0d
CP r32, r0
CP r33, r32
JNE r1, r33, :0
CP r32, r33
@ -15,6 +15,6 @@ main:
1: LD r31, r254, 0a, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
code size: 134
code size: 120
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -1,29 +1,28 @@
main:
ADDI64 r254, r254, -12d
LI64 r1, 0d
LI8 r2, 255b
ST r2, r254, 0a, 1h
LI8 r5, 0b
ST r5, r254, 1a, 1h
ST r5, r254, 2a, 1h
ST r2, r254, 3a, 1h
LI32 r10, 0w
ST r10, r254, 4a, 4h
LD r8, r254, 4a, 4h
LI32 r2, 2w
ST r2, r254, 8a, 4h
LD r5, r254, 8a, 4h
LI64 r9, 2d
ANDI r10, r5, 4294967295d
JEQ r10, r9, :0
LI8 r3, 255b
ST r3, r254, 0a, 1h
ST r0, r254, 1a, 1h
ST r0, r254, 2a, 1h
ST r3, r254, 3a, 1h
ST r0, r254, 4a, 4h
LD r4, r254, 4a, 4h
LI32 r11, 2w
ST r11, r254, 8a, 4h
LD r2, r254, 8a, 4h
LI64 r5, 2d
ANDI r6, r2, 4294967295d
JEQ r6, r5, :0
CP r1, r0
JMP :1
0: ANDI r2, r8, 4294967295d
JEQ r2, r1, :2
0: CP r1, r0
ANDI r10, r4, 4294967295d
JEQ r10, r1, :2
LI64 r1, 64d
JMP :1
2: LI64 r1, 512d
1: ADDI64 r254, r254, 12d
JALA r0, r31, 0a
code size: 245
code size: 232
ret: 512
status: Ok(())

View file

@ -1,20 +1,20 @@
main:
ADDI64 r254, r254, -16d
LI64 r1, 10d
LI64 r3, 10d
ADDI64 r4, r254, 0d
ST r1, r254, 0a, 8h
LI64 r7, 20d
ST r7, r254, 8a, 8h
ST r3, r254, 0a, 8h
LI64 r9, 20d
ST r9, r254, 8a, 8h
LI64 r6, 6d
LI64 r5, 5d
LI64 r2, 1d
CP r3, r4
LD r3, r3, 0a, 16h
ECA
LI64 r1, 0d
CP r1, r0
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
ev: Ecall
code size: 155
code size: 148
ret: 0
status: Ok(())

View file

@ -1,16 +1,16 @@
continue_and_state_change:
LI64 r7, 3d
LI64 r8, 4d
LI64 r9, 2d
LI64 r10, 10d
6: JLTU r2, r10, :0
LI64 r9, 3d
LI64 r10, 4d
LI64 r11, 2d
LI64 r12, 10d
6: JLTU r2, r12, :0
CP r1, r2
JMP :1
0: JNE r2, r9, :2
CP r2, r8
0: JNE r2, r11, :2
CP r2, r10
JMP :3
2: JNE r2, r7, :4
LI64 r1, 0d
2: JNE r2, r9, :4
CP r1, r0
1: JMP :5
4: ADDI64 r2, r2, 1d
3: JMP :6
@ -19,7 +19,7 @@ infinite_loop:
ADDI64 r254, r254, -24d
ST r31, r254, 0a, 24h
LI64 r32, 1d
LI64 r33, 0d
CP r33, r0
CP r1, r33
1: JNE r1, r32, :0
JMP :0
@ -30,76 +30,74 @@ infinite_loop:
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -64d
ST r31, r254, 0a, 64h
LI64 r32, 0d
CP r2, r32
ADDI64 r254, r254, -48d
ST r31, r254, 0a, 48h
CP r2, r0
JAL r31, r0, :multiple_breaks
CP r33, r1
CP r32, r1
LI64 r1, 3d
JEQ r33, r1, :0
JEQ r32, r1, :0
LI64 r1, 1d
JMP :1
0: CP r34, r1
LI64 r35, 4d
CP r2, r35
0: CP r33, r1
LI64 r34, 4d
CP r2, r34
JAL r31, r0, :multiple_breaks
CP r36, r35
LI64 r37, 10d
JEQ r1, r37, :2
CP r35, r34
LI64 r36, 10d
JEQ r1, r36, :2
LI64 r1, 2d
JMP :1
2: CP r2, r32
2: CP r2, r0
JAL r31, r0, :state_change_in_break
JEQ r1, r32, :3
CP r1, r34
JEQ r1, r0, :3
CP r1, r33
JMP :1
3: CP r2, r36
3: CP r2, r35
JAL r31, r0, :state_change_in_break
JEQ r1, r37, :4
CP r1, r36
JEQ r1, r36, :4
CP r1, r35
JMP :1
4: CP r2, r37
4: CP r2, r36
JAL r31, r0, :continue_and_state_change
JEQ r1, r37, :5
JEQ r1, r36, :5
LI64 r1, 5d
JMP :1
5: CP r2, r34
5: CP r2, r33
JAL r31, r0, :continue_and_state_change
JEQ r1, r32, :6
JEQ r1, r0, :6
LI64 r1, 6d
JMP :1
6: CP r38, r32
JAL r31, r0, :infinite_loop
CP r1, r38
1: LD r31, r254, 0a, 64h
ADDI64 r254, r254, 64d
6: JAL r31, r0, :infinite_loop
CP r1, r0
1: LD r31, r254, 0a, 48h
ADDI64 r254, r254, 48d
JALA r0, r31, 0a
multiple_breaks:
LI64 r6, 3d
LI64 r5, 10d
4: JLTU r2, r5, :0
LI64 r8, 3d
LI64 r7, 10d
4: JLTU r2, r7, :0
CP r1, r2
JMP :1
0: ADDI64 r1, r2, 1d
JNE r1, r6, :2
JNE r1, r8, :2
1: JMP :3
2: CP r2, r1
JMP :4
3: JALA r0, r31, 0a
state_change_in_break:
LI64 r5, 3d
LI64 r6, 10d
4: JLTU r2, r6, :0
LI64 r7, 3d
LI64 r8, 10d
4: JLTU r2, r8, :0
CP r1, r2
JMP :1
0: JNE r2, r5, :2
LI64 r1, 0d
0: JNE r2, r7, :2
CP r1, r0
1: JMP :3
2: ADDI64 r2, r2, 1d
JMP :4
3: JALA r0, r31, 0a
timed out
code size: 668
code size: 634
ret: 10
status: Ok(())

View file

@ -9,7 +9,7 @@ main:
ADDI64 r254, r254, -64d
ST r31, r254, 0a, 64h
JAL r31, r0, :check_platform
LI64 r32, 0d
CP r32, r0
LI64 r33, 30d
LI64 r34, 100d
CP r35, r32
@ -42,12 +42,12 @@ main:
ADDI64 r254, r254, 64d
JALA r0, r31, 0a
set_pixel:
MUL64 r7, r3, r4
ADD64 r1, r7, r2
MUL64 r9, r3, r4
ADD64 r1, r9, r2
JALA r0, r31, 0a
x86_fb_ptr:
LI64 r1, 100d
JALA r0, r31, 0a
code size: 330
code size: 323
ret: 3000
status: Ok(())

View file

@ -8,28 +8,26 @@ main:
opaque:
JALA r0, r31, 0a
process:
ADDI64 r254, r254, -64d
ST r31, r254, 16a, 48h
LI64 r32, 0d
LI64 r33, 1000d
ADDI64 r34, r254, 0d
LI8 r35, 0b
ST r35, r254, 0a, 1h
4: JGTU r33, r32, :0
ADDI64 r254, r254, -48d
ST r31, r254, 16a, 32h
LI64 r32, 1000d
ADDI64 r33, r254, 0d
ST r0, r254, 0a, 1h
4: JGTU r32, r0, :0
JMP :1
0: CP r2, r34
0: CP r2, r33
JAL r31, r0, :opaque
LD r36, r254, 0a, 1h
ANDI r36, r36, 255d
ANDI r35, r35, 255d
JEQ r36, r35, :2
LD r34, r254, 0a, 1h
ANDI r34, r34, 255d
ANDI r0, r0, 255d
JEQ r34, r0, :2
JMP :3
2: ADDI64 r33, r33, -1d
2: ADDI64 r32, r32, -1d
1: JMP :4
3: LD r31, r254, 16a, 48h
ADDI64 r254, r254, 64d
3: LD r31, r254, 16a, 32h
ADDI64 r254, r254, 48d
JALA r0, r31, 0a
timed out
code size: 272
code size: 259
ret: 0
status: Ok(())

View file

@ -14,12 +14,12 @@ deinit:
ADDI64 r254, r254, 32d
JALA r0, r31, 0a
free:
CP r10, r2
LRA r7, r0, :FREE_SYS_CALL
LD r2, r7, 0a, 8h
CP r11, r2
LRA r9, r0, :FREE_SYS_CALL
LD r2, r9, 0a, 8h
CP r5, r4
CP r4, r3
CP r3, r10
CP r3, r11
ECA
JALA r0, r31, 0a
main:
@ -40,86 +40,83 @@ main:
ADDI64 r254, r254, 56d
JALA r0, r31, 0a
malloc:
CP r9, r2
LRA r5, r0, :MALLOC_SYS_CALL
LD r2, r5, 0a, 8h
CP r10, r2
LRA r7, r0, :MALLOC_SYS_CALL
LD r2, r7, 0a, 8h
CP r4, r3
CP r3, r9
CP r3, r10
ECA
JALA r0, r31, 0a
new:
ADDI64 r254, r254, -24d
LI64 r4, 0d
ADDI64 r5, r254, 0d
ST r4, r254, 0a, 8h
ST r4, r254, 8a, 8h
ST r4, r254, 16a, 8h
ST r0, r254, 0a, 8h
ST r0, r254, 8a, 8h
ST r0, r254, 16a, 8h
BMC r5, r1, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
push:
ADDI64 r254, r254, -176d
ST r31, r254, 0a, 176h
ADDI64 r254, r254, -168d
ST r31, r254, 0a, 168h
CP r32, r3
LI64 r33, 1d
LD r34, r2, 8a, 8h
LD r35, r2, 16a, 8h
CP r36, r2
JNE r35, r34, :0
LI64 r37, 0d
JNE r35, r37, :1
CP r38, r33
JNE r35, r0, :1
CP r37, r33
JMP :2
1: MULI64 r38, r35, 2d
2: LI64 r39, 8d
MUL64 r2, r38, r39
CP r3, r39
1: MULI64 r37, r35, 2d
2: LI64 r38, 8d
MUL64 r2, r37, r38
CP r3, r38
JAL r31, r0, :malloc
CP r40, r1
CP r41, r36
ST r38, r41, 16a, 8h
LI64 r1, 0d
CP r42, r40
JNE r42, r1, :3
CP r39, r36
ST r37, r39, 16a, 8h
JNE r1, r0, :3
CP r1, r0
JMP :4
3: CP r40, r42
MULI64 r43, r34, 8d
LD r44, r41, 0a, 8h
ADD64 r45, r44, r43
CP r46, r40
9: LD r2, r41, 0a, 8h
LD r47, r41, 8a, 8h
JNE r45, r44, :5
JEQ r47, r37, :6
CP r4, r39
MUL64 r3, r47, r4
3: CP r40, r1
CP r1, r0
MULI64 r41, r34, 8d
LD r42, r39, 0a, 8h
ADD64 r43, r42, r41
CP r44, r40
9: LD r2, r39, 0a, 8h
LD r45, r39, 8a, 8h
JNE r43, r42, :5
JEQ r45, r1, :6
CP r4, r38
MUL64 r3, r45, r4
JAL r31, r0, :free
CP r1, r40
CP r46, r40
JMP :7
6: CP r1, r40
7: ST r1, r41, 0a, 8h
6: CP r46, r40
7: ST r46, r39, 0a, 8h
JMP :8
5: CP r1, r40
CP r4, r39
ADDI64 r48, r46, 8d
ADDI64 r42, r44, 8d
LD r49, r44, 0a, 8h
ST r49, r46, 0a, 8h
CP r44, r42
CP r46, r48
5: CP r4, r38
CP r46, r40
ADDI64 r47, r44, 8d
ADDI64 r48, r42, 8d
LD r49, r42, 0a, 8h
ST r49, r44, 0a, 8h
CP r42, r48
CP r44, r47
JMP :9
0: CP r41, r36
8: LD r50, r41, 8a, 8h
MULI64 r51, r50, 8d
LD r52, r41, 0a, 8h
ADD64 r1, r52, r51
0: CP r39, r36
8: LD r35, r39, 8a, 8h
MULI64 r50, r35, 8d
LD r46, r39, 0a, 8h
ADD64 r1, r46, r50
CP r3, r32
ST r3, r1, 0a, 8h
ADD64 r39, r50, r33
ST r39, r41, 8a, 8h
4: LD r31, r254, 0a, 176h
ADDI64 r254, r254, 176d
ADD64 r51, r35, r33
ST r51, r39, 8a, 8h
4: LD r31, r254, 0a, 168h
ADDI64 r254, r254, 168d
JALA r0, r31, 0a
code size: 929
code size: 899
ret: 69
status: Ok(())

View file

@ -1,7 +1,6 @@
clobber:
LRA r1, r0, :var
LI64 r3, 0d
ST r3, r1, 0a, 8h
LRA r3, r0, :var
ST r0, r3, 0a, 8h
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -24d
@ -14,6 +13,6 @@ main:
LD r31, r254, 0a, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
code size: 166
code size: 156
ret: 0
status: Ok(())

View file

@ -1,23 +1,22 @@
inb:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -40d
ST r31, r254, 0a, 40h
ADDI64 r254, r254, -32d
ST r31, r254, 0a, 32h
LRA r32, r0, :ports
LD r33, r32, 0a, 1h
ANDI r33, r33, 255d
JNE r33, r0, :0
JMP :1
0: JAL r31, r0, :inb
LI64 r34, 0d
CMPU r35, r1, r34
CMPUI r35, r35, 0d
NOT r35, r35
ST r35, r32, 0a, 1h
1: LD r31, r254, 0a, 40h
ADDI64 r254, r254, 40d
CMPU r34, r1, r0
CMPUI r34, r34, 0d
NOT r34, r34
ST r34, r32, 0a, 1h
1: LD r31, r254, 0a, 32h
ADDI64 r254, r254, 32d
JALA r0, r31, 0a
code size: 178
code size: 161
ret: 0
status: Ok(())

View file

@ -1,8 +1,8 @@
main:
LRA r2, r0, :complex_global_var
LD r3, r2, 0a, 8h
ADDI64 r1, r3, 5d
ST r1, r2, 0a, 8h
LRA r3, r0, :complex_global_var
LD r5, r3, 0a, 8h
ADDI64 r1, r5, 5d
ST r1, r3, 0a, 8h
JALA r0, r31, 0a
code size: 71
ret: 55

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -1,20 +1,20 @@
main:
ADDI64 r254, r254, -128d
LI8 r6, 69b
LI64 r5, 128d
LI64 r7, 0d
ADDI64 r4, r254, 0d
2: LD r1, r254, 42a, 1h
JLTU r7, r5, :0
ANDI r1, r1, 255d
LI8 r8, 69b
LI64 r7, 128d
CP r9, r0
ADDI64 r6, r254, 0d
2: LD r3, r254, 42a, 1h
JLTU r9, r7, :0
ANDI r1, r3, 255d
JMP :1
0: ADDI64 r8, r7, 1d
ADD64 r3, r4, r7
ST r6, r3, 0a, 1h
CP r7, r8
0: ADDI64 r10, r9, 1d
ADD64 r5, r6, r9
ST r8, r5, 0a, 1h
CP r9, r10
JMP :2
1: ADDI64 r254, r254, 128d
JALA r0, r31, 0a
code size: 145
code size: 138
ret: 69
status: Ok(())

View file

@ -1,9 +1,9 @@
main:
LI64 r2, 0d
0: ADDI64 r2, r2, 1d
CP r4, r0
0: ADDI64 r4, r4, 1d
JMP :0
JALA r0, r31, 0a
timed out
code size: 45
code size: 38
ret: 0
status: Ok(())

View file

@ -1,20 +1,19 @@
main:
LI64 r2, 8d
ECA
LI64 r10, 6d
LRA r6, r0, :gb
LI64 r9, 0d
LD r11, r6, 0a, 8h
CMPU r12, r11, r9
LI64 r11, 6d
LRA r8, r0, :gb
LD r10, r8, 0a, 8h
CMPU r12, r10, r0
CMPUI r12, r12, 0d
ORI r2, r12, 0d
OR r2, r12, r0
ANDI r2, r2, 255d
JNE r2, r0, :0
CP r7, r10
CP r7, r11
JMP :1
0: LI64 r7, 1d
1: SUB64 r1, r7, r10
1: SUB64 r1, r7, r11
JALA r0, r31, 0a
code size: 142
code size: 125
ret: 0
status: Ok(())

View file

@ -1,28 +1,24 @@
main:
ADDI64 r254, r254, -32d
ST r31, r254, 0a, 32h
ADDI64 r254, r254, -8d
ST r31, r254, 0a, 8h
JAL r31, r0, :scalar_values
LI64 r32, 0d
CP r33, r32
JEQ r1, r33, :0
JEQ r1, r0, :0
LI64 r1, 1d
JMP :1
0: JAL r31, r0, :structs
CP r34, r33
JEQ r1, r34, :2
JEQ r1, r0, :2
JAL r31, r0, :structs
JMP :1
2: CP r1, r34
CP r33, r34
1: LD r31, r254, 0a, 32h
ADDI64 r254, r254, 32d
2: CP r1, r0
1: LD r31, r254, 0a, 8h
ADDI64 r254, r254, 8d
JALA r0, r31, 0a
scalar_values:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
structs:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 182
code size: 149
ret: 0
status: Ok(())

View file

@ -1,32 +1,30 @@
main:
ADDI64 r254, r254, -106d
ST r31, r254, 58a, 48h
ADDI64 r254, r254, -90d
ST r31, r254, 58a, 32h
ADDI64 r32, r254, 33d
ADDI64 r2, r254, 34d
ADDI64 r6, r254, 1d
LI64 r33, 0d
ADDI64 r4, r254, 17d
ST r32, r254, 34a, 8h
LI64 r34, 100d
LI64 r33, 100d
ADDI64 r7, r254, 0d
LI8 r35, 1b
ST r33, r254, 1a, 8h
ST r33, r254, 17a, 8h
ST r34, r254, 42a, 8h
LI8 r36, 0b
ST r35, r254, 0a, 1h
ST r33, r254, 9a, 8h
ST r33, r254, 25a, 8h
ST r34, r254, 50a, 8h
ST r36, r254, 33a, 1h
LI8 r34, 1b
ST r0, r254, 1a, 8h
ST r0, r254, 17a, 8h
ST r33, r254, 42a, 8h
ST r34, r254, 0a, 1h
ST r0, r254, 9a, 8h
ST r0, r254, 25a, 8h
ST r33, r254, 50a, 8h
ST r0, r254, 33a, 1h
CP r3, r4
CP r5, r6
LD r3, r3, 0a, 16h
LD r5, r5, 0a, 16h
LD r7, r7, 0a, 1h
JAL r31, r0, :put_filled_rect
LD r31, r254, 58a, 48h
ADDI64 r254, r254, 106d
LD r31, r254, 58a, 32h
ADDI64 r254, r254, 90d
JALA r0, r31, 0a
put_filled_rect:
ADDI64 r254, r254, -212d
@ -38,72 +36,74 @@ put_filled_rect:
ST r7, r254, 75a, 1h
ADDI64 r7, r254, 75d
LI64 r8, 25d
LI64 r32, 2d
LI64 r6, 8d
ADDI64 r33, r254, 25d
ADDI64 r34, r254, 50d
LI8 r35, 5b
ST r35, r254, 25a, 1h
LD r36, r5, 0a, 8h
ST r36, r254, 26a, 4h
LI64 r37, 1d
ST r37, r254, 30a, 4h
LI64 r6, 2d
LI64 r9, 8d
ADDI64 r32, r254, 25d
ADDI64 r33, r254, 50d
LI8 r34, 5b
ST r34, r254, 25a, 1h
LD r35, r5, 0a, 8h
ST r35, r254, 26a, 4h
LI64 r36, 1d
ST r36, r254, 30a, 4h
ST r7, r254, 34a, 8h
ST r35, r254, 50a, 1h
ST r36, r254, 51a, 4h
ST r37, r254, 55a, 4h
ST r34, r254, 50a, 1h
ST r35, r254, 51a, 4h
ST r36, r254, 55a, 4h
ST r7, r254, 59a, 8h
CP r38, r7
LD r7, r3, 8a, 8h
LD r39, r5, 8a, 8h
ADD64 r11, r39, r7
SUB64 r4, r11, r37
LD r40, r2, 8a, 8h
MUL64 r5, r40, r4
LD r9, r2, 0a, 8h
ADD64 r10, r9, r5
LD r2, r3, 0a, 8h
ADD64 r41, r2, r10
MUL64 r3, r40, r7
ADD64 r4, r9, r3
ADD64 r42, r2, r4
3: JGTU r39, r37, :0
JNE r39, r37, :1
CP r37, r7
LD r4, r3, 8a, 8h
LD r38, r5, 8a, 8h
ADD64 r1, r38, r4
SUB64 r5, r1, r36
LD r39, r2, 8a, 8h
MUL64 r7, r39, r5
LD r10, r2, 0a, 8h
ADD64 r11, r10, r7
LD r5, r3, 0a, 8h
ADD64 r40, r5, r11
MUL64 r4, r39, r4
ADD64 r7, r10, r4
ADD64 r41, r5, r7
3: JGTU r38, r36, :0
JNE r38, r36, :1
ADDI64 r4, r254, 0d
ST r35, r254, 0a, 1h
ST r36, r254, 1a, 4h
ST r37, r254, 5a, 4h
ST r38, r254, 9a, 8h
ST r42, r254, 17a, 8h
CP r2, r6
CP r3, r32
ST r34, r254, 0a, 1h
ST r35, r254, 1a, 4h
ST r36, r254, 5a, 4h
ST r37, r254, 9a, 8h
ST r41, r254, 17a, 8h
CP r2, r9
CP r3, r6
CP r5, r8
ECA
JMP :1
1: JMP :2
0: CP r3, r32
CP r43, r6
CP r44, r8
ST r42, r254, 67a, 8h
CP r2, r43
CP r4, r34
CP r5, r44
ECA
ST r41, r254, 42a, 8h
CP r2, r43
CP r3, r32
0: CP r3, r6
CP r42, r9
CP r43, r8
ST r41, r254, 67a, 8h
CP r44, r3
CP r2, r42
CP r4, r33
CP r5, r44
CP r5, r43
ECA
SUB64 r41, r41, r40
ADD64 r42, r40, r42
SUB64 r39, r39, r32
CP r6, r43
CP r8, r44
ST r40, r254, 42a, 8h
CP r2, r42
CP r3, r44
CP r4, r32
CP r5, r43
ECA
SUB64 r40, r40, r39
ADD64 r41, r39, r41
SUB64 r38, r38, r44
CP r6, r44
CP r8, r43
CP r9, r42
JMP :3
2: LD r32, r254, 108a, 104h
ADDI64 r254, r254, 212d
JALA r0, r31, 0a
code size: 917
code size: 910
ret: 0
status: Ok(())

View file

@ -1,20 +1,19 @@
main:
ADDI64 r254, r254, -32d
ST r31, r254, 16a, 16h
ADDI64 r254, r254, -24d
ST r31, r254, 16a, 8h
ADDI64 r3, r254, 0d
ADDI64 r2, r254, 8d
LI64 r32, 0d
ST r32, r254, 0a, 8h
ST r32, r254, 8a, 8h
ST r0, r254, 0a, 8h
ST r0, r254, 8a, 8h
LI64 r4, 1024d
JAL r31, r0, :set
ANDI r1, r1, 4294967295d
LD r31, r254, 16a, 16h
ADDI64 r254, r254, 32d
LD r31, r254, 16a, 8h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
set:
CP r1, r4
JALA r0, r31, 0a
code size: 167
code size: 157
ret: 1024
status: Ok(())

View file

@ -8,10 +8,10 @@ integer_range:
ECA
CP r2, r32
CP r3, r33
SUB64 r11, r3, r2
ADDI64 r3, r11, 1d
DIRU64 r0, r3, r1, r3
ADD64 r1, r3, r2
SUB64 r3, r3, r2
ADDI64 r3, r3, 1d
DIRU64 r0, r5, r1, r3
ADD64 r1, r5, r2
LD r32, r254, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
@ -19,11 +19,11 @@ main:
ADDI64 r254, r254, -8d
ST r31, r254, 0a, 8h
LI64 r3, 1000d
LI64 r2, 0d
CP r2, r0
JAL r31, r0, :integer_range
LD r31, r254, 0a, 8h
ADDI64 r254, r254, 8d
JALA r0, r31, 0a
code size: 210
code size: 203
ret: 42
status: Ok(())

View file

@ -1,16 +1,15 @@
main:
ADDI64 r254, r254, -8d
LI64 r3, 0d
LI64 r2, 10d
ST r2, r254, 0a, 8h
LI64 r3, 10d
ST r3, r254, 0a, 8h
2: LD r1, r254, 0a, 8h
JNE r1, r3, :0
JNE r1, r0, :0
JMP :1
0: ADDI64 r11, r1, -1d
ST r11, r254, 0a, 8h
JMP :2
1: ADDI64 r254, r254, 8d
JALA r0, r31, 0a
code size: 126
code size: 116
ret: 0
status: Ok(())

View file

@ -1,15 +1,14 @@
fib:
LI64 r4, 1d
LI64 r5, 0d
CP r1, r5
CP r10, r4
2: JNE r2, r5, :0
LI64 r6, 1d
CP r7, r0
CP r1, r7
CP r12, r6
2: JNE r2, r7, :0
JMP :1
0: ADD64 r1, r10, r1
SUB64 r2, r2, r4
CP r3, r1
CP r1, r10
CP r10, r3
0: ADD64 r3, r12, r1
SUB64 r2, r2, r6
CP r1, r12
CP r12, r3
JMP :2
1: JALA r0, r31, 0a
main:
@ -20,6 +19,6 @@ main:
LD r31, r254, 0a, 8h
ADDI64 r254, r254, 8d
JALA r0, r31, 0a
code size: 153
code size: 143
ret: 55
status: Ok(())

View file

@ -1,18 +1,17 @@
decide:
ADDI64 r254, r254, -24d
ADDI64 r5, r254, 0d
ADDI64 r7, r254, 0d
ST r2, r254, 0a, 8h
LI64 r8, 0d
ST r8, r254, 8a, 8h
ST r8, r254, 16a, 8h
BMC r5, r1, 24h
ST r0, r254, 8a, 8h
ST r0, r254, 16a, 8h
BMC r7, r1, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -112d
ST r31, r254, 72a, 40h
ADDI64 r32, r254, 48d
LI64 r2, 0d
CP r2, r0
CP r1, r32
JAL r31, r0, :decide
ADDI64 r1, r254, 24d
@ -27,6 +26,6 @@ main:
LD r31, r254, 72a, 40h
ADDI64 r254, r254, 112d
JALA r0, r31, 0a
code size: 275
code size: 258
ret: 1
status: Ok(())

View file

@ -1,27 +1,26 @@
main:
ADDI64 r254, r254, -32d
ST r31, r254, 0a, 32h
ADDI64 r254, r254, -24d
ST r31, r254, 0a, 24h
JAL r31, r0, :opaque
CP r32, r1
JAL r31, r0, :opaque
LI64 r33, 0d
CP r1, r32
JNE r1, r33, :0
JNE r1, r0, :0
CP r32, r1
LI64 r1, 0d
CP r34, r32
CP r1, r0
CP r33, r32
JMP :1
0: CP r34, r1
LD r1, r34, 0a, 8h
1: JEQ r34, r33, :2
LD r1, r34, 0a, 8h
0: CP r33, r1
LD r1, r33, 0a, 8h
1: JEQ r33, r0, :2
LD r1, r33, 0a, 8h
JMP :2
2: LD r31, r254, 0a, 32h
ADDI64 r254, r254, 32d
2: LD r31, r254, 0a, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
opaque:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 183
code size: 159
ret: 0
status: Ok(())

View file

@ -1,34 +1,32 @@
main:
ADDI64 r254, r254, -38d
ST r31, r254, 6a, 32h
LI8 r32, 0b
ADDI64 r33, r254, 0d
ADDI64 r254, r254, -30d
ST r31, r254, 6a, 24h
ADDI64 r32, r254, 0d
2: JAL r31, r0, :return_fn
ST r1, r254, 0a, 6h
LD r34, r254, 0a, 1h
ANDI r34, r34, 255d
ANDI r32, r32, 255d
JEQ r34, r32, :0
LD r33, r254, 0a, 1h
ANDI r33, r33, 255d
ANDI r0, r0, 255d
JEQ r33, r0, :0
LI64 r1, 1d
JMP :1
0: JMP :2
1: LD r31, r254, 6a, 32h
ADDI64 r254, r254, 38d
1: LD r31, r254, 6a, 24h
ADDI64 r254, r254, 30d
JALA r0, r31, 0a
return_fn:
ADDI64 r254, r254, -6d
LI8 r4, 1b
ADDI64 r3, r254, 0d
ST r4, r254, 0a, 1h
LI8 r4, 0b
ST r4, r254, 1a, 1h
ST r4, r254, 2a, 1h
ST r4, r254, 3a, 1h
ST r4, r254, 4a, 1h
ST r4, r254, 5a, 1h
LD r1, r3, 0a, 6h
LI8 r5, 1b
ADDI64 r4, r254, 0d
ST r5, r254, 0a, 1h
ST r0, r254, 1a, 1h
ST r0, r254, 2a, 1h
ST r0, r254, 3a, 1h
ST r0, r254, 4a, 1h
ST r0, r254, 5a, 1h
LD r1, r4, 0a, 6h
ADDI64 r254, r254, 6d
JALA r0, r31, 0a
code size: 302
code size: 296
ret: 1
status: Ok(())

View file

@ -1,80 +1,76 @@
foo:
ADDI64 r254, r254, -200d
ST r31, r254, 80a, 120h
ADDI64 r254, r254, -184d
ST r31, r254, 80a, 104h
ADDI64 r32, r254, 64d
LRA r3, r0, :some_file
JAL r31, r0, :get
ST r1, r254, 64a, 16h
LI8 r33, 0b
LD r34, r254, 64a, 1h
ANDI r34, r34, 255d
LD r33, r254, 64a, 1h
ANDI r33, r33, 255d
JNE r34, r33, :0
ADDI64 r35, r254, 48d
ST r33, r254, 48a, 1h
LD r1, r35, 0a, 16h
ANDI r0, r0, 255d
JNE r33, r0, :0
ADDI64 r34, r254, 48d
ST r0, r254, 48a, 1h
LD r1, r34, 0a, 16h
JMP :1
0: LI8 r36, 1b
LI64 r37, 4d
LD r38, r254, 72a, 8h
JNE r38, r37, :2
ADDI64 r39, r254, 32d
ST r36, r254, 32a, 1h
LI64 r40, 2d
ST r40, r254, 40a, 8h
LD r1, r39, 0a, 16h
0: LI8 r35, 1b
LI64 r36, 4d
LD r37, r254, 72a, 8h
JNE r37, r36, :2
ADDI64 r38, r254, 32d
ST r35, r254, 32a, 1h
LI64 r39, 2d
ST r39, r254, 40a, 8h
LD r1, r38, 0a, 16h
JMP :1
2: LRA r41, r0, :MAGIC
LD r42, r41, 0a, 8h
JNE r42, r38, :3
ADDI64 r43, r254, 16d
ST r36, r254, 16a, 1h
LI64 r44, 0d
ST r44, r254, 24a, 8h
2: LRA r40, r0, :MAGIC
LD r41, r40, 0a, 8h
JNE r41, r37, :3
ADDI64 r42, r254, 16d
ST r35, r254, 16a, 1h
ST r0, r254, 24a, 8h
LD r1, r42, 0a, 16h
JMP :1
3: ADDI64 r43, r254, 0d
ST r0, r254, 0a, 1h
LD r1, r43, 0a, 16h
JMP :1
3: ADDI64 r45, r254, 0d
ST r33, r254, 0a, 1h
LD r1, r45, 0a, 16h
1: LD r31, r254, 80a, 120h
ADDI64 r254, r254, 200d
1: LD r31, r254, 80a, 104h
ADDI64 r254, r254, 184d
JALA r0, r31, 0a
get:
ADDI64 r254, r254, -32d
LD r3, r3, 0a, 1h
LRA r5, r0, :MAGIC
ANDI r9, r3, 255d
LD r8, r5, 0a, 8h
JNE r8, r9, :0
LI8 r2, 1b
ADDI64 r1, r254, 16d
ST r2, r254, 16a, 1h
ST r8, r254, 24a, 8h
LD r1, r1, 0a, 16h
LD r5, r3, 0a, 1h
LRA r7, r0, :MAGIC
ANDI r11, r5, 255d
LD r10, r7, 0a, 8h
JNE r10, r11, :0
LI8 r4, 1b
ADDI64 r3, r254, 16d
ST r4, r254, 16a, 1h
ST r10, r254, 24a, 8h
LD r1, r3, 0a, 16h
JMP :1
0: ADDI64 r7, r254, 0d
LI8 r9, 0b
ST r9, r254, 0a, 1h
LD r1, r7, 0a, 16h
0: ADDI64 r9, r254, 0d
ST r0, r254, 0a, 1h
LD r1, r9, 0a, 16h
1: ADDI64 r254, r254, 32d
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -48d
ST r31, r254, 16a, 32h
ADDI64 r254, r254, -40d
ST r31, r254, 16a, 24h
ADDI64 r32, r254, 0d
JAL r31, r0, :foo
ST r1, r254, 0a, 16h
LI8 r33, 0b
LD r34, r254, 0a, 1h
ANDI r34, r34, 255d
LD r33, r254, 0a, 1h
ANDI r33, r33, 255d
JNE r34, r33, :0
ANDI r0, r0, 255d
JNE r33, r0, :0
LI64 r1, 100d
JMP :1
0: LD r1, r254, 8a, 8h
1: LD r31, r254, 16a, 32h
ADDI64 r254, r254, 48d
1: LD r31, r254, 16a, 24h
ADDI64 r254, r254, 40d
JALA r0, r31, 0a
code size: 768
code size: 749
ret: 0
status: Ok(())

View file

@ -1,24 +1,23 @@
get_ptr:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -40d
ST r31, r254, 0a, 40h
ADDI64 r254, r254, -32d
ST r31, r254, 0a, 32h
JAL r31, r0, :get_ptr
LI64 r32, 0d
JNE r1, r32, :0
LI64 r1, 0d
JNE r1, r0, :0
CP r1, r0
JMP :1
0: LI64 r33, 10d
CP r34, r1
2: LD r1, r34, 0a, 8h
JEQ r1, r33, :1
ADDI64 r35, r1, 1d
ST r35, r34, 0a, 8h
0: LI64 r32, 10d
CP r33, r1
2: LD r1, r33, 0a, 8h
JEQ r1, r32, :1
ADDI64 r34, r1, 1d
ST r34, r33, 0a, 8h
JMP :2
1: LD r31, r254, 0a, 40h
ADDI64 r254, r254, 40d
1: LD r31, r254, 0a, 32h
ADDI64 r254, r254, 32d
JALA r0, r31, 0a
code size: 185
code size: 161
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
ADDI64 r254, r254, -122d
ST r31, r254, 26a, 96h
ADDI64 r254, r254, -98d
ST r31, r254, 26a, 72h
JAL r31, r0, :returner_fn
CP r32, r1
ADDI64 r1, r254, 2d
@ -8,52 +8,48 @@ main:
ADDI64 r33, r254, 0d
JAL r31, r0, :returner_cn
ST r1, r254, 0a, 2h
LI8 r34, 0b
LI8 r35, 0b
LD r36, r254, 2a, 1h
LD r34, r254, 2a, 1h
CP r1, r32
CMPU r37, r1, r34
CMPUI r37, r37, 0d
CMPU r38, r36, r35
CMPU r35, r1, r0
CMPUI r35, r35, 0d
CMPU r32, r34, r0
CMPUI r32, r32, 0d
LD r36, r254, 0a, 1h
AND r37, r32, r35
CMPU r38, r36, r0
CMPUI r38, r38, 0d
LD r39, r254, 0a, 1h
AND r40, r38, r37
CMPU r41, r39, r35
CMPUI r41, r41, 0d
AND r42, r41, r40
ANDI r42, r42, 255d
JNE r42, r0, :0
LI64 r1, 0d
AND r39, r38, r37
ANDI r39, r39, 255d
JNE r39, r0, :0
CP r1, r0
JMP :1
0: LI64 r1, 1d
1: LD r31, r254, 26a, 96h
ADDI64 r254, r254, 122d
1: LD r31, r254, 26a, 72h
ADDI64 r254, r254, 98d
JALA r0, r31, 0a
returner_bn:
ADDI64 r254, r254, -24d
LI8 r6, 1b
ADDI64 r5, r254, 0d
ST r6, r254, 0a, 1h
LI64 r6, 0d
ST r6, r254, 8a, 8h
ST r6, r254, 16a, 8h
BMC r5, r1, 24h
LI8 r7, 1b
ADDI64 r6, r254, 0d
ST r7, r254, 0a, 1h
ST r0, r254, 8a, 8h
ST r0, r254, 16a, 8h
BMC r6, r1, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
returner_cn:
ADDI64 r254, r254, -2d
LI8 r4, 1b
ADDI64 r3, r254, 0d
ST r4, r254, 0a, 1h
LI8 r4, 0b
ST r4, r254, 1a, 1h
LD r1, r3, 0a, 2h
LI8 r5, 1b
ADDI64 r4, r254, 0d
ST r5, r254, 0a, 1h
ST r0, r254, 1a, 1h
LD r1, r4, 0a, 2h
ADDI64 r254, r254, 2d
JALA r0, r31, 0a
returner_fn:
LD r1, r254, 0a, 0h
ORI r1, r1, 128d
LD r3, r254, 0a, 0h
ORI r1, r3, 128d
JALA r0, r31, 0a
code size: 480
code size: 454
ret: 1
status: Ok(())

View file

@ -2,10 +2,10 @@ decide:
LI8 r1, 1b
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -232d
ST r31, r254, 80a, 152h
ADDI64 r254, r254, -224d
ST r31, r254, 80a, 144h
JAL r31, r0, :decide
LI64 r32, 0d
CP r32, r0
ADDI64 r2, r254, 72d
CP r33, r2
ANDI r1, r1, 255d
@ -19,23 +19,22 @@ main:
LI64 r1, 9001d
JMP :3
2: JAL r31, r0, :decide
LI8 r36, 0b
ANDI r1, r1, 255d
JNE r1, r0, :4
LI8 r37, 1b
ST r37, r254, 56a, 1h
LI8 r36, 1b
ST r36, r254, 56a, 1h
LD r37, r34, 0a, 8h
ST r37, r254, 64a, 8h
JMP :5
4: ST r36, r254, 56a, 1h
4: ST r0, r254, 56a, 1h
5: LD r38, r254, 56a, 1h
ANDI r38, r38, 255d
ANDI r36, r36, 255d
JEQ r38, r36, :6
ANDI r0, r0, 255d
JEQ r38, r0, :6
LI64 r1, 42d
JMP :3
6: JAL r31, r0, :decide
LI32 r39, 0w
CP r39, r0
ANDI r1, r1, 255d
JNE r1, r0, :7
CP r40, r39
@ -50,9 +49,8 @@ main:
CP r41, r3
JAL r31, r0, :new_foo
ST r1, r254, 40a, 16h
LI64 r42, 0d
LD r43, r254, 40a, 8h
JNE r43, r42, :10
LD r42, r254, 40a, 8h
JNE r42, r0, :10
LI64 r1, 999d
JMP :3
10: LRA r4, r0, :"foo\0"
@ -60,7 +58,7 @@ main:
CP r2, r3
LD r2, r2, 0a, 16h
JAL r31, r0, :use_foo
ADDI64 r44, r254, 0d
ADDI64 r43, r254, 0d
JAL r31, r0, :no_foo
ST r1, r254, 0a, 16h
JAL r31, r0, :decide
@ -71,8 +69,8 @@ main:
11: CP r2, r33
ST r2, r254, 0a, 8h
ST r35, r254, 8a, 8h
12: LD r45, r254, 0a, 8h
JNE r45, r42, :13
12: LD r44, r254, 0a, 8h
JNE r44, r0, :13
LI64 r1, 34d
JMP :3
13: ADDI64 r1, r254, 16d
@ -81,47 +79,45 @@ main:
ANDI r1, r1, 255d
JNE r1, r0, :14
JMP :15
14: ST r36, r254, 16a, 1h
15: LD r46, r254, 16a, 1h
ANDI r46, r46, 255d
ANDI r36, r36, 255d
JEQ r46, r36, :16
14: ST r0, r254, 16a, 1h
15: LD r45, r254, 16a, 1h
ANDI r45, r45, 255d
ANDI r0, r0, 255d
JEQ r45, r0, :16
LI64 r1, 420d
JMP :3
16: LD r47, r254, 0a, 8h
LD r48, r47, 0a, 8h
ANDI r49, r40, 65535d
SUB64 r1, r49, r48
3: LD r31, r254, 80a, 152h
ADDI64 r254, r254, 232d
16: LD r46, r254, 0a, 8h
LD r47, r46, 0a, 8h
ANDI r48, r40, 65535d
SUB64 r1, r48, r47
3: LD r31, r254, 80a, 144h
ADDI64 r254, r254, 224d
JALA r0, r31, 0a
new_bar:
ADDI64 r254, r254, -24d
LI8 r8, 1b
ADDI64 r7, r254, 0d
ST r8, r254, 0a, 1h
LI8 r10, 1b
ADDI64 r9, r254, 0d
ST r10, r254, 0a, 1h
ST r2, r254, 8a, 8h
LI64 r9, 1d
ST r9, r254, 16a, 8h
BMC r7, r1, 24h
LI64 r11, 1d
ST r11, r254, 16a, 8h
BMC r9, r1, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
new_foo:
ADDI64 r254, r254, -24d
ADDI64 r3, r254, 0d
ADDI64 r2, r254, 8d
ST r3, r254, 8a, 8h
LI64 r5, 0d
ST r5, r254, 16a, 8h
LD r1, r2, 0a, 16h
ADDI64 r5, r254, 0d
ADDI64 r4, r254, 8d
ST r5, r254, 8a, 8h
ST r0, r254, 16a, 8h
LD r1, r4, 0a, 16h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
no_foo:
ADDI64 r254, r254, -16d
ADDI64 r1, r254, 0d
LI64 r3, 0d
ST r3, r254, 0a, 8h
LD r1, r1, 0a, 16h
ADDI64 r3, r254, 0d
ST r0, r254, 0a, 8h
LD r1, r3, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
use_foo:
@ -130,6 +126,6 @@ use_foo:
ADDI64 r2, r254, 0d
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
code size: 1143
code size: 1100
ret: 0
status: Ok(())

View file

@ -2,29 +2,28 @@ inb:
CP r1, r2
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -32d
ST r31, r254, 0a, 32h
LI64 r32, 0d
LI64 r33, 100d
4: CP r2, r33
ADDI64 r254, r254, -24d
ST r31, r254, 0a, 24h
LI64 r32, 100d
4: CP r2, r32
JAL r31, r0, :inb
ANDI r34, r1, 2d
JNE r34, r32, :0
ANDI r33, r1, 2d
JNE r33, r0, :0
LI64 r2, 96d
CP r3, r32
CP r3, r0
JAL r31, r0, :outb
3: CP r2, r33
3: CP r2, r32
JAL r31, r0, :inb
JEQ r1, r32, :1
JEQ r1, r0, :1
LI64 r1, 1d
JMP :2
1: JMP :3
0: JMP :4
2: LD r31, r254, 0a, 32h
ADDI64 r254, r254, 32d
2: LD r31, r254, 0a, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
outb:
JALA r0, r31, 0a
code size: 198
code size: 188
ret: 1
status: Ok(())

View file

@ -1,22 +1,21 @@
main:
ADDI64 r254, r254, -16d
ADDI64 r3, r254, 0d
LI64 r6, 0d
CP r3, r6
CP r4, r6
CP r5, r6
ADDI64 r4, r254, 0d
CP r3, r0
CP r4, r0
CP r5, r0
CP r6, r0
ECA
ST r1, r254, 0a, 16h
LI8 r8, 0b
LD r9, r254, 0a, 1h
ANDI r9, r9, 255d
ANDI r8, r8, 255d
JNE r9, r8, :0
LD r7, r254, 0a, 1h
ANDI r7, r7, 255d
ANDI r0, r0, 255d
JNE r7, r0, :0
UN
0: LD r1, r254, 8a, 8h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
unknown ecall: 0
code size: 142
code size: 132
ret: 0
status: Err(Unreachable)

View file

@ -19,12 +19,12 @@ main:
JALA r0, r31, 0a
opaque:
ADDI64 r254, r254, -16d
LI64 r3, 3d
ADDI64 r2, r254, 0d
ST r3, r254, 0a, 8h
LI64 r6, 2d
ST r6, r254, 8a, 8h
LD r1, r2, 0a, 16h
LI64 r5, 3d
ADDI64 r4, r254, 0d
ST r5, r254, 0a, 8h
LI64 r8, 2d
ST r8, r254, 8a, 8h
LD r1, r4, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
code size: 307

View file

@ -1,6 +1,6 @@
clobber:
LI64 r3, 4d
ST r3, r2, 0a, 8h
LI64 r5, 4d
ST r5, r2, 0a, 8h
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -40d

View file

@ -15,8 +15,8 @@ main:
ADDI64 r254, r254, 32d
JALA r0, r31, 0a
modify:
LI64 r3, 2d
ST r3, r2, 0a, 8h
LI64 r5, 2d
ST r5, r2, 0a, 8h
JALA r0, r31, 0a
code size: 187
ret: 0

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
create_back_buffer:
ADDI64 r254, r254, -56d
ST r31, r254, 0a, 56h
ADDI64 r254, r254, -48d
ST r31, r254, 0a, 48h
LI64 r32, 255d
JGTS r2, r32, :0
JAL r31, r0, :request_page
@ -9,23 +9,22 @@ create_back_buffer:
LI8 r34, 255b
CP r2, r34
JAL r31, r0, :request_page
LI64 r35, 0d
CP r2, r33
SUB64 r36, r2, r32
5: JGTS r36, r35, :2
SUB64 r35, r2, r32
5: JGTS r35, r0, :2
JMP :1
2: CP r37, r1
JLTS r36, r32, :3
2: CP r36, r1
JLTS r35, r32, :3
CP r2, r34
JAL r31, r0, :request_page
JMP :4
3: CP r2, r36
3: CP r2, r35
JAL r31, r0, :request_page
4: SUB64 r36, r36, r32
CP r1, r37
4: SUB64 r35, r35, r32
CP r1, r36
JMP :5
1: LD r31, r254, 0a, 56h
ADDI64 r254, r254, 56d
1: LD r31, r254, 0a, 48h
ADDI64 r254, r254, 48d
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -8d
@ -43,6 +42,6 @@ request_page:
LI64 r2, 3d
ECA
JALA r0, r31, 0a
code size: 331
code size: 321
ret: 42
status: Ok(())

View file

@ -19,8 +19,8 @@ main:
ADDI64 r254, r254, 100d
JALA r0, r31, 0a
random_color:
LRA r1, r0, :white
LD r1, r1, 0a, 4h
LRA r3, r0, :white
LD r1, r3, 0a, 4h
JALA r0, r31, 0a
code size: 241
ret: 1020

View file

@ -1,31 +1,30 @@
get_format:
ADDI64 r254, r254, -16d
LI8 r5, 1b
ADDI64 r4, r254, 0d
LRA r3, r0, :BMP
ST r5, r254, 0a, 1h
LD r6, r3, 0a, 8h
ST r6, r254, 8a, 8h
LD r1, r4, 0a, 16h
LI8 r7, 1b
ADDI64 r6, r254, 0d
LRA r5, r0, :BMP
ST r7, r254, 0a, 1h
LD r8, r5, 0a, 8h
ST r8, r254, 8a, 8h
LD r1, r6, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -48d
ST r31, r254, 16a, 32h
ADDI64 r254, r254, -40d
ST r31, r254, 16a, 24h
ADDI64 r32, r254, 0d
JAL r31, r0, :get_format
ST r1, r254, 0a, 16h
LI8 r33, 0b
LD r34, r254, 0a, 1h
ANDI r34, r34, 255d
LD r33, r254, 0a, 1h
ANDI r33, r33, 255d
JNE r34, r33, :0
ANDI r0, r0, 255d
JNE r33, r0, :0
LI64 r1, 1d
JMP :1
0: LD r1, r254, 8a, 8h
1: LD r31, r254, 16a, 32h
ADDI64 r254, r254, 48d
1: LD r31, r254, 16a, 24h
ADDI64 r254, r254, 40d
JALA r0, r31, 0a
code size: 283
code size: 280
ret: 0
status: Ok(())

View file

@ -14,18 +14,18 @@ main:
ADDI64 r254, r254, -32d
ST r31, r254, 16a, 16h
ADDI64 r32, r254, 0d
LI64 r3, 0d
CP r3, r0
JAL r31, r0, :constructor
ST r1, r254, 0a, 16h
LD r31, r254, 16a, 16h
ADDI64 r254, r254, 32d
JALA r0, r31, 0a
opaque:
LRA r3, r0, :file
ADD64 r5, r3, r2
LD r7, r5, 0a, 1h
ANDI r1, r7, 255d
LRA r5, r0, :file
ADD64 r7, r5, r2
LD r9, r7, 0a, 1h
ANDI r1, r9, 255d
JALA r0, r31, 0a
code size: 274
code size: 267
ret: 255
status: Ok(())

View file

@ -1,10 +1,10 @@
main:
ADDI64 r254, r254, -4d
LRA r2, r0, :white
ADDI64 r3, r254, 0d
BMC r2, r3, 4h
LD r6, r254, 3a, 1h
ANDI r1, r6, 255d
LRA r4, r0, :white
ADDI64 r5, r254, 0d
BMC r4, r5, 4h
LD r8, r254, 3a, 1h
ANDI r1, r8, 255d
ADDI64 r254, r254, 4d
JALA r0, r31, 0a
code size: 92

View file

@ -7,23 +7,23 @@ main:
ADDI64 r254, r254, 8d
JALA r0, r31, 0a
sqrt:
LI64 r7, 15d
LI64 r8, 32768d
LI64 r5, 0d
CP r1, r5
3: JNE r8, r5, :0
LI64 r9, 15d
LI64 r10, 32768d
CP r7, r0
CP r1, r7
3: JNE r10, r7, :0
JMP :1
0: SLUI64 r4, r1, 1b
ADDI64 r7, r7, -1d
ADD64 r9, r4, r8
SLU64 r9, r9, r7
JLTU r2, r9, :2
ADD64 r1, r8, r1
SUB64 r2, r2, r9
0: SLUI64 r6, r1, 1b
ADDI64 r9, r9, -1d
ADD64 r11, r6, r10
SLU64 r11, r11, r9
JLTU r2, r11, :2
ADD64 r1, r10, r1
SUB64 r2, r2, r11
JMP :2
2: SRUI64 r8, r8, 1b
2: SRUI64 r10, r10, 1b
JMP :3
1: JALA r0, r31, 0a
code size: 188
code size: 181
ret: 14
status: Ok(())

View file

@ -4,66 +4,63 @@ do_stuff:
just_read:
JALA r0, r31, 0a
main:
ADDI64 r254, r254, -120d
ST r31, r254, 48a, 72h
ADDI64 r254, r254, -104d
ST r31, r254, 48a, 56h
ADDI64 r32, r254, 16d
CP r1, r32
JAL r31, r0, :optionala
CP r2, r32
LI64 r33, 0d
LD r34, r254, 16a, 8h
JNE r34, r33, :0
LD r33, r254, 16a, 8h
JNE r33, r0, :0
LI64 r1, 10d
JMP :1
0: ST r33, r254, 24a, 8h
0: ST r0, r254, 24a, 8h
JAL r31, r0, :just_read
LD r2, r254, 24a, 8h
JAL r31, r0, :do_stuff
CP r35, r1
ADDI64 r36, r254, 0d
CP r34, r1
ADDI64 r35, r254, 0d
JAL r31, r0, :optional
ST r1, r254, 0a, 16h
LI8 r37, 0b
LD r38, r254, 0a, 1h
ANDI r38, r38, 255d
ANDI r37, r37, 255d
JNE r38, r37, :2
LD r36, r254, 0a, 1h
ANDI r36, r36, 255d
ANDI r0, r0, 255d
JNE r36, r0, :2
LI64 r1, 20d
JMP :1
2: LI64 r39, 100d
ST r39, r254, 8a, 8h
2: LI64 r37, 100d
ST r37, r254, 8a, 8h
LD r2, r254, 8a, 8h
JAL r31, r0, :do_stuff
ADD64 r1, r1, r35
1: LD r31, r254, 48a, 72h
ADDI64 r254, r254, 120d
ADD64 r1, r1, r34
1: LD r31, r254, 48a, 56h
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
LI8 r6, 1b
ADDI64 r5, r254, 0d
ST r6, r254, 0a, 1h
LI64 r6, 10d
ST r6, r254, 8a, 8h
LD r1, r5, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
optionala:
ADDI64 r254, r254, -48d
ADDI64 r5, r254, 8d
ADDI64 r4, r254, 16d
ST r5, r254, 16a, 8h
LI64 r9, 1d
ST r9, r254, 24a, 8h
ADDI64 r12, r254, 0d
ST r12, r254, 32a, 8h
LI64 r11, 0d
ST r11, r254, 0a, 8h
ST r11, r254, 8a, 8h
ST r11, r254, 40a, 8h
BMC r4, r1, 32h
ADDI64 r7, r254, 8d
ADDI64 r6, r254, 16d
ST r7, r254, 16a, 8h
LI64 r10, 1d
ST r10, r254, 24a, 8h
ADDI64 r2, r254, 0d
ST r2, r254, 32a, 8h
ST r0, r254, 0a, 8h
ST r0, r254, 8a, 8h
ST r0, r254, 40a, 8h
BMC r6, r1, 32h
ADDI64 r254, r254, 48d
JALA r0, r31, 0a
code size: 603
code size: 580
ret: 100
status: Ok(())

View file

@ -1,44 +1,44 @@
main:
ADDI64 r254, r254, -40d
LI64 r7, 1d
LI64 r6, 4d
LI64 r4, 0d
ADDI64 r5, r254, 0d
CP r8, r4
6: JNE r8, r6, :0
LI64 r6, 2d
ADDI64 r3, r254, 32d
CP r8, r4
LI64 r9, 1d
LI64 r8, 4d
CP r6, r0
ADDI64 r7, r254, 0d
CP r10, r6
6: JNE r10, r8, :0
LI64 r8, 2d
ADDI64 r5, r254, 32d
CP r10, r6
4: LD r1, r254, 16a, 8h
JNE r8, r7, :1
JNE r10, r9, :1
JMP :2
1: MUL64 r12, r8, r6
ADD64 r8, r8, r7
SUB64 r9, r6, r8
MUL64 r9, r9, r6
CP r11, r4
5: JNE r11, r6, :3
1: MUL64 r2, r10, r8
ADD64 r10, r10, r9
SUB64 r11, r8, r10
MUL64 r11, r11, r8
CP r1, r6
5: JNE r1, r8, :3
JMP :4
3: ADD64 r10, r11, r7
ADD64 r1, r12, r11
ADD64 r2, r9, r11
MULI64 r1, r1, 8d
MULI64 r11, r2, 8d
ADD64 r1, r5, r1
ADD64 r11, r5, r11
3: ADD64 r12, r1, r9
ADD64 r3, r2, r1
ADD64 r4, r11, r1
MULI64 r3, r3, 8d
MULI64 r1, r4, 8d
ADD64 r3, r7, r3
ADD64 r1, r7, r1
BMC r3, r5, 8h
BMC r1, r3, 8h
BMC r11, r1, 8h
BMC r3, r11, 8h
CP r11, r10
BMC r5, r1, 8h
CP r1, r12
JMP :5
0: ADD64 r2, r8, r7
MULI64 r12, r8, 8d
ADD64 r3, r5, r12
ST r8, r3, 0a, 8h
CP r8, r2
0: ADD64 r4, r10, r9
MULI64 r2, r10, 8d
ADD64 r5, r7, r2
ST r10, r5, 0a, 8h
CP r10, r4
JMP :6
2: ADDI64 r254, r254, 40d
JALA r0, r31, 0a
code size: 271
code size: 264
ret: 0
status: Ok(())

View file

@ -1,10 +1,10 @@
main:
ADDI64 r254, r254, -4d
LRA r1, r0, :MAGENTA
ADDI64 r3, r254, 0d
BMC r1, r3, 4h
LD r6, r254, 2a, 1h
ANDI r1, r6, 255d
LRA r3, r0, :MAGENTA
ADDI64 r5, r254, 0d
BMC r3, r5, 4h
LD r8, r254, 2a, 1h
ANDI r1, r8, 255d
ADDI64 r254, r254, 4d
JALA r0, r31, 0a
code size: 92

View file

@ -18,17 +18,16 @@ fib:
ADDI64 r254, r254, 32d
JALA r0, r31, 0a
fib_iter:
LI64 r4, 1d
LI64 r5, 0d
CP r1, r5
CP r10, r4
2: JNE r2, r5, :0
LI64 r6, 1d
CP r7, r0
CP r1, r7
CP r12, r6
2: JNE r2, r7, :0
JMP :1
0: ADD64 r1, r10, r1
SUB64 r2, r2, r4
CP r3, r1
CP r1, r10
CP r10, r3
0: ADD64 r3, r12, r1
SUB64 r2, r2, r6
CP r1, r12
CP r12, r3
JMP :2
1: JALA r0, r31, 0a
main:
@ -44,6 +43,6 @@ main:
LD r31, r254, 0a, 24h
ADDI64 r254, r254, 24d
JALA r0, r31, 0a
code size: 300
code size: 290
ret: 0
status: Ok(())

View file

@ -1,12 +1,12 @@
foo:
ADDI64 r254, r254, -16d
LI64 r3, 3d
ADDI64 r2, r254, 0d
ST r3, r254, 0a, 8h
LI32 r6, 2w
ST r6, r254, 8a, 4h
ST r6, r254, 12a, 4h
LD r1, r2, 0a, 16h
LI64 r5, 3d
ADDI64 r4, r254, 0d
ST r5, r254, 0a, 8h
LI32 r8, 2w
ST r8, r254, 8a, 4h
ST r8, r254, 12a, 4h
LD r1, r4, 0a, 16h
ADDI64 r254, r254, 16d
JALA r0, r31, 0a
main:

View file

@ -16,7 +16,7 @@ main:
CP r2, r34
JAL r31, r0, :pass
JMP :1
0: LI64 r1, 0d
0: CP r1, r0
1: LD r31, r254, 32a, 40h
ADDI64 r254, r254, 72d
JALA r0, r31, 0a
@ -30,6 +30,6 @@ odher_pass:
pass:
LD r1, r2, 0a, 8h
JALA r0, r31, 0a
code size: 308
code size: 301
ret: 4
status: Ok(())

View file

@ -1,30 +1,30 @@
main:
ADDI64 r254, r254, -10240d
LI64 r7, 1d
LI8 r8, 64b
LI64 r6, 1024d
LI64 r9, 0d
ADDI64 r5, r254, 0d
4: JLTU r9, r6, :0
LI64 r6, 10d
CP r8, r7
3: LD r11, r254, 2048a, 1h
JLTU r8, r6, :1
ANDI r1, r11, 255d
LI64 r9, 1d
LI8 r10, 64b
LI64 r8, 1024d
CP r11, r0
ADDI64 r7, r254, 0d
4: JLTU r11, r8, :0
LI64 r8, 10d
CP r10, r9
3: LD r1, r254, 2048a, 1h
JLTU r10, r8, :1
ANDI r1, r1, 255d
JMP :2
1: ADD64 r2, r8, r7
MULI64 r1, r8, 1024d
ADD64 r3, r5, r1
BMC r5, r3, 1024h
CP r8, r2
1: ADD64 r4, r10, r9
MULI64 r3, r10, 1024d
ADD64 r5, r7, r3
BMC r7, r5, 1024h
CP r10, r4
JMP :3
0: ADD64 r2, r9, r7
ADD64 r12, r5, r9
ST r8, r12, 0a, 1h
CP r9, r2
0: ADD64 r4, r11, r9
ADD64 r2, r7, r11
ST r10, r2, 0a, 1h
CP r11, r4
JMP :4
2: ADDI64 r254, r254, 10240d
JALA r0, r31, 0a
code size: 198
code size: 191
ret: 64
status: Ok(())

View file

@ -1,10 +1,10 @@
main:
ADDI64 r254, r254, -72d
ST r31, r254, 0a, 72h
LI8 r32, 0b
CP r32, r0
LI64 r33, 65536d
LI8 r34, 1b
LI64 r35, 0d
CP r35, r0
CP r36, r35
7: JAL r31, r0, :opaque
JLTU r36, r1, :0
@ -30,6 +30,6 @@ opaque:
LI64 r1, 2147483648d
JALA r0, r31, 0a
timed out
code size: 218
code size: 211
ret: 2147483648
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -1,6 +1,6 @@
main:
LI64 r1, 0d
CP r1, r0
JALA r0, r31, 0a
code size: 29
code size: 22
ret: 0
status: Ok(())

View file

@ -2,7 +2,7 @@ main:
ADDI64 r254, r254, -56d
ST r31, r254, 16a, 40h
ADDI64 r32, r254, 0d
LI64 r4, 0d
CP r4, r0
CP r3, r4
JAL r31, r0, :maina
ST r1, r254, 0a, 16h
@ -14,44 +14,42 @@ main:
ADDI64 r254, r254, 56d
JALA r0, r31, 0a
maina:
ADDI64 r254, r254, -68d
ST r31, r254, 20a, 48h
ADDI64 r254, r254, -60d
ST r31, r254, 20a, 40h
ADDI64 r32, r254, 16d
JAL r31, r0, :small_struct
ST r1, r254, 16a, 4h
LI8 r33, 0b
ADDI64 r34, r254, 0d
ST r33, r254, 0a, 1h
ST r33, r254, 1a, 1h
ST r33, r254, 2a, 1h
LI8 r35, 3b
ST r35, r254, 3a, 1h
LI8 r36, 1b
ST r36, r254, 4a, 1h
ST r33, r254, 5a, 1h
ST r33, r254, 6a, 1h
ST r33, r254, 7a, 1h
ST r33, r254, 8a, 1h
ST r33, r254, 9a, 1h
ST r33, r254, 10a, 1h
ST r35, r254, 11a, 1h
ST r36, r254, 12a, 1h
ST r33, r254, 13a, 1h
ST r33, r254, 14a, 1h
ST r33, r254, 15a, 1h
LD r1, r34, 0a, 16h
LD r31, r254, 20a, 48h
ADDI64 r254, r254, 68d
ADDI64 r33, r254, 0d
ST r0, r254, 0a, 1h
ST r0, r254, 1a, 1h
ST r0, r254, 2a, 1h
LI8 r34, 3b
ST r34, r254, 3a, 1h
LI8 r35, 1b
ST r35, r254, 4a, 1h
ST r0, r254, 5a, 1h
ST r0, r254, 6a, 1h
ST r0, r254, 7a, 1h
ST r0, r254, 8a, 1h
ST r0, r254, 9a, 1h
ST r0, r254, 10a, 1h
ST r34, r254, 11a, 1h
ST r35, r254, 12a, 1h
ST r0, r254, 13a, 1h
ST r0, r254, 14a, 1h
ST r0, r254, 15a, 1h
LD r1, r33, 0a, 16h
LD r31, r254, 20a, 40h
ADDI64 r254, r254, 60d
JALA r0, r31, 0a
small_struct:
ADDI64 r254, r254, -4d
LI16 r2, 0h
ADDI64 r3, r254, 0d
ST r2, r254, 0a, 2h
ST r2, r254, 2a, 2h
ST r0, r254, 0a, 2h
ST r0, r254, 2a, 2h
LD r1, r3, 0a, 4h
ADDI64 r254, r254, 4d
JALA r0, r31, 0a
code size: 570
code size: 556
ret: 2
status: Ok(())

View file

@ -1,29 +1,27 @@
main:
ADDI64 r254, r254, -1d
LI64 r7, 0d
LI64 r6, 255d
LI8 r2, 1b
LI8 r4, 0b
ST r4, r254, 0a, 1h
2: LD r9, r254, 0a, 1h
ANDI r11, r9, 255d
CMPU r3, r11, r6
LI8 r1, 1b
ST r0, r254, 0a, 1h
2: LD r8, r254, 0a, 1h
ANDI r10, r8, 255d
CMPU r2, r10, r6
CMPUI r2, r2, 0d
NOT r2, r2
CMPU r3, r10, r0
CMPUI r3, r3, 0d
NOT r3, r3
CMPU r5, r11, r7
CMPUI r5, r5, 0d
NOT r5, r5
OR r8, r5, r3
ANDI r8, r8, 255d
JNE r8, r0, :0
OR r5, r3, r2
ANDI r5, r5, 255d
JNE r5, r0, :0
JMP :1
0: SUB8 r2, r0, r2
1: ADD8 r4, r9, r2
ST r4, r254, 0a, 1h
0: SUB8 r1, r0, r1
1: ADD8 r2, r8, r1
ST r2, r254, 0a, 1h
JMP :2
ADDI64 r254, r254, 1d
JALA r0, r31, 0a
timed out
code size: 191
ret: 0
code size: 178
ret: 1
status: Ok(())