target/arm: Add isar_feature_any_fp16 and document naming/usage conventions
commit6e61f8391cc6cb0846d4bf078dbd935c2aeebff5
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 14 Feb 2020 17:50:58 +0000 (14 17:50 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 21 Feb 2020 16:07:00 +0000 (21 16:07 +0000)
treec60a19cde4a1c819f7a3bec3772669bb546424f3
parentf8af1143ef93954e77cf59e09b5e004dafbd64fd
target/arm: Add isar_feature_any_fp16 and document naming/usage conventions

Our current usage of the isar_feature feature tests almost always
uses an _aa32_ test when the code path is known to be AArch32
specific and an _aa64_ test when the code path is known to be
AArch64 specific. There is just one exception: in the vfp_set_fpscr
helper we check aa64_fp16 to determine whether the FZ16 bit in
the FP(S)CR exists, but this code is also used for AArch32.
There are other places in future where we're likely to want
a general "does this feature exist for either AArch32 or
AArch64" check (typically where architecturally the feature exists
for both CPU states if it exists at all, but the CPU might be
AArch32-only or AArch64-only, and so only have one set of ID
registers).

Introduce a new category of isar_feature_* functions:
isar_feature_any_foo() should be tested when what we want to
know is "does this feature exist for either AArch32 or AArch64",
and always returns the logical OR of isar_feature_aa32_foo()
and isar_feature_aa64_foo().

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20200214175116.9164-4-peter.maydell@linaro.org
target/arm/cpu.h
target/arm/vfp_helper.c