diff options
| author | Dale Johannesen <dalej@apple.com> | 2010-01-15 01:54:55 +0000 | 
|---|---|---|
| committer | Dale Johannesen <dalej@apple.com> | 2010-01-15 01:54:55 +0000 | 
| commit | 0e7e55da1d1817281fe01820ae8836ca536aab3e (patch) | |
| tree | f6bd8b8ec6597d11ec6112c2fc95f079e5884eab /llvm/lib/Target/X86/X86RegisterInfo.cpp | |
| parent | 881ba0bb92e023391c479f189ac2f533a7a28c82 (diff) | |
| download | bcm5719-llvm-0e7e55da1d1817281fe01820ae8836ca536aab3e.tar.gz bcm5719-llvm-0e7e55da1d1817281fe01820ae8836ca536aab3e.zip | |
Lower FrameIndex operand of DEBUG_VALUE (specially) and
print it as a comment on X86.
llvm-svn: 93499
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index d96aafda603..9bd96af6c75 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -591,6 +591,15 @@ X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,    int FrameIndex = MI.getOperand(i).getIndex();    unsigned BasePtr; +  // DEBUG_VALUE has a special representation, and is only robust enough to +  // represent SP(or BP) +- offset addressing modes.  We rewrite the +  // FrameIndex to be a constant; implicitly positive constants are relative +  // to ESP and negative ones to EBP. +  if (MI.getOpcode()==TargetInstrInfo::DEBUG_VALUE) { +    MI.getOperand(i).ChangeToImmediate(getFrameIndexOffset(MF, FrameIndex)); +    return 0; +  } +    if (needsStackRealignment(MF))      BasePtr = (FrameIndex < 0 ? FramePtr : StackPtr);    else | 

