mcize uses of PrintRelDirective and eliminate it.

llvm-svn: 98107
This commit is contained in:
Chris Lattner 2010-03-10 00:09:21 +00:00
parent 1df0cf40ea
commit caea64b098
3 changed files with 9 additions and 21 deletions

View File

@ -886,13 +886,11 @@ void DwarfException::EmitExceptionTable() {
I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {
const GlobalVariable *GV = *I;
if (GV) {
Asm->OutStreamer.AddComment("TypeInfo");
Asm->OutStreamer.AddComment("TypeInfo");
if (GV)
EmitReference(GV, TTypeEncoding);
} else {
PrintRelDirective(TTypeEncoding);
O << "0x0\n";
}
else
Asm->OutStreamer.EmitIntValue(0, SizeOfEncodedValue(TTypeEncoding), 0);
}
// Emit the Exception Specifications.

View File

@ -77,14 +77,6 @@ unsigned DwarfPrinter::SizeOfEncodedValue(unsigned Encoding) const {
return 0;
}
void DwarfPrinter::PrintRelDirective(unsigned Encoding) const {
unsigned Size = SizeOfEncodedValue(Encoding);
assert((Size == 4 || Size == 8) && "Do not support other types or rels!");
O << (Size == 4 ?
MAI->getData32bitsDirective() : MAI->getData64bitsDirective());
}
static const char *DecodeDWARFEncoding(unsigned Encoding) {
switch (Encoding) {
case dwarf::DW_EH_PE_absptr: return "absptr";
@ -215,16 +207,16 @@ void DwarfPrinter::EmitReference(const MCSymbol *Sym, bool IsPCRelative,
void DwarfPrinter::EmitReference(const MCSymbol *Sym, unsigned Encoding) const {
const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
PrintRelDirective(Encoding);
O << *TLOF.getSymbolForDwarfReference(Sym, Asm->MMI, Encoding);
const MCExpr *Exp = TLOF.getSymbolForDwarfReference(Sym, Asm->MMI, Encoding);
Asm->OutStreamer.EmitValue(Exp, SizeOfEncodedValue(Encoding), /*addrspace*/0);
}
void DwarfPrinter::EmitReference(const GlobalValue *GV, unsigned Encoding)const{
const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
PrintRelDirective(Encoding);
O << *TLOF.getSymbolForDwarfGlobalReference(GV, Asm->Mang,
Asm->MMI, Encoding);
const MCExpr *Exp =
TLOF.getSymbolForDwarfGlobalReference(GV, Asm->Mang, Asm->MMI, Encoding);
Asm->OutStreamer.EmitValue(Exp, SizeOfEncodedValue(Encoding), /*addrspace*/0);
}
/// EmitDifference - Emit the difference between two labels. If this assembler

View File

@ -88,8 +88,6 @@ public:
/// SizeOfEncodedValue - Return the size of the encoding in bytes.
unsigned SizeOfEncodedValue(unsigned Encoding) const;
void PrintRelDirective(unsigned Encoding) const;
/// EmitEncodingByte - Emit a .byte 42 directive that corresponds to an
/// encoding. If verbose assembly output is enabled, we output comments
/// describing the encoding. Desc is a string saying what the encoding is