Modified BURS to better handle the special case of a
conditional move instruction where the true and false
values are integers and differ by one. Previously, the
code generated used the following to place either
value into result: result = ((cond ? 0 : -1) &
(false_const - true_const)) + true_const .
In the special case where true_const - false_const ==
1, we can optimize slightly so that result = (cond ? 1
: 0) + false_const .
When false_const - true_const == 1, we first must
negate the conditional result: result = (cond ? -1 : 0)
+ false_const .
STATEMENT OF ORIGIN FOR A SINGLE CONTRIBUTOR
I, Garrett Kolpin:
(a) represent that either:
(i) I am the only author and owner of the contributed
(described as/entitled Modified BURS to handle
special case for a conditional move instruction),
which was neither derived nor copied from any
(ii) that any exception to (i) is software which was
obtained under the
CPL (Common Public License),
(b) hereby agree to license this contributed software
under the CPL.
Log in to post a comment.