diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index 2f9f36296..fc0733728 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,3 +1,9 @@ +2009-10-26 Nick Clifton + + * arm/linux-syscalls0.S (SYSCALL0, SYSCALL3, SYSCALL6, SYSCALL4): + Delete Thumb definitions - the ARM versions work correctly in + Thumb mode. + 2009-10-08 Jie Zhang * bfin/Makefile.in (basiccrt.o, basiccrts.o): Use diff --git a/libgloss/arm/linux-syscalls0.S b/libgloss/arm/linux-syscalls0.S index 81e21fd87..b16648fc3 100644 --- a/libgloss/arm/linux-syscalls0.S +++ b/libgloss/arm/linux-syscalls0.S @@ -19,47 +19,6 @@ #define GLOBAL(name) .global name; FUNC(name) #define SIZE(name) .size name, .-name -#if __thumb__ - -# define SYSCALL0(name) \ - GLOBAL(_ ## name); \ - mov r12, r7; \ - mov r7, #SYS_ ## name; \ - swi; \ - mov r7, r12; \ - b _set_errno; \ - SIZE(_ ## name) - -/* static int _syscall3(int a, int b, int c, int number); */ -FUNC(_syscall3) - push { r7 } - mov r7, r3 - swi - pop { r7 } - b _set_errno - SIZE(_syscall3) - -# define SYSCALL3(name) \ - GLOBAL(_ ## name); \ - mov r3, #SYS_ ## name; \ - b _syscall3; \ - SIZE(_ ## name) - -# define SYSCALL6(name) \ - GLOBAL(_ ## name); \ - push { r4 - r5, r7 }; \ - ldr r4, [sp, #12]; \ - ldr r5, [sp, #16]; \ - mov r7, #SYS_ ## name; \ - swi; \ - pop { r4 - r5, r7 }; \ - b _set_errno; \ - SIZE(_ ## name) - -# define SYSCALL4(name) SYSCALL6(name) - -#else /* __thumb__ */ - # define SYSCALL4(name) \ GLOBAL(_ ## name); \ swi #SYS_ ## name; \ @@ -78,9 +37,6 @@ FUNC(_syscall3) #define SYSCALL0(name) SYSCALL3(name) #define SYSCALL3(name) SYSCALL4(name) - -#endif /* __thumb__ */ - #define SYSCALL1(name) SYSCALL3(name) #define SYSCALL2(name) SYSCALL3(name) #define SYSCALL5(name) SYSCALL6(name)