# 2.11BSD#431 - /usr/src/lib/libc/pdp/crt/ultof.s

##### Functions

    _ultof            X
    l2f               X
    l6f               X
    ultof             X

##### Macros

    twogig            X

       1: /*
       2:  * Program: ultof.s
       3:  * Copyright 1993, GTE Government Systems
       4:  * Author:  Steven M. Schultz
       5:  *
       6:  *  Version	Date		Modification
       7:  *	0.0	02Feb91		1. Initial inspiration struck.
       8:  *	1.0	05Jun93		2. Released into the Public Domain.
       9: */
      10:
      11: #include "DEFS.h"
      12:
      13: /*
      14:  * All routines have both a C interface and an assembly interface.  Normally
      15:  * the two are the same.  In the case of 'ulsh' the compiler has placed one
      16:  * of the operands in r0 and r1 so the assembly interface differs from the
      17:  * C interface.
      18: */
      19:
      20: #define twogig  050000
      21:
      22: #if     !defined(KERNEL)
      23: /*
      24:  * float ultof(lhs)
      25:  *	u_long	lhs;
      26:  *
      27:  * unsigned 32-bit long to floating conversion.  Calls to ultof generated
      28:  * automatically by the C compiler.  This routine is purposefully
      29:  * not defined for the kernel since the kernel shouldn't (can't) do
      30:  * FP arithmetic.
      31:  */
      32:
      33:         .globl ultof
      34: ultof:
      35: ENTRY(ultof)
      36:         jsr     pc,l2f          / 2(sp) -> fr0
      37:         seti
      38:         rts     pc
      39:
      40: /*
      41:  * Common sequences used more than once.  Moved here to save space at the
      42:  * expense of a jsr+rts.  Both do a 'setl', the caller must do a 'seti'.
      43:  * Not for the kernel until the kernel can do FP arithmetic.
      44: */
      45:
      46: ASENTRY(l2f)
      47:         setl
      48:         tst     4(sp)
      49:         bpl     1f
      50:         bic     $100000,4(sp)
      51:         movif   4(sp),fr0
      52:         addf    $twogig,fr0
      53:         rts     pc
      54: 1:
      55:         movif   4(sp),fr0
      56:         rts     pc
      57:
      58: ASENTRY(l6f)
      59:         setl
      60:         tst     8.(sp)
      61:         bpl     1f
      62:         bic     $100000,8.(sp)
      63:         movif   8.(sp),fr3
      64:         addf    $twogig,fr3
      65:         rts     pc
      66: 1:
      67:         movif   8.(sp),fr3
      68:         rts     pc
      69: #endif KERNEL

#### Defined functions

_ultof defined in line 35; never used
l2f defined in line 46; used 1 times

- in line 36

l6f defined in line 58; never used
ultof declared in line 33; defined in line 34; used 1 times

- in line 33

#### Defined macros

twogig defined in line 20; used 2 times

- in line 52, 64

Last modified: 1993-06-07 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 835 |