Revision d1e42c5c target-i386/translate.c
b/target-i386/translate.c | ||
---|---|---|
2905 | 2905 |
break; |
2906 | 2906 |
case 0xc4: /* pinsrw */ |
2907 | 2907 |
case 0x1c4: |
2908 |
s->rip_offset = 1; |
|
2908 | 2909 |
gen_ldst_modrm(s, modrm, OT_WORD, OR_TMP0, 0); |
2909 | 2910 |
val = ldub_code(s->pc++); |
2910 | 2911 |
if (b1) { |
... | ... | |
2975 | 2976 |
} |
2976 | 2977 |
} else { |
2977 | 2978 |
/* generic MMX or SSE operation */ |
2978 |
if (b == 0xf7) { |
|
2979 |
switch(b) { |
|
2980 |
case 0xf7: |
|
2979 | 2981 |
/* maskmov : we must prepare A0 */ |
2980 | 2982 |
if (mod != 3) |
2981 | 2983 |
goto illegal_op; |
... | ... | |
2990 | 2992 |
gen_op_andl_A0_ffff(); |
2991 | 2993 |
} |
2992 | 2994 |
gen_add_A0_ds_seg(s); |
2995 |
break; |
|
2996 |
case 0x70: /* pshufx insn */ |
|
2997 |
case 0xc6: /* pshufx insn */ |
|
2998 |
case 0xc2: /* compare insns */ |
|
2999 |
s->rip_offset = 1; |
|
3000 |
break; |
|
3001 |
default: |
|
3002 |
break; |
|
2993 | 3003 |
} |
2994 | 3004 |
if (is_xmm) { |
2995 | 3005 |
op1_offset = offsetof(CPUX86State,xmm_regs[reg]); |
Also available in: Unified diff