|
From: Petar J. <mip...@gm...> - 2012-09-19 13:58:06
|
@Julian, @everyone,
we commented out one part in void VG_(synth_sigtrap) in coregrind/m_signals.c in
which we raise different signals depending on the code in the TEQ instruction.
Here is the source code:
# if defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
/* This is for teq on mips. Teq on mips for ins: 0xXXX1f4
* cases VKI_SIGFPE not VKI_SIGTRAP
*/
// JRS 2012-Jun-06: commented out until we know we need it
// This isn't a clean solution; need something that avoids looking
// at the guest code.
//UInt *ins = (void*)(vgPlain_threads[tid].arch.vex.guest_PC-4);
//UInt tcode = (((*ins) >> 6) & ((1 << 10) - 1));
//if (tcode == VKI_BRK_OVERFLOW || tcode == VKI_BRK_DIVZERO) {
// if (tcode == VKI_BRK_DIVZERO)
// info.si_code = VKI_FPE_INTDIV;
// else
// info.si_code = VKI_FPE_INTOVF;
// info.si_signo = VKI_SIGFPE;
// info.si_errno = 0;
// info.VKI_SIGINFO_si_addr
// = (void*)(vgPlain_threads[tid].arch.vex.guest_PC-4);
//}
# endif
Some of the remaining tests in the test suite need this. Do you think we should
fix/model this differently, or we should go with this for the time being?
Regards,
Petar
|