diff options
Diffstat (limited to 'gcc/config/m68k/lb1sf68.asm')
-rw-r--r-- | gcc/config/m68k/lb1sf68.asm | 362 |
1 files changed, 181 insertions, 181 deletions
diff --git a/gcc/config/m68k/lb1sf68.asm b/gcc/config/m68k/lb1sf68.asm index 7bcee2e..d424e97 100644 --- a/gcc/config/m68k/lb1sf68.asm +++ b/gcc/config/m68k/lb1sf68.asm @@ -214,7 +214,7 @@ TRUNCDFSF = 7 | void __clear_sticky_bits(void); SYM (__clear_sticky_bit): lea SYM (_fpCCR),a0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ movew IMM (0),a0@(STICK) #else clr.w a0@(STICK) @@ -248,7 +248,7 @@ FPTRAP = 15 $_exception_handler: lea SYM (_fpCCR),a0 movew d7,a0@(EBITS) | set __exception_bits -#ifndef __mcf5200__ +#ifndef __mcoldfire__ orw d7,a0@(STICK) | and __sticky_bits #else movew a0@(STICK),d4 @@ -259,7 +259,7 @@ $_exception_handler: movew d5,a0@(LASTO) | and __last_operation | Now put the operands in place: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (SINGLE_FLOAT),d6 #else cmpl IMM (SINGLE_FLOAT),d6 @@ -274,7 +274,7 @@ $_exception_handler: movel a6@(12),a0@(OPER2) 2: | And check whether the exception is trap-enabled: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ andw a0@(TRAPE),d7 | is exception trap-enabled? #else clrl d6 @@ -284,7 +284,7 @@ $_exception_handler: beq 1f | no, exit pea SYM (_fpCCR) | yes, push address of _fpCCR trap IMM (FPTRAP) | and trap -#ifndef __mcf5200__ +#ifndef __mcoldfire__ 1: moveml sp@+,d2-d7 | restore data registers #else 1: moveml sp@,d2-d7 @@ -304,7 +304,7 @@ SYM (__mulsi3): muluw sp@(10), d0 /* x0*y1 */ movew sp@(6), d1 /* x1 -> d1 */ muluw sp@(8), d1 /* x1*y0 */ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw d1, d0 #else addl d1, d0 @@ -323,7 +323,7 @@ SYM (__mulsi3): .proc .globl SYM (__udivsi3) SYM (__udivsi3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ movel d2, sp@- movel sp@(12), d1 /* d1 = divisor */ movel sp@(8), d0 /* d0 = dividend */ @@ -368,7 +368,7 @@ L5: subql IMM (1), d0 /* adjust quotient */ L6: movel sp@+, d2 rts -#else /* __mcf5200__ */ +#else /* __mcoldfire__ */ /* Coldfire implementation of non-restoring division algorithm from Hennessy & Patterson, Appendix A. */ @@ -390,7 +390,7 @@ L2: subql IMM (1),d4 moveml sp@,d2-d4 | restore data registers unlk a6 | and return rts -#endif /* __mcf5200__ */ +#endif /* __mcoldfire__ */ #endif /* L_udivsi3 */ @@ -405,7 +405,7 @@ SYM (__divsi3): movel sp@(12), d1 /* d1 = divisor */ jpl L1 negl d1 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ negb d2 /* change sign because divisor <0 */ #else negl d2 /* change sign because divisor <0 */ @@ -413,7 +413,7 @@ SYM (__divsi3): L1: movel sp@(8), d0 /* d0 = dividend */ jpl L2 negl d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ negb d2 #else negl d2 @@ -444,7 +444,7 @@ SYM (__umodsi3): jbsr SYM (__udivsi3) addql IMM (8), sp movel sp@(8), d1 /* d1 = divisor */ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ movel d1, sp@- movel d0, sp@- jbsr SYM (__mulsi3) /* d0 = (a/b)*b */ @@ -470,7 +470,7 @@ SYM (__modsi3): jbsr SYM (__divsi3) addql IMM (8), sp movel sp@(8), d1 /* d1 = divisor */ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ movel d1, sp@- movel d0, sp@- jbsr SYM (__mulsi3) /* d0 = (a/b)*b */ @@ -611,7 +611,7 @@ SYM (__subdf3): | double __adddf3(double, double); SYM (__adddf3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) | everything will be done in registers moveml d2-d7,sp@- | save all data registers and a2 (but d0-d1) #else @@ -635,7 +635,7 @@ SYM (__adddf3): andl IMM (0x80000000),d7 | isolate a's sign bit ' swap d6 | and also b's sign bit ' -#ifndef __mcf5200__ +#ifndef __mcoldfire__ andw IMM (0x8000),d6 | orw d6,d7 | and combine them into d7, so that a's sign ' | bit is in the high word and b's is in the ' @@ -662,7 +662,7 @@ SYM (__adddf3): orl d7,d0 | and put hidden bit back Ladddf$1: swap d4 | shift right exponent so that it starts -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (5),d4 | in bit 0 and not bit 20 #else lsrl IMM (5),d4 | in bit 0 and not bit 20 @@ -678,7 +678,7 @@ Ladddf$1: orl d7,d2 | and put hidden bit back Ladddf$2: swap d5 | shift right exponent so that it starts -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (5),d5 | in bit 0 and not bit 20 #else lsrl IMM (5),d5 | in bit 0 and not bit 20 @@ -693,7 +693,7 @@ Ladddf$2: | and d4-d5-d6-d7 for the second. To do this we store (temporarily) the | exponents in a2-a3. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml a2-a3,sp@- | save the address registers #else movel a2,sp@- @@ -713,7 +713,7 @@ Ladddf$2: | Here we shift the numbers until the exponents are the same, and put | the largest exponent in a2. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d4,a2 | get exponents back exg d5,a3 | cmpw d4,d5 | compare the exponents @@ -732,7 +732,7 @@ Ladddf$2: | Here we have a's exponent larger than b's, so we have to shift b. We do | this by using as counter d2: 1: movew d4,d2 | move largest exponent to d2 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw d5,d2 | and subtract second exponent exg d4,a2 | get back the longs we saved exg d5,a3 | @@ -746,20 +746,20 @@ Ladddf$2: movel a4,a3 #endif | if difference is too large we don't shift (actually, we can just exit) ' -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (DBL_MANT_DIG+2),d2 #else cmpl IMM (DBL_MANT_DIG+2),d2 #endif bge Ladddf$b$small -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (32),d2 | if difference >= 32, shift by longs #else cmpl IMM (32),d2 | if difference >= 32, shift by longs #endif bge 5f 2: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (16),d2 | if difference >= 16, shift by words #else cmpl IMM (16),d2 | if difference >= 16, shift by words @@ -768,7 +768,7 @@ Ladddf$2: bra 3f | enter dbra loop 4: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d4 roxrl IMM (1),d5 roxrl IMM (1),d6 @@ -789,7 +789,7 @@ Ladddf$2: 12: lsrl IMM (1),d4 #endif 3: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d2,4b #else subql IMM (1),d2 @@ -803,7 +803,7 @@ Ladddf$2: movel d5,d6 movel d4,d5 movel IMM (0),d4 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (32),d2 #else subl IMM (32),d2 @@ -818,7 +818,7 @@ Ladddf$2: swap d5 movew IMM (0),d4 swap d4 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (16),d2 #else subl IMM (16),d2 @@ -826,7 +826,7 @@ Ladddf$2: bra 3b 9: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d4,d5 movew d4,d6 subw d5,d6 | keep d5 (largest exponent) in d4 @@ -845,20 +845,20 @@ Ladddf$2: movel a4,a3 #endif | if difference is too large we don't shift (actually, we can just exit) ' -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (DBL_MANT_DIG+2),d6 #else cmpl IMM (DBL_MANT_DIG+2),d6 #endif bge Ladddf$a$small -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (32),d6 | if difference >= 32, shift by longs #else cmpl IMM (32),d6 | if difference >= 32, shift by longs #endif bge 5f 2: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (16),d6 | if difference >= 16, shift by words #else cmpl IMM (16),d6 | if difference >= 16, shift by words @@ -867,7 +867,7 @@ Ladddf$2: bra 3f | enter dbra loop 4: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 roxrl IMM (1),d2 @@ -888,7 +888,7 @@ Ladddf$2: 12: lsrl IMM (1),d0 #endif 3: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d6,4b #else subql IMM (1),d6 @@ -902,7 +902,7 @@ Ladddf$2: movel d1,d2 movel d0,d1 movel IMM (0),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (32),d6 #else subl IMM (32),d6 @@ -917,14 +917,14 @@ Ladddf$2: swap d1 movew IMM (0),d0 swap d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (16),d6 #else subl IMM (16),d6 #endif bra 3b Ladddf$3: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d4,a2 exg d5,a3 #else @@ -940,7 +940,7 @@ Ladddf$4: | the signs in a4. | Here we have to decide whether to add or subtract the numbers: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a0 | get the signs exg d6,a3 | a3 is free to be used #else @@ -958,7 +958,7 @@ Ladddf$4: eorl d7,d6 | compare the signs bmi Lsubdf$0 | if the signs are different we have | to subtract -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a0 | else we add the numbers exg d6,a3 | #else @@ -978,7 +978,7 @@ Ladddf$4: movel a0,d7 | andl IMM (0x80000000),d7 | d7 now has the sign -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,a2-a3 #else movel sp@+,a4 @@ -992,7 +992,7 @@ Ladddf$4: | one more bit we check this: btst IMM (DBL_MANT_DIG+1),d0 beq 1f -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 roxrl IMM (1),d2 @@ -1017,12 +1017,12 @@ Ladddf$4: 1: lea Ladddf$5,a0 | to return from rounding routine lea SYM (_fpCCR),a1 | check the rounding mode -#ifdef __mcf5200__ +#ifdef __mcoldfire__ clrl d6 #endif movew a1@(6),d6 | rounding mode in d6 beq Lround$to$nearest -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (ROUND_TO_PLUS),d6 #else cmpl IMM (ROUND_TO_PLUS),d6 @@ -1032,20 +1032,20 @@ Ladddf$4: bra Lround$to$plus Ladddf$5: | Put back the exponent and check for overflow -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (0x7ff),d4 | is the exponent big? #else cmpl IMM (0x7ff),d4 | is the exponent big? #endif bge 1f bclr IMM (DBL_MANT_DIG-1),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lslw IMM (4),d4 | put exponent back into position #else lsll IMM (4),d4 | put exponent back into position #endif swap d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ orw d4,d0 | #else orl d4,d0 | @@ -1058,7 +1058,7 @@ Ladddf$5: Lsubdf$0: | Here we do the subtraction. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a0 | put sign back in a0 exg d6,a3 | #else @@ -1086,7 +1086,7 @@ Lsubdf$0: movel a2,d4 | return exponent to d4 movel a0,d7 andl IMM (0x80000000),d7 | isolate sign bit -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,a2-a3 | #else movel sp@+,a4 @@ -1100,7 +1100,7 @@ Lsubdf$0: | one more bit we check this: btst IMM (DBL_MANT_DIG+1),d0 beq 1f -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 roxrl IMM (1),d2 @@ -1125,12 +1125,12 @@ Lsubdf$0: 1: lea Lsubdf$1,a0 | to return from rounding routine lea SYM (_fpCCR),a1 | check the rounding mode -#ifdef __mcf5200__ +#ifdef __mcoldfire__ clrl d6 #endif movew a1@(6),d6 | rounding mode in d6 beq Lround$to$nearest -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (ROUND_TO_PLUS),d6 #else cmpl IMM (ROUND_TO_PLUS),d6 @@ -1141,13 +1141,13 @@ Lsubdf$0: Lsubdf$1: | Put back the exponent and sign (we don't have overflow). ' bclr IMM (DBL_MANT_DIG-1),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lslw IMM (4),d4 | put exponent back into position #else lsll IMM (4),d4 | put exponent back into position #endif swap d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ orw d4,d0 | #else orl d4,d0 | @@ -1159,7 +1159,7 @@ Lsubdf$1: | DBL_MANT_DIG+1) we return the other (and now we don't have to ' | check for finiteness or zero). Ladddf$a$small: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,a2-a3 #else movel sp@+,a4 @@ -1170,7 +1170,7 @@ Ladddf$a$small: movel a6@(20),d1 lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | restore data registers #else moveml sp@,d2-d7 @@ -1181,7 +1181,7 @@ Ladddf$a$small: rts Ladddf$b$small: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,a2-a3 #else movel sp@+,a4 @@ -1192,7 +1192,7 @@ Ladddf$b$small: movel a6@(12),d1 lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | restore data registers #else moveml sp@,d2-d7 @@ -1238,7 +1238,7 @@ Ladddf$a: bra Ld$infty | Ladddf$ret$1: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,a2-a3 | restore regs and exit #else movel sp@+,a4 @@ -1251,7 +1251,7 @@ Ladddf$ret: lea SYM (_fpCCR),a0 movew IMM (0),a0@ orl d7,d0 | put sign bit back -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 #else moveml sp@,d2-d7 @@ -1263,7 +1263,7 @@ Ladddf$ret: Ladddf$ret$den: | Return a denormalized number. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 | shift right once more roxrl IMM (1),d1 | #else @@ -1329,7 +1329,7 @@ Ladddf$nf: | double __muldf3(double, double); SYM (__muldf3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- #else @@ -1370,7 +1370,7 @@ SYM (__muldf3): andl d6,d0 | isolate fraction orl IMM (0x00100000),d0 | and put hidden bit back swap d4 | I like exponents in the first byte -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (4),d4 | #else lsrl IMM (4),d4 | @@ -1381,13 +1381,13 @@ Lmuldf$1: andl d6,d2 | orl IMM (0x00100000),d2 | and put hidden bit back swap d5 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (4),d5 | #else lsrl IMM (4),d5 | #endif Lmuldf$2: | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw d5,d4 | add exponents subw IMM (D_BIAS+1),d4 | and subtract bias (plus one) #else @@ -1405,7 +1405,7 @@ Lmuldf$2: | | enough to keep everything in them. So we use the address registers to keep | some intermediate data. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml a2-a3,sp@- | save a2 and a3 for temporary use #else movel a2,sp@- @@ -1416,7 +1416,7 @@ Lmuldf$2: | movel d4,a3 | and a3 will preserve the exponent | First, shift d2-d3 so bit 20 becomes bit 31: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ rorl IMM (5),d2 | rotate d2 5 places right swap d2 | and swap it rorl IMM (5),d3 | do the same thing with d3 @@ -1447,7 +1447,7 @@ Lmuldf$2: | | We use a1 as counter: movel IMM (DBL_MANT_DIG-1),a1 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a1 #else movel d7,a4 @@ -1456,7 +1456,7 @@ Lmuldf$2: | #endif 1: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a1 | put counter back in a1 #else movel d7,a4 @@ -1470,7 +1470,7 @@ Lmuldf$2: | addl d7,d7 | addxl d6,d6 | bcc 2f | if bit clear skip the following -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a2 | #else movel d7,a4 @@ -1481,7 +1481,7 @@ Lmuldf$2: | addxl d4,d2 | addxl d7,d1 | addxl d7,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a2 | #else movel d7,a4 @@ -1489,7 +1489,7 @@ Lmuldf$2: | movel a4,a2 #endif 2: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d7,a1 | put counter in d7 dbf d7,1b | decrement and branch #else @@ -1501,7 +1501,7 @@ Lmuldf$2: | #endif movel a3,d4 | restore exponent -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,a2-a3 #else movel sp@+,a4 @@ -1520,7 +1520,7 @@ Lmuldf$2: | swap d3 movew d3,d2 movew IMM (0),d3 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 roxrl IMM (1),d2 @@ -1556,7 +1556,7 @@ Lmuldf$2: | btst IMM (DBL_MANT_DIG+1-32),d0 beq Lround$exit -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 addw IMM (1),d4 @@ -1592,7 +1592,7 @@ Lmuldf$a$nf: | NaN, in which case we return NaN. Lmuldf$b$0: movew IMM (MULTIPLY),d5 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d2,d0 | put b (==0) into d0-d1 exg d3,d1 | and a (with sign bit cleared) into d2-d3 #else @@ -1612,7 +1612,7 @@ Lmuldf$a$0: bge Ld$inop | in case NaN or +/-INFINITY return NaN lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 #else moveml sp@,d2-d7 @@ -1631,7 +1631,7 @@ Lmuldf$a$den: andl d6,d0 1: addl d1,d1 | shift a left until bit 20 is set addxl d0,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d4 | and adjust exponent #else subl IMM (1),d4 | and adjust exponent @@ -1645,7 +1645,7 @@ Lmuldf$b$den: andl d6,d2 1: addl d3,d3 | shift b left until bit 20 is set addxl d2,d2 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d5 | and adjust exponent #else subql IMM (1),d5 | and adjust exponent @@ -1661,7 +1661,7 @@ Lmuldf$b$den: | double __divdf3(double, double); SYM (__divdf3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- #else @@ -1706,7 +1706,7 @@ SYM (__divdf3): andl d6,d0 | and isolate fraction orl IMM (0x00100000),d0 | and put hidden bit back swap d4 | I like exponents in the first byte -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (4),d4 | #else lsrl IMM (4),d4 | @@ -1717,13 +1717,13 @@ Ldivdf$1: | andl d6,d2 | orl IMM (0x00100000),d2 swap d5 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (4),d5 | #else lsrl IMM (4),d5 | #endif Ldivdf$2: | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw d5,d4 | subtract exponents addw IMM (D_BIAS),d4 | and add bias #else @@ -1760,7 +1760,7 @@ Ldivdf$2: | bset d5,d6 | set the corresponding bit in d6 3: addl d1,d1 | shift a by 1 addxl d0,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d5,1b | and branch back #else subql IMM (1), d5 @@ -1782,7 +1782,7 @@ Ldivdf$2: | bset d5,d7 | set the corresponding bit in d7 3: addl d1,d1 | shift a by 1 addxl d0,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d5,1b | and branch back #else subql IMM (1), d5 @@ -1800,7 +1800,7 @@ Ldivdf$2: | beq 3f | if d0==d2 check d1 and d3 2: addl d1,d1 | shift a by 1 addxl d0,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d5,1b | and branch back #else subql IMM (1), d5 @@ -1816,7 +1816,7 @@ Ldivdf$2: | | to it; if you don't do this the algorithm loses in some cases). ' movel IMM (0),d2 movel d2,d3 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (DBL_MANT_DIG),d5 addw IMM (63),d5 cmpw IMM (31),d5 @@ -1828,7 +1828,7 @@ Ldivdf$2: | bhi 2f 1: bset d5,d3 bra 5f -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (32),d5 #else subl IMM (32),d5 @@ -1847,7 +1847,7 @@ Ldivdf$2: | | not set: btst IMM (DBL_MANT_DIG-32+1),d0 beq 1f -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 roxrl IMM (1),d2 @@ -1897,7 +1897,7 @@ Ldivdf$a$0: movel d0,d1 | lea SYM (_fpCCR),a0 | clear exception flags movew IMM (0),a0@ | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | #else moveml sp@,d2-d7 | @@ -1945,7 +1945,7 @@ Ldivdf$a$den: andl d6,d0 1: addl d1,d1 | shift a left until bit 20 is set addxl d0,d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d4 | and adjust exponent #else subl IMM (1),d4 | and adjust exponent @@ -1959,7 +1959,7 @@ Ldivdf$b$den: andl d6,d2 1: addl d3,d3 | shift b left until bit 20 is set addxl d2,d2 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d5 | and adjust exponent #else subql IMM (1),d5 | and adjust exponent @@ -1974,7 +1974,7 @@ Lround$exit: | so that 2^21 <= d0 < 2^22, and the exponent is in the lower byte of d4. | First check for underlow in the exponent: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (-DBL_MANT_DIG-1),d4 #else cmpl IMM (-DBL_MANT_DIG-1),d4 @@ -1987,14 +1987,14 @@ Lround$exit: movel d7,a0 | movel IMM (0),d6 | use d6-d7 to collect bits flushed right movel d6,d7 | use d6-d7 to collect bits flushed right -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (1),d4 | if the exponent is less than 1 we #else cmpl IMM (1),d4 | if the exponent is less than 1 we #endif bge 2f | have to shift right (denormalize) 1: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw IMM (1),d4 | adjust the exponent lsrl IMM (1),d0 | shift right once roxrl IMM (1),d1 | @@ -2037,12 +2037,12 @@ Lround$exit: | Now call the rounding routine (which takes care of denormalized numbers): lea Lround$0,a0 | to return from rounding routine lea SYM (_fpCCR),a1 | check the rounding mode -#ifdef __mcf5200__ +#ifdef __mcoldfire__ clrl d6 #endif movew a1@(6),d6 | rounding mode in d6 beq Lround$to$nearest -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (ROUND_TO_PLUS),d6 #else cmpl IMM (ROUND_TO_PLUS),d6 @@ -2058,7 +2058,7 @@ Lround$0: | check again for underflow!). We have to check for overflow or for a | denormalized number (which also signals underflow). | Check for overflow (i.e., exponent >= 0x7ff). -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (0x07ff),d4 #else cmpl IMM (0x07ff),d4 @@ -2069,14 +2069,14 @@ Lround$0: beq Ld$den 1: | Put back the exponents and sign and return. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lslw IMM (4),d4 | exponent back to fourth byte #else lsll IMM (4),d4 | exponent back to fourth byte #endif bclr IMM (DBL_MANT_DIG-32-1),d0 swap d0 | and put back exponent -#ifndef __mcf5200__ +#ifndef __mcoldfire__ orw d4,d0 | #else orl d4,d0 | @@ -2086,7 +2086,7 @@ Lround$0: lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 #else moveml sp@,d2-d7 @@ -2102,7 +2102,7 @@ Lround$0: | double __negdf2(double, double); SYM (__negdf2): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- #else @@ -2128,7 +2128,7 @@ SYM (__negdf2): bra Ld$infty 1: lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 #else moveml sp@,d2-d7 @@ -2150,7 +2150,7 @@ EQUAL = 0 | int __cmpdf2(double, double); SYM (__cmpdf2): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- | save registers #else @@ -2194,7 +2194,7 @@ Lcmpdf$1: tstl d6 bpl 1f | If both are negative exchange them -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d0,d2 exg d1,d3 #else @@ -2217,7 +2217,7 @@ Lcmpdf$1: bne Lcmpdf$a$gt$b | |b| < |a| | If we got here a == b. movel IMM (EQUAL),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | put back the registers #else moveml sp@,d2-d7 @@ -2228,7 +2228,7 @@ Lcmpdf$1: rts Lcmpdf$a$gt$b: movel IMM (GREATER),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | put back the registers #else moveml sp@,d2-d7 @@ -2239,7 +2239,7 @@ Lcmpdf$a$gt$b: rts Lcmpdf$b$gt$a: movel IMM (LESS),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | put back the registers #else moveml sp@,d2-d7 @@ -2287,7 +2287,7 @@ Lround$to$nearest: | Normalize shifting left until bit #DBL_MANT_DIG-32 is set or the exponent | is one (remember that a denormalized number corresponds to an | exponent of -D_BIAS+1). -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (1),d4 | remember that the exponent is at least one #else cmpl IMM (1),d4 | remember that the exponent is at least one @@ -2297,7 +2297,7 @@ Lround$to$nearest: addxl d2,d2 | addxl d1,d1 | addxl d0,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d4,1b | #else subql IMM (1), d4 @@ -2325,7 +2325,7 @@ Lround$to$nearest: addxl d2,d0 | Shift right once (because we used bit #DBL_MANT_DIG-32!). 2: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 #else @@ -2340,7 +2340,7 @@ Lround$to$nearest: | 'fraction overflow' ...). btst IMM (DBL_MANT_DIG-32),d0 beq 1f -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 addw IMM (1),d4 @@ -2491,7 +2491,7 @@ SYM (__subsf3): | float __addsf3(float, float); SYM (__addsf3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) | everything will be done in registers moveml d2-d7,sp@- | save all data registers but d0-d1 #else @@ -2551,7 +2551,7 @@ Laddsf$2: | same, and put the largest exponent in d6. Note that we are using two | registers for each number (see the discussion by D. Knuth in "Seminumerical | Algorithms"). -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw d6,d7 | compare exponents #else cmpl d6,d7 | compare exponents @@ -2561,32 +2561,32 @@ Laddsf$2: 1: subl d6,d7 | keep the largest exponent negl d7 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (8),d7 | put difference in lower byte #else lsrl IMM (8),d7 | put difference in lower byte #endif | if difference is too large we don't shift (actually, we can just exit) ' -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (FLT_MANT_DIG+2),d7 #else cmpl IMM (FLT_MANT_DIG+2),d7 #endif bge Laddsf$b$small -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (16),d7 | if difference >= 16 swap #else cmpl IMM (16),d7 | if difference >= 16 swap #endif bge 4f 2: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d7 #else subql IMM (1), d7 #endif 3: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d2 | shift right second operand roxrl IMM (1),d3 dbra d7,3b @@ -2605,7 +2605,7 @@ Laddsf$2: swap d3 movew d3,d2 swap d2 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (16),d7 #else subl IMM (16),d7 @@ -2613,7 +2613,7 @@ Laddsf$2: bne 2b | if still more bits, go back to normal case bra Laddsf$3 5: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d6,d7 | exchange the exponents #else eorl d6,d7 @@ -2622,32 +2622,32 @@ Laddsf$2: #endif subl d6,d7 | keep the largest exponent negl d7 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (8),d7 | put difference in lower byte #else lsrl IMM (8),d7 | put difference in lower byte #endif | if difference is too large we don't shift (and exit!) ' -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (FLT_MANT_DIG+2),d7 #else cmpl IMM (FLT_MANT_DIG+2),d7 #endif bge Laddsf$a$small -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (16),d7 | if difference >= 16 swap #else cmpl IMM (16),d7 | if difference >= 16 swap #endif bge 8f 6: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d7 #else subl IMM (1),d7 #endif 7: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 | shift right first operand roxrl IMM (1),d1 dbra d7,7b @@ -2666,7 +2666,7 @@ Laddsf$2: swap d1 movew d1,d0 swap d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (16),d7 #else subl IMM (16),d7 @@ -2679,7 +2679,7 @@ Laddsf$2: Laddsf$3: | Here we have to decide whether to add or subtract the numbers -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d6,a0 | get signs back exg d7,a1 | and save the exponents #else @@ -2696,7 +2696,7 @@ Laddsf$3: | numbers | Here we have both positive or both negative -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d6,a0 | now we have the exponent in d6 #else movel d6,d4 @@ -2713,7 +2713,7 @@ Laddsf$3: | Put the exponent, in the first byte, in d2, to use the "standard" rounding | routines: movel d6,d2 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (8),d2 #else lsrl IMM (8),d2 @@ -2725,7 +2725,7 @@ Laddsf$3: | one more bit we check this: btst IMM (FLT_MANT_DIG+1),d0 beq 1f -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 #else @@ -2739,12 +2739,12 @@ Laddsf$3: 1: lea Laddsf$4,a0 | to return from rounding routine lea SYM (_fpCCR),a1 | check the rounding mode -#ifdef __mcf5200__ +#ifdef __mcoldfire__ clrl d6 #endif movew a1@(6),d6 | rounding mode in d6 beq Lround$to$nearest -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (ROUND_TO_PLUS),d6 #else cmpl IMM (ROUND_TO_PLUS),d6 @@ -2754,14 +2754,14 @@ Laddsf$3: bra Lround$to$plus Laddsf$4: | Put back the exponent, but check for overflow. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (0xff),d2 #else cmpl IMM (0xff),d2 #endif bhi 1f bclr IMM (FLT_MANT_DIG-1),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lslw IMM (7),d2 #else lsll IMM (7),d2 @@ -2787,7 +2787,7 @@ Lsubsf$0: negl d1 negxl d0 1: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d2,a0 | now we have the exponent in d2 lsrw IMM (8),d2 | put it in the first byte #else @@ -2804,12 +2804,12 @@ Lsubsf$0: | the rounding routines themselves. lea Lsubsf$1,a0 | to return from rounding routine lea SYM (_fpCCR),a1 | check the rounding mode -#ifdef __mcf5200__ +#ifdef __mcoldfire__ clrl d6 #endif movew a1@(6),d6 | rounding mode in d6 beq Lround$to$nearest -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (ROUND_TO_PLUS),d6 #else cmpl IMM (ROUND_TO_PLUS),d6 @@ -2820,7 +2820,7 @@ Lsubsf$0: Lsubsf$1: | Put back the exponent (we can't have overflow!). ' bclr IMM (FLT_MANT_DIG-1),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lslw IMM (7),d2 #else lsll IMM (7),d2 @@ -2836,7 +2836,7 @@ Laddsf$a$small: movel a6@(12),d0 lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | restore data registers #else moveml sp@,d2-d7 @@ -2850,7 +2850,7 @@ Laddsf$b$small: movel a6@(8),d0 lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | restore data registers #else moveml sp@,d2-d7 @@ -2908,7 +2908,7 @@ Laddsf$ret: lea SYM (_fpCCR),a0 movew IMM (0),a0@ orl d7,d0 | put sign bit -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | restore data registers #else moveml sp@,d2-d7 @@ -2975,7 +2975,7 @@ Laddsf$nf: | float __mulsf3(float, float); SYM (__mulsf3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- #else @@ -3010,7 +3010,7 @@ SYM (__mulsf3): andl d5,d0 | and isolate fraction orl d4,d0 | and put hidden bit back swap d2 | I like exponents in the first byte -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (7),d2 | #else lsrl IMM (7),d2 | @@ -3021,13 +3021,13 @@ Lmulsf$1: | number andl d5,d1 | orl d4,d1 | swap d3 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (7),d3 | #else lsrl IMM (7),d3 | #endif Lmulsf$2: | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw d3,d2 | add exponents subw IMM (F_BIAS+1),d2 | and subtract bias (plus one) #else @@ -3060,7 +3060,7 @@ Lmulsf$2: | addl d5,d1 | add a addxl d4,d0 2: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbf d3,1b | loop back #else subql IMM (1),d3 @@ -3070,7 +3070,7 @@ Lmulsf$2: | | Now we have the product in d0-d1, with bit (FLT_MANT_DIG - 1) + FLT_MANT_DIG | (mod 32) of d0 set. The first thing to do now is to normalize it so bit | FLT_MANT_DIG is set (to do the rounding). -#ifndef __mcf5200__ +#ifndef __mcoldfire__ rorl IMM (6),d1 swap d1 movew d1,d3 @@ -3089,7 +3089,7 @@ Lmulsf$2: | lsll IMM (8),d0 addl d0,d0 addl d0,d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ orw d3,d0 #else orl d3,d0 @@ -3099,7 +3099,7 @@ Lmulsf$2: | btst IMM (FLT_MANT_DIG+1),d0 beq Lround$exit -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrl IMM (1),d0 roxrl IMM (1),d1 addw IMM (1),d2 @@ -3143,7 +3143,7 @@ Lmulsf$a$0: bge Lf$inop | if b is +/-INFINITY or NaN return NaN lea SYM (_fpCCR),a0 | else return zero movew IMM (0),a0@ | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | #else moveml sp@,d2-d7 @@ -3161,7 +3161,7 @@ Lmulsf$a$den: movel IMM (1),d2 andl d5,d0 1: addl d0,d0 | shift a left (until bit 23 is set) -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d2 | and adjust exponent #else subql IMM (1),d2 | and adjust exponent @@ -3174,7 +3174,7 @@ Lmulsf$b$den: movel IMM (1),d3 andl d5,d1 1: addl d1,d1 | shift b left until bit 23 is set -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d3 | and adjust exponent #else subl IMM (1),d3 | and adjust exponent @@ -3189,7 +3189,7 @@ Lmulsf$b$den: | float __divsf3(float, float); SYM (__divsf3): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- #else @@ -3226,7 +3226,7 @@ SYM (__divsf3): andl d5,d0 | and isolate fraction orl d4,d0 | and put hidden bit back swap d2 | I like exponents in the first byte -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (7),d2 | #else lsrl IMM (7),d2 | @@ -3237,13 +3237,13 @@ Ldivsf$1: | andl d5,d1 | orl d4,d1 | swap d3 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lsrw IMM (7),d3 | #else lsrl IMM (7),d3 | #endif Ldivsf$2: | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw d3,d2 | subtract exponents addw IMM (F_BIAS),d2 | and add bias #else @@ -3270,7 +3270,7 @@ Ldivsf$2: | subl d1,d0 | if a >= b a <-- a-b beq 3f | if a is zero, exit 2: addl d0,d0 | multiply a by 2 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d3,1b #else subql IMM (1),d3 @@ -3282,7 +3282,7 @@ Ldivsf$2: | 1: cmpl d0,d1 ble 2f addl d0,d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d3,1b #else subql IMM(1),d3 @@ -3291,7 +3291,7 @@ Ldivsf$2: | movel IMM (0),d1 bra 3f 2: movel IMM (0),d1 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (FLT_MANT_DIG),d3 addw IMM (31),d3 #else @@ -3309,7 +3309,7 @@ Ldivsf$2: | btst IMM (FLT_MANT_DIG+1),d0 beq 1f | if it is not set, then bit 24 is set lsrl IMM (1),d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw IMM (1),d2 | #else addl IMM (1),d2 | @@ -3343,7 +3343,7 @@ Ldivsf$a$0: movel IMM (0),d0 | else return zero lea SYM (_fpCCR),a0 | movew IMM (0),a0@ | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | #else moveml sp@,d2-d7 | @@ -3375,7 +3375,7 @@ Ldivsf$a$den: movel IMM (1),d2 andl d5,d0 1: addl d0,d0 | shift a left until bit FLT_MANT_DIG-1 is set -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d2 | and adjust exponent #else subl IMM (1),d2 | and adjust exponent @@ -3388,7 +3388,7 @@ Ldivsf$b$den: movel IMM (1),d3 andl d5,d1 1: addl d1,d1 | shift b left until bit FLT_MANT_DIG is set -#ifndef __mcf5200__ +#ifndef __mcoldfire__ subw IMM (1),d3 | and adjust exponent #else subl IMM (1),d3 | and adjust exponent @@ -3401,7 +3401,7 @@ Lround$exit: | This is a common exit point for __mulsf3 and __divsf3. | First check for underlow in the exponent: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (-FLT_MANT_DIG-1),d2 #else cmpl IMM (-FLT_MANT_DIG-1),d2 @@ -3412,14 +3412,14 @@ Lround$exit: | exponent until it becomes 1 or the fraction is zero (in the latter case | we signal underflow and return zero). movel IMM (0),d6 | d6 is used temporarily -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (1),d2 | if the exponent is less than 1 we #else cmpl IMM (1),d2 | if the exponent is less than 1 we #endif bge 2f | have to shift right (denormalize) 1: -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw IMM (1),d2 | adjust the exponent lsrl IMM (1),d0 | shift right once roxrl IMM (1),d1 | @@ -3446,12 +3446,12 @@ Lround$exit: | Now call the rounding routine (which takes care of denormalized numbers): lea Lround$0,a0 | to return from rounding routine lea SYM (_fpCCR),a1 | check the rounding mode -#ifdef __mcf5200__ +#ifdef __mcoldfire__ clrl d6 #endif movew a1@(6),d6 | rounding mode in d6 beq Lround$to$nearest -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (ROUND_TO_PLUS),d6 #else cmpl IMM (ROUND_TO_PLUS),d6 @@ -3467,7 +3467,7 @@ Lround$0: | check again for underflow!). We have to check for overflow or for a | denormalized number (which also signals underflow). | Check for overflow (i.e., exponent >= 255). -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (0x00ff),d2 #else cmpl IMM (0x00ff),d2 @@ -3478,14 +3478,14 @@ Lround$0: beq Lf$den 1: | Put back the exponents and sign and return. -#ifndef __mcf5200__ +#ifndef __mcoldfire__ lslw IMM (7),d2 | exponent back to fourth byte #else lsll IMM (7),d2 | exponent back to fourth byte #endif bclr IMM (FLT_MANT_DIG-1),d0 swap d0 | and put back exponent -#ifndef __mcf5200__ +#ifndef __mcoldfire__ orw d2,d0 | #else orl d2,d0 @@ -3495,7 +3495,7 @@ Lround$0: lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 #else moveml sp@,d2-d7 @@ -3514,7 +3514,7 @@ Lround$0: | float __negsf2(float); SYM (__negsf2): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- #else @@ -3536,7 +3536,7 @@ SYM (__negsf2): bra Lf$infty 1: lea SYM (_fpCCR),a0 movew IMM (0),a0@ -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 #else moveml sp@,d2-d7 @@ -3558,7 +3558,7 @@ EQUAL = 0 | int __cmpsf2(float, float); SYM (__cmpsf2): -#ifndef __mcf5200__ +#ifndef __mcoldfire__ link a6,IMM (0) moveml d2-d7,sp@- | save registers #else @@ -3595,7 +3595,7 @@ Lcmpsf$2: tstl d6 bpl 1f | If both are negative exchange them -#ifndef __mcf5200__ +#ifndef __mcoldfire__ exg d0,d1 #else movel d0,d7 @@ -3610,7 +3610,7 @@ Lcmpsf$2: bne Lcmpsf$a$gt$b | |b| < |a| | If we got here a == b. movel IMM (EQUAL),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | put back the registers #else moveml sp@,d2-d7 @@ -3619,7 +3619,7 @@ Lcmpsf$2: rts Lcmpsf$a$gt$b: movel IMM (GREATER),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | put back the registers #else moveml sp@,d2-d7 @@ -3630,7 +3630,7 @@ Lcmpsf$a$gt$b: rts Lcmpsf$b$gt$a: movel IMM (LESS),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ moveml sp@+,d2-d7 | put back the registers #else moveml sp@,d2-d7 @@ -3668,7 +3668,7 @@ Lround$to$nearest: | Normalize shifting left until bit #FLT_MANT_DIG is set or the exponent | is one (remember that a denormalized number corresponds to an | exponent of -F_BIAS+1). -#ifndef __mcf5200__ +#ifndef __mcoldfire__ cmpw IMM (1),d2 | remember that the exponent is at least one #else cmpl IMM (1),d2 | remember that the exponent is at least one @@ -3676,7 +3676,7 @@ Lround$to$nearest: beq 2f | an exponent of one means denormalized addl d1,d1 | else shift and adjust the exponent addxl d0,d0 | -#ifndef __mcf5200__ +#ifndef __mcoldfire__ dbra d2,1b | #else subql IMM (1),d2 @@ -3705,7 +3705,7 @@ Lround$to$nearest: btst IMM (FLT_MANT_DIG),d0 beq 1f lsrl IMM (1),d0 -#ifndef __mcf5200__ +#ifndef __mcoldfire__ addw IMM (1),d2 #else addql IMM (1),d2 |