Motorola DSP96002 User Manual page 702

32-bit digital signal processor
Table of Contents

Advertisement

page
;
; MOTOROLA DSP96002 DPLIB - VERSION 1.0
;
; DPLIB2IEEE - Convert internal double precision format to a double
;
;
; Entry point:
;
; Input:
r0 contains the lowest address of the 4-word internal
;
;
; Output:
The returned format is DSP96002 extended precision
;
floating-point format.
;
;
jsr
;
move
;
;
jsr
;
ftfr.s
;
move
;
;
jsr
;
move
;
move
;
; Alters:
D0.L,D1.L,D0.M,D0.H
;
dplib2ieee
move
move
cmp
jhi
cmp
jlo
sub
move
move
_fixsign move
jclr
bset
_ok
rts
_setinf
move
jmp
_setzero fclr
jmp
page
;
; MOTOROLA DSP96002 DPLIB - VERSION 1.0
;
; DP_ABS _ Absolute value of a double precision number
;
; Entry point:
MOTOROLA
precision format in d0.
dplib2ieee:
d0
extended precision number
dplib2ieee
d0.d,L:0
dplib2ieee
d0,d0
d0.s,x:0
dplib2ieee
d0.d,d0.ml
d0.ml,l:0
x:(r0),d0.l
#$200003fe,d1.l
d1,d0
#$1ffffc01,d1.l
_setinf
d1,d0
#$1ffffc00,d1.l
_setzero
d1,d0
x:(r0+ms),d0.m
d0.l,d0.h
x:(r0+ls),d0.l
x:(r0+sign),d1.l
#0,d1.l,_ok
#31,d0.h
#$7f800000,d0.s
_fixsign
d0
_fixsign
dp_abs:
c(r0+sign)
DSP96002 USER'S MANUAL
convert(c(r0))
Typical calling sequences:
;convert to register format
;save as dp format
;convert to register format
;round to sp
;save as sp format
;convert to register format
;convert to IEEE dp format
;save IEEE dp format
;get internal exponent
;max limit for register
;compare to max, get min
;too big for register, set inf
;compare to min, get adjust
;return zero
;adjust exponent, get ms
;move exponent
;get ls part
;get sign
;jump if bit clear
;set negative
;get infinity
;get 0
0
(make the number positive);
B-183

Advertisement

Table of Contents
loading

Table of Contents