DynamoRIO / DynamoRIO/dynamorio
[x64][correctness][performance] for x86 code use separate x86 ibl tables and compacted or separate tls
- 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:26:55_
this was PR 283895
split from issue #49 for x86 ibl: simplest to have single 64-bit hashtable and have 32-bit
routine that reads it (and assume no 32-to-64 non-far accidental
transitions). that's what I'm implementing for now.
long-term we want good performance and correctness (so that x64 DR for a
WOW64 process has no disadvantages vs x86 DR), so we need to split the ibl
hashtables into 2. for simultaneous x86 and x64 htables there are 2
options:
1) have separate local_state_t struct and offsets and fs: tls
2) use x64 tls, and require a code cache exit on every mode change so we
can swap the ibl tls fields
1 has more compact tls while 2 has worse perf from wider tls and won't
match 32-bit DR perf. but 1 is more complex: yet more data structs and
routines that need runtime dispatch. from PR 253431, for 2 we could also
have ibl use half of each slot, and fcache_return moves out to separate
64-bit slots: that's simpler than setting up fs.
_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=824_
Contributor guide
Assessment
This issue has not been assessed yet.