ttl ieee format equivalent abs and neg (iefabs/iefneg) *************************************** * (c) copyright 1981 by motorola inc. * *************************************** ************************************************************* * iefabs * * fast floating point ieee format equivalent absolute value* * * * input: d7 - ieee format number argument * * * * output: d7 - ieee format number absolute value result * * * * condition codes: * * n - cleared * * z - set if result is zero * * v - set if result is nan (not-a-number) * * (occurs only if input argument is nan) * * c - undefined * * x - undefined * * * * all registers transparent * * * * maximum stack used: 24 bytes * * * * notes: * * 1) this routine properly handles all ieee floating * * point values and number types. * * 2) if the input argument is a nan (not-a-number) then * * it will be returned as the result with the "v" bit * * set in the condition code register. * * * ************************************************************* page iefabs idnt 1,1 ieee format equivalent abs and neg opt pcs xdef iefabs ieee format absolute value xref iefsop single argument conversion routine xref iefrtod7 return caller's original d7 as result xref ffpcpyrt copyright notice section 9 ****************************** * absolute value entry point * ****************************** iefabs jsr iefsop direct return to caller if nan encountered nop +0 normalized return (or zero or denormalized) * +2 infinity return * all values may be absolutized by forcing a plus sign on the original value bclr.b #7,16(sp) clear sign bit of original value jmp iefrtod7 and return original value altered a wee bit page ************************************************************* * iefneg * * fast floating point ieee format equivalent negate * * * * input: d7 - ieee format number argument * * * * output: d7 - ieee format number negated result * * * * condition codes: * * n - set if result is negative * * z - set if result is zero * * v - set if result is nan (not-a-number) * * (occurs only if input argument is nan) * * c - undefined * * x - undefined * * * * all registers transparent * * * * maximum stack used: 24 bytes * * * * notes: * * 1) this routine properly handles all ieee floating * * point values and number types. * * 2) if the input argument is a nan (not-a-number) then * * it will be returned as the result with the "v" bit * * set in the condition code register. * * * ************************************************************* page xdef iefneg ieee format negate ********************** * negate entry point * ********************** iefneg jsr iefsop direct return to caller if nan encountered nop +0 normalized return (or zero or denormalized) * +6 both infinity return * all values may be negated by inverting the sign bit of the original value bchg.b #7,16(sp) negate original sign bit jmp iefrtod7 and return this modified original register end  jmp iefrtod7 and return this modified original register end  jmp iefrtod7 and return this modified original register end  jmp iefrtod7 and return this modified original register end