|
From: Josef W. <Jos...@gm...> - 2003-11-18 10:46:19
|
Hi,
with code compiled with Intels Fortran compiler, I get
=============================================
disInstr: unhandled instruction bytes: 0x66 0xF 0x5A 0xC0
** Illegal Instruction **
--2913-- FATAL: unhandled syscall: 218
=============================================
The sycall 218 seems to be in a handler for illegal instructions ?!?
This is "cvtpd2ps %xmm0,%xmm0". The instruction is from
the SSE version of logf(), symbol "__libm_sse2_logf".
Proposed patch (it is working, but I really don't know what I am doing here):
=============================================================
--- vg_to_ucode.c.orig 2003-11-18 11:10:08.000000000 +0100
+++ vg_to_ucode.c 2003-11-18 11:38:06.000000000 +0100
@@ -4742,6 +4742,14 @@ static Addr disInstr ( UCodeBlock* cb, A
goto decode_success;
}
+ /* CVTPD2PS -- convert one doubles to floats. */
+ if (sz == 2 &&
+ insn[0] == 0x0F && insn[1] == 0x5A) {
+ eip = dis_SSE3_reg_or_mem ( cb, sorb, eip+2, 16, "cvtpd2ps",
+ 0x66, insn[0], insn[1] );
+ goto decode_success;
+ }
+
/* SQRTPD: square root of packed double. */
if (sz == 2
&& insn[0] == 0x0F && insn[1] == 0x51) {
==================================================
Cheers,
Josef
|