? sys/cscope.out Index: sys/arch/arm/arm/blockio.S =================================================================== RCS file: /cvsroot/src/sys/arch/arm/arm/blockio.S,v retrieving revision 1.5 diff -u -p -u -r1.5 blockio.S --- sys/arch/arm/arm/blockio.S 15 Aug 2002 01:38:16 -0000 1.5 +++ sys/arch/arm/arm/blockio.S 31 Jul 2012 06:33:19 -0000 @@ -287,6 +287,7 @@ ENTRY(insw16) /* Word aligned insw */ stmfd sp!, {r4,r5,lr} + sub sp, #4 .Linsw16loop: ldr r3, [r0, #0x0002] /* take advantage of nonaligned @@ -317,6 +318,7 @@ ENTRY(insw16) subs r2, r2, #0x00000008 /* Next */ bgt .Linsw16loop + add sp, #4 ldmfd sp!, {r4,r5,pc} /* Restore regs and go home */ @@ -344,6 +346,7 @@ ENTRY(outsw16) /* Word aligned outsw */ stmfd sp!, {r4,r5,lr} + sub sp, #4 .Loutsw16loop: ldmia r1!, {r4,r5,ip,lr} @@ -384,6 +387,7 @@ ENTRY(outsw16) subs r2, r2, #0x00000008 bgt .Loutsw16loop + add sp, #4 ldmfd sp!, {r4,r5,pc} /* and go home */ /* @@ -412,6 +416,7 @@ ENTRY(inswm8) /* Word aligned insw */ stmfd sp!, {r4-r9,lr} + sub sp, #4 mov lr, #0xff000000 orr lr, lr, #0x00ff0000 @@ -480,6 +485,7 @@ ENTRY(inswm8) .Linswm8_l1: + add sp, #4 ldmfd sp!, {r4-r9,pc} /* And go home */ /* Index: sys/arch/arm/arm/copystr.S =================================================================== RCS file: /cvsroot/src/sys/arch/arm/arm/copystr.S,v retrieving revision 1.10 diff -u -p -u -r1.10 copystr.S --- sys/arch/arm/arm/copystr.S 18 Jan 2009 01:19:32 -0000 1.10 +++ sys/arch/arm/arm/copystr.S 31 Jul 2012 06:33:20 -0000 @@ -84,8 +84,8 @@ ENTRY(copystr) RET #ifdef __PROG32 -#define SAVE_REGS stmfd sp!, {r4-r6} -#define RESTORE_REGS ldmfd sp!, {r4-r6} +#define SAVE_REGS stmfd sp!, {r4-r6}; subs sp, #4 +#define RESTORE_REGS add sp,#4; ldmfd sp!, {r4-r6} #else /* Need to save R14_svc because it'll get trampled if we take a page fault. */ #define SAVE_REGS stmfd sp!, {r4-r6, r14} Index: sys/arch/arm/arm/cpu_in_cksum.S =================================================================== RCS file: /cvsroot/src/sys/arch/arm/arm/cpu_in_cksum.S,v retrieving revision 1.2 diff -u -p -u -r1.2 cpu_in_cksum.S --- sys/arch/arm/arm/cpu_in_cksum.S 27 Jan 2008 16:58:05 -0000 1.2 +++ sys/arch/arm/arm/cpu_in_cksum.S 31 Jul 2012 06:33:20 -0000 @@ -61,6 +61,7 @@ RCSID("$NetBSD: cpu_in_cksum.S,v 1.2 200 /* LINTSTUB: Func: int cpu_in_cksum(struct mbuf *, int, int, uint32_t) */ ENTRY(cpu_in_cksum) stmfd sp!, {r4-r11,lr} + sub sp, #4 mov r8, r3 /* Accumulate sum in r8 */ mov r9, r1 /* save len in r9 */ @@ -111,6 +112,7 @@ ENTRY(cpu_in_cksum) add r0, r0, r0, lsr #16 and r0, r0, r1 eor r0, r0, r1 + add sp, #4 ldmfd sp!, {r4-r11, pc} .Lin_cksum_whoops: Index: sys/arch/arm/arm/lock_cas.S =================================================================== RCS file: /cvsroot/src/sys/arch/arm/arm/lock_cas.S,v retrieving revision 1.7 diff -u -p -u -r1.7 lock_cas.S --- sys/arch/arm/arm/lock_cas.S 7 Jul 2010 01:17:26 -0000 1.7 +++ sys/arch/arm/arm/lock_cas.S 31 Jul 2012 06:33:20 -0000 @@ -116,8 +116,8 @@ STRONG_ALIAS(_atomic_cas_ptr_ni,_lock_ca STRONG_ALIAS(atomic_cas_ptr_ni,_lock_cas) #ifdef __PROG32 -#define SAVE_REGS stmfd sp!, {r4-r6} -#define RESTORE_REGS ldmfd sp!, {r4-r6} +#define SAVE_REGS stmfd sp!, {r4-r6}; sub sp, #4 +#define RESTORE_REGS add sp, #4; ldmfd sp!, {r4-r6} #else /* Need to save R14_svc because it'll get trampled if we take a page fault. */ #define SAVE_REGS stmfd sp!, {r4-r6, r14} Index: sys/arch/arm/include/cdefs.h =================================================================== RCS file: /cvsroot/src/sys/arch/arm/include/cdefs.h,v retrieving revision 1.5 diff -u -p -u -r1.5 cdefs.h --- sys/arch/arm/include/cdefs.h 12 Jul 2012 21:29:04 -0000 1.5 +++ sys/arch/arm/include/cdefs.h 31 Jul 2012 06:33:22 -0000 @@ -26,6 +26,10 @@ #define _ARM_ARCH_4T #endif +#if 1 +#define __ALIGNBYTES (7) +#else #define __ALIGNBYTES (sizeof(int) - 1) +#endif #endif /* !_MACHINE_CDEFS_H_ */ Index: sys/arch/arm/include/frame.h =================================================================== RCS file: /cvsroot/src/sys/arch/arm/include/frame.h,v retrieving revision 1.13 diff -u -p -u -r1.13 frame.h --- sys/arch/arm/include/frame.h 19 Feb 2012 21:06:05 -0000 1.13 +++ sys/arch/arm/include/frame.h 31 Jul 2012 06:33:22 -0000 @@ -67,6 +67,7 @@ typedef struct trapframe { register_t tf_r12; register_t tf_usr_sp; register_t tf_usr_lr; + register_t tf_random; register_t tf_svc_sp; /* Not used on arm26 */ register_t tf_svc_lr; /* Not used on arm26 */ register_t tf_pc; Index: sys/arch/arm/include/arm32/frame.h =================================================================== RCS file: /cvsroot/src/sys/arch/arm/include/arm32/frame.h,v retrieving revision 1.23 diff -u -p -u -r1.23 frame.h --- sys/arch/arm/include/arm32/frame.h 18 Jan 2009 01:19:33 -0000 1.23 +++ sys/arch/arm/include/arm32/frame.h 31 Jul 2012 06:33:22 -0000 @@ -71,6 +71,7 @@ typedef struct irqframe { unsigned int if_r12; unsigned int if_usr_sp; unsigned int if_usr_lr; + unsigned int if_random; unsigned int if_svc_sp; unsigned int if_svc_lr; unsigned int if_pc; @@ -311,6 +312,7 @@ LOCK_CAS_DEBUG_LOCALS #define PUSHFRAME \ str lr, [sp, #-4]!; /* Push the return address */ \ + sub sp, sp, #4; /* Adjust the stack pointer */ \ sub sp, sp, #(4*17); /* Adjust the stack pointer */ \ stmia sp, {r0-r12}; /* Push the user mode registers */ \ add r0, sp, #(4*13); /* Adjust the stack pointer */ \ @@ -330,6 +332,7 @@ LOCK_CAS_DEBUG_LOCALS ldmia sp, {r0-r14}^; /* Restore registers (usr mode) */ \ mov r0, r0; /* NOP for previous instruction */ \ add sp, sp, #(4*17); /* Adjust the stack pointer */ \ + add sp, sp, #4; \ ldr lr, [sp], #0x0004 /* Pull the return address */ /* @@ -356,6 +359,7 @@ LOCK_CAS_DEBUG_LOCALS str r0, [sp, #-4]!; /* Push return address */ \ str lr, [sp, #-4]!; /* Push SVC lr */ \ str r2, [sp, #-4]!; /* Push SVC sp */ \ + sub sp, sp, #4; \ msr spsr_all, r3; /* Restore correct spsr */ \ ldmdb r1, {r0-r3}; /* Restore 4 regs from xxx mode */ \ sub sp, sp, #(4*15); /* Adjust the stack pointer */ \ @@ -379,6 +383,7 @@ LOCK_CAS_DEBUG_LOCALS ldmia sp, {r0-r14}^; /* Restore registers (usr mode) */ \ mov r0, r0; /* NOP for previous instruction */ \ add sp, sp, #(4*15); /* Adjust the stack pointer */ \ + add sp, sp, #4; /* Adjust the stack pointer for alignment */ \ ldmia sp, {sp, lr, pc}^ /* Restore lr and exit */ #endif /* _LOCORE */