[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v2 21/68] target/arm: Convert Synchronization prim
From: |
Peter Maydell |
Subject: |
Re: [Qemu-arm] [PATCH v2 21/68] target/arm: Convert Synchronization primitives |
Date: |
Tue, 27 Aug 2019 12:10:24 +0100 |
On Tue, 27 Aug 2019 at 11:46, Peter Maydell <address@hidden> wrote:
> ...OK, not this specific function, as I just noticed it's the _a32
> one, but trans_STREXB(), trans_STREXH(), etc are wrong.
I did a quick grep through for places checking the 6K condition,
and I think these are the only ones that need changing:
diff --git a/target/arm/translate.c b/target/arm/translate.c
index b4d53f3d37f..58e50f2d808 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -8874,7 +8874,7 @@ static bool trans_STREXD_t32(DisasContext *s,
arg_STREX *a)
static bool trans_STREXB(DisasContext *s, arg_STREX *a)
{
- if (!ENABLE_ARCH_6K) {
+ if (!ENABLE_ARCH_6K && !arm_dc_feature(s, ARM_FEATURE_M)) {
return false;
}
return op_strex(s, a, MO_8, false);
@@ -8882,7 +8882,7 @@ static bool trans_STREXB(DisasContext *s, arg_STREX *a)
static bool trans_STREXH(DisasContext *s, arg_STREX *a)
{
- if (!ENABLE_ARCH_6K) {
+ if (!ENABLE_ARCH_6K && !arm_dc_feature(s, ARM_FEATURE_M)) {
return false;
}
return op_strex(s, a, MO_16, false);
@@ -9004,7 +9004,7 @@ static bool trans_LDREXD_t32(DisasContext *s,
arg_LDREX *a)
static bool trans_LDREXB(DisasContext *s, arg_LDREX *a)
{
- if (!ENABLE_ARCH_6K) {
+ if (!ENABLE_ARCH_6K && !arm_dc_feature(s, ARM_FEATURE_M)) {
return false;
}
return op_ldrex(s, a, MO_8, false);
@@ -9012,7 +9012,7 @@ static bool trans_LDREXB(DisasContext *s, arg_LDREX *a)
static bool trans_LDREXH(DisasContext *s, arg_LDREX *a)
{
- if (!ENABLE_ARCH_6K) {
+ if (!ENABLE_ARCH_6K && !arm_dc_feature(s, ARM_FEATURE_M)) {
return false;
}
return op_ldrex(s, a, MO_16, false);
@@ -10236,7 +10236,7 @@ static bool trans_CPS_v6m(DisasContext *s,
arg_CPS_v6m *a)
static bool trans_CLREX(DisasContext *s, arg_CLREX *a)
{
- if (!ENABLE_ARCH_6K) {
+ if (!ENABLE_ARCH_6K && !arm_dc_feature(s, ARM_FEATURE_M)) {
return false;
}
gen_clrex(s);
thanks
-- PMM
- Re: [Qemu-arm] [PATCH v2 19/68] target/arm: Convert T32 ADDW/SUBW, (continued)
[Qemu-arm] [PATCH v2 22/68] target/arm: Convert USAD8, USADA8, SBFX, UBFX, BFC, BFI, UDF, Richard Henderson, 2019/08/19
[Qemu-arm] [PATCH v2 21/68] target/arm: Convert Synchronization primitives, Richard Henderson, 2019/08/19
[Qemu-arm] [PATCH v2 26/68] target/arm: Convert MOVW, MOVT, Richard Henderson, 2019/08/19
[Qemu-arm] [PATCH v2 20/68] target/arm: Convert load/store (register, immediate, literal), Richard Henderson, 2019/08/19
[Qemu-arm] [PATCH v2 23/68] target/arm: Convert Parallel addition and subtraction, Richard Henderson, 2019/08/19
[Qemu-arm] [PATCH v2 24/68] target/arm: Convert Packing, unpacking, saturation, and reversal, Richard Henderson, 2019/08/19