Revision cd633b10 target-ppc/translate.c

b/target-ppc/translate.c
374 374
EXTRACT_HELPER(NB, 11, 5);
375 375
/* Shift count */
376 376
EXTRACT_HELPER(SH, 11, 5);
377
/* Vector shift count */
378
EXTRACT_HELPER(VSH, 6, 4);
377 379
/* Mask start */
378 380
EXTRACT_HELPER(MB, 6, 5);
379 381
/* Mask end */
......
6268 6270
GEN_VXFORM(vrlh, 2, 1);
6269 6271
GEN_VXFORM(vrlw, 2, 2);
6270 6272

  
6273
GEN_HANDLER(vsldoi, 0x04, 0x16, 0xFF, 0x00000400, PPC_ALTIVEC)
6274
{
6275
    TCGv_ptr ra, rb, rd;
6276
    TCGv sh;
6277
    if (unlikely(!ctx->altivec_enabled)) {
6278
        gen_exception(ctx, POWERPC_EXCP_VPU);
6279
        return;
6280
    }
6281
    ra = gen_avr_ptr(rA(ctx->opcode));
6282
    rb = gen_avr_ptr(rB(ctx->opcode));
6283
    rd = gen_avr_ptr(rD(ctx->opcode));
6284
    sh = tcg_const_i32(VSH(ctx->opcode));
6285
    gen_helper_vsldoi (rd, ra, rb, sh);
6286
    tcg_temp_free_ptr(ra);
6287
    tcg_temp_free_ptr(rb);
6288
    tcg_temp_free_ptr(rd);
6289
    tcg_temp_free(sh);
6290
}
6291

  
6271 6292
/***                           SPE extension                               ***/
6272 6293
/* Register moves */
6273 6294

  

Also available in: Unified diff