Motorola DSP96002 User Manual page 689

32-bit digital signal processor
Table of Contents

Advertisement

;
; Round toward -infinity
;
_rminf
jclr
_addone move
add
jcc
inc
_acar
jcc
lsr
ror
inc
move
move
and
cmp
jne
move
move
ori
ori
ori
jmp
;
; Get Result in D1
;
_lmove
move
_emove
move
_done
nop
nop
nop
rts
endsec
B.4.3
IEEE Double Precision Multiplication
;
;********************************************************************
;********************************************************************
; ***
IEEE Double Extended Precision Multiply Operation
; ***
; ***
The routine was implemented as a unsigned multiply routine.
; ***
; ***
64-bit input operand format (immediately before multiply):
; ***
; ***
; ***
67-bit intermediate result format (immediately after post norm):
; ***
; ***
; ***
B-170
#31,d6.l,_lmove ; no rounding if positive
#$800,d7.l
; get increment number
d7,d1
; add one to lsb
_acar
; jump if no carry
d3
; increment mantr.high
_lmove
; jump if result normalized
d3
; shift right mantr.high
d1
; shift right mantr.low
d6
; increment expr
#emsk,d7.l
; get exp mask
d6.l,d5.l
; get expr
d7,d5
; delete tags
d7,d5
; check for max exp
_lmove
; jump if no overflow
#0,d1.l
; set result to infinity
#0,d1.m
;
#$10,ccr
; set infinity bit
#$09,ier
; set OVF and INX bits in IER
#$09,er
; set OVF and INX bits in ER
_emove
; get infinity exponent
d3.l,d1.m
; move mantr.high to d1
d6.l,d1.h
; move expr to d1
;
;
;
; end of subroutine
i.fff...fl
i.fff...flgrs
where
i = integer bit
DSP96002 USER'S MANUAL
"
MOTOROLA

Advertisement

Table of Contents
loading

Table of Contents