about summary refs log tree commit diff
path: root/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/arm/sysdep.h')
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/sysdep.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/arm/sysdep.h b/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
index dc2058b275..f2ab5f589f 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -147,23 +147,22 @@ __local_syscall_error:						\
 # else
 #  if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
 #   define POP_PC \
-  ldr lr, [sp], #4; \
+  pop { lr }; \
   cfi_adjust_cfa_offset (-4); \
   cfi_restore (lr); \
   bx lr
 #  else
-#   define POP_PC  \
-  ldr pc, [sp], #4
+#   define POP_PC  pop { pc }
 #  endif
 #  define SYSCALL_ERROR_HANDLER					\
 __local_syscall_error:						\
-	str	lr, [sp, #-4]!;					\
+	push	{ lr };						\
 	cfi_adjust_cfa_offset (4);				\
 	cfi_rel_offset (lr, 0);					\
-	str	r0, [sp, #-4]!;					\
+	push	{ r0 };	    					\
 	cfi_adjust_cfa_offset (4);				\
 	bl	PLTJMP(C_SYMBOL_NAME(__errno_location)); 	\
-	ldr	r1, [sp], #4;					\
+	pop	{ r1 };						\
 	cfi_adjust_cfa_offset (-4);				\
 	rsb	r1, r1, #0;					\
 	str	r1, [r0];					\
@@ -230,7 +229,7 @@ __local_syscall_error:						\
 #undef  DOARGS_0
 #define DOARGS_0					\
 	.fnstart;					\
-	str r7, [sp, #-4]!;				\
+	push	{ r7 };					\
 	cfi_adjust_cfa_offset (4);			\
 	cfi_rel_offset (r7, 0);				\
 	.save	{ r7 }
@@ -245,7 +244,7 @@ __local_syscall_error:						\
 #undef  DOARGS_5
 #define DOARGS_5					\
 	.fnstart;					\
-	stmfd	sp!, {r4, r7};				\
+	push	{r4, r7};				\
 	cfi_adjust_cfa_offset (8);			\
 	cfi_rel_offset (r4, 0);				\
 	cfi_rel_offset (r7, 4);				\
@@ -255,7 +254,7 @@ __local_syscall_error:						\
 #define DOARGS_6					\
 	.fnstart;					\
 	mov	ip, sp;					\
-	stmfd	sp!, {r4, r5, r7};			\
+	push	{r4, r5, r7};				\
 	cfi_adjust_cfa_offset (12);			\
 	cfi_rel_offset (r4, 0);				\
 	cfi_rel_offset (r5, 4);				\
@@ -266,7 +265,7 @@ __local_syscall_error:						\
 #define DOARGS_7					\
 	.fnstart;					\
 	mov	ip, sp;					\
-	stmfd	sp!, {r4, r5, r6, r7};			\
+	push	{r4, r5, r6, r7};			\
 	cfi_adjust_cfa_offset (16);			\
 	cfi_rel_offset (r4, 0);				\
 	cfi_rel_offset (r5, 4);				\
@@ -277,7 +276,7 @@ __local_syscall_error:						\
 
 #undef  UNDOARGS_0
 #define UNDOARGS_0					\
-	ldr	r7, [sp], #4;				\
+	pop	{r7};					\
 	cfi_adjust_cfa_offset (-4);			\
 	cfi_restore (r7);				\
 	.fnend
@@ -291,14 +290,14 @@ __local_syscall_error:						\
 #define UNDOARGS_4 UNDOARGS_0
 #undef  UNDOARGS_5
 #define UNDOARGS_5					\
-	ldmfd	sp!, {r4, r7};				\
+	pop	{r4, r7};				\
 	cfi_adjust_cfa_offset (-8);			\
 	cfi_restore (r4);				\
 	cfi_restore (r7);				\
 	.fnend
 #undef  UNDOARGS_6
 #define UNDOARGS_6					\
-	ldmfd	sp!, {r4, r5, r7};			\
+	pop	{r4, r5, r7};				\
 	cfi_adjust_cfa_offset (-12);			\
 	cfi_restore (r4);				\
 	cfi_restore (r5);				\
@@ -306,7 +305,7 @@ __local_syscall_error:						\
 	.fnend
 #undef  UNDOARGS_7
 #define UNDOARGS_7					\
-	ldmfd	sp!, {r4, r5, r6, r7};			\
+	pop	{r4, r5, r6, r7};			\
 	cfi_adjust_cfa_offset (-16);			\
 	cfi_restore (r4);				\
 	cfi_restore (r5);				\