From: Mike Frysinger Date: Sat, 1 May 2021 19:51:37 +0000 (-0400) Subject: sim: aarch64: fix 64-bit immediate shifts X-Git-Tag: gdb-11-branchpoint~842 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce2248135a651d313f87d838e965477b5e4d6131;p=thirdparty%2Fbinutils-gdb.git 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. --- diff --git a/sim/aarch64/ChangeLog b/sim/aarch64/ChangeLog index 23736d6b842..2d13cf1eda2 100644 --- a/sim/aarch64/ChangeLog +++ b/sim/aarch64/ChangeLog @@ -1,3 +1,7 @@ +2021-05-01 Mike Frysinger + + * simulator.c (do_fcvtzu): Change UL to ULL. + 2021-04-26 Mike Frysinger * aclocal.m4, config.in, configure: Regenerate. diff --git a/sim/aarch64/simulator.c b/sim/aarch64/simulator.c index e0b428d26d9..a8391212c06 100644 --- a/sim/aarch64/simulator.c +++ b/sim/aarch64/simulator.c @@ -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);