26 lines
421 B
ArmAsm
26 lines
421 B
ArmAsm
.global _start
|
|
_start:
|
|
# Set base value of a0 to 'test failed'
|
|
addi a0, zero, 1
|
|
|
|
# Construct value that ra should have in t0
|
|
auipc t0, 0
|
|
addi t0, t0, 12
|
|
# Jump and link
|
|
jal ra, fn0
|
|
ebreak
|
|
|
|
fnNeg:
|
|
# All good
|
|
addi a0, zero, 0
|
|
ebreak
|
|
|
|
fn0:
|
|
# Check ra value with our t0 construct
|
|
beq t0, ra, eq0
|
|
ebreak
|
|
|
|
eq0:
|
|
# Try to jump back to a negative offset
|
|
jal ra, fnNeg
|