Motorola DSP96002 User Manual page 672

32-bit digital signal processor
Table of Contents

Advertisement

;
d4.h
;
d5.h
;
;
;
; Alters Program Control Registers
;
pc
;
;
; Version 1.0
; Latest Revision - 01-Aug-88
;
section
emsk
equ
eden
equ
grsmsk
equ
grmsk
equ
smsk
equ
bit
onemsk equ
inum
equ
imsk
equ
qnane
equ
qnanmh
equ
qnanml
equ
maxnum
equ
;
sdptest
;
; Clear ER portion of status register
;
andi
;
; Check for Maximum and Minimum Exponents
;
move
move
move
and
cmp
jeq
move
and
cmp
jeq
tst
jeq
tst
jeq
jmp
;
; Check if Addend 0 is Infinity
;
_mant1
move
MOTOROLA
d4.l
d5.l
d6.l
d7.l
sr
ieeeadd
$7ff
; exponent mask
$1
; denorm exponent
$700
; GRS (guard-round-sticky) bits mask
$fffffe00
; GR (guard-round) bits mask
$ffffff00
; mask to clear bits to right of the sticky
$1ff
; mask to set bits to right of the round bit
$100
; increment number
$7fffffff
; infinity mask
$7ff
; quiet NaN exponent
$7fffffff
; quiet NaN mantissa high
$ffffffff
; quiet NaN mantissa low
$fffff800
; low part of maximum number
; double precision add subroutine
#0,er
#0,d6.l
d0.h,d4.l
#emsk,d7.l
d7,d4
d0.m,d2.l
d7,d4
d1.m,d3.l
_mant1
d1.h,d5.l
d7,d5
#1,d6.l
d7,d5
#0,d2.m
_mant2
d4
#0,d6.l
_mant3
d5
#1,d6.l
_mant4
_nadd
#imsk,d7.l
; get infinity mask
DSP96002 USER'S MANUAL
; addend 0 flag
; get exp0
; get exponent mask
; delete tags, get m0.h
; check max exp, get m1.h
; jump if exp0 = max exp
; get exp1
; delete tags, a1 flag
; check max exp, sticky=0
; jump if exp1 = max exp
; check min exp, a0 flag
; jump if exp0 = min exp
; check min exp, a1 flag
; jump if exp1 = min exp
; jump to normalized add
B-153

Advertisement

Table of Contents
loading

Table of Contents