On 1/24/25 08:27, Peter Maydell wrote:
We are going to need to generate different code in some cases when
FPCR.AH is 1.  For example:
  * Floating point neg and abs must not flip the sign bit of NaNs
  * some insns (FRECPE, FRECPS, FRECPX, FRSQRTE, FRSQRTS, and various
    BFCVT and BFM bfloat16 ops) need to use a different float_status
    to the usual one

Encode FPCR.AH into the A64 tbflags, so we can refer to it at
translate time.

Because we now have a bit in FPCR that affects codegen, we can't mark
the AArch64 FPCR register as being SUPPRESS_TB_END any more; writes
to it will now end the TB and trigger a regeneration of hflags.

Signed-off-by: Peter Maydell<peter.mayd...@linaro.org>
---
  target/arm/cpu.h               | 1 +
  target/arm/tcg/translate.h     | 2 ++
  target/arm/helper.c            | 2 +-
  target/arm/tcg/hflags.c        | 4 ++++
  target/arm/tcg/translate-a64.c | 1 +
  5 files changed, 9 insertions(+), 1 deletion(-)

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>

r~

Reply via email to