disas/libvixl: Fix upstream libvixl compilation issues

Fix various minor issues with upstream libvixl so that it will compile
successfully on the platforms QEMU cares about:
 * remove unused GBytes constant (it clashes with the glib headers)
 * fix suffixes on constants to use 'LL' for 64 bit constants so
   we can compile on 32 bit hosts

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
Peter Maydell 2014-02-05 17:27:28 +00:00
parent 878a735d00
commit 37fd5b53ba
3 changed files with 17 additions and 18 deletions

View File

@ -53,19 +53,19 @@ const unsigned kSRegSizeInBytes = kSRegSize / 8;
const unsigned kDRegSize = 64; const unsigned kDRegSize = 64;
const unsigned kDRegSizeLog2 = 6; const unsigned kDRegSizeLog2 = 6;
const unsigned kDRegSizeInBytes = kDRegSize / 8; const unsigned kDRegSizeInBytes = kDRegSize / 8;
const int64_t kWRegMask = 0x00000000ffffffffL; const int64_t kWRegMask = 0x00000000ffffffffLL;
const int64_t kXRegMask = 0xffffffffffffffffL; const int64_t kXRegMask = 0xffffffffffffffffLL;
const int64_t kSRegMask = 0x00000000ffffffffL; const int64_t kSRegMask = 0x00000000ffffffffLL;
const int64_t kDRegMask = 0xffffffffffffffffL; const int64_t kDRegMask = 0xffffffffffffffffLL;
const int64_t kXSignMask = 0x1L << 63; const int64_t kXSignMask = 0x1LL << 63;
const int64_t kWSignMask = 0x1L << 31; const int64_t kWSignMask = 0x1LL << 31;
const int64_t kByteMask = 0xffL; const int64_t kByteMask = 0xffL;
const int64_t kHalfWordMask = 0xffffL; const int64_t kHalfWordMask = 0xffffL;
const int64_t kWordMask = 0xffffffffL; const int64_t kWordMask = 0xffffffffLL;
const uint64_t kXMaxUInt = 0xffffffffffffffffUL; const uint64_t kXMaxUInt = 0xffffffffffffffffULL;
const uint64_t kWMaxUInt = 0xffffffffUL; const uint64_t kWMaxUInt = 0xffffffffULL;
const int64_t kXMaxInt = 0x7fffffffffffffffL; const int64_t kXMaxInt = 0x7fffffffffffffffLL;
const int64_t kXMinInt = 0x8000000000000000L; const int64_t kXMinInt = 0x8000000000000000LL;
const int32_t kWMaxInt = 0x7fffffff; const int32_t kWMaxInt = 0x7fffffff;
const int32_t kWMinInt = 0x80000000; const int32_t kWMinInt = 0x80000000;
const unsigned kLinkRegCode = 30; const unsigned kLinkRegCode = 30;
@ -81,16 +81,16 @@ const unsigned kFloatExponentBits = 8;
const float kFP32PositiveInfinity = rawbits_to_float(0x7f800000); const float kFP32PositiveInfinity = rawbits_to_float(0x7f800000);
const float kFP32NegativeInfinity = rawbits_to_float(0xff800000); const float kFP32NegativeInfinity = rawbits_to_float(0xff800000);
const double kFP64PositiveInfinity = rawbits_to_double(0x7ff0000000000000UL); const double kFP64PositiveInfinity = rawbits_to_double(0x7ff0000000000000ULL);
const double kFP64NegativeInfinity = rawbits_to_double(0xfff0000000000000UL); const double kFP64NegativeInfinity = rawbits_to_double(0xfff0000000000000ULL);
// This value is a signalling NaN as both a double and as a float (taking the // This value is a signalling NaN as both a double and as a float (taking the
// least-significant word). // least-significant word).
static const double kFP64SignallingNaN = rawbits_to_double(0x7ff000007f800001); static const double kFP64SignallingNaN = rawbits_to_double(0x7ff000007f800001ULL);
static const float kFP32SignallingNaN = rawbits_to_float(0x7f800001); static const float kFP32SignallingNaN = rawbits_to_float(0x7f800001);
// A similar value, but as a quiet NaN. // A similar value, but as a quiet NaN.
static const double kFP64QuietNaN = rawbits_to_double(0x7ff800007fc00001); static const double kFP64QuietNaN = rawbits_to_double(0x7ff800007fc00001ULL);
static const float kFP32QuietNaN = rawbits_to_float(0x7fc00001); static const float kFP32QuietNaN = rawbits_to_float(0x7fc00001);
enum LSDataSize { enum LSDataSize {

View File

@ -44,7 +44,6 @@ typedef uint8_t byte;
const int KBytes = 1024; const int KBytes = 1024;
const int MBytes = 1024 * KBytes; const int MBytes = 1024 * KBytes;
const int GBytes = 1024 * MBytes;
#define ABORT() printf("in %s, line %i", __FILE__, __LINE__); abort() #define ABORT() printf("in %s, line %i", __FILE__, __LINE__); abort()
#ifdef DEBUG #ifdef DEBUG

View File

@ -36,7 +36,7 @@ namespace vixl {
// Check number width. // Check number width.
inline bool is_intn(unsigned n, int64_t x) { inline bool is_intn(unsigned n, int64_t x) {
ASSERT((0 < n) && (n < 64)); ASSERT((0 < n) && (n < 64));
int64_t limit = 1L << (n - 1); int64_t limit = 1ULL << (n - 1);
return (-limit <= x) && (x < limit); return (-limit <= x) && (x < limit);
} }
@ -47,7 +47,7 @@ inline bool is_uintn(unsigned n, int64_t x) {
inline unsigned truncate_to_intn(unsigned n, int64_t x) { inline unsigned truncate_to_intn(unsigned n, int64_t x) {
ASSERT((0 < n) && (n < 64)); ASSERT((0 < n) && (n < 64));
return (x & ((1L << n) - 1)); return (x & ((1ULL << n) - 1));
} }
#define INT_1_TO_63_LIST(V) \ #define INT_1_TO_63_LIST(V) \