OSDN Git Service

target/arm: Pull handling of XScale insns out of disas_coproc_insn()
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 3 Aug 2020 11:18:43 +0000 (12:18 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 24 Aug 2020 09:02:06 +0000 (10:02 +0100)
commit7b4f933db865391a90a3b4518bb2050a83f2a873
treeffc47c2f4ebb67f59debafc67ee3d1082f49f317
parentff9e157bdc5620ca860b871ce63bf918d6808aaf
target/arm: Pull handling of XScale insns out of disas_coproc_insn()

At the moment we check for XScale/iwMMXt insns inside
disas_coproc_insn(): for CPUs with ARM_FEATURE_XSCALE all copro insns
with cp 0 or 1 are handled specially.  This works, but is an odd
place for this check, because disas_coproc_insn() is called from both
the Arm and Thumb decoders but the XScale case never applies for
Thumb (all the XScale CPUs were ARMv5, which has only Thumb1, not
Thumb2 with the 32-bit coprocessor insn encodings).  It also makes it
awkward to convert the real copro access insns to decodetree.

Move the identification of XScale out to its own function
which is only called from disas_arm_insn().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200803111849.13368-2-peter.maydell@linaro.org
target/arm/translate.c