sim: aarch64: fix 64-bit immediate shifts

Trying to shift immediates 63 bits fails on 32-bit systems since UL
is only 32-bits, not 64-bits.  Switch to ULL to guarantee at least
64-bits here.
This commit is contained in:
Mike Frysinger
2021-05-01 15:51:37 -04:00
parent 163cb76122
commit ce2248135a
2 changed files with 6 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2021-05-01 Mike Frysinger <vapier@gentoo.org>
* simulator.c (do_fcvtzu): Change UL to ULL.
2021-04-26 Mike Frysinger <vapier@gentoo.org>
* aclocal.m4, config.in, configure: Regenerate.

View File

@ -8420,7 +8420,7 @@ do_fcvtzu (sim_cpu *cpu)
uint64_t value = (uint64_t) d;
/* Do not raise an exception if we have reached ULONG_MAX. */
if (value != (1UL << 63))
if (value != (1ULL << 63))
RAISE_EXCEPTIONS (d, value, DOUBLE, ULONG);
aarch64_set_reg_u64 (cpu, rd, NO_SP, value);
@ -8431,7 +8431,7 @@ do_fcvtzu (sim_cpu *cpu)
uint64_t value = (uint64_t) f;
/* Do not raise an exception if we have reached ULONG_MAX. */
if (value != (1UL << 63))
if (value != (1ULL << 63))
RAISE_EXCEPTIONS (f, value, FLOAT, ULONG);
aarch64_set_reg_u64 (cpu, rd, NO_SP, value);