Commit de5f248499bbaee01f25e6a48ad5bb9d3c49961e
1 parent
e4e6bee7
Add GEN_VXFORM_NOA macro for subsequent instructions.
Signed-off-by: Nathan Froyd <froydnj@codesourcery.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6175 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
15 additions
and
0 deletions
target-ppc/translate.c
@@ -6274,6 +6274,21 @@ GEN_VXFORM(vrlb, 2, 0); | @@ -6274,6 +6274,21 @@ GEN_VXFORM(vrlb, 2, 0); | ||
6274 | GEN_VXFORM(vrlh, 2, 1); | 6274 | GEN_VXFORM(vrlh, 2, 1); |
6275 | GEN_VXFORM(vrlw, 2, 2); | 6275 | GEN_VXFORM(vrlw, 2, 2); |
6276 | 6276 | ||
6277 | +#define GEN_VXFORM_NOA(name, opc2, opc3) \ | ||
6278 | + GEN_HANDLER(name, 0x04, opc2, opc3, 0x001f0000, PPC_ALTIVEC) \ | ||
6279 | + { \ | ||
6280 | + TCGv_ptr rb, rd; \ | ||
6281 | + if (unlikely(!ctx->altivec_enabled)) { \ | ||
6282 | + gen_exception(ctx, POWERPC_EXCP_VPU); \ | ||
6283 | + return; \ | ||
6284 | + } \ | ||
6285 | + rb = gen_avr_ptr(rB(ctx->opcode)); \ | ||
6286 | + rd = gen_avr_ptr(rD(ctx->opcode)); \ | ||
6287 | + gen_helper_##name (rd, rb); \ | ||
6288 | + tcg_temp_free_ptr(rb); \ | ||
6289 | + tcg_temp_free_ptr(rd); \ | ||
6290 | + } | ||
6291 | + | ||
6277 | #define GEN_VXFORM_SIMM(name, opc2, opc3) \ | 6292 | #define GEN_VXFORM_SIMM(name, opc2, opc3) \ |
6278 | GEN_HANDLER(name, 0x04, opc2, opc3, 0x00000000, PPC_ALTIVEC) \ | 6293 | GEN_HANDLER(name, 0x04, opc2, opc3, 0x00000000, PPC_ALTIVEC) \ |
6279 | { \ | 6294 | { \ |