mirror of https://github.com/xemu-project/xemu.git
target/arm: Remove ARCH macro
The ARCH() macro was used a lot in the legacy decoder, but there are now just two uses of it left. Since a macro which expands out to a goto is liable to be confusing when reading code, replace the last two uses with a simple open-coded qeuivalent. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20200803111849.13368-8-peter.maydell@linaro.org
This commit is contained in:
parent
4c498dcfd8
commit
ce51c7f522
|
@ -49,8 +49,6 @@
|
||||||
#define ENABLE_ARCH_7 arm_dc_feature(s, ARM_FEATURE_V7)
|
#define ENABLE_ARCH_7 arm_dc_feature(s, ARM_FEATURE_V7)
|
||||||
#define ENABLE_ARCH_8 arm_dc_feature(s, ARM_FEATURE_V8)
|
#define ENABLE_ARCH_8 arm_dc_feature(s, ARM_FEATURE_V8)
|
||||||
|
|
||||||
#define ARCH(x) do { if (!ENABLE_ARCH_##x) goto illegal_op; } while(0)
|
|
||||||
|
|
||||||
#include "translate.h"
|
#include "translate.h"
|
||||||
|
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
|
@ -7909,7 +7907,7 @@ static bool trans_BLX_i(DisasContext *s, arg_BLX_i *a)
|
||||||
{
|
{
|
||||||
TCGv_i32 tmp;
|
TCGv_i32 tmp;
|
||||||
|
|
||||||
/* For A32, ARCH(5) is checked near the start of the uncond block. */
|
/* For A32, ARM_FEATURE_V5 is checked near the start of the uncond block. */
|
||||||
if (s->thumb && (a->imm & 2)) {
|
if (s->thumb && (a->imm & 2)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -8275,7 +8273,10 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)
|
||||||
* choose to UNDEF. In ARMv5 and above the space is used
|
* choose to UNDEF. In ARMv5 and above the space is used
|
||||||
* for miscellaneous unconditional instructions.
|
* for miscellaneous unconditional instructions.
|
||||||
*/
|
*/
|
||||||
ARCH(5);
|
if (!arm_dc_feature(s, ARM_FEATURE_V5)) {
|
||||||
|
unallocated_encoding(s);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Unconditional instructions. */
|
/* Unconditional instructions. */
|
||||||
/* TODO: Perhaps merge these into one decodetree output file. */
|
/* TODO: Perhaps merge these into one decodetree output file. */
|
||||||
|
@ -8400,7 +8401,10 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn)
|
||||||
goto illegal_op;
|
goto illegal_op;
|
||||||
}
|
}
|
||||||
} else if ((insn & 0xf800e800) != 0xf000e800) {
|
} else if ((insn & 0xf800e800) != 0xf000e800) {
|
||||||
ARCH(6T2);
|
if (!arm_dc_feature(s, ARM_FEATURE_THUMB2)) {
|
||||||
|
unallocated_encoding(s);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arm_dc_feature(s, ARM_FEATURE_M)) {
|
if (arm_dc_feature(s, ARM_FEATURE_M)) {
|
||||||
|
|
Loading…
Reference in New Issue