Bye bye HACKTROCITY.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 22 Dec 2005 02:26:21 +0000 (02:26 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 22 Dec 2005 02:26:21 +0000 (02:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24935 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCRegisterInfo.td
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86RegisterInfo.td

index c8ac374c85dda50bd6eb4dcb4c75668db85c1a29..f34950054a5226a3d16d73e565a1905367082414 100644 (file)
@@ -132,14 +132,6 @@ def CTR : SPR<9, "ctr">;
 // VRsave register
 def VRSAVE: SPR<256, "VRsave">;
 
-// FIXME:
-// HACKTROCITY: define a flags reg class for things that need to take a flag.
-// this should really be handled by tablgen.
-def FLAG: SPR<1023, "Flag">;
-def FLAGRC : RegisterClass<"PPC", [FlagVT], 32, [FLAG]> {
-  let Size = 32;
-}
-
 /// Register classes
 // Allocate volatiles first
 // then nonvolatiles in reverse order since stmw/lmw save from rN to r31
index 0b0ed822e1ab027472fdf86ba2b896caeb46eb0f..8a9b810e4d9b9b7e4e32b438a46f6341e9ac345e 100644 (file)
@@ -38,7 +38,7 @@ def SDTX86RetFlag : SDTypeProfile<0, 2, [SDTCisVT<0, i16>,
 def SDTX86Fld     : SDTypeProfile<1, 2, [SDTCisFP<0>,
                                          SDTCisPtrTy<1>, SDTCisVT<2, OtherVT>]>;
 
-def SDTX86FpSet   : SDTypeProfile<0, 1, [SDTCisFP<0>]>;
+def SDTX86FpSet   : SDTypeProfile<1, 1, [SDTCisVT<0, FlagVT>, SDTCisFP<1>]>;
 
 def X86cmp     : SDNode<"X86ISD::CMP" ,     SDTX86CmpTest,  []>;
 def X86test    : SDNode<"X86ISD::TEST",     SDTX86CmpTest,  []>;
@@ -2257,7 +2257,8 @@ class FpI<dag ops, FPFormat fp, list<dag> pattern>
 def FpGETRESULT : FpI<(ops RFP:$dst), SpecialFP, // FPR = ST(0)
                       []>;  
 def FpSETRESULT : FpI<(ops RFP:$src), SpecialFP,
-                      [(X86fpset RFP:$src)]>, Imp<[], [ST0]>;  // ST(0) = FPR
+                      [(set FLAG, (X86fpset RFP:$src))]>,
+                       Imp<[], [ST0]>;  // ST(0) = FPR
 def FpMOV       : FpI<(ops RFP:$dst, RFP:$src), SpecialFP,
                       []>;   // f1 = fmov f2
 
index 0e43d2b87487217a5c5c19f54d956df308d7e247..06b9543e4951ca1fbe7197a5f7265d2d2389bdd5 100644 (file)
@@ -142,11 +142,6 @@ def RST : RegisterClass<"X86", [f64], 32,
   }];
 }
 
-// FIXME:
-// HACKTROCITY: define a flags reg class for things that need to take a flag.
-// this should really be handled by tablgen.
-let Namespace = "X86" in
-  def FLAG : Register<"FLAG">;
-def FLAGS_REGS : RegisterClass<"X86", [FlagVT], 32, [STATUS, FLAG]> {
+def FLAGS_REGS : RegisterClass<"X86", [FlagVT], 32, [STATUS]> {
     let Size = 32;
 }