diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2008-08-15 02:00:47 +0400 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2008-08-15 02:00:47 +0400 |
commit | 84132c9d9fd8dfd7020673e1cebcad0bb60ffd84 (patch) | |
tree | 7b63bab990074f9fd1ab81f19fbd58e6ee5c36f9 /libgloss/bfin/syscalls.c | |
parent | d434b57f869e8bf2ea3e72fc58c5d5917e71a444 (diff) |
2008-08-14 Jie Zhang <jie.zhang@analog.com>
* bfin/Makefile.in: (top_srcdir): Define.
(mkinstalldirs): Define.
(BOARD_SCRIPTS): Define.
(BOARD_LDFLAGS): Define.
(BOARD_BSP): Define.
(BOARD_CRT0S): Define.
(BOARD_OBJS): Define.
(BOARD_TEST): Define.
(BOARD_INSTALL): Define.
(INCLUDES): Add -I$(srcdir)/include.
(all): Add ${BOARD_CRT0S} and ${BOARD_BSP}.
(.c.S): Remove target.
(crt0.o): New target.
(basiccrt.o): Likewise.
(basiccrtb.o): Likewise.
(basiccrts.o): Likewise.
(basiccrt561.o, basiccrt561s.o, basiccrt561b.o): Likewise
(clean mostlyclean): Remove ${BOARD_BSP}.
(install): Depend on ${BOARD_INSTALL}.
(install-sim): Reformat.
(install-board): New target.
* bfin/basiccrt.S: Remove useless __ADSPBF561_COREB__ in
workaround code for 05000229.
* bfin/syscalls.c (do_syscall): Use `EXCPT 0' instead of
`RAISE 0' for syscall.
* bfin/basiccrt.S: New file.
* bfin/bf5*ld: New file.
* bfin/bfin-common-mc.ld: New file.
* bfin/bfin-common-sc.ld: New file.
* bfin/include/blackfin.h: New file.
* bfin/include/cdefBF5*.h: New file.
* bfin/include/cdef_LPBlackfin.h: New file.
* bfin/include/cdefblackfin.h: New file.
* bfin/include/cplb.h: New file.
* bfin/include/cplbtab.h: New file.
* bfin/include/defBF5*.h: New files.
* bfin/include/def_LPBlackfin.h: New files.
* bfin/include/defblackfin.h: New file.
* bfin/include/sys/_adi_platform.h: New file.
* bfin/include/sys/anomaly_macros_rtl.h: New file.
* bfin/include/sys/excause.h: New file.
* bfin/include/sys/exception.h: New file.
* bfin/include/sys/mc_typedef.h: New file.
* bfin/include/sys/platform.h: New file.
* bfin/include/sys/pll.h: New file.
* bfin/include/sysreg.h: New file.
* libnosys/configure.in (MISSING_SYSCALL_NAMES): Don't define
for bfin.
* libnosys/configure: Regenerate.
Diffstat (limited to 'libgloss/bfin/syscalls.c')
-rw-r--r-- | libgloss/bfin/syscalls.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/libgloss/bfin/syscalls.c b/libgloss/bfin/syscalls.c index 6f5fc39f6..b5bce2611 100644 --- a/libgloss/bfin/syscalls.c +++ b/libgloss/bfin/syscalls.c @@ -32,13 +32,10 @@ register char *stack_ptr asm ("SP"); static inline int do_syscall (int reason, void *arg) { - int result; - asm volatile ("[--sp] = %1; [--sp] = %2; \ - r1 = [sp++]; r0 = [sp++]; \ - raise 0; %0 = r0;" - : "=r" (result) - : "r" (reason), "r" (arg) - : "R0", "R1", "memory", "cc"); + register int r asm ("P0") = reason; + register void *a asm ("R0") = arg; + register int result asm ("R0"); + asm volatile ("excpt 0;" : "=r" (result) : "a" (r), "r" (a) : "memory", "CC"); return result; } |