aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/PowerPC/PPCRegisterInfo.td8
-rw-r--r--lib/Target/X86/X86InstrInfo.td5
-rw-r--r--lib/Target/X86/X86RegisterInfo.td7
3 files changed, 4 insertions, 16 deletions
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.td b/lib/Target/PowerPC/PPCRegisterInfo.td
index c8ac374c85..f34950054a 100644
--- a/lib/Target/PowerPC/PPCRegisterInfo.td
+++ b/lib/Target/PowerPC/PPCRegisterInfo.td
@@ -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
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
index 0b0ed822e1..8a9b810e4d 100644
--- a/lib/Target/X86/X86InstrInfo.td
+++ b/lib/Target/X86/X86InstrInfo.td
@@ -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
diff --git a/lib/Target/X86/X86RegisterInfo.td b/lib/Target/X86/X86RegisterInfo.td
index 0e43d2b874..06b9543e49 100644
--- a/lib/Target/X86/X86RegisterInfo.td
+++ b/lib/Target/X86/X86RegisterInfo.td
@@ -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;
}