Closed
Bug 411687
Opened 18 years ago
Closed 18 years ago
TT: optimize LIR_cmov
Categories
(Tamarin Graveyard :: Virtual Machine, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: edwsmith, Assigned: stejohns)
Details
Attachments
(1 file)
|
10.70 KB,
patch
|
edwsmith
:
review+
|
Details | Diff | Splinter Review |
emit code that uses the condition instruction to choose one of the many MOVcc variants, instead of computing a boolean and testing for eq/ne 0. (ie do like LIR_xf/xt do for conditional branches).
| Reporter | ||
Comment 1•18 years ago
|
||
dbox could benefit from a quad-sized cmov
| Assignee | ||
Comment 2•18 years ago
|
||
if dbox is the only place that's likely to benefit, might be simpler/better to just write a "normalizenan" primitive
| Assignee | ||
Comment 3•18 years ago
|
||
Redid LIR_cmov support to take advantage of the full suite of conditional moves rather than just MREQ. Combined with a little restructuring of the assembler code (to reduce redundant register moves) this removes several instructions from the typical cmov trace. As a result I rewrote the boxtype superword to use choose (rather than bit twiddling) as it produces slightly shorter code.
Note that the ARM implementation is untested but (theoretically) should work. Thumb doesn't support conditional moves so uses bit-twiddling as a fallback.
Attachment #297237 -
Flags: review?(edwsmith)
| Reporter | ||
Updated•18 years ago
|
Attachment #297237 -
Flags: review?(edwsmith) → review+
| Assignee | ||
Comment 4•18 years ago
|
||
pushed as changeset: 284:abd80bd1eef4
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Comment 5•16 years ago
|
||
Closing out all TT: transfer bugs that are resolved fixed.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•