forked from AbleOS/holey-bytes
a8aba7e7c2
return value is now a separate node pinned to the call Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
93 lines
1.9 KiB
Plaintext
93 lines
1.9 KiB
Plaintext
do_stuff:
|
|
CP r13, r2
|
|
CP r1, r13
|
|
JALA r0, r31, 0a
|
|
just_read:
|
|
JALA r0, r31, 0a
|
|
main:
|
|
ADDI64 r254, r254, -72d
|
|
ST r31, r254, 48a, 24h
|
|
ADDI64 r32, r254, 16d
|
|
CP r1, r32
|
|
JAL r31, r0, :optionala
|
|
LD r33, r254, 16a, 8h
|
|
JNE r33, r0, :0
|
|
LI64 r32, 10d
|
|
CP r1, r32
|
|
JMP :1
|
|
0: ST r0, r254, 24a, 8h
|
|
CP r2, r32
|
|
JAL r31, r0, :just_read
|
|
LD r32, r254, 24a, 8h
|
|
CP r2, r32
|
|
JAL r31, r0, :do_stuff
|
|
CP r32, r1
|
|
ADDI64 r33, r254, 0d
|
|
JAL r31, r0, :optional
|
|
ST r1, r33, 0a, 16h
|
|
LD r33, r254, 0a, 1h
|
|
ANDI r33, r33, 255d
|
|
JNE r33, r0, :2
|
|
LI64 r32, 20d
|
|
CP r1, r32
|
|
JMP :1
|
|
2: LI64 r33, 100d
|
|
CP r2, r33
|
|
JAL r31, r0, :do_stuff
|
|
CP r33, r1
|
|
ADD64 r32, r33, r32
|
|
CP r1, r32
|
|
1: LD r31, r254, 48a, 24h
|
|
ADDI64 r254, r254, 72d
|
|
JALA r0, r31, 0a
|
|
optional:
|
|
ADDI64 r254, r254, -16d
|
|
LI8 r13, 1b
|
|
ST r13, r254, 0a, 1h
|
|
LI64 r13, 10d
|
|
ST r13, r254, 8a, 8h
|
|
LD r1, r254, 0a, 16h
|
|
ADDI64 r254, r254, 16d
|
|
JALA r0, r31, 0a
|
|
optionala:
|
|
ADDI64 r254, r254, -128d
|
|
ST r31, r254, 64a, 64h
|
|
CP r38, r1
|
|
ADDI64 r33, r254, 48d
|
|
JAL r31, r0, :some_index
|
|
ST r1, r33, 0a, 16h
|
|
LD r34, r254, 48a, 1h
|
|
ANDI r34, r34, 255d
|
|
JNE r34, r0, :0
|
|
UN
|
|
0: ADDI64 r34, r254, 8d
|
|
ADDI64 r35, r254, 16d
|
|
LRA r36, r0, :heap
|
|
LD r33, r254, 56a, 8h
|
|
ST r34, r254, 16a, 8h
|
|
LI64 r37, 1d
|
|
ADD64 r33, r33, r36
|
|
ST r37, r254, 24a, 8h
|
|
LD r33, r33, 0a, 1h
|
|
ADDI64 r32, r254, 0d
|
|
ST r32, r254, 32a, 8h
|
|
ANDI r33, r33, 255d
|
|
ST r0, r254, 0a, 8h
|
|
ST r0, r254, 8a, 8h
|
|
ST r33, r254, 40a, 8h
|
|
BMC r35, r38, 32h
|
|
LD r31, r254, 64a, 64h
|
|
ADDI64 r254, r254, 128d
|
|
JALA r0, r31, 0a
|
|
some_index:
|
|
ADDI64 r254, r254, -16d
|
|
LI8 r13, 1b
|
|
ST r13, r254, 0a, 1h
|
|
ST r0, r254, 8a, 8h
|
|
LD r1, r254, 0a, 16h
|
|
ADDI64 r254, r254, 16d
|
|
JALA r0, r31, 0a
|
|
code size: 769
|
|
ret: 100
|
|
status: Ok(())
|