Generate register class descriptors.

Add a mechanism for defining sub-classes of register classes.
This commit is contained in:
Jakob Stoklund Olesen
2017-01-20 11:27:56 -08:00
parent 58c36f71e9
commit 1d21422032
11 changed files with 152 additions and 39 deletions

View File

@@ -29,7 +29,9 @@ IntRegs = RegBank(
'General purpose registers',
units=16, prefix='r')
GPR = RegClass('GPR', IntRegs)
S = RegClass('S', FloatRegs, count=32)
D = RegClass('D', FloatRegs, width=2)
Q = RegClass('Q', FloatRegs, width=4)
GPR = RegClass(IntRegs)
S = RegClass(FloatRegs, count=32)
D = RegClass(FloatRegs, width=2)
Q = RegClass(FloatRegs, width=4)
RegClass.extract_names(globals())

View File

@@ -18,5 +18,7 @@ FloatRegs = RegBank(
'Floating point registers',
units=32, prefix='v')
GPR = RegClass('GPR', IntRegs)
FPR = RegClass('FPR', FloatRegs)
GPR = RegClass(IntRegs)
FPR = RegClass(FloatRegs)
RegClass.extract_names(globals())

View File

@@ -38,5 +38,8 @@ FloatRegs = RegBank(
'SSE floating point registers',
units=16, prefix='xmm')
GPR = RegClass('GPR', IntRegs)
FPR = RegClass('FPR', FloatRegs)
GPR = RegClass(IntRegs)
ABCD = GPR[0:4]
FPR = RegClass(FloatRegs)
RegClass.extract_names(globals())

View File

@@ -17,5 +17,7 @@ FloatRegs = RegBank(
'Floating point registers',
units=32, prefix='f')
GPR = RegClass('GPR', IntRegs)
FPR = RegClass('FPR', FloatRegs)
GPR = RegClass(IntRegs)
FPR = RegClass(FloatRegs)
RegClass.extract_names(globals())