mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 00:17:01 +00:00
Don't inline get[S|U]LEB128Size() until they are proved to be hot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -91,29 +91,10 @@ inline uint64_t decodeULEB128(const uint8_t *p, unsigned *n = 0) {
|
||||
}
|
||||
|
||||
/// Utility function to get the size of the ULEB128-encoded value.
|
||||
inline unsigned getULEB128Size(uint64_t Value) {
|
||||
unsigned Size = 0;
|
||||
do {
|
||||
Value >>= 7;
|
||||
Size += sizeof(int8_t);
|
||||
} while (Value);
|
||||
return Size;
|
||||
}
|
||||
extern unsigned getULEB128Size(uint64_t Value);
|
||||
|
||||
/// Utility function to get the size of the SLEB128-encoded value.
|
||||
inline unsigned getSLEB128Size(int64_t 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;
|
||||
}
|
||||
extern unsigned getSLEB128Size(int64_t Value);
|
||||
|
||||
} // namespace llvm
|
||||
|
||||
|
||||
Reference in New Issue
Block a user