DynamoRIO / DynamoRIO/dynamorio
x64 state preservation while in x86 mode
- 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 June 21, 2012 15:21:47_
this was PR 283152
any use of 32-bit registers in our added code or gencode
routines could destroy app state kept in top bits! Should never happen
for WOW64, but if have 64-bit app who has a little 32-bit code could
happen. We can get fcache_{enter,return} correct, but stubs and ibl will
be difficult since we don't know whether any particular register's top
bits are live or not. For stubs can switch to writing &linkstub_t
directly to memory. For ibl, app can do jmp32; jmp64 and we'll mess up
in the jmp32 ibl.
Probably best to punt on supporting high bit preservation across mode
changes since the only fix is to have the ibl swap to x64 mode whenever
it spills or restores a register.
_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=822_
Contributor guide
Assessment
This issue has not been assessed yet.