helper.c (9ac5df20f51fabcba0d902025df4bd7ea987c158) helper.c (7fbc6a403a0aab834e764fa61d81ed8586cfe352)
1/*
2 * ARM generic helpers.
3 *
4 * This code is licensed under the GNU GPL v2 or later.
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8

--- 880 unchanged lines hidden (view full) ---

889 uint32_t mask = 0;
890
891 /* In ARMv8 most bits of CPACR_EL1 are RES0. */
892 if (!arm_feature(env, ARM_FEATURE_V8)) {
893 /* ARMv7 defines bits for unimplemented coprocessors as RAZ/WI.
894 * ASEDIS [31] and D32DIS [30] are both UNK/SBZP without VFP.
895 * TRCDIS [28] is RAZ/WI since we do not implement a trace macrocell.
896 */
1/*
2 * ARM generic helpers.
3 *
4 * This code is licensed under the GNU GPL v2 or later.
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8

--- 880 unchanged lines hidden (view full) ---

889 uint32_t mask = 0;
890
891 /* In ARMv8 most bits of CPACR_EL1 are RES0. */
892 if (!arm_feature(env, ARM_FEATURE_V8)) {
893 /* ARMv7 defines bits for unimplemented coprocessors as RAZ/WI.
894 * ASEDIS [31] and D32DIS [30] are both UNK/SBZP without VFP.
895 * TRCDIS [28] is RAZ/WI since we do not implement a trace macrocell.
896 */
897 if (arm_feature(env, ARM_FEATURE_VFP)) {
897 if (cpu_isar_feature(aa32_vfp_simd, env_archcpu(env))) {
898 /* VFP coprocessor: cp10 & cp11 [23:20] */
899 mask |= (1 << 31) | (1 << 30) | (0xf << 20);
900
901 if (!arm_feature(env, ARM_FEATURE_NEON)) {
902 /* ASEDIS [31] bit is RAO/WI */
903 value |= (1 << 31);
904 }
905

--- 6903 unchanged lines hidden (view full) ---

7809 aarch64_fpu_gdb_set_reg,
7810 34, "aarch64-fpu.xml", 0);
7811 } else if (arm_feature(env, ARM_FEATURE_NEON)) {
7812 gdb_register_coprocessor(cs, vfp_gdb_get_reg, vfp_gdb_set_reg,
7813 51, "arm-neon.xml", 0);
7814 } else if (cpu_isar_feature(aa32_simd_r32, cpu)) {
7815 gdb_register_coprocessor(cs, vfp_gdb_get_reg, vfp_gdb_set_reg,
7816 35, "arm-vfp3.xml", 0);
898 /* VFP coprocessor: cp10 & cp11 [23:20] */
899 mask |= (1 << 31) | (1 << 30) | (0xf << 20);
900
901 if (!arm_feature(env, ARM_FEATURE_NEON)) {
902 /* ASEDIS [31] bit is RAO/WI */
903 value |= (1 << 31);
904 }
905

--- 6903 unchanged lines hidden (view full) ---

7809 aarch64_fpu_gdb_set_reg,
7810 34, "aarch64-fpu.xml", 0);
7811 } else if (arm_feature(env, ARM_FEATURE_NEON)) {
7812 gdb_register_coprocessor(cs, vfp_gdb_get_reg, vfp_gdb_set_reg,
7813 51, "arm-neon.xml", 0);
7814 } else if (cpu_isar_feature(aa32_simd_r32, cpu)) {
7815 gdb_register_coprocessor(cs, vfp_gdb_get_reg, vfp_gdb_set_reg,
7816 35, "arm-vfp3.xml", 0);
7817 } else if (arm_feature(env, ARM_FEATURE_VFP)) {
7817 } else if (cpu_isar_feature(aa32_vfp_simd, cpu)) {
7818 gdb_register_coprocessor(cs, vfp_gdb_get_reg, vfp_gdb_set_reg,
7819 19, "arm-vfp.xml", 0);
7820 }
7821 gdb_register_coprocessor(cs, arm_gdb_get_sysreg, arm_gdb_set_sysreg,
7822 arm_gen_dynamic_xml(cs),
7823 "system-registers.xml", 0);
7824}
7825

--- 4701 unchanged lines hidden ---
7818 gdb_register_coprocessor(cs, vfp_gdb_get_reg, vfp_gdb_set_reg,
7819 19, "arm-vfp.xml", 0);
7820 }
7821 gdb_register_coprocessor(cs, arm_gdb_get_sysreg, arm_gdb_set_sysreg,
7822 arm_gen_dynamic_xml(cs),
7823 "system-registers.xml", 0);
7824}
7825

--- 4701 unchanged lines hidden ---