OSDN Git Service

* i386.c: Commit forgotten hunk in previous patch.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Mar 2001 15:31:51 +0000 (15:31 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Mar 2001 15:31:51 +0000 (15:31 +0000)
(regclass_map): Add extended registers.
(dbx_register_map): Add missing frame register.

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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md

index 7513089..07ce6e5 100644 (file)
@@ -1,3 +1,9 @@
+Mon Mar 12 16:27:56 CET 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c: Commit forgotten hunk in previous patch.
+       (regclass_map): Add extended registers.
+       (dbx_register_map): Add missing frame register.
+
 Mon Mar 12 15:41:08 CET 2001  Jan Hubicka  <jh@suse.cz>
 
        * i386.md (all XFmode patterns except swapxf): Disable for 64bit.
index 85aeca0..70fd21d 100644 (file)
@@ -339,18 +339,24 @@ enum reg_class const regclass_map[FIRST_PSEUDO_REGISTER] =
   SSE_REGS, SSE_REGS, SSE_REGS, SSE_REGS, SSE_REGS, SSE_REGS,
   SSE_REGS, SSE_REGS,
   MMX_REGS, MMX_REGS, MMX_REGS, MMX_REGS, MMX_REGS, MMX_REGS,
-  MMX_REGS, MMX_REGS
+  MMX_REGS, MMX_REGS,
+  NON_Q_REGS, NON_Q_REGS, NON_Q_REGS, NON_Q_REGS,
+  NON_Q_REGS, NON_Q_REGS, NON_Q_REGS, NON_Q_REGS,
+  SSE_REGS, SSE_REGS, SSE_REGS, SSE_REGS, SSE_REGS, SSE_REGS,
+  SSE_REGS, SSE_REGS,
 };
 
-/* The "default" register map.  */
+/* The "default" register map used in 32bit mode.  */
 
 int const dbx_register_map[FIRST_PSEUDO_REGISTER] =
 {
   0, 2, 1, 3, 6, 7, 4, 5,              /* general regs */
   12, 13, 14, 15, 16, 17, 18, 19,      /* fp regs */
-  -1, -1, -1, -1,                      /* arg, flags, fpsr, dir */
+  -1, -1, -1, -1, -1,                  /* arg, flags, fpsr, dir, frame */
   21, 22, 23, 24, 25, 26, 27, 28,      /* SSE */
   29, 30, 31, 32, 33, 34, 35, 36,       /* MMX */
+  -1, -1, -1, -1, -1, -1, -1, -1,      /* extended integer registers */
+  -1, -1, -1, -1, -1, -1, -1, -1,      /* extended SSE registers */
 };
 
 /* The "default" register map used in 64bit mode.  */
index 735f472..19f91d2 100644 (file)
   [(set_attr "type" "fmov,multi")
    (set_attr "mode" "DF")])
 
-(define_insn "*truncxfdf2_2"
+(define_insn "*trunctfdf2_2"
   [(set (match_operand:DF 0 "memory_operand" "=m")
        (float_truncate:DF
          (match_operand:TF 1 "register_operand" "f")))]
 ;; than 31.
 
 (define_expand "ashldi3"
-  [(parallel [(set (match_operand:DI 0 "register_operand" "=r")
-                  (ashift:DI (match_operand:DI 1 "register_operand" "0")
-                             (match_operand:QI 2 "nonmemory_operand" "Jc")))
+  [(parallel [(set (match_operand:DI 0 "register_operand" "")
+                  (ashift:DI (match_operand:DI 1 "register_operand" "")
+                             (match_operand:QI 2 "nonmemory_operand" "")))
              (clobber (reg:CC 17))])]
   ""
   "
 {
-  if (TARGET_CMOVE && ! immediate_operand (operands[2], QImode))
+  if (!TARGET_64BIT && TARGET_CMOVE && ! immediate_operand (operands[2], QImode))
     {
       emit_insn (gen_ashldi3_1 (operands[0], operands[1], operands[2]));
       DONE;
     }
+  ix86_expand_binary_operator (ASHIFT, DImode, operands); DONE;
 }")
 
 (define_insn "ashldi3_1"
       return \"add{l}\\t{%0, %0|%0, %0}\";
 
     case TYPE_LEA:
-      if (GET_CODE (operands[2]) != CONST_INT
-         || (unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 3)
-       abort ();
-      operands[1] = gen_rtx_MULT (SImode, operands[1],
-                                 GEN_INT (1 << INTVAL (operands[2])));
-      return \"lea{l}\\t{%a1, %0|%0, %a1}\";
+      return \"#\";
 
     default:
       if (REG_P (operands[2]))
   "sar{w}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "sar{w}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "sar{b}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "sar{b}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "shr{w}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "shr{b}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "rol{w}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "rol{b}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "ror{w}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])
 
   "ror{b}\\t%0"
   [(set_attr "type" "ishift")
    (set (attr "length") 
-     (if_then_else (match_operand:SI 0 "register_operand" "") 
+     (if_then_else (match_operand 0 "register_operand" "") 
        (const_string "2")
        (const_string "*")))])