OSDN Git Service

* config/s390/s390.c (s390_decompose_address): Do not treat virtual
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 31 Jan 2004 17:01:24 +0000 (17:01 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 31 Jan 2004 17:01:24 +0000 (17:01 +0000)
registers as pointers.
* config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77036 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/s390/s390.c
gcc/config/s390/s390.md

index 5997244..5da71cd 100644 (file)
@@ -1,3 +1,9 @@
+2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_decompose_address): Do not treat virtual
+       registers as pointers.
+       * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
+
 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
 
        * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
index 3531d87..4c2a9e4 100644 (file)
@@ -2081,8 +2081,6 @@ s390_decompose_address (register rtx addr, struct s390_address *out)
              && frame_pointer_needed
              && REGNO (base) == HARD_FRAME_POINTER_REGNUM)
          || REGNO (base) == ARG_POINTER_REGNUM
-         || (REGNO (base) >= FIRST_VIRTUAL_REGISTER
-             && REGNO (base) <= LAST_VIRTUAL_REGISTER)
           || (flag_pic
               && REGNO (base) == PIC_OFFSET_TABLE_REGNUM))
         pointer = base_ptr = TRUE;
@@ -2108,8 +2106,6 @@ s390_decompose_address (register rtx addr, struct s390_address *out)
              && frame_pointer_needed
              && REGNO (indx) == HARD_FRAME_POINTER_REGNUM)
          || REGNO (indx) == ARG_POINTER_REGNUM
-         || (REGNO (indx) >= FIRST_VIRTUAL_REGISTER
-             && REGNO (indx) <= LAST_VIRTUAL_REGISTER)
           || (flag_pic
               && REGNO (indx) == PIC_OFFSET_TABLE_REGNUM))
         pointer = indx_ptr = TRUE;
index a8957c9..77537c7 100644 (file)
    && !reg_overlap_mentioned_p (operands[0], operands[2])
    && strict_memory_address_p (VOIDmode, gen_rtx_PLUS (SImode, operands[1], operands[2]))
    && preferred_la_operand_p (gen_rtx_PLUS (SImode, operands[1], operands[2]))"
-  [(set (match_dup 0) (plus:DI (match_dup 1) (match_dup 2)))]
+  [(set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]
   "")
 
 (define_insn "*la_31_and"