qemu-e2k/target
Peter Maydell d31e2ce68d target/arm: Allow M-profile CPUs with FP16 to set FPSCR.FP16
M-profile CPUs with half-precision floating point support should
be able to write to FPSCR.FZ16, but an M-profile specific masking
of the value at the top of vfp_set_fpscr() currently prevents that.
This is not yet an active bug because we have no M-profile
FP16 CPUs, but needs to be fixed before we can add any.

The bits that the masking is effectively preventing from being
set are the A-profile only short-vector Len and Stride fields,
plus the Neon QC bit. Rearrange the order of the function so
that those fields are handled earlier and only under a suitable
guard; this allows us to drop the M-profile specific masking,
making FZ16 writeable.

This change also makes the QC bit correctly RAZ/WI for older
no-Neon A-profile cores.

This refactoring also paves the way for the low-overhead-branch
LTPSIZE field, which uses some of the bits that are used for
A-profile Stride and Len.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20201019151301.2046-10-peter.maydell@linaro.org
2020-10-20 16:12:01 +01:00
..
alpha cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
arm target/arm: Allow M-profile CPUs with FP16 to set FPSCR.FP16 2020-10-20 16:12:01 +01:00
avr qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
cris qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
hppa qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
i386 * Drop ninjatool and just require ninja (Paolo) 2020-10-17 20:52:55 +01:00
lm32 qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
m68k qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
microblaze qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
mips target/mips: Increase number of TLB entries on the 34Kf core (16 -> 64) 2020-10-17 13:59:40 +02:00
moxie qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
nios2 qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
openrisc qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
ppc ppc: Fix return value in cpu_post_load() error path 2020-10-09 10:15:06 +11:00
riscv icount: rename functions to be consistent with the module name 2020-10-05 16:41:22 +02:00
rx qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
s390x disas: Enable capstone disassembly for s390x 2020-10-03 04:25:14 -05:00
sh4 qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
sparc target/sparc/int32_helper: Remove duplicated 'Tag Overflow' entry 2020-10-13 13:33:46 +02:00
tilegx qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
tricore qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
unicore32 qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
xtensa qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
meson.build meson: target 2020-08-21 06:30:35 -04:00