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.

Reply via email to