[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 32/34] target-arm: remove EXCP_STREX + cpu_ex
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v3 32/34] target-arm: remove EXCP_STREX + cpu_exclusive_{test, info} |
Date: |
Thu, 15 Sep 2016 10:39:42 +0100 |
User-agent: |
mu4e 0.9.17; emacs 25.1.12 |
Richard Henderson <address@hidden> writes:
> From: "Emilio G. Cota" <address@hidden>
>
> The exception is not emitted anymore; remove it and the associated
> TCG variables.
>
> Signed-off-by: Emilio G. Cota <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
> Message-Id: <address@hidden>
> ---
> target-arm/cpu.h | 17 ++++++-----------
> target-arm/internals.h | 4 +---
> target-arm/translate.c | 10 ----------
> target-arm/translate.h | 4 ----
> 4 files changed, 7 insertions(+), 28 deletions(-)
>
> diff --git a/target-arm/cpu.h b/target-arm/cpu.h
> index 76d824d..a38cec0 100644
> --- a/target-arm/cpu.h
> +++ b/target-arm/cpu.h
> @@ -46,13 +46,12 @@
> #define EXCP_BKPT 7
> #define EXCP_EXCEPTION_EXIT 8 /* Return from v7M exception. */
> #define EXCP_KERNEL_TRAP 9 /* Jumped to kernel code page. */
> -#define EXCP_STREX 10
> -#define EXCP_HVC 11 /* HyperVisor Call */
> -#define EXCP_HYP_TRAP 12
> -#define EXCP_SMC 13 /* Secure Monitor Call */
> -#define EXCP_VIRQ 14
> -#define EXCP_VFIQ 15
> -#define EXCP_SEMIHOST 16 /* semihosting call (A64 only) */
> +#define EXCP_HVC 10 /* HyperVisor Call */
> +#define EXCP_HYP_TRAP 11
> +#define EXCP_SMC 12 /* Secure Monitor Call */
> +#define EXCP_VIRQ 13
> +#define EXCP_VFIQ 14
> +#define EXCP_SEMIHOST 15 /* semihosting call (A64 only) */
>
> #define ARMV7M_EXCP_RESET 1
> #define ARMV7M_EXCP_NMI 2
> @@ -475,10 +474,6 @@ typedef struct CPUARMState {
> uint64_t exclusive_addr;
> uint64_t exclusive_val;
> uint64_t exclusive_high;
> -#if defined(CONFIG_USER_ONLY)
> - uint64_t exclusive_test;
> - uint32_t exclusive_info;
> -#endif
>
> /* iwMMXt coprocessor state. */
> struct {
> diff --git a/target-arm/internals.h b/target-arm/internals.h
> index cd57401..3edccd2 100644
> --- a/target-arm/internals.h
> +++ b/target-arm/internals.h
> @@ -46,8 +46,7 @@ static inline bool excp_is_internal(int excp)
> || excp == EXCP_HALTED
> || excp == EXCP_EXCEPTION_EXIT
> || excp == EXCP_KERNEL_TRAP
> - || excp == EXCP_SEMIHOST
> - || excp == EXCP_STREX;
> + || excp == EXCP_SEMIHOST;
> }
>
> /* Exception names for debug logging; note that not all of these
> @@ -63,7 +62,6 @@ static const char * const excnames[] = {
> [EXCP_BKPT] = "Breakpoint",
> [EXCP_EXCEPTION_EXIT] = "QEMU v7M exception exit",
> [EXCP_KERNEL_TRAP] = "QEMU intercept of kernel commpage",
> - [EXCP_STREX] = "QEMU intercept of STREX",
> [EXCP_HVC] = "Hypervisor Call",
> [EXCP_HYP_TRAP] = "Hypervisor Trap",
> [EXCP_SMC] = "Secure Monitor Call",
> diff --git a/target-arm/translate.c b/target-arm/translate.c
> index 2b3c34f..e8e8502 100644
> --- a/target-arm/translate.c
> +++ b/target-arm/translate.c
> @@ -64,10 +64,6 @@ static TCGv_i32 cpu_R[16];
> TCGv_i32 cpu_CF, cpu_NF, cpu_VF, cpu_ZF;
> TCGv_i64 cpu_exclusive_addr;
> TCGv_i64 cpu_exclusive_val;
> -#ifdef CONFIG_USER_ONLY
> -TCGv_i64 cpu_exclusive_test;
> -TCGv_i32 cpu_exclusive_info;
> -#endif
>
> /* FIXME: These should be removed. */
> static TCGv_i32 cpu_F0s, cpu_F1s;
> @@ -101,12 +97,6 @@ void arm_translate_init(void)
> offsetof(CPUARMState, exclusive_addr), "exclusive_addr");
> cpu_exclusive_val = tcg_global_mem_new_i64(cpu_env,
> offsetof(CPUARMState, exclusive_val), "exclusive_val");
> -#ifdef CONFIG_USER_ONLY
> - cpu_exclusive_test = tcg_global_mem_new_i64(cpu_env,
> - offsetof(CPUARMState, exclusive_test), "exclusive_test");
> - cpu_exclusive_info = tcg_global_mem_new_i32(cpu_env,
> - offsetof(CPUARMState, exclusive_info), "exclusive_info");
> -#endif
>
> a64_translate_init();
> }
> diff --git a/target-arm/translate.h b/target-arm/translate.h
> index dbd7ac8..d4e205e 100644
> --- a/target-arm/translate.h
> +++ b/target-arm/translate.h
> @@ -77,10 +77,6 @@ extern TCGv_env cpu_env;
> extern TCGv_i32 cpu_NF, cpu_ZF, cpu_CF, cpu_VF;
> extern TCGv_i64 cpu_exclusive_addr;
> extern TCGv_i64 cpu_exclusive_val;
> -#ifdef CONFIG_USER_ONLY
> -extern TCGv_i64 cpu_exclusive_test;
> -extern TCGv_i32 cpu_exclusive_info;
> -#endif
>
> static inline int arm_dc_feature(DisasContext *dc, int feature)
> {
Reviewed-by: Alex Bennée <address@hidden>
--
Alex Bennée
- Re: [Qemu-devel] [PATCH v3 25/34] tests: add atomic_add-bench, (continued)
- [Qemu-devel] [PATCH v3 23/34] target-i386: emulate XCHG using atomic helper, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 20/34] target-i386: emulate LOCK'ed NEG using cmpxchg helper, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 22/34] target-i386: emulate LOCK'ed BTX ops using atomic helpers, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 27/34] target-arm: emulate LL/SC using cmpxchg helpers, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 26/34] target-arm: Rearrange aa32 load and store functions, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 32/34] target-arm: remove EXCP_STREX + cpu_exclusive_{test, info}, Richard Henderson, 2016/09/03
- Re: [Qemu-devel] [PATCH v3 32/34] target-arm: remove EXCP_STREX + cpu_exclusive_{test, info},
Alex Bennée <=
- [Qemu-devel] [PATCH v3 30/34] linux-user: remove handling of ARM's EXCP_STREX, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 28/34] target-arm: emulate SWP with atomic_xchg helper, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 29/34] target-arm: emulate aarch64's LL/SC using cmpxchg helpers, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 31/34] linux-user: remove handling of aarch64's EXCP_STREX, Richard Henderson, 2016/09/03
- [Qemu-devel] [PATCH v3 33/34] target-alpha: Introduce MMU_PHYS_IDX, Richard Henderson, 2016/09/03