mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 16:34:07 +00:00
84 lines
4.0 KiB
ArmAsm
84 lines
4.0 KiB
ArmAsm
ttl fast floating point cmp/tst (ffpcmp/ffptst)
|
|
***************************************
|
|
* (c) copyright 1981 by motorola inc. *
|
|
***************************************
|
|
|
|
*************************************************************
|
|
* ffpcmp *
|
|
* fast floating point compare *
|
|
* *
|
|
* input: d6 - fast floating point argument (source) *
|
|
* d7 - fast floating point argument (destination) *
|
|
* *
|
|
* output: condition code reflecting the following branches *
|
|
* for the result of comparing the destination *
|
|
* minus the source: *
|
|
* *
|
|
* gt - destination greater *
|
|
* ge - destination greater or equal to *
|
|
* eq - destination equal *
|
|
* ne - destination not equal *
|
|
* lt - destination less than *
|
|
* le - destination less than or equal to *
|
|
* *
|
|
* condition codes: *
|
|
* n - cleared *
|
|
* z - set if result is zero *
|
|
* v - cleared *
|
|
* c - undefined *
|
|
* x - undefined *
|
|
* *
|
|
* all registers transparent *
|
|
* *
|
|
*************************************************************
|
|
page
|
|
ffpcmp idnt 1,1 ffp cmp/tst
|
|
|
|
xdef ffpcmp fast floating point compare
|
|
|
|
xref ffpcpyrt copyright notice
|
|
|
|
section 9
|
|
|
|
***********************
|
|
* compare entry point *
|
|
***********************
|
|
ffpcmp cmp.b d6,d7 compare sign and exponent only first
|
|
bne.s ffpcrtn return if that is sufficient
|
|
cmp.l d6,d7 no, compare full longwords then
|
|
ffpcrtn rts and return to the caller
|
|
page
|
|
*************************************************************
|
|
* ffptst *
|
|
* fast floating point test *
|
|
* *
|
|
* input: d7 - fast floating point argument *
|
|
* *
|
|
* output: condition codes set for the following branches: *
|
|
* *
|
|
* eq - argument equals zero *
|
|
* ne - argument not equal zero *
|
|
* pl - argument is positive (includes zero)*
|
|
* mi - argument is negative *
|
|
* *
|
|
* condition codes: *
|
|
* n - set if result is negative *
|
|
* z - set if result is zero *
|
|
* v - cleared *
|
|
* c - undefined *
|
|
* x - undefined *
|
|
* *
|
|
* all registers transparent *
|
|
* *
|
|
*************************************************************
|
|
page
|
|
xdef ffptst fast floating point test
|
|
|
|
********************
|
|
* test entry point *
|
|
********************
|
|
ffptst tst.b d7 return tested condition code
|
|
rts to caller
|
|
|
|
end
|