DynamoRIO / DynamoRIO/dynamorio

translate the FPU instruction pointer

Open
#698 6 comments 0 reactions 0 assignees View on GitHub
Bug-AppFail Migrated Performance Priority-Medium
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) 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

int main()
{
int edx, ecx;

```
__asm__ __volatile__ (
"x: fldz;" \
"movl $x, %%ecx;" \
"push %%edx;" \
"fnstenv -0xc(%%esp);" \
"pop %%edx;" : "=d" (edx), "=c" (ecx) : : "memory");

if (ecx == edx)
printf("FNSTENV is correctly handled\n");
else
printf("FNSTENV is incorrectly handled: edx = %x, ecx = %x\n", edx, ecx);

return 0;
```

}

_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=698_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.