Motorola DSP96002 User Manual

Page 710

Advertising
background image

MOTOROLA

DSP96002 USER’S MANUAL

B-191

and d3,d0 d1.l,x:(r0+ls) ;truncate to an integer

move d0.l,x:(r0+ms) ;store the result

rts

rndls sub d2,d4 x:(r0+ls),d1.l ;calculate # shifts, get ls

move d4.l,d0.h ;put # shifts in .h register

asr d0,d3 ;create the truncation mask

and d3,d1 ;truncate to an integer

move d1.l,x:(r0+ls) ;store the result

rts

page

;

; MOTOROLA DSP96002 DPLIB - VERSION 1.0
;
; DP_MAC - Multiply two double precision numbers and
; accumulate the sum.

;

; Entry point: dp_mac: c(r0)

c(r0) + c(r1) * c(r2)

;

; Inputs: r0 contains the lowest address of a 4-word internal

; extended precision number

; r1 contains the lowest address of a 4-word internal

; extended precision number

;

; Outputs: r0 contains the lowest address of a 4-word internal

; extended precision number

;

; Alters: D0.L,D1.L,D2.L,D3.L,D4.L,D5.L,D6.L,D7.L,D8.L,D9.L

;

dp_mac move r0,d8.l ;store the r0 pointer

move #dptemp,r0 ;get temporary pointer

jsr dp_mpy ;multiply (r1)*(r2)

move r1,d9.l ;store the r1 pointer

move #dptemp,r1 ;point to result

move d8.l,r0 ;restore the r0 pointer

jsr dp_add ;accumulate the result

move d9.l,r1 ;restore the r1 pointer

rts

page

;

; MOTOROLA DSP96002 DPLIB - VERSION 1.0
;
; DP_MOVE - Copy floating-point value from one address to another

;

; Entry point: dp_move: c(r0)

c(r1)

;

; Inputs: r0 contains the lowest address of a 4-word internal

; extended precision number

; r1 contains the lowest address of a 4-word internal

; extended precision number

;

; Outputs: r0 contains the lowest address of a 4-word internal

; extended precision number

;

Advertising