summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-23 02:07:21 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-23 02:07:21 +0000
commit3bc7190ab9a148eda59853b9fc75927bca34e1b2 (patch)
tree7eef9dddc59e81b19c96b68790976e3ecc85b3bd
parent60385b369f3fa72a59c3f14a557d0a3b60a1207d (diff)
downloadgcc-3bc7190ab9a148eda59853b9fc75927bca34e1b2.tar.gz
2002-02-23 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use gpc_reg_operand constraint. 2002-02-23 Alan Modra <amodra@bigpond.net.au> * config/rs6000/rs6000.c (num_insns_constant): Fix formatting. Simplify comparison of `low'. (add_operand): Fix formatting. (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P. (rs6000_stack_info): Remove redundant test setting push_p. (output_toc): Fix formatting. * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use cc_reg_not_cr0_operand constraint. (booldi3, boolcdi3 splitters): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49983 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/config/rs6000/rs6000.c21
-rw-r--r--gcc/config/rs6000/rs6000.md16
3 files changed, 35 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cba1adce789..218f8116e83 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2002-02-23 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
+ gpc_reg_operand constraint.
+
+2002-02-23 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
+ Simplify comparison of `low'.
+ (add_operand): Fix formatting.
+ (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
+ (rs6000_stack_info): Remove redundant test setting push_p.
+ (output_toc): Fix formatting.
+ * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
+ cc_reg_not_cr0_operand constraint.
+ (booldi3, boolcdi3 splitters): Same.
+
2002-02-23 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/altivec.h: Add extra level of parentheses on casts.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 9698b1f0680..863126ef72f 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1080,7 +1080,7 @@ num_insns_constant (op, mode)
REAL_VALUE_FROM_CONST_DOUBLE (rv, op);
REAL_VALUE_TO_TARGET_SINGLE (rv, l);
- return num_insns_constant_wide ((HOST_WIDE_INT)l);
+ return num_insns_constant_wide ((HOST_WIDE_INT) l);
}
else if (GET_CODE (op) == CONST_DOUBLE)
@@ -1110,10 +1110,10 @@ num_insns_constant (op, mode)
else
{
- if (high == 0 && (low & 0x80000000) == 0)
+ if (high == 0 && low >= 0)
return num_insns_constant_wide (low);
- else if (high == -1 && (low & 0x80000000) != 0)
+ else if (high == -1 && low < 0)
return num_insns_constant_wide (low);
else if (mask64_operand (op, mode))
@@ -1312,8 +1312,8 @@ add_operand (op, mode)
enum machine_mode mode;
{
if (GET_CODE (op) == CONST_INT)
- return (CONST_OK_FOR_LETTER_P (INTVAL(op), 'I')
- || CONST_OK_FOR_LETTER_P (INTVAL(op), 'L'));
+ return (CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')
+ || CONST_OK_FOR_LETTER_P (INTVAL (op), 'L'));
return gpc_reg_operand (op, mode);
}
@@ -1326,8 +1326,8 @@ non_add_cint_operand (op, mode)
enum machine_mode mode ATTRIBUTE_UNUSED;
{
return (GET_CODE (op) == CONST_INT
- && (unsigned HOST_WIDE_INT) (INTVAL (op) + 0x8000) >= 0x10000
- && ! CONST_OK_FOR_LETTER_P (INTVAL (op), 'L'));
+ && !CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')
+ && !CONST_OK_FOR_LETTER_P (INTVAL (op), 'L'));
}
/* Return 1 if the operand is a non-special register or a constant that
@@ -7878,8 +7878,7 @@ rs6000_stack_info ()
info_ptr->push_p = 1;
else if (abi == ABI_V4)
- info_ptr->push_p = (total_raw_size > info_ptr->fixed_size
- || info_ptr->calls_p);
+ info_ptr->push_p = total_raw_size > info_ptr->fixed_size;
else
info_ptr->push_p = (frame_pointer_needed
@@ -10210,7 +10209,7 @@ output_toc (file, x, labelno, mode)
if (TARGET_MINIMAL_TOC)
fputs (DOUBLE_INT_ASM_OP, file);
else
- fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long)high, (long)low);
+ fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long) high, (long) low);
fprintf (file, "0x%lx%08lx\n", (long) high, (long) low);
return;
}
@@ -10222,7 +10221,7 @@ output_toc (file, x, labelno, mode)
fputs ("\t.long ", file);
else
fprintf (file, "\t.tc ID_%lx_%lx[TC],",
- (long)high, (long)low);
+ (long) high, (long) low);
fprintf (file, "0x%lx,0x%lx\n", (long) high, (long) low);
}
else
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index d83538ba625..c83a4dbf683 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -2982,7 +2982,7 @@
(set_attr "length" "4,8")])
(define_split
- [(set (match_operand:CC 3 "cc_reg_operand" "")
+ [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
(compare:CC (match_operator:SI 4 "boolean_operator"
[(match_operand:SI 1 "gpc_reg_operand" "")
(match_operand:SI 2 "gpc_reg_operand" "")])
@@ -3070,7 +3070,7 @@
(set_attr "length" "4,8")])
(define_split
- [(set (match_operand:CC 3 "cc_reg_operand" "")
+ [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
(compare:CC (match_operator:SI 4 "boolean_operator"
[(not:SI (match_operand:SI 1 "gpc_reg_operand" ""))
(match_operand:SI 2 "gpc_reg_operand" "")])
@@ -3136,7 +3136,7 @@
(set_attr "length" "4,8")])
(define_split
- [(set (match_operand:CC 3 "cc_reg_operand" "")
+ [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
(compare:CC (match_operator:SI 4 "boolean_operator"
[(not:SI (match_operand:SI 1 "gpc_reg_operand" ""))
(not:SI (match_operand:SI 2 "gpc_reg_operand" ""))])
@@ -7295,7 +7295,7 @@
(set_attr "length" "4,8")])
(define_split
- [(set (match_operand:CC 3 "cc_reg_operand" "")
+ [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
(compare:CC (match_operator:DI 4 "boolean_operator"
[(match_operand:DI 1 "gpc_reg_operand" "")
(match_operand:DI 2 "gpc_reg_operand" "")])
@@ -7395,7 +7395,7 @@
(set_attr "length" "4,8")])
(define_split
- [(set (match_operand:CC 3 "cc_reg_operand" "")
+ [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
(compare:CC (match_operator:DI 4 "boolean_operator"
[(not:DI (match_operand:DI 1 "gpc_reg_operand" ""))
(match_operand:DI 2 "gpc_reg_operand" "")])
@@ -7461,7 +7461,7 @@
(set_attr "length" "4,8")])
(define_split
- [(set (match_operand:CC 3 "cc_reg_operand" "")
+ [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
(compare:CC (match_operator:DI 4 "boolean_operator"
[(not:DI (match_operand:DI 1 "gpc_reg_operand" ""))
(not:DI (match_operand:DI 2 "gpc_reg_operand" ""))])
@@ -9544,7 +9544,7 @@
;; Code to initialize the TOC register...
(define_insn "load_toc_aix_si"
- [(parallel [(set (match_operand:SI 0 "register_operand" "=r")
+ [(parallel [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(unspec:SI [(const_int 0)] 7))
(use (reg:SI 2))])]
"DEFAULT_ABI == ABI_AIX && TARGET_32BIT"
@@ -9559,7 +9559,7 @@
[(set_attr "type" "load")])
(define_insn "load_toc_aix_di"
- [(parallel [(set (match_operand:DI 0 "register_operand" "=r")
+ [(parallel [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
(unspec:DI [(const_int 0)] 7))
(use (reg:DI 2))])]
"DEFAULT_ABI == ABI_AIX && TARGET_64BIT"