Notes:
Except that it is likely in many implementations to be substantially faster, the instruction:
FCMOVxx Fa,Fb,Fc |
|
is exactly equivalent to: |
|
FByy Fa,label | ! yy = NOT xx |
CPYS Fb,Fb,Fc |
|
label: ... |
|
For example, a branchless sequence for: |
|
F1=MAX(F1,F2) |
|
is: |
|
CMPxLT F1,F2,F3 | ! F3=one if F1<F2; x=F/G/S/T |
FCMOVNE F3,F2,F1 | ! Move F2 to F1 if F1<F2 |