Improves test for jumps

This commit is contained in:
2025-11-14 08:52:41 +01:00
parent 6bbecc252e
commit f5d8c77d06
8 changed files with 333 additions and 75 deletions

View File

@@ -1,15 +1,55 @@
# expected: 000001BC, 000002BC
# expected: 000001BC, 000003BC, 000002BC, 000003BC, 000000AC
.text
_start:
add x1, x0, 0x00B
li x5, 0x0
# case1: not equal -> should jump -> write 0x1BC
add x1, x0, 0x00A
add x2, x0, 0x00B
bne x1, x2, finish # Should not jump
bne x1, x2, case1_target
add x31, x0, 0x3BC
case1_target:
add x31, x0, 0x1BC
add x1, x0, 0x1BA
back_label:
bne x5, x0, back_label_flagged
# fall-through
add x1, x0, 0x000
add x2, x0, 0x001
add x31, x0, 0x3BC
jal x0, back_label_cont
back_label_flagged:
add x5, x0, 0x0
jal x0, after_backward
back_label_cont:
# case2: equal -> should not jump -> write 0x2BC
add x1, x0, 0x1BC
add x2, x0, 0x1BC
bne x1, x2, finish # Should jump to finish
bne x1, x2, case2_target
add x31, x0, 0x2BC
case2_target:
add x31, x0, 0x3BC
finish:
add x31, x0, 0x2BC
# case3: zero vs non-zero -> should jump -> write 0x4BC
add x1, x0, 0x000
add x2, x0, 0x001
bne x1, x2, case3_target
add x31, x0, 0x5BC
case3_target:
# backward branch trigger
add x5, x0, 0x1
add x1, x0, 0x002
add x2, x0, 0x001
bne x1, x2, back_label
# same-reg: should not jump (since equal) -> write 0x0AC after fall-through
add x1, x0, 0x00A
add x2, x0, 0x00A
bne x1, x2, same_reg_target
add x31, x0, 0x0AC
same_reg_target:
add x31, x0, 0x6BC
after_backward:
add x31, x0, 0x0AC