
For tail36, it is necessary to explicitly indicate the temporary register. Therefore, the compiler and users will know that the tail will use a register. call36 func pcalau18i $ra, %call36(func) jirl $ra, $ra, 0; tail36 $t0, func pcalau18i $t0, %call36(func) jirl $zero, $t0, 0;
9 lines
268 B
ArmAsm
9 lines
268 B
ArmAsm
.L1:
|
|
# call .L1, r1(ra) temp register, r1(ra) return register.
|
|
call36 .L1
|
|
pcaddu18i $r1, %call36(.L1)
|
|
jirl $r1, $r1, 0
|
|
# tail .L1, r12(t0) temp register, r0(zero) return register.
|
|
tail36 $r12, .L1
|
|
pcaddu18i $r12, %call36(.L1)
|
|
jirl $r0, $r12, 0
|