Hi,
On Sun, 9 Mar 2014, Peter Maydell wrote:
> diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c
> index 6a3597d..2435c95 100644
> --- a/target-arm/translate-a64.c
> +++ b/target-arm/translate-a64.c
> @@ -9007,9 +9007,8 @@ static void disas_simd_two_reg_misc(DisasContext *s,
> uint32_t insn)
> case 0x19: /* FRINTM */
> case 0x38: /* FRINTP */
> case 0x39: /* FRINTZ */
> - case 0x58: /* FRINTA */
> need_rmode = true;
> - rmode = extract32(opcode, 5, 2) | (extract32(opcode, 0, 1) << 1);
> + rmode = extract32(opcode, 5, 1) | (extract32(opcode, 0, 1) << 1);
> /* fall through */
> case 0x59: /* FRINTX */
> case 0x79: /* FRINTI */
> @@ -9019,6 +9018,15 @@ static void disas_simd_two_reg_misc(DisasContext *s,
> uint32_t insn)
> return;
> }
> break;
> + case 0x58: /* FRINTA */
> + need_rmode = true;
> + rmode = FPROUNDING_TIEAWAY;
> + need_fpstatus = true;
> + if (size == 3 && !is_q) {
> + unallocated_encoding(s);
> + return;
> + }
> + break;
Merge the above into [15/16] ?
Ciao,
Michael.