binutils-gdb/ld/testsuite/ld-loongarch-elf/medium-call.s
mengqinggang 784d5a936a LoongArch: Add call36 and tail36 pseudo instructions for medium code model
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;
2023-12-18 18:36:29 +08:00

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