Freescale Semiconductor SC140 De → NSP NSP + 8 → ΝSP, Do → NSP + 4 NSP + 8 → ΝSP, Pushn De

Models: SC140

1 760
Download 760 pages 48.94 Kb
Page 670
Image 670

PUSHN

PUSHN Push a Register onto the Software Stack PUSHN

Using the Normal Stack Pointer (AGU)

Operation

Assembler Syntax

De → (NSP); NSP + 8 → ΝSP

PUSHN

De

Do → (NSP + 4); NSP + 8 → ΝSP

PUSHN

Do

Description

These operations move an even or odd register (De or Do) to the normal stack in memory and adjusts the NSP, regardless of the state of the exception (EXP) bit. All memory accesses are 32-bit long words. The registers are divided into two groups (even and odd) which determines the memory offset relative to NSP of the data being written. It is important to pop registers in the same register grouping by which they were pushed. For example, after the sequence "pushn d1" and "popn d3," d3 will hold the data originally in d1. However, "pushn d0" and "popn d1" will not do the same because d0 and d1 are not in the same register group.

One or two PUSHN instructions can appear in an execution set. In both cases, NSP is incremented only once by 8. When two PUSHN instructions are grouped together in an execution set, each must be in a different register group.

Extensions of data registers (with the associated Ln bits) are special. Extensions of even and odd registers are written to bits [8:0] and [24:16] of the long data word, respectively, both for single register and register pair operations (see the figure below).

Note: For proper data register restoration, extensions that were pushed as a pair should be popped as a pair. Extensions pushed as single registers should be popped as single registers

31

24

16

8

 

0

0

 

Do

0

 

De

 

MEMORY LONG WORD

 

 

 

 

 

 

 

 

La

+

Lb

+

PUSHN De

39

32

16

0

EXTENSION

 

 

De (even)

 

 

 

 

EXTENSION

 

 

Do (odd)

 

 

 

 

 

Pushes data register extension pairs, even registers, and loop start registers onto the current stack. Data register extension pairs are pushed the same as even numbered registers.

PUSHN Do

Pushes modifier control, odd registers, and loop counter registers onto the current stack.

A-356

SC140 DSP Core Reference Manual

Page 670
Image 670
Freescale Semiconductor SC140 specifications De → NSP NSP + 8 → ΝSP, Do → NSP + 4 NSP + 8 → ΝSP, Pushn De, Pushn Do