diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-03-21 19:17:46 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-03-21 19:17:46 +0000 |
commit | e667a0bc883ca27bfd0447b3f99bb59793f5e4d5 (patch) | |
tree | 42e75e1716a3a1c87aa948048d858e17b79a20c1 /c/src/lib/libbsp/i960/cvme961/startup/bspclean.c | |
parent | Fixes incorrect reference to start symbol. (diff) | |
download | rtems-e667a0bc883ca27bfd0447b3f99bb59793f5e4d5.tar.bz2 |
Rewrote to avoid references to C symbols from assembly. This entirely
circumvents the problem of leading underscores.
Diffstat (limited to 'c/src/lib/libbsp/i960/cvme961/startup/bspclean.c')
-rw-r--r-- | c/src/lib/libbsp/i960/cvme961/startup/bspclean.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c b/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c index fb35e206be..81725fb73b 100644 --- a/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c +++ b/c/src/lib/libbsp/i960/cvme961/startup/bspclean.c @@ -20,11 +20,15 @@ void bsp_cleanup( void ) { - asm volatile( "mov 0,g0; \ - fmark ; \ - syncf ; \ - .word 0xfeedface ; \ - bx start" : : ); + extern void start( void ); + + register volatile void *start_addr = 0; + + asm volatile( "mov 0,g0;" + "fmark ;" + "syncf ;" + ".word 0xfeedface ; " + "bx (%0)" : "=r" (start_addr) : "0" (start_addr) ); /* The constant 0xfeedface is a magic word for break which * is defined by NINDY. The branch extended restarts the * application if the user types "go". |