zpu: wip eke out some simple instructions for load/store/add
[llvm/zpu.git] / lib / Target / ZPU / ZPURegisterInfo.td
blob9b2ceb6ff70742b16138680934fd8d29f4064812
1 //===- ZPURegisterInfo.td - ZPU Register defs ------------*- tablegen -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
10 //===----------------------------------------------------------------------===//
11 //  Declarations that describe the ZPU register file
12 //===----------------------------------------------------------------------===//
14 // We have the program counter and stack pointer.
15 class ZPUReg<string n> : Register<n> {
16   field bits<1> Num;
17   let Namespace = "ZPU";
20 //===----------------------------------------------------------------------===//
21 //  Registers
22 //===----------------------------------------------------------------------===//
24 let Namespace = "ZPU" in {
26   // General Purpose Registers
27   def PC       : ZPUReg<"pc">,   DwarfRegNum<[0]>;
28   def SP       : ZPUReg<"sp">,   DwarfRegNum<[1]>;
29   def FP       : ZPUReg<"fp">,   DwarfRegNum<[2]>; // Frame pointer
30   def RETVAL   : ZPUReg<"retval">,   DwarfRegNum<[3]>; // return value
31   // These are just a few registers to satisfy the register allocator.
32   // We'll convert them to stack slots immediately after register allocation
33   def R0       : ZPUReg<"r0">,   DwarfRegNum<[4]>; 
34   def R1       : ZPUReg<"r1">,   DwarfRegNum<[5]>;
35   def R2       : ZPUReg<"r2">,   DwarfRegNum<[6]>;
36   def R3       : ZPUReg<"r3">,   DwarfRegNum<[7]>;
39 //===----------------------------------------------------------------------===//
40 // Register Classes
41 //===----------------------------------------------------------------------===//
43 def CPURegs : RegisterClass<"ZPU", [i32], 32, 
44   // Program counter and stack pointer is all there is
45   [PC, SP,
46   R0, R1, R2, R3,
47   FP, RETVAL
48   ]>;