aeabi_vfp_double.S (273088) | aeabi_vfp_double.S (282816) |
---|---|
1/* 2 * Copyright (C) 2013 Andrew Turner 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 */ 27 28#include <machine/asm.h> | 1/* 2 * Copyright (C) 2013 Andrew Turner 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 */ 27 28#include <machine/asm.h> |
29__FBSDID("$FreeBSD: head/lib/libc/arm/aeabi/aeabi_vfp_double.S 273088 2014-10-14 14:27:51Z andrew $"); | 29__FBSDID("$FreeBSD: head/lib/libc/arm/aeabi/aeabi_vfp_double.S 282816 2015-05-12 10:03:14Z andrew $"); |
30 31#include "aeabi_vfp.h" 32 33.fpu vfp 34.syntax unified 35 36/* void __aeabi_cdcmpeq(double, double) */ 37AEABI_ENTRY(cdcmpeq) --- 23 unchanged lines hidden (view full) --- 61AEABI_END(cdrcmple) 62 63/* int __aeabi_dcmpeq(double, double) */ 64AEABI_ENTRY(dcmpeq) 65 LOAD_DREG(d0, r0, r1) 66 LOAD_DREG(d1, r2, r3) 67 vcmp.f64 d0, d1 68 vmrs APSR_nzcv, fpscr | 30 31#include "aeabi_vfp.h" 32 33.fpu vfp 34.syntax unified 35 36/* void __aeabi_cdcmpeq(double, double) */ 37AEABI_ENTRY(cdcmpeq) --- 23 unchanged lines hidden (view full) --- 61AEABI_END(cdrcmple) 62 63/* int __aeabi_dcmpeq(double, double) */ 64AEABI_ENTRY(dcmpeq) 65 LOAD_DREG(d0, r0, r1) 66 LOAD_DREG(d1, r2, r3) 67 vcmp.f64 d0, d1 68 vmrs APSR_nzcv, fpscr |
69 ite ne |
|
69 movne r0, #0 70 moveq r0, #1 71 RET 72AEABI_END(dcmpeq) 73 74/* int __aeabi_dcmplt(double, double) */ 75AEABI_ENTRY(dcmplt) 76 LOAD_DREG(d0, r0, r1) 77 LOAD_DREG(d1, r2, r3) 78 vcmp.f64 d0, d1 79 vmrs APSR_nzcv, fpscr | 70 movne r0, #0 71 moveq r0, #1 72 RET 73AEABI_END(dcmpeq) 74 75/* int __aeabi_dcmplt(double, double) */ 76AEABI_ENTRY(dcmplt) 77 LOAD_DREG(d0, r0, r1) 78 LOAD_DREG(d1, r2, r3) 79 vcmp.f64 d0, d1 80 vmrs APSR_nzcv, fpscr |
81 ite cs |
|
80 movcs r0, #0 | 82 movcs r0, #0 |
81 movlt r0, #1 | 83 movcc r0, #1 |
82 RET 83AEABI_END(dcmplt) 84 85/* int __aeabi_dcmple(double, double) */ 86AEABI_ENTRY(dcmple) 87 LOAD_DREG(d0, r0, r1) 88 LOAD_DREG(d1, r2, r3) 89 vcmp.f64 d0, d1 90 vmrs APSR_nzcv, fpscr | 84 RET 85AEABI_END(dcmplt) 86 87/* int __aeabi_dcmple(double, double) */ 88AEABI_ENTRY(dcmple) 89 LOAD_DREG(d0, r0, r1) 90 LOAD_DREG(d1, r2, r3) 91 vcmp.f64 d0, d1 92 vmrs APSR_nzcv, fpscr |
93 ite hi |
|
91 movhi r0, #0 92 movls r0, #1 93 RET 94AEABI_END(dcmple) 95 96/* int __aeabi_dcmpge(double, double) */ 97AEABI_ENTRY(dcmpge) 98 LOAD_DREG(d0, r0, r1) 99 LOAD_DREG(d1, r2, r3) 100 vcmp.f64 d0, d1 101 vmrs APSR_nzcv, fpscr | 94 movhi r0, #0 95 movls r0, #1 96 RET 97AEABI_END(dcmple) 98 99/* int __aeabi_dcmpge(double, double) */ 100AEABI_ENTRY(dcmpge) 101 LOAD_DREG(d0, r0, r1) 102 LOAD_DREG(d1, r2, r3) 103 vcmp.f64 d0, d1 104 vmrs APSR_nzcv, fpscr |
105 ite lt |
|
102 movlt r0, #0 103 movge r0, #1 104 RET 105AEABI_END(dcmpge) 106 107/* int __aeabi_dcmpgt(double, double) */ 108AEABI_ENTRY(dcmpgt) 109 LOAD_DREG(d0, r0, r1) 110 LOAD_DREG(d1, r2, r3) 111 vcmp.f64 d0, d1 112 vmrs APSR_nzcv, fpscr | 106 movlt r0, #0 107 movge r0, #1 108 RET 109AEABI_END(dcmpge) 110 111/* int __aeabi_dcmpgt(double, double) */ 112AEABI_ENTRY(dcmpgt) 113 LOAD_DREG(d0, r0, r1) 114 LOAD_DREG(d1, r2, r3) 115 vcmp.f64 d0, d1 116 vmrs APSR_nzcv, fpscr |
117 ite le |
|
113 movle r0, #0 114 movgt r0, #1 115 RET 116AEABI_END(dcmpgt) 117 118/* int __aeabi_dcmpun(double, double) */ 119AEABI_ENTRY(dcmpun) 120 LOAD_DREG(d0, r0, r1) 121 LOAD_DREG(d1, r2, r3) 122 vcmp.f64 d0, d1 123 vmrs APSR_nzcv, fpscr | 118 movle r0, #0 119 movgt r0, #1 120 RET 121AEABI_END(dcmpgt) 122 123/* int __aeabi_dcmpun(double, double) */ 124AEABI_ENTRY(dcmpun) 125 LOAD_DREG(d0, r0, r1) 126 LOAD_DREG(d1, r2, r3) 127 vcmp.f64 d0, d1 128 vmrs APSR_nzcv, fpscr |
129 ite vc |
|
124 movvc r0, #0 125 movvs r0, #1 126 RET 127AEABI_END(dcmpun) 128 129/* int __aeabi_d2iz(double) */ 130AEABI_ENTRY(d2iz) 131 LOAD_DREG(d0, r0, r1) --- 66 unchanged lines hidden --- | 130 movvc r0, #0 131 movvs r0, #1 132 RET 133AEABI_END(dcmpun) 134 135/* int __aeabi_d2iz(double) */ 136AEABI_ENTRY(d2iz) 137 LOAD_DREG(d0, r0, r1) --- 66 unchanged lines hidden --- |