> Dear developers -- I have a program (IBM's Java)
> that seems to use FCOMP, yet that instruction is
> commented out in guest_amd64-toIR.c. Can anyone
> offer insight as to why? (Yet another instruction
> it seems that I need to add to get JVMs to work
> under valgrind ...)
The probable cause is the comment:
//.. /* This forces C1 to zero, which isn't right. */
Note that there are 8 instances of FCOMP (namely, {single,double}*
{register,memory}*{x86,amd64}) yet only one of those instances is
commented out, despite the multiple comments about C1 being bad:
----- guest_amd64-toIR.c
//.. case 3: /* FCOMP single-real */
case 0xD8 ... 0xDF: /* FCOMP %st(?),%st(0) */
case 3: /* FCOMP double-real */
case 0xD9: /* FCOMPP %st(0),%st(1) */
-----
----- guest_t_x86_toIR.c
case 3: /* FCOMP single-real */
case 0xD8 ... 0xDF: /* FCOMP %st(?),%st(0) */
case 3: /* FCOMP double-real */
case 0xD9: /* FCOMPP %st(0),%st(1) */
-----
--
|