llvm-project/llvm/lib/Target/Foot/FootRegisterInfo.td
2026-03-31 13:37:16 -04:00

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)>;
}