On 01/10/2014 09:12 AM, Peter Maydell wrote:
> + for (i = 0; i < elements; i++) {
> + switch (opcode) {
> + case 1: /* UZP1/2 */
> + {
> + int midpoint = elements / 2;
> + if (i < midpoint) {
> + read_vec_element(s, tcg_res, rn, 2 * i + part, size);
> + } else {
> + read_vec_element(s, tcg_res, rm,
> + 2 * (i - midpoint) + part, size);
> + }
> + break;
> + }
You're generating up to 16 * 3 + 2 = 50 opcodes here. I do wonder if it
wouldn't be better to implement these as helpers. But,
Reviewed-by: Richard Henderson <[email protected]>
r~