diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2018-01-24 15:42:30 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2018-01-24 15:42:30 +0000 |
commit | 0976f13bee1b7d472723ce5f37930b54f119feae (patch) | |
tree | 5750a7c7ba9a6ce92bfc6d2b8830ca438d3e3586 /gcc | |
parent | 018e9cb5e6050e03944f426e300a1227cbbba3e2 (diff) | |
download | gcc-0976f13bee1b7d472723ce5f37930b54f119feae.zip gcc-0976f13bee1b7d472723ce5f37930b54f119feae.tar.gz gcc-0976f13bee1b7d472723ce5f37930b54f119feae.tar.bz2 |
rs6000.md (*call_indirect_nonlocal_sysv<mode>): Simplify the clause that sets the length attribute.
2018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
Simplify the clause that sets the length attribute.
(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
(*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
clause that sets the length attribute.
(*sibcall_value_nonlocal_sysv<mode>): Likewise.
From-SVN: r257019
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 74 |
2 files changed, 33 insertions, 50 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8c2f57..5920d36 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> + + * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): + Simplify the clause that sets the length attribute. + (*call_value_indirect_nonlocal_sysv<mode>): Likewise. + (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the + clause that sets the length attribute. + (*sibcall_value_nonlocal_sysv<mode>): Likewise. + 2018-01-24 Tom de Vries <tom@codesourcery.com> PR target/83589 diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 3707566..b668dc2 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -10482,17 +10482,11 @@ (set (attr "length") (cond [(and (eq (symbol_ref "which_alternative") (const_int 0)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) - (const_string "4") - (and (eq (symbol_ref "which_alternative") (const_int 0)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") (const_int 0))) (const_string "8") - (eq (symbol_ref "which_alternative") (const_int 1)) - (const_string "4") (and (eq (symbol_ref "which_alternative") (const_int 2)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) + (ne (symbol_ref "rs6000_speculate_indirect_jumps") + (const_int 0))) (const_string "8") (and (eq (symbol_ref "which_alternative") (const_int 2)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") @@ -10595,17 +10589,11 @@ (set (attr "length") (cond [(and (eq (symbol_ref "which_alternative") (const_int 0)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) - (const_string "4") - (and (eq (symbol_ref "which_alternative") (const_int 0)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") (const_int 0))) (const_string "8") - (eq (symbol_ref "which_alternative") (const_int 1)) - (const_string "4") (and (eq (symbol_ref "which_alternative") (const_int 2)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) + (ne (symbol_ref "rs6000_speculate_indirect_jumps") + (const_int 0))) (const_string "8") (and (eq (symbol_ref "which_alternative") (const_int 2)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") @@ -10992,47 +10980,40 @@ "(DEFAULT_ABI == ABI_DARWIN || DEFAULT_ABI == ABI_V4) && (INTVAL (operands[2]) & CALL_LONG) == 0" - "* { if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) - output_asm_insn (\"crxor 6,6,6\", operands); + output_asm_insn ("crxor 6,6,6", operands); else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS) - output_asm_insn (\"creqv 6,6,6\", operands); + output_asm_insn ("creqv 6,6,6", operands); if (which_alternative >= 2) { if (rs6000_speculate_indirect_jumps) - return \"b%T0\"; + return "b%T0"; else /* Can use CR0 since it is volatile across sibcalls. */ - return \"crset 2\;beq%T0-\;b $\"; + return "crset 2\;beq%T0-\;b $"; } else if (DEFAULT_ABI == ABI_V4 && flag_pic) { gcc_assert (!TARGET_SECURE_PLT); - return \"b %z0@plt\"; + return "b %z0@plt"; } else - return \"b %z0\"; -}" + return "b %z0"; +} [(set_attr "type" "branch") (set (attr "length") - (cond [(eq (symbol_ref "which_alternative") (const_int 0)) - (const_string "4") - (eq (symbol_ref "which_alternative") (const_int 1)) + (cond [(eq (symbol_ref "which_alternative") (const_int 1)) (const_string "8") (and (eq (symbol_ref "which_alternative") (const_int 2)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) - (const_string "4") - (and (eq (symbol_ref "which_alternative") (const_int 2)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") (const_int 0))) (const_string "12") (and (eq (symbol_ref "which_alternative") (const_int 3)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) + (ne (symbol_ref "rs6000_speculate_indirect_jumps") + (const_int 0))) (const_string "8") (and (eq (symbol_ref "which_alternative") (const_int 3)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") @@ -11049,47 +11030,40 @@ "(DEFAULT_ABI == ABI_DARWIN || DEFAULT_ABI == ABI_V4) && (INTVAL (operands[3]) & CALL_LONG) == 0" - "* { if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) - output_asm_insn (\"crxor 6,6,6\", operands); + output_asm_insn ("crxor 6,6,6", operands); else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS) - output_asm_insn (\"creqv 6,6,6\", operands); + output_asm_insn ("creqv 6,6,6", operands); if (which_alternative >= 2) { if (rs6000_speculate_indirect_jumps) - return \"b%T1\"; + return "b%T1"; else /* Can use CR0 since it is volatile across sibcalls. */ - return \"crset 2\;beq%T1-\;b $\"; + return "crset 2\;beq%T1-\;b $"; } else if (DEFAULT_ABI == ABI_V4 && flag_pic) { gcc_assert (!TARGET_SECURE_PLT); - return \"b %z1@plt\"; + return "b %z1@plt"; } else - return \"b %z1\"; -}" + return "b %z1"; +} [(set_attr "type" "branch") (set (attr "length") - (cond [(eq (symbol_ref "which_alternative") (const_int 0)) - (const_string "4") - (eq (symbol_ref "which_alternative") (const_int 1)) + (cond [(eq (symbol_ref "which_alternative") (const_int 1)) (const_string "8") (and (eq (symbol_ref "which_alternative") (const_int 2)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) - (const_string "4") - (and (eq (symbol_ref "which_alternative") (const_int 2)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") (const_int 0))) (const_string "12") (and (eq (symbol_ref "which_alternative") (const_int 3)) - (eq (symbol_ref "rs6000_speculate_indirect_jumps") - (const_int 1))) + (ne (symbol_ref "rs6000_speculate_indirect_jumps") + (const_int 0))) (const_string "8") (and (eq (symbol_ref "which_alternative") (const_int 3)) (eq (symbol_ref "rs6000_speculate_indirect_jumps") |