From: Colin LeMahieu Date: Wed, 17 Dec 2014 20:35:11 +0000 (+0000) Subject: [Hexagon] Reconfiguring register alternate names. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=648facfff42607fba31b36dfb67232ebd2d5b679;p=llvm [Hexagon] Reconfiguring register alternate names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224455 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Hexagon/HexagonRegisterInfo.td b/lib/Target/Hexagon/HexagonRegisterInfo.td index a7646dc7cc3..98b620028c4 100644 --- a/lib/Target/Hexagon/HexagonRegisterInfo.td +++ b/lib/Target/Hexagon/HexagonRegisterInfo.td @@ -13,8 +13,10 @@ let Namespace = "Hexagon" in { - class HexagonReg num, string n> : Register { + class HexagonReg num, string n, list alt = [], + list alias = []> : Register { field bits<5> Num; + let Aliases = alias; let HWEncoding{4-0} = num; } @@ -26,7 +28,7 @@ let Namespace = "Hexagon" in { // Registers are identified with 5-bit ID numbers. // Ri - 32-bit integer registers. - class Ri num, string n> : HexagonReg { + class Ri num, string n, list alt = []> : HexagonReg { let Num = num; } @@ -53,23 +55,17 @@ let Namespace = "Hexagon" in { let Num = num; } - // Rj - aliased integer registers - class Rj: HexagonReg { - let Num = R.Num; - let Aliases = [R]; - } - def subreg_loreg : SubRegIndex<32>; def subreg_hireg : SubRegIndex<32, 32>; // Integer registers. - foreach I = 0-31 in { - def R#I : Ri, DwarfRegNum<[I]>; + foreach i = 0-28 in { + def R#i : Ri, DwarfRegNum<[i]>; } - def SP : Rj<"sp", R29>, DwarfRegNum<[29]>; - def FP : Rj<"fp", R30>, DwarfRegNum<[30]>; - def LR : Rj<"lr", R31>, DwarfRegNum<[31]>; + def R29 : Ri<29, "r29", ["sp"]>, DwarfRegNum<[29]>; + def R30 : Ri<30, "r30", ["fp"]>, DwarfRegNum<[30]>; + def R31 : Ri<31, "r31", ["lr"]>, DwarfRegNum<[31]>; // Aliases of the R* registers used to hold 64-bit int values (doubles). let SubRegIndices = [subreg_loreg, subreg_hireg], CoveredBySubRegs = 1 in {