X86: Call ulldiv and ftol2 on Windows instead of their libgcc eqivilents.
[oota-llvm.git] / lib / Target / PIC16 / PIC16RegisterInfo.td
index 21cc3e5810856966c6e1a27c83cd2dd2acc61b8b..2959d912ec32fd4be406ea9ae574b1eb19604690 100644 (file)
 //  Declarations that describe the PIC16 register file
 //===----------------------------------------------------------------------===//
 
-// We have banks of 32 registers each.
 class PIC16Reg<string n> : Register<n> {
-  field bits<5> Num;
   let Namespace = "PIC16";
 }
 
-// PIC16 CPU Registers
-class PIC16GPRReg<bits<5> num, string n> : PIC16Reg<n> {
-  let Num = num;
-}
-
-// CPU GPR Registers
-def FSR0 : PIC16GPRReg< 0, "FSR0">, DwarfRegNum<[0]>;
-def FSR1 : PIC16GPRReg< 1, "FSR1">, DwarfRegNum<[1]>;
-
-// CPU Registers Class
-def PTRRegs : RegisterClass<"PIC16", [i16], 8, 
-  [FSR0, FSR1]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    PTRRegsClass::iterator
-    PTRRegsClass::allocation_order_end(const MachineFunction &MF) const {
-      return end();
-    }
-  }];
-}
-
-def WREG : PIC16GPRReg< 0, "WREG">, DwarfRegNum<[0]>;
+// PIC16 Registers.
+def W   : PIC16Reg<"W">;
+def FSR0   : PIC16Reg<"FSR0">;
+def FSR1   : PIC16Reg<"FSR1">;
+def BS     : PIC16Reg<"BS">;
+def PCLATH : PIC16Reg<"PCLATH">;
 
-// CPU Registers Class
-def CPURegs : RegisterClass<"PIC16", [i8], 8, 
-  [WREG]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    CPURegsClass::iterator
-    CPURegsClass::allocation_order_end(const MachineFunction &MF) const {
-      return end();
-    }
-  }];
-}
-
-def STATUSREG : PIC16GPRReg<2, "STATUS">, DwarfRegNum<[0]>;
-
-// STATUS Registers Class
-def STATUSRegs : RegisterClass<"PIC16", [i8], 8, 
-  [STATUSREG]>;
+def STATUS : PIC16Reg<"STATUS">;
 
+// PIC16 Register classes.
+def GPR     : RegisterClass<"PIC16", [i8],  8, [W]>;
+def FSR16   : RegisterClass<"PIC16", [i16], 8, [FSR0, FSR1]>;
+def BSR     : RegisterClass<"PIC16", [i8],  8, [BS]>;
+def PCLATHR : RegisterClass<"PIC16", [i8],  8, [PCLATH]>;
+def STATUSR : RegisterClass<"PIC16", [i8],  8, [STATUS]>;
 
-// Dummy stack pointer.
-def STKPTR : PIC16GPRReg< 0, "SP">, DwarfRegNum<[0]>;
-
-// CPU Registers Class
-def STKRegs : RegisterClass<"PIC16", [i8], 8, 
-  [STKPTR]>
-{
-  let MethodProtos = [{
-    iterator allocation_order_end(const MachineFunction &MF) const;
-  }];
-  let MethodBodies = [{
-    STKRegsClass::iterator
-    STKRegsClass::allocation_order_end(const MachineFunction &MF) const {
-      return end();
-    }
-  }];
-}