Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2008-08-15 02:00:47 +0400
committerJeff Johnston <jjohnstn@redhat.com>2008-08-15 02:00:47 +0400
commit84132c9d9fd8dfd7020673e1cebcad0bb60ffd84 (patch)
tree7b63bab990074f9fd1ab81f19fbd58e6ee5c36f9 /libgloss/bfin/syscalls.c
parentd434b57f869e8bf2ea3e72fc58c5d5917e71a444 (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.c11
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;
}