-
Notifications
You must be signed in to change notification settings - Fork 566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
translate the FPU instruction pointer #698
Comments
From [email protected] on March 13, 2012 07:07:06 Owner: [email protected] |
From [email protected] on March 13, 2012 08:16:05 Note that neither Valgrind (3.7.0) nor Pin (pin-2.10-41150-gcc.3.4.6-ia32_intel64-linux) do the right thing here There are two possible solutions:
We also need to translate for proc_save_fpstate() where client may well (If we did want to give clients access to the stored fpstate on clean What about dr_insert_save_fpstate()? For solution Proposal: implement |
From [email protected] on July 10, 2013 07:23:49 Decided to go with soln Forthcoming commit log has a good summary:
|
From [email protected] on July 11, 2013 07:28:18 This issue was closed by revision r2165 . Status: Fixed |
From [email protected] on July 16, 2013 15:25:33 Re-opening as we have hit a serious problem. On some distros, libm.so uses fnstenv/fldenv pairs in cos() and likely other routines. We see huge perf hits from fnstenv's trace barrier exiting and translating on the critical path of our own tests that call cos() in a loop, like linux.signal0000. We may want to re-consider solution For a hacky soln: Can we somehow recognize the pattern of fnstenv used in libm and For the 4.1 release we may disable the implemented soln#2 under an off-by-default option (leaving the inlined-bb soln which may well cause many selfmod apps to still work). Status: Accepted |
From [email protected] on July 16, 2013 15:44:59 Looking at libm asm code, a few patterns: 00007580 : 00007620 : 0000e150 : (similar in , ) 000077c0 : 00007820 : |
From [email protected] on March 13, 2012 00:01:59
the FPU status includes an instruction pointer selector and offset. DR today does not translate it from the code cache to the corresponding app address.
sample code from Jun Koi:
#include <stdio.h>
int main()
{
int edx, ecx;
}
Original issue: http://code.google.com/p/dynamorio/issues/detail?id=698
The text was updated successfully, but these errors were encountered: