mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-10 02:25:47 +00:00
Restore real bit lengths on PPC register numbers
As suggested by Bill Schmidt (in reviewing r178067), use the real register number bit lengths (which is self-documenting, and prevents using illegal numbers), and set only the relevant bits in HWEncoding (which defaults to 0). No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178077 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -26,8 +26,8 @@ class PPCReg<string n> : Register<n> {
|
|||||||
// We identify all our registers with a 5-bit ID, for consistency's sake.
|
// We identify all our registers with a 5-bit ID, for consistency's sake.
|
||||||
|
|
||||||
// GPR - One of the 32 32-bit general-purpose registers
|
// GPR - One of the 32 32-bit general-purpose registers
|
||||||
class GPR<bits<16> num, string n> : PPCReg<n> {
|
class GPR<bits<5> num, string n> : PPCReg<n> {
|
||||||
let HWEncoding = num;
|
let HWEncoding{4-0} = num;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GP8 - One of the 32 64-bit general-purpose registers
|
// GP8 - One of the 32 64-bit general-purpose registers
|
||||||
@@ -38,29 +38,29 @@ class GP8<GPR SubReg, string n> : PPCReg<n> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SPR - One of the 32-bit special-purpose registers
|
// SPR - One of the 32-bit special-purpose registers
|
||||||
class SPR<bits<16> num, string n> : PPCReg<n> {
|
class SPR<bits<10> num, string n> : PPCReg<n> {
|
||||||
let HWEncoding = num;
|
let HWEncoding{9-0} = num;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FPR - One of the 32 64-bit floating-point registers
|
// FPR - One of the 32 64-bit floating-point registers
|
||||||
class FPR<bits<16> num, string n> : PPCReg<n> {
|
class FPR<bits<5> num, string n> : PPCReg<n> {
|
||||||
let HWEncoding = num;
|
let HWEncoding{4-0} = num;
|
||||||
}
|
}
|
||||||
|
|
||||||
// VR - One of the 32 128-bit vector registers
|
// VR - One of the 32 128-bit vector registers
|
||||||
class VR<bits<16> num, string n> : PPCReg<n> {
|
class VR<bits<5> num, string n> : PPCReg<n> {
|
||||||
let HWEncoding = num;
|
let HWEncoding{4-0} = num;
|
||||||
}
|
}
|
||||||
|
|
||||||
// CR - One of the 8 4-bit condition registers
|
// CR - One of the 8 4-bit condition registers
|
||||||
class CR<bits<16> num, string n, list<Register> subregs> : PPCReg<n> {
|
class CR<bits<3> num, string n, list<Register> subregs> : PPCReg<n> {
|
||||||
let HWEncoding = num;
|
let HWEncoding{2-0} = num;
|
||||||
let SubRegs = subregs;
|
let SubRegs = subregs;
|
||||||
}
|
}
|
||||||
|
|
||||||
// CRBIT - One of the 32 1-bit condition register fields
|
// CRBIT - One of the 32 1-bit condition register fields
|
||||||
class CRBIT<bits<16> num, string n> : PPCReg<n> {
|
class CRBIT<bits<5> num, string n> : PPCReg<n> {
|
||||||
let HWEncoding = num;
|
let HWEncoding{4-0} = num;
|
||||||
}
|
}
|
||||||
|
|
||||||
// General-purpose registers
|
// General-purpose registers
|
||||||
|
Reference in New Issue
Block a user