On 2014-03-31 12:17, Daniel Cederman wrote:
Branch always is a special case in which the ",a" causes the delay instruction
to not be executed. From the Sparc architecture manual:
"However, a bit in the delayed control-transfer instruction can cause the delay
instruction to be annulled (that is, to have no effect) if the branch is not
taken (or in the branch always case, if the branch is
taken)."
Ok, I didn't have this "(or in the branch always case, if the branch is taken)"
in my documentation.
So I think it should be safe to remove the nop instruction.
Since nobody knows which instruction will be after "ba,a" I think we should
keep the nop.
On 2014-03-31 12:03, Sebastian Huber wrote:
On 2014-03-31 11:48, Daniel Cederman wrote:
See errata of respective chip. Some code-cleanup as well.
---
c/src/lib/libbsp/sparc/leon3/startup/bspidle.S | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bspidle.S
b/c/src/lib/libbsp/sparc/leon3/startup/bspidle.S
index 714d4e5..0924658 100644
--- a/c/src/lib/libbsp/sparc/leon3/startup/bspidle.S
+++ b/c/src/lib/libbsp/sparc/leon3/startup/bspidle.S
@@ -23,8 +23,5 @@
SYM(bsp_idle_thread):
SYM(leon3_power_down_loop):
pwdloop: mov %g0, %asr19
- ba pwdloop
- nop
- retl
- nop
-
+ lda [%sp] 1, %g0 ! Needed for UT699 and GR712
+ ba,a pwdloop
If I understand this ",a" notation correctly, then the instruction
following the branch is not executed in case the branch is not taken.
Since we branch always, this ",a" seems to be superfluous. Is it safe
to remove the nop instruction in the delay slot here?
_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel