--- gcc-4.1.2/gcc/config/arm/ieee754-df-original.S 2007-06-25 10:22:06.000000000 +1000 +++ gcc-4.1.2/gcc/config/arm/ieee754-df.S 2007-06-25 10:27:17.000000000 +1000 @@ -717,6 +717,10 @@ cmn r4, #(53 + 1) movle xl, #0 bicle xh, xh, #0x7fffffff +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" le @ Find out proper shift value. @@ -738,6 +742,10 @@ adc xh, r2, xh, lsr r4 orrs lr, lr, r3, lsl #1 biceq xl, xl, r3, lsr #31 +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" @ shift result right of 21 to 31 bits, or left 11 to 1 bits after @@ -752,6 +760,10 @@ adc xh, xh, #0 orrs lr, lr, r3, lsl #1 biceq xl, xl, r3, lsr #31 +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" @ Shift value right of 32 to 64 bits, or 0 to 32 bits after a switch @@ -766,6 +778,10 @@ add xl, xl, r3, lsr #31 orrs lr, lr, r3, lsl #1 biceq xl, xl, r3, lsr #31 +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" @ One or both arguments are denormalized. @@ -808,6 +824,10 @@ eor xh, xh, yh bic xh, xh, #0x7fffffff mov xl, #0 +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" 1: @ One or both args are INF or NAN. @@ -837,12 +857,20 @@ orr xh, xh, #0x7f000000 orr xh, xh, #0x00f00000 mov xl, #0 +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" @ Return a quiet NAN. LSYM(Lml_n): orr xh, xh, #0x7f000000 orr xh, xh, #0x00f80000 +#ifdef __MAVERICK__ + cfmvdlr mvd0, xl + cfmvdhr mvd0, xh +#endif RETLDM "r4, r5, r6" FUNC_END aeabi_dmul --- gcc-4.1.2/gcc/config/arm/ieee754-sf-original.S 2007-06-25 10:18:52.000000000 +1000 +++ gcc-4.1.2/gcc/config/arm/ieee754-sf.S 2007-06-25 10:40:25.000000000 +1000 @@ -518,6 +518,9 @@ @ Check if denormalized result is possible, otherwise return signed 0. cmn r2, #(24 + 1) bicle r0, r0, #0x7fffffff +#ifdef __MAVERICK__ + cfmvsr mvf0, r0 +#endif RETc(le) @ Shift value right, round, etc. @@ -530,6 +533,9 @@ adc r0, r0, #0 orrs r3, r3, ip, lsl #1 biceq r0, r0, ip, lsr #31 +#ifdef __MAVERICK__ + cfmvsr mvf0, r0 +#endif RET @ One or both arguments are denormalized. @@ -567,6 +573,9 @@ LSYM(Lml_z): eor r0, r0, r1 bic r0, r0, #0x7fffffff +#ifdef __MAVERICK__ + cfmvsr mvf0, r0 +#endif RET 1: @ One or both args are INF or NAN. @@ -595,12 +604,18 @@ and r0, r0, #0x80000000 orr r0, r0, #0x7f000000 orr r0, r0, #0x00800000 +#ifdef __MAVERICK__ + cfmvsr mvf0, r0 +#endif RET @ Return a quiet NAN. LSYM(Lml_n): orr r0, r0, #0x7f000000 orr r0, r0, #0x00c00000 +#ifdef __MAVERICK__ + cfmvsr mvf0, r0 +#endif RET FUNC_END aeabi_fmul @@ -677,6 +692,9 @@ adds r2, r2, #127 rsbgts r3, r2, #255 orrgt r0, r0, r2, lsl #23 +#ifdef __MAVERICK__ + cfmvsr mvf0, r0 +#endif RETc(gt) orr r0, r0, #0x00800000