Motorola DSP96002 User Manual
Page 697
B-178
DSP96002 USER’S MANUAL
MOTOROLA
jmp _endrnd ;
_den move #EDEN,d1.l ;
move d0.m,d0.l ;
cmp d1,d0 ;
jne _endrnd ;
jclr #31,d4.l,_asml ;
inc d0 ;
move d0.l,d0.m ;
jmp _asml ;
_rnd0 ; Reaches here if value is too small
; to denormalize.
ori #$05,er ;
ori #$05,ier ;
jset #22,sr,_nxt1 ;
jclr #21,sr,_rn1 ;
jmp _ret0 ;
_pinf1 jset #31,d0.h,_ret0 ;
jmp _retsml ;
_rn1 move #-56,d1.l ;
cmp d1,d0 ;
jle _grs0 ;
move #-53,d1.l ;
_grsl cmp d1,d0 ;
jeq _rnrnd ;
lsr d4 ;
dec d0 ;
jmp _grsl ;
_grs0 move #0,d4.l ;
_rnrnd jclr #31,d4.l,_ret0 ;
jset #30,d4.l,_retsml ;
jset #0,d1.h,_retsml ;
jmp _ret0 ;
_nxt1 ;
jset #21,sr,_pinf1 ;
jclr #31,d0.h,_ret0 ;
_retsml jset #27,sr,_ret0 ;
move #0,d5.h ;
move d5.h,d5.m ;
move #$800,d5.l ;
jmp _putsgn ;
_endrnd
; ****** Overflow Check ******