Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/arm/ieee754-sf.S @ 47:3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:44:34 +0900 |
parents | a06113de4d67 |
children |
comparison
equal
deleted
inserted
replaced
46:b85a337e5837 | 47:3bfb6c00c1e0 |
---|---|
820 ARM_FUNC_START cmpsf2 | 820 ARM_FUNC_START cmpsf2 |
821 ARM_FUNC_ALIAS nesf2 cmpsf2 | 821 ARM_FUNC_ALIAS nesf2 cmpsf2 |
822 ARM_FUNC_ALIAS eqsf2 cmpsf2 | 822 ARM_FUNC_ALIAS eqsf2 cmpsf2 |
823 mov ip, #1 @ how should we specify unordered here? | 823 mov ip, #1 @ how should we specify unordered here? |
824 | 824 |
825 1: str ip, [sp, #-4] | 825 1: str ip, [sp, #-4]! |
826 | 826 |
827 @ Trap any INF/NAN first. | 827 @ Trap any INF/NAN first. |
828 mov r2, r0, lsl #1 | 828 mov r2, r0, lsl #1 |
829 mov r3, r1, lsl #1 | 829 mov r3, r1, lsl #1 |
830 mvns ip, r2, asr #24 | 830 mvns ip, r2, asr #24 |
832 COND(mvn,s,ne) ip, r3, asr #24 | 832 COND(mvn,s,ne) ip, r3, asr #24 |
833 beq 3f | 833 beq 3f |
834 | 834 |
835 @ Compare values. | 835 @ Compare values. |
836 @ Note that 0.0 is equal to -0.0. | 836 @ Note that 0.0 is equal to -0.0. |
837 2: orrs ip, r2, r3, lsr #1 @ test if both are 0, clear C flag | 837 2: add sp, sp, #4 |
838 orrs ip, r2, r3, lsr #1 @ test if both are 0, clear C flag | |
838 do_it ne | 839 do_it ne |
839 teqne r0, r1 @ if not 0 compare sign | 840 teqne r0, r1 @ if not 0 compare sign |
840 do_it pl | 841 do_it pl |
841 COND(sub,s,pl) r0, r2, r3 @ if same sign compare values, set r0 | 842 COND(sub,s,pl) r0, r2, r3 @ if same sign compare values, set r0 |
842 | 843 |
856 bne 5f @ r0 is NAN | 857 bne 5f @ r0 is NAN |
857 4: mvns ip, r3, asr #24 | 858 4: mvns ip, r3, asr #24 |
858 bne 2b | 859 bne 2b |
859 movs ip, r1, lsl #9 | 860 movs ip, r1, lsl #9 |
860 beq 2b @ r1 is not NAN | 861 beq 2b @ r1 is not NAN |
861 5: ldr r0, [sp, #-4] @ return unordered code. | 862 5: ldr r0, [sp], #4 @ return unordered code. |
862 RET | 863 RET |
863 | 864 |
864 FUNC_END gesf2 | 865 FUNC_END gesf2 |
865 FUNC_END gtsf2 | 866 FUNC_END gtsf2 |
866 FUNC_END lesf2 | 867 FUNC_END lesf2 |