mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. This makes JIT asmprinter-free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54843 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -493,23 +493,12 @@ void AsmPrinter::PrintULEB128(unsigned Value) const {
|
||||
} while (Value);
|
||||
}
|
||||
|
||||
/// SizeULEB128 - Compute the number of bytes required for an unsigned leb128
|
||||
/// value.
|
||||
unsigned AsmPrinter::SizeULEB128(unsigned Value) {
|
||||
unsigned Size = 0;
|
||||
do {
|
||||
Value >>= 7;
|
||||
Size += sizeof(int8_t);
|
||||
} while (Value);
|
||||
return Size;
|
||||
}
|
||||
|
||||
/// PrintSLEB128 - Print a series of hexidecimal values (separated by commas)
|
||||
/// representing a signed leb128 value.
|
||||
void AsmPrinter::PrintSLEB128(int Value) const {
|
||||
int Sign = Value >> (8 * sizeof(Value) - 1);
|
||||
bool IsMore;
|
||||
|
||||
|
||||
do {
|
||||
unsigned Byte = Value & 0x7f;
|
||||
Value >>= 7;
|
||||
@@ -520,22 +509,6 @@ void AsmPrinter::PrintSLEB128(int Value) const {
|
||||
} while (IsMore);
|
||||
}
|
||||
|
||||
/// SizeSLEB128 - Compute the number of bytes required for a signed leb128
|
||||
/// value.
|
||||
unsigned AsmPrinter::SizeSLEB128(int Value) {
|
||||
unsigned Size = 0;
|
||||
int Sign = Value >> (8 * sizeof(Value) - 1);
|
||||
bool IsMore;
|
||||
|
||||
do {
|
||||
unsigned Byte = Value & 0x7f;
|
||||
Value >>= 7;
|
||||
IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0;
|
||||
Size += sizeof(int8_t);
|
||||
} while (IsMore);
|
||||
return Size;
|
||||
}
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Emission and print routines
|
||||
//
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user