Errata and Corrections
In this case, the delayed branch instruction
; is executed
R0=R0+R1
but the instruction
is not executed. Also, the control
R1=R1+R2
jumps to
instead of
, with the delayed branch instruction
my
foo
being the execution of
.
foo
The exception is for JUMP, which can be done for mutually-exclu-
sive conditions for both (EQ, NE). If the first EQ condition works,
then the NE conditional jump has no meaning; it is as good as a
NOP. Code for these exceptions is shown below:
if eq jump label1 (db);
if ne jump label2 (db);
nop;
nop;
• Pushes or Pops of the PC stack
Push of the PC stack in the delayed branch is followed by a
. If
pop
a value is pushed in the delayed branch of call, it is popped first in
the called subroutine, which is followed by return to subroutine
RTS.
For example:
20119 call foo (db);
2011A push PCSTK;
2011B nop;
2011C foo;
: second push due to
PCSTK 2011B
PCSTK
: first push due to call
2011C
This demonstrates that when the user pushes the
during a
PCSTK
delayed slot, the PC stack pointer is pushed onto the
.
PCSTK
H-2
www.BDTIC.com/ADI
Need help?
Do you have a question about the ADSP-2106x SHARC and is the answer not in the manual?
Questions and answers