There's no need for each branch-over-branch to choose its own label format.
gcc: * config/aarch64/aarch64.cc (aarch64_gen_far_branch): Drop dest argument; always use "L". * config/aarch64/aarch64.md: Update to match. * config/aarch64/aarch64-protos.h: Update to match. --- gcc/config/aarch64/aarch64-protos.h | 2 +- gcc/config/aarch64/aarch64.cc | 4 ++-- gcc/config/aarch64/aarch64.md | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index 36bd88593ff..d1b82e5a5b9 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -1013,7 +1013,7 @@ unsigned aarch64_debugger_regno (unsigned); unsigned aarch64_trampoline_size (void); void aarch64_asm_output_labelref (FILE *, const char *); void aarch64_cpu_cpp_builtins (cpp_reader *); -const char * aarch64_gen_far_branch (rtx *, int, const char *, const char *); +const char * aarch64_gen_far_branch (rtx *, int, const char *); const char * aarch64_output_probe_stack_range (rtx, rtx); const char * aarch64_output_probe_sve_stack_clash (rtx, rtx, rtx, rtx); void aarch64_err_no_fpadvsimd (machine_mode); diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index d30c9c75e42..d9bd939c234 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -1338,13 +1338,13 @@ strip_offset_and_salt (rtx addr, poly_int64 *offset) /* Generate code to enable conditional branches in functions over 1 MiB. */ const char * -aarch64_gen_far_branch (rtx * operands, int pos_label, const char * dest, +aarch64_gen_far_branch (rtx * operands, int pos_label, const char * branch_format) { rtx_code_label * tmp_label = gen_label_rtx (); char label_buf[256]; char buffer[128]; - ASM_GENERATE_INTERNAL_LABEL (label_buf, dest, + ASM_GENERATE_INTERNAL_LABEL (label_buf, "L", CODE_LABEL_NUMBER (tmp_label)); const char *label_ptr = targetm.strip_name_encoding (label_buf); rtx dest_label = operands[pos_label]; diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index dc2be815ede..b3e76158688 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -812,7 +812,7 @@ "!aarch64_track_speculation" { if (get_attr_length (insn) == 8) - return aarch64_gen_far_branch (operands, 1, "Lcb", "<inv_cb>\\t%<w>0, "); + return aarch64_gen_far_branch (operands, 1, "<inv_cb>\\t%<w>0, "); else return "<cbz>\\t%<w>0, %l1"; } @@ -845,7 +845,7 @@ if (get_attr_length (insn) == 8) { if (get_attr_far_branch (insn) == FAR_BRANCH_YES) - return aarch64_gen_far_branch (operands, 1, "Ltb", + return aarch64_gen_far_branch (operands, 1, "<inv_tb>\\t%<w>0, <sizem1>, "); else { @@ -892,7 +892,7 @@ { return (get_attr_far_branch (insn) == FAR_BRANCH_NO) ? "cb<INT_CMP:cmp_op>\\t%<w>0, %<w>1, %l2" - : aarch64_gen_far_branch (operands, 2, "L", + : aarch64_gen_far_branch (operands, 2, "cb<INT_CMP:inv_cmp_op>\\t%<w>0, %<w>1, "); } [(set_attr "type" "branch") @@ -923,7 +923,7 @@ { return (get_attr_far_branch (insn) == FAR_BRANCH_NO) ? "cb<SHORT:cmpbr_suffix><INT_CMP:cmp_op>\\t%<w>0, %<w>1, %l2" - : aarch64_gen_far_branch (operands, 2, "L", + : aarch64_gen_far_branch (operands, 2, "cb<SHORT:cmpbr_suffix><INT_CMP:inv_cmp_op>\\t%<w>0, %<w>1, "); } [(set_attr "type" "branch") @@ -956,7 +956,7 @@ but the "." is required for SVE conditions. */ bool use_dot_p = GET_MODE (operands[1]) == CC_NZCmode; if (get_attr_length (insn) == 8) - return aarch64_gen_far_branch (operands, 2, "Lbcond", + return aarch64_gen_far_branch (operands, 2, use_dot_p ? "b.%M0\\t" : "b%M0\\t"); else return use_dot_p ? "b.%m0\\t%l2" : "b%m0\\t%l2"; @@ -1050,7 +1050,7 @@ if (get_attr_length (insn) == 8) { if (get_attr_far_branch (insn) == 1) - return aarch64_gen_far_branch (operands, 2, "Ltb", + return aarch64_gen_far_branch (operands, 2, "<inv_tb>\\t%<ALLI:w>0, %1, "); else { -- 2.43.0