Skip to content

Commit aa29435

Browse files
committed
[RISCV] Reuse RISCVRegWithSubRegs class to shorten some code in RISCVRegisterInfo.td. NFC
1 parent 8e9f62e commit aa29435

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

llvm/lib/Target/RISCV/RISCVRegisterInfo.td

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,33 @@ class RISCVReg<bits<5> Enc, string n, list<string> alt = []> : Register<n> {
1616
let AltNames = alt;
1717
}
1818

19+
class RISCVRegWithSubRegs<bits<5> Enc, string n, list<Register> subregs,
20+
list<string> alt = []>
21+
: RegisterWithSubRegs<n, subregs> {
22+
let HWEncoding{4-0} = Enc;
23+
let AltNames = alt;
24+
}
25+
1926
class RISCVReg16<bits<5> Enc, string n, list<string> alt = []> : Register<n> {
2027
let HWEncoding{4-0} = Enc;
2128
let AltNames = alt;
2229
}
2330

2431
def sub_16 : SubRegIndex<16>;
25-
class RISCVReg32<RISCVReg16 subreg> : Register<""> {
26-
let HWEncoding{4-0} = subreg.HWEncoding{4-0};
27-
let SubRegs = [subreg];
32+
class RISCVReg32<RISCVReg16 subreg>
33+
: RISCVRegWithSubRegs<subreg.HWEncoding{4-0}, subreg.AsmName, [subreg],
34+
subreg.AltNames> {
2835
let SubRegIndices = [sub_16];
29-
let AsmName = subreg.AsmName;
30-
let AltNames = subreg.AltNames;
3136
}
3237

3338
// Because RISCVReg64 register have AsmName and AltNames that alias with their
3439
// 16/32-bit sub-register, RISCVAsmParser will need to coerce a register number
3540
// from a RISCVReg16/RISCVReg32 to the equivalent RISCVReg64 when appropriate.
3641
def sub_32 : SubRegIndex<32>;
37-
class RISCVReg64<RISCVReg32 subreg> : Register<""> {
38-
let HWEncoding{4-0} = subreg.HWEncoding{4-0};
39-
let SubRegs = [subreg];
42+
class RISCVReg64<RISCVReg32 subreg>
43+
: RISCVRegWithSubRegs<subreg.HWEncoding{4-0}, subreg.AsmName, [subreg],
44+
subreg.AltNames> {
4045
let SubRegIndices = [sub_32];
41-
let AsmName = subreg.AsmName;
42-
let AltNames = subreg.AltNames;
43-
}
44-
45-
class RISCVRegWithSubRegs<bits<5> Enc, string n, list<Register> subregs,
46-
list<string> alt = []>
47-
: RegisterWithSubRegs<n, subregs> {
48-
let HWEncoding{4-0} = Enc;
49-
let AltNames = alt;
5046
}
5147

5248
def ABIRegAltName : RegAltNameIndex;

0 commit comments

Comments
 (0)