This is a set of cleanup patches which avoid passing CPUARMState around the decoder unnecessarily, since we were pretty much only using it to check feature bits, which we now also have in the DisasContext structure.
We still pass CPUARMState into disas_thumb_insn() and disas_thumb2_insn() purely so they can read the instruction with arm_lduw_code(). I couldn't think of a good way to approach this since you basically don't know if you're going to need to load the second halfword until a long way into the decode. Still, keeping the env pointer out of all the ARM, VFP and Neon decode seems like a good first step. Peter Maydell (5): target-arm/translate.c: Use arm_dc_feature() in ENABLE_ARCH_ macros target-arm/translate.c: Use arm_dc_feature() rather than arm_feature() target-arm/translate.c: Don't use IS_M() target-arm/translate.c: Don't pass CPUARMState around in the decoder target-arm/translate.c: Don't pass CPUARMState * to disas_arm_insn() target-arm/translate.c | 280 +++++++++++++++++++++++++++---------------------- 1 file changed, 154 insertions(+), 126 deletions(-) -- 1.9.1