summaryrefslogtreecommitdiffstats
path: root/libc/arch-arm/bionic/syscall.S
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2013-02-11 15:36:59 -0800
committerElliott Hughes <enh@google.com>2013-02-11 15:36:59 -0800
commitf94fd3ccc66e05f53965bc14237778c0d8437bb6 (patch)
tree7128c3e47bdc0575553f8fab83ef05a752dc3985 /libc/arch-arm/bionic/syscall.S
parent2d3e72336e76180fb00822386da4f14203d117ce (diff)
downloadbionic-f94fd3ccc66e05f53965bc14237778c0d8437bb6.zip
bionic-f94fd3ccc66e05f53965bc14237778c0d8437bb6.tar.gz
bionic-f94fd3ccc66e05f53965bc14237778c0d8437bb6.tar.bz2
Clean up ARM assembler files to use ENTRY/END.
We also don't need legacy syscall support (non-"swi 0"). Change-Id: Id1012e8ca18bf13f3f4e42200f39ba0e2e632cbf
Diffstat (limited to 'libc/arch-arm/bionic/syscall.S')
-rw-r--r--libc/arch-arm/bionic/syscall.S38
1 files changed, 6 insertions, 32 deletions
diff --git a/libc/arch-arm/bionic/syscall.S b/libc/arch-arm/bionic/syscall.S
index ada12a6..69f3bec 100644
--- a/libc/arch-arm/bionic/syscall.S
+++ b/libc/arch-arm/bionic/syscall.S
@@ -25,47 +25,21 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-#include <sys/linux-syscalls.h>
-
-
- .text
- .align 4
- .type syscall,#function
- .globl syscall
-
- .text
- .align
-#if __ARM_EABI__
+#include <machine/asm.h>
+#include <sys/linux-syscalls.h>
-syscall:
+ENTRY(syscall)
mov ip, sp
- stmfd sp!, {r4, r5, r6, r7}
+ stmfd sp!, {r4, r5, r6, r7}
mov r7, r0
mov r0, r1
mov r1, r2
mov r2, r3
- ldmfd ip, {r3, r4, r5, r6}
+ ldmfd ip, {r3, r4, r5, r6}
swi #0
ldmfd sp!, {r4, r5, r6, r7}
movs r0, r0
bxpl lr
b __set_syscall_errno
-
-#else
-
-#ifndef __NR_syscall
-#define __NR_syscall 113
-#endif
-
-syscall:
- stmfd sp!, {r4, r5, lr}
- ldr r4, [sp, #12]
- ldr r5, [sp, #16]
- swi __NR_syscall
- ldmfd sp!, {r4, r5, lr}
- movs r0, r0
- bxpl lr
- b __set_syscall_errno
-
-#endif
+END(syscall)