mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-16 11:24:39 +00:00
Allow {e,r}bp as the target of {read,write}_register.
This patch allows the read_register and write_register intrinsics to read/write the RBP/EBP registers on X86 iff the targeted register is the frame pointer for the containing function. Differential Revision: http://reviews.llvm.org/D10977 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241827 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1932,7 +1932,8 @@ SDNode
|
||||
MDNodeSDNode *MD = dyn_cast<MDNodeSDNode>(Op->getOperand(1));
|
||||
const MDString *RegStr = dyn_cast<MDString>(MD->getMD()->getOperand(0));
|
||||
unsigned Reg =
|
||||
TLI->getRegisterByName(RegStr->getString().data(), Op->getValueType(0));
|
||||
TLI->getRegisterByName(RegStr->getString().data(), Op->getValueType(0),
|
||||
*CurDAG);
|
||||
SDValue New = CurDAG->getCopyFromReg(
|
||||
Op->getOperand(0), dl, Reg, Op->getValueType(0));
|
||||
New->setNodeId(-1);
|
||||
@@ -1945,7 +1946,8 @@ SDNode
|
||||
MDNodeSDNode *MD = dyn_cast<MDNodeSDNode>(Op->getOperand(1));
|
||||
const MDString *RegStr = dyn_cast<MDString>(MD->getMD()->getOperand(0));
|
||||
unsigned Reg = TLI->getRegisterByName(RegStr->getString().data(),
|
||||
Op->getOperand(2).getValueType());
|
||||
Op->getOperand(2).getValueType(),
|
||||
*CurDAG);
|
||||
SDValue New = CurDAG->getCopyToReg(
|
||||
Op->getOperand(0), dl, Reg, Op->getOperand(2));
|
||||
New->setNodeId(-1);
|
||||
|
Reference in New Issue
Block a user