On 10/18/2016 08:33 AM, Claudio Fontana wrote:
> +    case INDEX_op_extract_i64:
> +    case INDEX_op_extract_i32:
> +        tcg_out_ubfm(s, ext, a0, a1, a2, a2 + args[3] - 1);
> +        break;
> +
> +    case INDEX_op_sextract_i64:
> +    case INDEX_op_sextract_i32:
> +        tcg_out_sbfm(s, ext, a0, a1, a2, a2 + args[3] - 1);
> +        break;
> +
ah, probably missing something obvious.. not args[3]?

No, the r and s fields encode lsb and msb of the field.

I had the same wrong memory of the encoding; which is fair considering the aarch32 instruction *does* use lsb and size-1.

The failure was quite obvious even in the disassembly once I actually got a machine checked out to test it.


r~

Reply via email to