mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
Add target a target hook to get the register number used by the compact unwind
encoding for the registers it knows about. Return -1 if it can't handle that register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134202 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
15e96be3c7
commit
5cd2791513
@ -106,6 +106,10 @@ public:
|
||||
int getSEHRegNum(unsigned RegNum) const {
|
||||
return TRI->getSEHRegNum(RegNum);
|
||||
}
|
||||
|
||||
int getCompactUnwindRegNum(unsigned RegNum) const {
|
||||
return TRI->getCompactUnwindRegNum(RegNum);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -720,6 +720,12 @@ public:
|
||||
virtual int getSEHRegNum(unsigned i) const {
|
||||
return i;
|
||||
}
|
||||
|
||||
/// getCompactUnwindRegNum - This function maps the register to the number for
|
||||
/// compact unwind encoding. Return -1 if the register isn't valid.
|
||||
virtual int getCompactUnwindRegNum(unsigned) const {
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -105,6 +105,21 @@ int X86RegisterInfo::getLLVMRegNum(unsigned DwarfRegNo, bool isEH) const {
|
||||
return X86GenRegisterInfo::getLLVMRegNumFull(DwarfRegNo, Flavour);
|
||||
}
|
||||
|
||||
/// getCompactUnwindRegNum - This function maps the register to the number for
|
||||
/// compact unwind encoding. Return -1 if the register isn't valid.
|
||||
int X86RegisterInfo::getCompactUnwindRegNum(unsigned RegNum) const {
|
||||
switch (RegNum) {
|
||||
case X86::EBX: case X86::RBX: return 1;
|
||||
case X86::ECX: case X86::RCX: return 2;
|
||||
case X86::EDX: case X86::RDX: return 3;
|
||||
case X86::EDI: case X86::RDI: return 4;
|
||||
case X86::ESI: case X86::RSI: return 5;
|
||||
case X86::EBP: case X86::RBP: return 6;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
X86RegisterInfo::getSEHRegNum(unsigned i) const {
|
||||
int reg = getX86RegNum(i);
|
||||
|
@ -81,6 +81,10 @@ public:
|
||||
// FIXME: This should be tablegen'd like getDwarfRegNum is
|
||||
int getSEHRegNum(unsigned i) const;
|
||||
|
||||
/// getCompactUnwindRegNum - This function maps the register to the number for
|
||||
/// compact unwind encoding. Return -1 if the register isn't valid.
|
||||
int getCompactUnwindRegNum(unsigned RegNum) const;
|
||||
|
||||
/// Code Generation virtual methods...
|
||||
///
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user