aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-14 02:33:54 +0000
committerChris Lattner <sabre@nondot.org>2010-03-14 02:33:54 +0000
commit7561d480953e0a2faa4af9be0a00b1180097c4bd (patch)
treeaaf49b3891269bd8c61d7a71b2f8d84e00466aac /lib/Target
parent18589de9b1b8c157dea602653042e486128dd9e4 (diff)
downloadexternal_llvm-7561d480953e0a2faa4af9be0a00b1180097c4bd.tar.gz
external_llvm-7561d480953e0a2faa4af9be0a00b1180097c4bd.tar.bz2
external_llvm-7561d480953e0a2faa4af9be0a00b1180097c4bd.zip
change the LabelSDNode to be EHLabelSDNode and make it hold
an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/ARM/ARMCodeEmitter.cpp4
-rw-r--r--lib/Target/PowerPC/PPCCodeEmitter.cpp4
-rw-r--r--lib/Target/X86/X86CodeEmitter.cpp5
3 files changed, 10 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMCodeEmitter.cpp b/lib/Target/ARM/ARMCodeEmitter.cpp
index f7e5e4ed80..e3b1dda39c 100644
--- a/lib/Target/ARM/ARMCodeEmitter.cpp
+++ b/lib/Target/ARM/ARMCodeEmitter.cpp
@@ -564,9 +564,11 @@ void ARMCodeEmitter::emitPseudoInstruction(const MachineInstr &MI) {
break;
}
case TargetOpcode::DBG_LABEL:
- case TargetOpcode::EH_LABEL:
MCE.emitLabel(MMI->getLabelSym(MI.getOperand(0).getImm()));
break;
+ case TargetOpcode::EH_LABEL:
+ MCE.emitLabel(MI.getOperand(0).getMCSymbol());
+ break;
case TargetOpcode::IMPLICIT_DEF:
case TargetOpcode::KILL:
// Do nothing.
diff --git a/lib/Target/PowerPC/PPCCodeEmitter.cpp b/lib/Target/PowerPC/PPCCodeEmitter.cpp
index 3d8daf7586..6c4cf800a5 100644
--- a/lib/Target/PowerPC/PPCCodeEmitter.cpp
+++ b/lib/Target/PowerPC/PPCCodeEmitter.cpp
@@ -111,9 +111,11 @@ void PPCCodeEmitter::emitBasicBlock(MachineBasicBlock &MBB) {
MCE.emitWordBE(getBinaryCodeForInstr(MI));
break;
case TargetOpcode::DBG_LABEL:
- case TargetOpcode::EH_LABEL:
MCE.emitLabel(MMI->getLabelSym(MI.getOperand(0).getImm()));
break;
+ case TargetOpcode::EH_LABEL:
+ MCE.emitLabel(MI.getOperand(0).getMCSymbol());
+ break;
case TargetOpcode::IMPLICIT_DEF:
case TargetOpcode::KILL:
break; // pseudo opcode, no side effects
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp
index 2267752a5b..d5ecd3b72e 100644
--- a/lib/Target/X86/X86CodeEmitter.cpp
+++ b/lib/Target/X86/X86CodeEmitter.cpp
@@ -603,10 +603,13 @@ void Emitter<CodeEmitter>::emitInstruction(const MachineInstr &MI,
llvm_report_error("JIT does not support inline asm!");
break;
case TargetOpcode::DBG_LABEL:
- case TargetOpcode::EH_LABEL:
case TargetOpcode::GC_LABEL:
MCE.emitLabel(MMI->getLabelSym(MI.getOperand(0).getImm()));
break;
+ case TargetOpcode::EH_LABEL:
+ MCE.emitLabel(MI.getOperand(0).getMCSymbol());
+ break;
+
case TargetOpcode::IMPLICIT_DEF:
case TargetOpcode::KILL:
case X86::FP_REG_KILL: