diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2017-11-03 16:44:29 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2017-11-03 16:44:29 +0100 |
commit | d04814543c93d33e52a33ba50cfc5f474ae7b0a3 (patch) | |
tree | 23cb7feec4c7a7b48944da3fcfb761e7fda8b1c2 | |
parent | e7a740068ed3cc5961101f07012314d940a97ae5 (diff) | |
download | gcc-d04814543c93d33e52a33ba50cfc5f474ae7b0a3.zip gcc-d04814543c93d33e52a33ba50cfc5f474ae7b0a3.tar.gz gcc-d04814543c93d33e52a33ba50cfc5f474ae7b0a3.tar.bz2 |
rs6000: Remove rs6000_emit_sISEL
Instead of calling rs6000_emit_sISEL, call rs6000_emit_int_cmove
directly, in the one place it is used.
* config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
(rs6000_emit_int_cmove): New declaration.
* config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
(rs6000_emit_sISEL): Delete.
(rs6000_emit_int_cmove): Make non-static.
* config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
instead of rs6000_emit_sISEL.
From-SVN: r254380
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 11 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 2 |
4 files changed, 13 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0a27e36..c8c1576 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete. + (rs6000_emit_int_cmove): New declaration. + * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration. + (rs6000_emit_sISEL): Delete. + (rs6000_emit_int_cmove): Make non-static. + * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove + instead of rs6000_emit_sISEL. + 2017-11-03 Jan Hubicka <hubicka@ucw.cz> * asan.c (create_cond_insert_point): Maintain profile. diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h index db0e692..721b906 100644 --- a/gcc/config/rs6000/rs6000-protos.h +++ b/gcc/config/rs6000/rs6000-protos.h @@ -124,7 +124,6 @@ extern void print_operand_address (FILE *, rtx); extern enum rtx_code rs6000_reverse_condition (machine_mode, enum rtx_code); extern rtx rs6000_emit_eqne (machine_mode, rtx, rtx, rtx); -extern void rs6000_emit_sISEL (machine_mode, rtx[]); extern void rs6000_emit_sCOND (machine_mode, rtx[]); extern void rs6000_emit_cbranch (machine_mode, rtx[]); extern char * output_cbranch (rtx, const char *, int, rtx_insn *); @@ -132,6 +131,7 @@ extern const char * output_probe_stack_range (rtx, rtx, rtx); extern void rs6000_emit_dot_insn (rtx dst, rtx src, int dot, rtx ccreg); extern bool rs6000_emit_set_const (rtx, rtx); extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx); +extern int rs6000_emit_int_cmove (rtx, rtx, rtx, rtx); extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx); extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx); extern void rs6000_split_signbit (rtx, rtx); diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 182dc30..0eabd5f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1357,7 +1357,6 @@ static void rs6000_common_init_builtins (void); static void paired_init_builtins (void); static rtx paired_expand_predicate_builtin (enum insn_code, tree, rtx); static void htm_init_builtins (void); -static int rs6000_emit_int_cmove (rtx, rtx, rtx, rtx); static rs6000_stack_t *rs6000_stack_info (void); static void is_altivec_return_reg (rtx, void *); int easy_vector_constant (rtx, machine_mode); @@ -22478,14 +22477,6 @@ rs6000_expand_float128_convert (rtx dest, rtx src, bool unsigned_p) } -/* Emit the RTL for an sISEL pattern. */ - -void -rs6000_emit_sISEL (machine_mode mode ATTRIBUTE_UNUSED, rtx operands[]) -{ - rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx); -} - /* Emit RTL that sets a register to zero if OP1 and OP2 are equal. SCRATCH can be used as that dest register. Return the dest register. */ @@ -23261,7 +23252,7 @@ rs6000_emit_cmove (rtx dest, rtx op, rtx true_cond, rtx false_cond) /* Same as above, but for ints (isel). */ -static int +int rs6000_emit_int_cmove (rtx dest, rtx op, rtx true_cond, rtx false_cond) { rtx condition_rtx, cr; diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 2ef028f..ed5ff39 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -11782,7 +11782,7 @@ { /* Use ISEL if the user asked for it. */ if (TARGET_ISEL) - rs6000_emit_sISEL (<MODE>mode, operands); + rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx); /* Expanding EQ and NE directly to some machine instructions does not help but does hurt combine. So don't. */ |