Add and round (dalu), Operation assembler syntax – Freescale Semiconductor StarCore SC140 User Manual

Page 352

Advertising
background image

A-38

SC140 DSP Core Reference Manual

ADR

ADR

Add and Round (DALU)

ADR

Description

Status and Conditions that Affect Instruction

Status and Conditions Changed by Instruction

Example

adr d3,d4

Operation

Assembler Syntax

Rnd(Da + Dn)

→ Dn

ADR Da,Dn

ADR Da,Dn

Adds one source data register (Da) to another (Dn) and rounds the sum. The result is stored in the
destination data register (Dn). Rounding adjusts the LSB of the high part of the destination register
according to the value of the low part of the register and then zeros the low part. The boundary between the
high part and the low part changes with scaling. The two modes of the round function, Rnd(), are described
on page A-359.

Register Address

Bit Name

Description

SR[2]

SM

If set, selects 32-bit arithmetic saturation mode.

SR[3]

RM

Rounding mode

SR[5:4]

S[1:0]

The scaling mode bits determine which bits in the result are used in
the Ln bit calculation, and which bits are used in rounding.

Register Address

Bit Name

Description

EMR[2]

DOVF

Set if the result cannot be represented in 40 bits, or if the result
saturates to 32 bits in arithmetic saturation mode.

Ln

L

If not in arithmetic saturation mode (SR [SM] = 0), calculates and
updates the Ln bit in the destination register. If in arithmetic
saturation mode (SR [SM] = 1), clears the Ln bit in the destination
register.

Register/Memory Address

Before

After

D3

$00 0034 A216

L4:D4

$0:$00 2000 0000

$0:$00 2035 0000

SR

$00E0 0000

EMR

$0000 0000

Advertising