DynamoRIO / DynamoRIO/drmemory
mirror remaining mmx/xmm dataflow operations
- Dominant language
- C
- Stars
- 2.7k
- Forks
- 290
- PR merge metrics
- No merged PRs in 30d
Description
_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on March 22, 2014 11:04:56_
split from issue #243 which added the basic shadowing and propagation, and dataflow mirroring for most of the pack, insert, and extract operations
*\* TODO remaining dataflow operations to add
repeating the list from above:
- [ ] pack\* => can just propagate
- [X] unpck*
- [X] punpck*
- [ ] pshuf*
- [X] shufp*
- [ ] palignr
- [ ] psr*
- [ ] psl*
- [X] movlhp*
- [X] movhlp*
- [X] movhp*
- [X] extractps
- [X] insertps
- [ ] cvt\* => we can just propagate, even if sizes don't match, right?
- [ ] phminposuw
- [ ] pcmpestr*
- [ ] _blend_
- [ ] and/or w/ constant
**\* TODO need to scale shadow for conversions
cvt routines that convert downward
like cvtpd2ps
also things that extend: cvt_, pmovsx_, pmovzx*
**\* TODO conditional moves
blend*
pblend*
**\* TODO opcodes that search the xmm reg and so vary on what they read!
phminposuw: what to propagate to dst depends on actual value in xmm
pshufb has a similar property
pcmpestr*: upper bounds determined by immeds.
always reads it all? ever short-circuit?
**\* TODO and and or w/ constants need to mark defined
probably rarer to have false pos here than w/ gpr b/c it's harder to get
consts into xmm
_Original issue: http://code.google.com/p/drmemory/issues/detail?id=1484_
Contributor guide
Assessment
This issue has not been assessed yet.