diff options
Diffstat (limited to 'gcc/config/aarch64/aarch64.cc')
| -rw-r--r-- | gcc/config/aarch64/aarch64.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 6dfdaa4fb9b..89097e23772 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -30822,6 +30822,18 @@ aarch64_indirect_call_asm (rtx addr) return ""; } +/* Generate assembly for AArch64 indirect branch instruction. ADDR is the + target address register. Returns any additional barrier instructions + needed for SLS (Straight Line Speculation) mitigation. */ + +const char * +aarch64_indirect_branch_asm (rtx addr) +{ + gcc_assert (REG_P (addr)); + output_asm_insn ("br\t%0", &addr); + return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); +} + /* Emit the assembly instruction to load the thread pointer into DEST. Select between different tpidr_elN registers depending on -mtp= setting. */ |
