Analog Devices ADSP-BF53x Blackfin Reference page 412

Table of Contents

Advertisement

Instruction Overview
The instruction pre-decrements the Stack Pointer to the next available
location in the stack first.
The stack grows down from high memory to low memory, therefore the
decrement operation is the same used for pushing, and the increment
operation is used for popping values. The Stack Pointer always points to
the last used location. Therefore, the effective address of the push is
The following illustration shows what the stack would look like when a
push multiple occurs.
higher memory
P3
P4
P5
<-------- SP
...
lower memory
Because the lowest-indexed registers are saved first, it is advisable that a
runtime system be defined to have its compiler scratch registers as the low-
est-indexed registers. For instance, data registers
return value registers for a simple calling convention.
Although this instruction takes a variable amount of time to complete
depending on the number of registers to be saved, it reduces compiled
code size.
This instruction is not interruptible. Interrupts asserted after the first
issued stack write operation are appended until all the writes complete.
However, exceptions that occur while this instruction is executing cause it
to abort gracefully. For example, a load/store operation might cause a pro-
tection violation while Push Multiple is executing. The
value before the execution of this instruction. This measure ensures that
10-6
ADSP-BF53x/BF56x Blackfin Processor Programming Reference
[--sp]=(p5:3) ;
,
would be the
R0
P0
is reset to its
SP
.
SP–4

Advertisement

Table of Contents
loading

This manual is also suitable for:

Adsp-bf56x blackfin

Table of Contents