47 lines
2.3 KiB
TableGen
47 lines
2.3 KiB
TableGen
let Namespace = "Foot" in {
|
|
|
|
class FootRegister<bits<16> enc, string name>
|
|
: Register<name> {
|
|
let HWEncoding = enc;
|
|
let SubRegs = [];
|
|
let CoveredBySubRegs = false;
|
|
}
|
|
|
|
def R0 : FootRegister<0, "r0">, DwarfRegNum<[0, 0, 0]>;
|
|
def R1 : FootRegister<1, "r1">, DwarfRegNum<[1, 1, 1]>;
|
|
def R2 : FootRegister<2, "r2">, DwarfRegNum<[2, 2, 2]>;
|
|
def R3 : FootRegister<3, "r3">, DwarfRegNum<[3, 3, 3]>;
|
|
def R4 : FootRegister<4, "r4">, DwarfRegNum<[4, 4, 4]>;
|
|
def R5 : FootRegister<5, "r5">, DwarfRegNum<[5, 5, 5]>;
|
|
def R6 : FootRegister<6, "r6">, DwarfRegNum<[6, 6, 6]>;
|
|
def R7 : FootRegister<7, "r7">, DwarfRegNum<[7, 7, 7]>;
|
|
def R8 : FootRegister<8, "r8">, DwarfRegNum<[8, 8, 8]>;
|
|
def R9 : FootRegister<9, "r9">, DwarfRegNum<[9, 9, 9]>;
|
|
def R10 : FootRegister<10, "r10">, DwarfRegNum<[10, 10, 10]>;
|
|
def R11 : FootRegister<11, "r11">, DwarfRegNum<[11, 11, 11]>;
|
|
def R12 : FootRegister<12, "r12">, DwarfRegNum<[12, 12, 12]>;
|
|
def R13 : FootRegister<13, "r13">, DwarfRegNum<[13, 13, 13]>;
|
|
def R14 : FootRegister<14, "r14">, DwarfRegNum<[14, 14, 14]>;
|
|
def R15 : FootRegister<15, "r15">, DwarfRegNum<[15, 15, 15]>;
|
|
def R16 : FootRegister<16, "r16">, DwarfRegNum<[16, 16, 16]>;
|
|
def R17 : FootRegister<17, "r17">, DwarfRegNum<[17, 17, 17]>;
|
|
def R18 : FootRegister<18, "r18">, DwarfRegNum<[18, 18, 18]>;
|
|
def R19 : FootRegister<19, "r19">, DwarfRegNum<[19, 19, 19]>;
|
|
def R20 : FootRegister<20, "r20">, DwarfRegNum<[20, 20, 20]>;
|
|
def R21 : FootRegister<21, "r21">, DwarfRegNum<[21, 21, 21]>;
|
|
def R22 : FootRegister<22, "r22">, DwarfRegNum<[22, 22, 22]>;
|
|
def R23 : FootRegister<23, "r23">, DwarfRegNum<[23, 23, 23]>;
|
|
def R24 : FootRegister<24, "r24">, DwarfRegNum<[24, 24, 24]>;
|
|
def R25 : FootRegister<25, "r25">, DwarfRegNum<[25, 25, 25]>;
|
|
def R26 : FootRegister<26, "r26">, DwarfRegNum<[26, 26, 26]>; /* used by compiler */
|
|
def R27 : FootRegister<27, "r27">, DwarfRegNum<[27, 27, 27]>; /* used by compiler */
|
|
def RSP : FootRegister<28, "rsp">, DwarfRegNum<[28, 28, 28]>; /* stack pointer */
|
|
def RRA : FootRegister<29, "rra">, DwarfRegNum<[29, 29, 29]>; /* return address */
|
|
def RLC : FootRegister<30, "rlc">, DwarfRegNum<[30, 30, 30]>; /* loop counter */
|
|
def RPC : FootRegister<31, "rpc">, DwarfRegNum<[31, 31, 31]>; /* program counter */
|
|
|
|
def GP32 : RegisterClass<"Foot", [i32], 32, (sequence "R%u", 0, 27)>;
|
|
def PC32 : RegisterClass<"Foot", [i32], 32, (add RPC)>;
|
|
|
|
}
|