diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-02-18 00:42:39 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-02-18 00:42:39 +0000 |
commit | 4093985cee3cd75e358b544a580d9e9ddc2efec8 (patch) | |
tree | c97c9d6689169b1c042a218b207ecb047a186b00 /gcc/config | |
parent | 6cf291df7deca3d056ef246a01cc92109e988f43 (diff) | |
download | gcc-4093985cee3cd75e358b544a580d9e9ddc2efec8.zip gcc-4093985cee3cd75e358b544a580d9e9ddc2efec8.tar.gz gcc-4093985cee3cd75e358b544a580d9e9ddc2efec8.tar.bz2 |
h8300-protos.h: Update the prototype of fix_bit_operand().
* config/h8300/h8300-protos.h: Update the prototype of
fix_bit_operand().
* config/h8300/h8300.c (fix_bit_operand): Remove the second
argument "what".
* config/h8300/h8300.md: Update all callers.
From-SVN: r78006
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/h8300/h8300-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.c | 7 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 6 |
3 files changed, 8 insertions, 7 deletions
diff --git a/gcc/config/h8300/h8300-protos.h b/gcc/config/h8300/h8300-protos.h index 2595a3c..a311362 100644 --- a/gcc/config/h8300/h8300-protos.h +++ b/gcc/config/h8300/h8300-protos.h @@ -48,7 +48,7 @@ extern int compute_logical_op_cc (enum machine_mode, rtx *); extern void expand_a_shift (enum machine_mode, int, rtx[]); extern int h8300_shift_needs_scratch_p (int, enum machine_mode); extern int expand_a_rotate (enum rtx_code, rtx[]); -extern int fix_bit_operand (rtx *, int, enum rtx_code); +extern int fix_bit_operand (rtx *, enum rtx_code); extern int h8300_adjust_insn_length (rtx, int); extern void split_adds_subs (enum machine_mode, rtx[]); diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 33dc46e..756f8a1 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -4070,14 +4070,15 @@ compute_a_rotate_length (rtx *operands) operating insn. */ int -fix_bit_operand (rtx *operands, int what, enum rtx_code code) +fix_bit_operand (rtx *operands, enum rtx_code code) { /* The bit_operand predicate accepts any memory during RTL generation, but only 'U' memory afterwards, so if this is a MEM operand, we must force it to be valid for 'U' by reloading the address. */ - if ((what == 0 && single_zero_operand (operands[2], QImode)) - || (what == 1 && single_one_operand (operands[2], QImode))) + if (code == AND + ? single_zero_operand (operands[2], QImode) + : single_one_operand (operands[2], QImode)) { /* OK to have a memory dest. */ if (GET_CODE (operands[0]) == MEM diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index f18f007..4cb396d 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1202,7 +1202,7 @@ "" " { - if (fix_bit_operand (operands, 0, AND)) + if (fix_bit_operand (operands, AND)) DONE; }") @@ -1298,7 +1298,7 @@ "" " { - if (fix_bit_operand (operands, 1, IOR)) + if (fix_bit_operand (operands, IOR)) DONE; }") @@ -1339,7 +1339,7 @@ "" " { - if (fix_bit_operand (operands, 1, XOR)) + if (fix_bit_operand (operands, XOR)) DONE; }") |