|
From: <sv...@va...> - 2014-01-12 18:24:10
|
Author: sewardj
Date: Sun Jan 12 18:23:45 2014
New Revision: 2804
Log:
Add missing ULLs to some 64-bit immediates.
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_isel.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Sun Jan 12 18:23:45 2014
@@ -4338,7 +4338,7 @@
UInt dd = INSN(4,0);
ULong imm = VFPExpandImm(imm8, isD ? 64 : 32);
if (!isD) {
- vassert(0 == (imm & 0xFFFFFFFF00000000));
+ vassert(0 == (imm & 0xFFFFFFFF00000000ULL));
}
putQReg128(dd, mkV128(0));
putQReg(dd, isD ? mkU64(imm) : mkU32(imm & 0xFFFFFFFFULL));
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Sun Jan 12 18:23:45 2014
@@ -1200,12 +1200,18 @@
// value = h+g+f+e d+c+b+a
// \ |
// value = h+g+f+e+d+c+b+a
- value = ((value >> 1) & 0x5555555555555555) + (value & 0x5555555555555555);
- value = ((value >> 2) & 0x3333333333333333) + (value & 0x3333333333333333);
- value = ((value >> 4) & 0x0f0f0f0f0f0f0f0f) + (value & 0x0f0f0f0f0f0f0f0f);
- value = ((value >> 8) & 0x00ff00ff00ff00ff) + (value & 0x00ff00ff00ff00ff);
- value = ((value >> 16) & 0x0000ffff0000ffff) + (value & 0x0000ffff0000ffff);
- value = ((value >> 32) & 0x00000000ffffffff) + (value & 0x00000000ffffffff);
+ value = ((value >> 1) & 0x5555555555555555ULL)
+ + (value & 0x5555555555555555ULL);
+ value = ((value >> 2) & 0x3333333333333333ULL)
+ + (value & 0x3333333333333333ULL);
+ value = ((value >> 4) & 0x0f0f0f0f0f0f0f0fULL)
+ + (value & 0x0f0f0f0f0f0f0f0fULL);
+ value = ((value >> 8) & 0x00ff00ff00ff00ffULL)
+ + (value & 0x00ff00ff00ff00ffULL);
+ value = ((value >> 16) & 0x0000ffff0000ffffULL)
+ + (value & 0x0000ffff0000ffffULL);
+ value = ((value >> 32) & 0x00000000ffffffffULL)
+ + (value & 0x00000000ffffffffULL);
return value;
}
|