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