mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-22 10:24:26 +00:00
Change the informal convention of DBG_VALUE so that we can express a
register-indirect address with an offset of 0. It used to be that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain registers use the combination reg, reg. rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180816 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1115,7 +1115,8 @@ static bool isDbgValueInDefinedReg(const MachineInstr *MI) {
|
||||
assert(MI->isDebugValue() && "Invalid DBG_VALUE machine instruction!");
|
||||
return MI->getNumOperands() == 3 &&
|
||||
MI->getOperand(0).isReg() && MI->getOperand(0).getReg() &&
|
||||
MI->getOperand(1).isImm() && MI->getOperand(1).getImm() == 0;
|
||||
(MI->getOperand(1).isImm() ||
|
||||
(MI->getOperand(1).isReg() && MI->getOperand(1).getReg() == 0U));
|
||||
}
|
||||
|
||||
// Get .debug_loc entry for the instruction range starting at MI.
|
||||
@ -1129,12 +1130,11 @@ static DotDebugLocEntry getDebugLocEntry(AsmPrinter *Asm,
|
||||
MachineLocation MLoc = Asm->getDebugValueLocation(MI);
|
||||
return DotDebugLocEntry(FLabel, SLabel, MLoc, Var);
|
||||
}
|
||||
if (MI->getOperand(0).isReg() && MI->getOperand(1).isImm()) {
|
||||
if (MI->getOperand(0).isReg()) {
|
||||
MachineLocation MLoc;
|
||||
// TODO: Currently an offset of 0 in a DBG_VALUE means
|
||||
// we need to generate a direct register value.
|
||||
// There is no way to specify an indirect value with offset 0.
|
||||
if (MI->getOperand(1).getImm() == 0)
|
||||
// If the second operand is an immediate, this is a
|
||||
// register-indirect address.
|
||||
if (!MI->getOperand(1).isImm())
|
||||
MLoc.set(MI->getOperand(0).getReg());
|
||||
else
|
||||
MLoc.set(MI->getOperand(0).getReg(), MI->getOperand(1).getImm());
|
||||
|
Reference in New Issue
Block a user