mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-02 00:36:36 +00:00
Add llvm::hexDigitValue to convert single characters to hex.
This is duplicated in a couple places in the codebase. Adopt this in APFloat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172851 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c91cbb9b0c
commit
8a53a8329f
@ -27,6 +27,17 @@ static inline char hexdigit(unsigned X, bool LowerCase = false) {
|
||||
return X < 10 ? '0' + X : HexChar + X - 10;
|
||||
}
|
||||
|
||||
/// Interpret the given character \p C as a hexadecimal digit and return its
|
||||
/// value.
|
||||
///
|
||||
/// If \p C is not a valid hex digit, -1U is returned.
|
||||
static inline unsigned hexDigitValue(char C) {
|
||||
if (C >= '0' && C <= '9') return C-'0';
|
||||
if (C >= 'a' && C <= 'f') return C-'a'+10U;
|
||||
if (C >= 'A' && C <= 'F') return C-'A'+10U;
|
||||
return -1U;
|
||||
}
|
||||
|
||||
/// utohex_buffer - Emit the specified number into the buffer specified by
|
||||
/// BufferEnd, returning a pointer to the start of the string. This can be used
|
||||
/// like this: (note that the buffer must be large enough to handle any number):
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "llvm/ADT/APSInt.h"
|
||||
#include "llvm/ADT/FoldingSet.h"
|
||||
#include "llvm/ADT/Hashing.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/MathExtras.h"
|
||||
@ -101,26 +102,6 @@ decDigitValue(unsigned int c)
|
||||
return c - '0';
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
hexDigitValue(unsigned int c)
|
||||
{
|
||||
unsigned int r;
|
||||
|
||||
r = c - '0';
|
||||
if (r <= 9)
|
||||
return r;
|
||||
|
||||
r = c - 'A';
|
||||
if (r <= 5)
|
||||
return r + 10;
|
||||
|
||||
r = c - 'a';
|
||||
if (r <= 5)
|
||||
return r + 10;
|
||||
|
||||
return -1U;
|
||||
}
|
||||
|
||||
/* Return the value of a decimal exponent of the form
|
||||
[+-]ddddddd.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user