1.0.24.34: IR2: additional representation for predicates, conditional moves
* :CONDITIONAL VOPs can now specify how to interpret the test
they compute without performing the branch directly. How the
test is specified is completely platform-dependent and only
affects new-style :CONDITIONAL VOPs and a new BRANCH-IF VOP
(src/compiler/$ARCH/pred.lisp).
* Candidates for conversion to conditional moves are found
and may be converted, depending on CONVERT-CONDITIONAL-MOVE-P,
a new VM support routine. C-C-M-P returns NIL to punt on the
conversion, or 5 values:
1. name of the VOP to use
2. TN for the first argument (NIL if none)
3. TN for the second argument (NIL if none)
4. TN for the result
5. A list of info data, which will be appended to the flags
The correct values will be MOVEd in the argument TNs if needed
before computing the condition, and the result MOVEd to the right
TN after the conditional move VOP.
19 files changed: