mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 17:56:53 +00:00
Make EmitIntValue non virtual.
llvm-svn: 120271
This commit is contained in:
parent
fdbf55e614
commit
d5f118a011
@ -246,8 +246,7 @@ namespace llvm {
|
||||
|
||||
/// EmitIntValue - Special case of EmitValue that avoids the client having
|
||||
/// to pass in a MCExpr for constant integers.
|
||||
virtual void EmitIntValue(uint64_t Value, unsigned Size,
|
||||
unsigned AddrSpace = 0);
|
||||
void EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace = 0);
|
||||
|
||||
|
||||
virtual void EmitULEB128Value(const MCExpr *Value,
|
||||
|
@ -149,8 +149,6 @@ public:
|
||||
|
||||
virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace);
|
||||
|
||||
virtual void EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace);
|
||||
|
||||
virtual void EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace = 0);
|
||||
|
||||
virtual void EmitSLEB128Value(const MCExpr *Value, unsigned AddrSpace = 0);
|
||||
@ -496,9 +494,7 @@ void MCAsmStreamer::EmitBytes(StringRef Data, unsigned AddrSpace) {
|
||||
EmitEOL();
|
||||
}
|
||||
|
||||
/// EmitIntValue - Special case of EmitValue that avoids the client having
|
||||
/// to pass in a MCExpr for constant integers.
|
||||
void MCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size,
|
||||
void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size,
|
||||
unsigned AddrSpace) {
|
||||
assert(CurSection && "Cannot emit contents before setting section!");
|
||||
const char *Directive = 0;
|
||||
@ -511,33 +507,19 @@ void MCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size,
|
||||
Directive = MAI.getData64bitsDirective(AddrSpace);
|
||||
// If the target doesn't support 64-bit data, emit as two 32-bit halves.
|
||||
if (Directive) break;
|
||||
int64_t IntValue;
|
||||
if (!Value->EvaluateAsAbsolute(IntValue))
|
||||
report_fatal_error("Don't know how to emit this value.");
|
||||
if (isLittleEndian()) {
|
||||
EmitIntValue((uint32_t)(Value >> 0 ), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(Value >> 32), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 0 ), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 32), 4, AddrSpace);
|
||||
} else {
|
||||
EmitIntValue((uint32_t)(Value >> 32), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(Value >> 0 ), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 32), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 0 ), 4, AddrSpace);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
assert(Directive && "Invalid size for machine code value!");
|
||||
OS << Directive << truncateToSize(Value, Size);
|
||||
EmitEOL();
|
||||
}
|
||||
|
||||
void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size,
|
||||
unsigned AddrSpace) {
|
||||
assert(CurSection && "Cannot emit contents before setting section!");
|
||||
const char *Directive = 0;
|
||||
switch (Size) {
|
||||
default: break;
|
||||
case 1: Directive = MAI.getData8bitsDirective(AddrSpace); break;
|
||||
case 2: Directive = MAI.getData16bitsDirective(AddrSpace); break;
|
||||
case 4: Directive = MAI.getData32bitsDirective(AddrSpace); break;
|
||||
case 8: Directive = MAI.getData64bitsDirective(AddrSpace); break;
|
||||
}
|
||||
|
||||
assert(Directive && "Invalid size for machine code value!");
|
||||
OS << Directive << *Value;
|
||||
EmitEOL();
|
||||
|
@ -152,11 +152,6 @@ public:
|
||||
return Child->EmitValue(Value, Size, AddrSpace);
|
||||
}
|
||||
|
||||
virtual void EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace) {
|
||||
LogCall("EmitIntValue");
|
||||
return Child->EmitIntValue(Value, Size, AddrSpace);
|
||||
}
|
||||
|
||||
virtual void EmitULEB128Value(const MCExpr *Value,
|
||||
unsigned AddrSpace = 0) {
|
||||
LogCall("EmitULEB128Value");
|
||||
|
@ -144,7 +144,6 @@ public:
|
||||
virtual void EmitBytes(StringRef Data, unsigned AddrSpace);
|
||||
|
||||
virtual void EmitValue(const MCExpr *Value, unsigned Size,unsigned AddrSpace);
|
||||
virtual void EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace);
|
||||
virtual void EmitULEB128Value(const MCExpr *Value, unsigned AddrSpace = 0);
|
||||
virtual void EmitSLEB128Value(const MCExpr *Value, unsigned AddrSpace = 0);
|
||||
virtual void EmitGPRel32Value(const MCExpr *Value);
|
||||
@ -350,9 +349,7 @@ void PTXMCAsmStreamer::EmitBytes(StringRef Data, unsigned AddrSpace) {
|
||||
EmitEOL();
|
||||
}
|
||||
|
||||
/// EmitIntValue - Special case of EmitValue that avoids the client having
|
||||
/// to pass in a MCExpr for constant integers.
|
||||
void PTXMCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size,
|
||||
void PTXMCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size,
|
||||
unsigned AddrSpace) {
|
||||
assert(CurSection && "Cannot emit contents before setting section!");
|
||||
const char *Directive = 0;
|
||||
@ -365,33 +362,19 @@ void PTXMCAsmStreamer::EmitIntValue(uint64_t Value, unsigned Size,
|
||||
Directive = MAI.getData64bitsDirective(AddrSpace);
|
||||
// If the target doesn't support 64-bit data, emit as two 32-bit halves.
|
||||
if (Directive) break;
|
||||
int64_t IntValue;
|
||||
if (!Value->EvaluateAsAbsolute(IntValue))
|
||||
report_fatal_error("Don't know how to emit this value.");
|
||||
if (isLittleEndian()) {
|
||||
EmitIntValue((uint32_t)(Value >> 0 ), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(Value >> 32), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 0 ), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 32), 4, AddrSpace);
|
||||
} else {
|
||||
EmitIntValue((uint32_t)(Value >> 32), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(Value >> 0 ), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 32), 4, AddrSpace);
|
||||
EmitIntValue((uint32_t)(IntValue >> 0 ), 4, AddrSpace);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
assert(Directive && "Invalid size for machine code value!");
|
||||
OS << Directive << truncateToSize(Value, Size);
|
||||
EmitEOL();
|
||||
}
|
||||
|
||||
void PTXMCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size,
|
||||
unsigned AddrSpace) {
|
||||
assert(CurSection && "Cannot emit contents before setting section!");
|
||||
const char *Directive = 0;
|
||||
switch (Size) {
|
||||
default: break;
|
||||
case 1: Directive = MAI.getData8bitsDirective(AddrSpace); break;
|
||||
case 2: Directive = MAI.getData16bitsDirective(AddrSpace); break;
|
||||
case 4: Directive = MAI.getData32bitsDirective(AddrSpace); break;
|
||||
case 8: Directive = MAI.getData64bitsDirective(AddrSpace); break;
|
||||
}
|
||||
|
||||
assert(Directive && "Invalid size for machine code value!");
|
||||
OS << Directive << *Value;
|
||||
EmitEOL();
|
||||
|
Loading…
Reference in New Issue
Block a user