DynamoRIO / DynamoRIO/drmemory

mirror remaining mmx/xmm dataflow operations

Open
#1,484 2 comments 0 reactions 0 assignees View on GitHub
Migrated Priority-Medium
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

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.