OSDN Git Service

target/arm: Recover 4 bits from TBFLAGs
authorRichard Henderson <richard.henderson@linaro.org>
Fri, 7 Feb 2020 14:04:23 +0000 (14:04 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 7 Feb 2020 14:04:23 +0000 (14:04 +0000)
commit79cabf1f473ca6e9fa0727f64ed9c2a84a36f0aa
tree8b0e368771921dd7ad3f9ebd288c7f16332b4f2f
parente013b7411339342aac8d986c5d5e329e1baee8e1
target/arm: Recover 4 bits from TBFLAGs

We had completely run out of TBFLAG bits.
Split A- and M-profile bits into two overlapping buckets.
This results in 4 free bits.

We used to initialize all of the a32 and m32 fields in DisasContext
by assignment, in arm_tr_init_disas_context.  Now we only initialize
either the a32 or m32 by assignment, because the bits overlap in
tbflags.  So zero the entire structure in gen_intermediate_code.

Tested-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200206105448.4726-16-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/cpu.h
target/arm/helper.c
target/arm/translate.c