diff options
author | Dale Johannesen <dalej@apple.com> | 2010-03-10 22:13:47 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2010-03-10 22:13:47 +0000 |
commit | bfdf7f38523bd38ae0538861a2bfd8bdc46e5c33 (patch) | |
tree | 93ff5897edbba90849c2d923a1a23eabb835689f /lib/Target | |
parent | 6663670359428183427b7601f3eb9916c08e6068 (diff) | |
download | external_llvm-bfdf7f38523bd38ae0538861a2bfd8bdc46e5c33.zip external_llvm-bfdf7f38523bd38ae0538861a2bfd8bdc46e5c33.tar.gz external_llvm-bfdf7f38523bd38ae0538861a2bfd8bdc46e5c33.tar.bz2 |
Progress towards shepherding debug info through SelectionDAG.
No functional effect yet. This is still evolving and should
not be viewed as final.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 0cfcbb6..1416a6d 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -8521,6 +8521,21 @@ X86TargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI, F->DeleteMachineInstr(MI); // The pseudo instruction is gone now. return BB; } + // DBG_VALUE. Only the frame index case is done here. + case X86::DBG_VALUE: { + const TargetInstrInfo *TII = getTargetMachine().getInstrInfo(); + DebugLoc DL = MI->getDebugLoc(); + X86AddressMode AM; + MachineFunction *F = BB->getParent(); + AM.BaseType = X86AddressMode::FrameIndexBase; + AM.Base.FrameIndex = MI->getOperand(0).getImm(); + addFullAddress(BuildMI(BB, DL, TII->get(X86::DBG_VALUE)), AM). + addImm(MI->getOperand(1).getImm()). + addMetadata(MI->getOperand(2).getMetadata()); + F->DeleteMachineInstr(MI); // Remove pseudo. + return BB; + } + // String/text processing lowering. case X86::PCMPISTRM128REG: return EmitPCMP(MI, BB, 3, false /* in-mem */); |