mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-19 19:31:50 +00:00
Add RIP to GR64_NOREX. This fixed a MachineVerifier error when RIP
is used in an operand which requires GR64_NOREX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83307 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e2d0af4d78
commit
21313bc62f
@ -555,7 +555,7 @@ def GR32_NOREX : RegisterClass<"X86", [i32], 32,
|
||||
}
|
||||
// GR64_NOREX - GR64 registers which do not require a REX prefix.
|
||||
def GR64_NOREX : RegisterClass<"X86", [i64], 64,
|
||||
[RAX, RCX, RDX, RSI, RDI, RBX, RBP, RSP]> {
|
||||
[RAX, RCX, RDX, RSI, RDI, RBX, RBP, RSP, RIP]> {
|
||||
let SubRegClassList = [GR8_NOREX, GR8_NOREX, GR16_NOREX, GR32_NOREX];
|
||||
let MethodProtos = [{
|
||||
iterator allocation_order_end(const MachineFunction &MF) const;
|
||||
@ -567,11 +567,11 @@ def GR64_NOREX : RegisterClass<"X86", [i64], 64,
|
||||
const TargetRegisterInfo *RI = TM.getRegisterInfo();
|
||||
// Does the function dedicate RBP to being a frame ptr?
|
||||
if (RI->hasFP(MF))
|
||||
// If so, don't allocate RSP or RBP.
|
||||
return end() - 2;
|
||||
// If so, don't allocate RIP, RSP or RBP.
|
||||
return end() - 3;
|
||||
else
|
||||
// If not, just don't allocate RSP.
|
||||
return end() - 1;
|
||||
// If not, just don't allocate RIP or RSP.
|
||||
return end() - 2;
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user