From 01629105c2817a59a4f1f05039593f211cf5ddaa Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 14 Dec 1998 23:15:38 +0000 Subject: Patch from Ralf Corsepius to rename all .s files to .S in conformance with GNU conventions. This is a minor step along the way to supporting automake. --- c/src/lib/libcpu/m68k/m68040/fpsp/sgetem.s | 143 ----------------------------- 1 file changed, 143 deletions(-) delete mode 100644 c/src/lib/libcpu/m68k/m68040/fpsp/sgetem.s (limited to 'c/src/lib/libcpu/m68k/m68040/fpsp/sgetem.s') diff --git a/c/src/lib/libcpu/m68k/m68040/fpsp/sgetem.s b/c/src/lib/libcpu/m68k/m68040/fpsp/sgetem.s deleted file mode 100644 index d1e8a49c41..0000000000 --- a/c/src/lib/libcpu/m68k/m68040/fpsp/sgetem.s +++ /dev/null @@ -1,143 +0,0 @@ -// -// $Id$ -// -// sgetem.sa 3.1 12/10/90 -// -// The entry point sGETEXP returns the exponent portion -// of the input argument. The exponent bias is removed -// and the exponent value is returned as an extended -// precision number in fp0. sGETEXPD handles denormalized -// numbers. -// -// The entry point sGETMAN extracts the mantissa of the -// input argument. The mantissa is converted to an -// extended precision number and returned in fp0. The -// range of the result is [1.0 - 2.0). -// -// -// Input: Double-extended number X in the ETEMP space in -// the floating-point save stack. -// -// Output: The functions return exp(X) or man(X) in fp0. -// -// Modified: fp0. -// -// -// Copyright (C) Motorola, Inc. 1990 -// All Rights Reserved -// -// THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA -// The copyright notice above does not evidence any -// actual or intended publication of such source code. - -//SGETEM idnt 2,1 | Motorola 040 Floating Point Software Package - - |section 8 - -#include "fpsp.defs" - - |xref nrm_set - -// -// This entry point is used by the unimplemented instruction exception -// handler. It points a0 to the input operand. -// -// -// -// SGETEXP -// - - .global sgetexp -sgetexp: - movew LOCAL_EX(%a0),%d0 //get the exponent - bclrl #15,%d0 //clear the sign bit - subw #0x3fff,%d0 //subtract off the bias - fmovew %d0,%fp0 //move the exp to fp0 - rts - - .global sgetexpd -sgetexpd: - bclrb #sign_bit,LOCAL_EX(%a0) - bsr nrm_set //normalize (exp will go negative) - movew LOCAL_EX(%a0),%d0 //load resulting exponent into d0 - subw #0x3fff,%d0 //subtract off the bias - fmovew %d0,%fp0 //move the exp to fp0 - rts -// -// -// This entry point is used by the unimplemented instruction exception -// handler. It points a0 to the input operand. -// -// -// -// SGETMAN -// -// -// For normalized numbers, leave the mantissa alone, simply load -// with an exponent of +/- $3fff. -// - .global sgetman -sgetman: - movel USER_FPCR(%a6),%d0 - andil #0xffffff00,%d0 //clear rounding precision and mode - fmovel %d0,%fpcr //this fpcr setting is used by the 882 - movew LOCAL_EX(%a0),%d0 //get the exp (really just want sign bit) - orw #0x7fff,%d0 //clear old exp - bclrl #14,%d0 //make it the new exp +-3fff - movew %d0,LOCAL_EX(%a0) //move the sign & exp back to fsave stack - fmovex (%a0),%fp0 //put new value back in fp0 - rts - -// -// For denormalized numbers, shift the mantissa until the j-bit = 1, -// then load the exponent with +/1 $3fff. -// - .global sgetmand -sgetmand: - movel LOCAL_HI(%a0),%d0 //load ms mant in d0 - movel LOCAL_LO(%a0),%d1 //load ls mant in d1 - bsr shft //shift mantissa bits till msbit is set - movel %d0,LOCAL_HI(%a0) //put ms mant back on stack - movel %d1,LOCAL_LO(%a0) //put ls mant back on stack - bras sgetman - -// -// SHFT -// -// Shifts the mantissa bits until msbit is set. -// input: -// ms mantissa part in d0 -// ls mantissa part in d1 -// output: -// shifted bits in d0 and d1 -shft: - tstl %d0 //if any bits set in ms mant - bnes upper //then branch -// ;else no bits set in ms mant - tstl %d1 //test if any bits set in ls mant - bnes cont //if set then continue - bras shft_end //else return -cont: - movel %d3,-(%a7) //save d3 - exg %d0,%d1 //shift ls mant to ms mant - bfffo %d0{#0:#32},%d3 //find first 1 in ls mant to d0 - lsll %d3,%d0 //shift first 1 to integer bit in ms mant - movel (%a7)+,%d3 //restore d3 - bras shft_end -upper: - - moveml %d3/%d5/%d6,-(%a7) //save registers - bfffo %d0{#0:#32},%d3 //find first 1 in ls mant to d0 - lsll %d3,%d0 //shift ms mant until j-bit is set - movel %d1,%d6 //save ls mant in d6 - lsll %d3,%d1 //shift ls mant by count - movel #32,%d5 - subl %d3,%d5 //sub 32 from shift for ls mant - lsrl %d5,%d6 //shift off all bits but those that will -// ;be shifted into ms mant - orl %d6,%d0 //shift the ls mant bits into the ms mant - moveml (%a7)+,%d3/%d5/%d6 //restore registers -shft_end: - rts - - |end -- cgit v1.2.3