From e72247f417055c24de8e8ceb755b02f03222718c Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Fri, 22 Feb 2002 21:07:21 -0500 Subject: [PATCH] [multiple changes] 2002-02-23 David Edelsohn * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use gpc_reg_operand constraint. 2002-02-23 Alan Modra * 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. From-SVN: r49983 --- gcc/ChangeLog | 17 +++++++++++++++++ gcc/config/rs6000/rs6000.c | 21 ++++++++++----------- gcc/config/rs6000/rs6000.md | 16 ++++++++-------- 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 + + * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use + gpc_reg_operand constraint. + +2002-02-23 Alan Modra + + * 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 * 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" -- 2.30.2