Motorola DSP96002 User Manual page 687

32-bit digital signal processor
Table of Contents

Advertisement

rol
jset
jclr
jmp
;
; *** Cases: 1) Addend 0 is Negative,
;
;
;
;
_nset
bset
_fadd
add
addc
jcc
lsr
ror
jclr
bset
_cclr4
bset
inc
;
; Check if Result is Infinity
;
move
move
and
cmp
jne
jset
;
; Positive Infinity
;
jset
jclr
jmp
;
; Negative Infinity
;
_ninf
jclr
;
; Result is Largest Number Less Than Infinity
;
_setbig dec
move
move
ori
ori
jmp
_rmchk
jclr
;
; Result is Infinity
;
_setinf move
move
B-168
d3
#31,d3.l,_rnd
#8,d1.l,_st0
_st1
Addend 1 is Negative
2) Addend 0 is Positive,
Addend 1 is Positive ***
#31,d6.l
d0,d1
d2,d3
_rnd
d3
d1
#8,d1.l,_cclr4
#8,d1.l
#31,d3.l
d6
#emsk,d7.l
d6.l,d5.l
d7,d5
d7,d5
_rnd
#31,d6.l,_ninf
#22,sr,_rmchk
#21,sr,_setinf
_setbig
#21,sr,_setinf
d6
#qnanml,d1.m
#maxnum,d1.l
#$09,ier
#$09,er
_emove
#21,sr,_setbig
#0,d1.l
#0,d1.m
DSP96002 USER'S MANUAL
; shift mantr.h left
; jump if result normalized
; jump if sticky bit = 0
; jump if sticky bit = 1
; set result as negative
; add for case: a0-,a1-
;
and case: a0+,a1+
; jump if number normalized
; shift right mantr.h
; shift right mantr.low
; jump if sticky bit = 0
; set sticky bit
; set bit 31 of mantr.high
; increment expr
; get exp mask
; get expr
; delete tags
; check max exp
; jump if no overflow
; jump if result is -infinity
; jump if rounding bit r1 = 1
; jump if rounding bit r0 = 0
; round toward zero case
; jump if rounding bit r0 = 0
; get big exponent
; get mantr.high
; get mantr.low
; set OVF and INX bits in IER
; set OVF and INX bits in ER
; get expr
; round toward -inf case
; set result to infinity
;
"
MOTOROLA

Advertisement

Table of Contents
loading

Table of Contents