aarch64: Bump AARCH64_APPROX_MODE to 64 bits
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 20 Feb 2020 13:57:44 +0000 (13:57 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Fri, 21 Feb 2020 10:17:29 +0000 (10:17 +0000)
commitd87778ed097f24a0bf394c0255019547008c3479
tree8d037b682523520780d794c48d1b107dd9494f84
parent0df28e68fd126d9c3356a3d314be383a877b74a7
aarch64: Bump AARCH64_APPROX_MODE to 64 bits

We now have more than 32 scalar and vector float modes, so the
32-bit AARCH64_APPROX_MODE would invoke UB for some of them.
Bumping to a 64-bit mask fixes that... for now.

Ideally we'd have a static assert to trap this, but logically
it would go at file scope.  I think it would be better to wait
until the switch to C++11, so that we can use static_assert
directly.

2020-02-21  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate
on and produce uint64_ts rather than ints.
(AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts.
(cpu_approx_modes): Change the fields from unsigned int to uint64_t.
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h