pa.md (reload_indi, [...]): Scratch register should be a DImode register.
authorJeffrey A Law <law@cygnus.com>
Wed, 28 Jul 1999 19:21:34 +0000 (19:21 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 28 Jul 1999 19:21:34 +0000 (13:21 -0600)
        * pa.md (reload_indi, reload_outdi): Scratch register should
        be a DImode register.
        (call, call_value): Use "word_mode" instead of "SImode" as needed.

From-SVN: r28320

gcc/ChangeLog
gcc/config/pa/pa.md

index 23c08e62e96aa4b9d4ea6e6dcb26a3905c21d1a3..fdecb383deedbae052cbf6c3ff0ecd96c1a3608e 100644 (file)
@@ -1,3 +1,9 @@
+Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * pa.md (reload_indi, reload_outdi): Scratch register should
+       be a DImode register.
+       (call, call_value): Use "word_mode" instead of "SImode" as needed.
+
 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
        * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
index af209c3d6eec054245b4680e72cb36c38af99463..56777fd572ff69ae2c911816cfe6401d15388da2 100644 (file)
 (define_expand "reload_indi"
   [(set (match_operand:DI 0 "register_operand" "=f")
        (match_operand:DI 1 "non_hard_reg_operand" ""))
-   (clobber (match_operand:SI 2 "register_operand" "=&r"))]
+   (clobber (match_operand:DI 2 "register_operand" "=&r"))]
   ""
   "
 {
 (define_expand "reload_outdi"
   [(set (match_operand:DI 0 "general_operand" "")
        (match_operand:DI 1 "register_operand" "f"))
-   (clobber (match_operand:SI 2 "register_operand" "=&r"))]
+   (clobber (match_operand:DI 2 "register_operand" "=&r"))]
   ""
   "
 {
   [(set_attr "type" "move")
    (set_attr "length" "8")])
 
-;;; Experimental
-
 (define_insn ""
   [(set (match_operand:DI 0 "reg_or_nonsymb_mem_operand"
                          "=r,o,Q,r,r,r,f,f,*TR")
     call_insn = emit_call_insn (gen_call_internal_symref (op, operands[1]));
   else
     {
-      rtx tmpreg = gen_rtx_REG (SImode, 22);
-      emit_move_insn (tmpreg, force_reg (SImode, op));
+      rtx tmpreg = gen_rtx_REG (word_mode, 22);
+      emit_move_insn (tmpreg, force_reg (word_mode, op));
       call_insn = emit_call_insn (gen_call_internal_reg (operands[1]));
     }
 
          This will set regs_ever_live for the callee saved register we
         stored the PIC register in.  */
       emit_move_insn (pic_offset_table_rtx,
-                     gen_rtx_REG (SImode, PIC_OFFSET_TABLE_REGNUM_SAVED));
+                     gen_rtx_REG (word_mode, PIC_OFFSET_TABLE_REGNUM_SAVED));
       emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx));
 
       /* Gross.  We have to keep the scheduler from moving the restore
   rtx call_insn;
 
   if (TARGET_PORTABLE_RUNTIME)
-    op = force_reg (SImode, XEXP (operands[1], 0));
+    op = force_reg (word_mode, XEXP (operands[1], 0));
   else
     op = XEXP (operands[1], 0);
 
                                                                operands[2]));
   else
     {
-      rtx tmpreg = gen_rtx_REG (SImode, 22);
-      emit_move_insn (tmpreg, force_reg (SImode, op));
+      rtx tmpreg = gen_rtx_REG (word_mode, 22);
+      emit_move_insn (tmpreg, force_reg (word_mode, op));
       call_insn = emit_call_insn (gen_call_value_internal_reg (operands[0],
                                                               operands[2]));
     }
          This will set regs_ever_live for the callee saved register we
         stored the PIC register in.  */
       emit_move_insn (pic_offset_table_rtx,
-                     gen_rtx_REG (SImode, PIC_OFFSET_TABLE_REGNUM_SAVED));
+                     gen_rtx_REG (word_mode, PIC_OFFSET_TABLE_REGNUM_SAVED));
       emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx));
 
       /* Gross.  We have to keep the scheduler from moving the restore