Mac Intel
Joel Reymont
joelr1@REDACTED
Tue Aug 15 03:24:31 CEST 2006
Daniel and Mikael,
Could you please give me some insight into skip_sse2_insn?
I'm bombing out on MULSD which has the opcode of F2 0F 59 /r.
In the code below what's the significance of "if( (opcode & 0xF0) ==
0x40 )"? It does not seem to apply to me as my opcode at that point
is 0x0F but I still need to move forward to 0x59.
opcode = *pc++;
switch( opcode ) {
case 0x66: case 0xF2: case 0xF3:
opcode = *pc++;
}
if( (opcode & 0xF0) == 0x40 )
opcode = *pc++;
do {
switch( opcode ) {
case 0x0F:
opcode = *pc++;
switch( opcode ) {
case 0x2A: /* cvtpi2ps,cvtsi2sd,cvtsi2ss /r */
case 0x2C: /* cvttpd2pi,cvttps2pi,cvttsd2si,cvtss2si /r */
case 0x2D: /* cvtpd2pi,cvtps2pi,cvtsd2si,cvtss2si /r */
case 0x2E: /* ucomisd,ucomiss /r */
case 0x2F: /* comisd,comiss /r */
case 0x51: /* sqrtpd,sqrtps,sqrtsd,sqrtss /r */
case 0x58: /* addpd,addps,addsd,addss /r */
case 0x59: /* mulpd,mulps,mulsd,mulss /r */
Thanks, Joel
More information about the erlang-questions
mailing list