diff mbox

[v2] ARM: asm: rename logical shift macros push pull into lspush lspull

Message ID 1392063589-24111-2-git-send-email-victor.kamensky@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Victor Kamensky Feb. 10, 2014, 8:19 p.m. UTC
Renames logical shift macros, 'push' and 'pull', defined in
arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
That eliminates name conflict between 'push' logical shift macro
and 'push' instruction mnemonic. That allows assembler.h to be
included in .S files that use 'push' instruction.

Suggested-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
---
 arch/arm/include/asm/assembler.h      |   8 +-
 arch/arm/lib/copy_template.S          |  36 +++----
 arch/arm/lib/csumpartialcopygeneric.S |  96 ++++++++---------
 arch/arm/lib/io-readsl.S              |  12 +--
 arch/arm/lib/io-writesl.S             |  12 +--
 arch/arm/lib/memmove.S                |  36 +++----
 arch/arm/lib/uaccess.S                | 192 +++++++++++++++++-----------------
 7 files changed, 196 insertions(+), 196 deletions(-)

Comments

Nicolas Pitre Feb. 10, 2014, 9:30 p.m. UTC | #1
On Mon, 10 Feb 2014, Victor Kamensky wrote:

> Renames logical shift macros, 'push' and 'pull', defined in
> arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.

I don't have any fundamental objection to the idea, except maybe for the 
actual names.  I just can't come up with anything better though.  
Therefore...

Acked-by: Nicolas Pitre <nico@linaro.org>

> That eliminates name conflict between 'push' logical shift macro
> and 'push' instruction mnemonic. That allows assembler.h to be
> included in .S files that use 'push' instruction.
> 
> Suggested-by: Will Deacon <will.deacon@arm.com>
> Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
> ---
>  arch/arm/include/asm/assembler.h      |   8 +-
>  arch/arm/lib/copy_template.S          |  36 +++----
>  arch/arm/lib/csumpartialcopygeneric.S |  96 ++++++++---------
>  arch/arm/lib/io-readsl.S              |  12 +--
>  arch/arm/lib/io-writesl.S             |  12 +--
>  arch/arm/lib/memmove.S                |  36 +++----
>  arch/arm/lib/uaccess.S                | 192 +++++++++++++++++-----------------
>  7 files changed, 196 insertions(+), 196 deletions(-)
> 
> diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
> index 5c22851..380ac4f 100644
> --- a/arch/arm/include/asm/assembler.h
> +++ b/arch/arm/include/asm/assembler.h
> @@ -30,8 +30,8 @@
>   * Endian independent macros for shifting bytes within registers.
>   */
>  #ifndef __ARMEB__
> -#define pull            lsr
> -#define push            lsl
> +#define lspull          lsr
> +#define lspush          lsl
>  #define get_byte_0      lsl #0
>  #define get_byte_1	lsr #8
>  #define get_byte_2	lsr #16
> @@ -41,8 +41,8 @@
>  #define put_byte_2	lsl #16
>  #define put_byte_3	lsl #24
>  #else
> -#define pull            lsl
> -#define push            lsr
> +#define lspull          lsl
> +#define lspush          lsr
>  #define get_byte_0	lsr #24
>  #define get_byte_1	lsr #16
>  #define get_byte_2	lsr #8
> diff --git a/arch/arm/lib/copy_template.S b/arch/arm/lib/copy_template.S
> index 805e3f8..3bc8eb8 100644
> --- a/arch/arm/lib/copy_template.S
> +++ b/arch/arm/lib/copy_template.S
> @@ -197,24 +197,24 @@
>  
>  12:	PLD(	pld	[r1, #124]		)
>  13:		ldr4w	r1, r4, r5, r6, r7, abort=19f
> -		mov	r3, lr, pull #\pull
> +		mov	r3, lr, lspull #\pull
>  		subs	r2, r2, #32
>  		ldr4w	r1, r8, r9, ip, lr, abort=19f
> -		orr	r3, r3, r4, push #\push
> -		mov	r4, r4, pull #\pull
> -		orr	r4, r4, r5, push #\push
> -		mov	r5, r5, pull #\pull
> -		orr	r5, r5, r6, push #\push
> -		mov	r6, r6, pull #\pull
> -		orr	r6, r6, r7, push #\push
> -		mov	r7, r7, pull #\pull
> -		orr	r7, r7, r8, push #\push
> -		mov	r8, r8, pull #\pull
> -		orr	r8, r8, r9, push #\push
> -		mov	r9, r9, pull #\pull
> -		orr	r9, r9, ip, push #\push
> -		mov	ip, ip, pull #\pull
> -		orr	ip, ip, lr, push #\push
> +		orr	r3, r3, r4, lspush #\push
> +		mov	r4, r4, lspull #\pull
> +		orr	r4, r4, r5, lspush #\push
> +		mov	r5, r5, lspull #\pull
> +		orr	r5, r5, r6, lspush #\push
> +		mov	r6, r6, lspull #\pull
> +		orr	r6, r6, r7, lspush #\push
> +		mov	r7, r7, lspull #\pull
> +		orr	r7, r7, r8, lspush #\push
> +		mov	r8, r8, lspull #\pull
> +		orr	r8, r8, r9, lspush #\push
> +		mov	r9, r9, lspull #\pull
> +		orr	r9, r9, ip, lspush #\push
> +		mov	ip, ip, lspull #\pull
> +		orr	ip, ip, lr, lspush #\push
>  		str8w	r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
>  		bge	12b
>  	PLD(	cmn	r2, #96			)
> @@ -225,10 +225,10 @@
>  14:		ands	ip, r2, #28
>  		beq	16f
>  
> -15:		mov	r3, lr, pull #\pull
> +15:		mov	r3, lr, lspull #\pull
>  		ldr1w	r1, lr, abort=21f
>  		subs	ip, ip, #4
> -		orr	r3, r3, lr, push #\push
> +		orr	r3, r3, lr, lspush #\push
>  		str1w	r0, r3, abort=21f
>  		bgt	15b
>  	CALGN(	cmp	r2, #0			)
> diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S
> index d620a5f..d6e742d 100644
> --- a/arch/arm/lib/csumpartialcopygeneric.S
> +++ b/arch/arm/lib/csumpartialcopygeneric.S
> @@ -141,7 +141,7 @@ FN_ENTRY
>  		tst	len, #2
>  		mov	r5, r4, get_byte_0
>  		beq	.Lexit
> -		adcs	sum, sum, r4, push #16
> +		adcs	sum, sum, r4, lspush #16
>  		strb	r5, [dst], #1
>  		mov	r5, r4, get_byte_1
>  		strb	r5, [dst], #1
> @@ -171,23 +171,23 @@ FN_ENTRY
>  		cmp	ip, #2
>  		beq	.Lsrc2_aligned
>  		bhi	.Lsrc3_aligned
> -		mov	r4, r5, pull #8		@ C = 0
> +		mov	r4, r5, lspull #8		@ C = 0
>  		bics	ip, len, #15
>  		beq	2f
>  1:		load4l	r5, r6, r7, r8
> -		orr	r4, r4, r5, push #24
> -		mov	r5, r5, pull #8
> -		orr	r5, r5, r6, push #24
> -		mov	r6, r6, pull #8
> -		orr	r6, r6, r7, push #24
> -		mov	r7, r7, pull #8
> -		orr	r7, r7, r8, push #24
> +		orr	r4, r4, r5, lspush #24
> +		mov	r5, r5, lspull #8
> +		orr	r5, r5, r6, lspush #24
> +		mov	r6, r6, lspull #8
> +		orr	r6, r6, r7, lspush #24
> +		mov	r7, r7, lspull #8
> +		orr	r7, r7, r8, lspush #24
>  		stmia	dst!, {r4, r5, r6, r7}
>  		adcs	sum, sum, r4
>  		adcs	sum, sum, r5
>  		adcs	sum, sum, r6
>  		adcs	sum, sum, r7
> -		mov	r4, r8, pull #8
> +		mov	r4, r8, lspull #8
>  		sub	ip, ip, #16
>  		teq	ip, #0
>  		bne	1b
> @@ -196,50 +196,50 @@ FN_ENTRY
>  		tst	ip, #8
>  		beq	3f
>  		load2l	r5, r6
> -		orr	r4, r4, r5, push #24
> -		mov	r5, r5, pull #8
> -		orr	r5, r5, r6, push #24
> +		orr	r4, r4, r5, lspush #24
> +		mov	r5, r5, lspull #8
> +		orr	r5, r5, r6, lspush #24
>  		stmia	dst!, {r4, r5}
>  		adcs	sum, sum, r4
>  		adcs	sum, sum, r5
> -		mov	r4, r6, pull #8
> +		mov	r4, r6, lspull #8
>  		tst	ip, #4
>  		beq	4f
>  3:		load1l	r5
> -		orr	r4, r4, r5, push #24
> +		orr	r4, r4, r5, lspush #24
>  		str	r4, [dst], #4
>  		adcs	sum, sum, r4
> -		mov	r4, r5, pull #8
> +		mov	r4, r5, lspull #8
>  4:		ands	len, len, #3
>  		beq	.Ldone
>  		mov	r5, r4, get_byte_0
>  		tst	len, #2
>  		beq	.Lexit
> -		adcs	sum, sum, r4, push #16
> +		adcs	sum, sum, r4, lspush #16
>  		strb	r5, [dst], #1
>  		mov	r5, r4, get_byte_1
>  		strb	r5, [dst], #1
>  		mov	r5, r4, get_byte_2
>  		b	.Lexit
>  
> -.Lsrc2_aligned:	mov	r4, r5, pull #16
> +.Lsrc2_aligned:	mov	r4, r5, lspull #16
>  		adds	sum, sum, #0
>  		bics	ip, len, #15
>  		beq	2f
>  1:		load4l	r5, r6, r7, r8
> -		orr	r4, r4, r5, push #16
> -		mov	r5, r5, pull #16
> -		orr	r5, r5, r6, push #16
> -		mov	r6, r6, pull #16
> -		orr	r6, r6, r7, push #16
> -		mov	r7, r7, pull #16
> -		orr	r7, r7, r8, push #16
> +		orr	r4, r4, r5, lspush #16
> +		mov	r5, r5, lspull #16
> +		orr	r5, r5, r6, lspush #16
> +		mov	r6, r6, lspull #16
> +		orr	r6, r6, r7, lspush #16
> +		mov	r7, r7, lspull #16
> +		orr	r7, r7, r8, lspush #16
>  		stmia	dst!, {r4, r5, r6, r7}
>  		adcs	sum, sum, r4
>  		adcs	sum, sum, r5
>  		adcs	sum, sum, r6
>  		adcs	sum, sum, r7
> -		mov	r4, r8, pull #16
> +		mov	r4, r8, lspull #16
>  		sub	ip, ip, #16
>  		teq	ip, #0
>  		bne	1b
> @@ -248,20 +248,20 @@ FN_ENTRY
>  		tst	ip, #8
>  		beq	3f
>  		load2l	r5, r6
> -		orr	r4, r4, r5, push #16
> -		mov	r5, r5, pull #16
> -		orr	r5, r5, r6, push #16
> +		orr	r4, r4, r5, lspush #16
> +		mov	r5, r5, lspull #16
> +		orr	r5, r5, r6, lspush #16
>  		stmia	dst!, {r4, r5}
>  		adcs	sum, sum, r4
>  		adcs	sum, sum, r5
> -		mov	r4, r6, pull #16
> +		mov	r4, r6, lspull #16
>  		tst	ip, #4
>  		beq	4f
>  3:		load1l	r5
> -		orr	r4, r4, r5, push #16
> +		orr	r4, r4, r5, lspush #16
>  		str	r4, [dst], #4
>  		adcs	sum, sum, r4
> -		mov	r4, r5, pull #16
> +		mov	r4, r5, lspull #16
>  4:		ands	len, len, #3
>  		beq	.Ldone
>  		mov	r5, r4, get_byte_0
> @@ -276,24 +276,24 @@ FN_ENTRY
>  		load1b	r5
>  		b	.Lexit
>  
> -.Lsrc3_aligned:	mov	r4, r5, pull #24
> +.Lsrc3_aligned:	mov	r4, r5, lspull #24
>  		adds	sum, sum, #0
>  		bics	ip, len, #15
>  		beq	2f
>  1:		load4l	r5, r6, r7, r8
> -		orr	r4, r4, r5, push #8
> -		mov	r5, r5, pull #24
> -		orr	r5, r5, r6, push #8
> -		mov	r6, r6, pull #24
> -		orr	r6, r6, r7, push #8
> -		mov	r7, r7, pull #24
> -		orr	r7, r7, r8, push #8
> +		orr	r4, r4, r5, lspush #8
> +		mov	r5, r5, lspull #24
> +		orr	r5, r5, r6, lspush #8
> +		mov	r6, r6, lspull #24
> +		orr	r6, r6, r7, lspush #8
> +		mov	r7, r7, lspull #24
> +		orr	r7, r7, r8, lspush #8
>  		stmia	dst!, {r4, r5, r6, r7}
>  		adcs	sum, sum, r4
>  		adcs	sum, sum, r5
>  		adcs	sum, sum, r6
>  		adcs	sum, sum, r7
> -		mov	r4, r8, pull #24
> +		mov	r4, r8, lspull #24
>  		sub	ip, ip, #16
>  		teq	ip, #0
>  		bne	1b
> @@ -302,20 +302,20 @@ FN_ENTRY
>  		tst	ip, #8
>  		beq	3f
>  		load2l	r5, r6
> -		orr	r4, r4, r5, push #8
> -		mov	r5, r5, pull #24
> -		orr	r5, r5, r6, push #8
> +		orr	r4, r4, r5, lspush #8
> +		mov	r5, r5, lspull #24
> +		orr	r5, r5, r6, lspush #8
>  		stmia	dst!, {r4, r5}
>  		adcs	sum, sum, r4
>  		adcs	sum, sum, r5
> -		mov	r4, r6, pull #24
> +		mov	r4, r6, lspull #24
>  		tst	ip, #4
>  		beq	4f
>  3:		load1l	r5
> -		orr	r4, r4, r5, push #8
> +		orr	r4, r4, r5, lspush #8
>  		str	r4, [dst], #4
>  		adcs	sum, sum, r4
> -		mov	r4, r5, pull #24
> +		mov	r4, r5, lspull #24
>  4:		ands	len, len, #3
>  		beq	.Ldone
>  		mov	r5, r4, get_byte_0
> @@ -326,7 +326,7 @@ FN_ENTRY
>  		load1l	r4
>  		mov	r5, r4, get_byte_0
>  		strb	r5, [dst], #1
> -		adcs	sum, sum, r4, push #24
> +		adcs	sum, sum, r4, lspush #24
>  		mov	r5, r4, get_byte_1
>  		b	.Lexit
>  FN_EXIT
> diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S
> index 5fb97e7..7a74309 100644
> --- a/arch/arm/lib/io-readsl.S
> +++ b/arch/arm/lib/io-readsl.S
> @@ -47,25 +47,25 @@ ENTRY(__raw_readsl)
>  		strb	ip, [r1], #1
>  
>  4:		subs	r2, r2, #1
> -		mov	ip, r3, pull #24
> +		mov	ip, r3, lspull #24
>  		ldrne	r3, [r0]
> -		orrne	ip, ip, r3, push #8
> +		orrne	ip, ip, r3, lspush #8
>  		strne	ip, [r1], #4
>  		bne	4b
>  		b	8f
>  
>  5:		subs	r2, r2, #1
> -		mov	ip, r3, pull #16
> +		mov	ip, r3, lspull #16
>  		ldrne	r3, [r0]
> -		orrne	ip, ip, r3, push #16
> +		orrne	ip, ip, r3, lspush #16
>  		strne	ip, [r1], #4
>  		bne	5b
>  		b	7f
>  
>  6:		subs	r2, r2, #1
> -		mov	ip, r3, pull #8
> +		mov	ip, r3, lspull #8
>  		ldrne	r3, [r0]
> -		orrne	ip, ip, r3, push #24
> +		orrne	ip, ip, r3, lspush #24
>  		strne	ip, [r1], #4
>  		bne	6b
>  
> diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S
> index 8d3b781..d0d104a 100644
> --- a/arch/arm/lib/io-writesl.S
> +++ b/arch/arm/lib/io-writesl.S
> @@ -41,26 +41,26 @@ ENTRY(__raw_writesl)
>  		blt	5f
>  		bgt	6f
>  
> -4:		mov	ip, r3, pull #16
> +4:		mov	ip, r3, lspull #16
>  		ldr	r3, [r1], #4
>  		subs	r2, r2, #1
> -		orr	ip, ip, r3, push #16
> +		orr	ip, ip, r3, lspush #16
>  		str	ip, [r0]
>  		bne	4b
>  		mov	pc, lr
>  
> -5:		mov	ip, r3, pull #8
> +5:		mov	ip, r3, lspull #8
>  		ldr	r3, [r1], #4
>  		subs	r2, r2, #1
> -		orr	ip, ip, r3, push #24
> +		orr	ip, ip, r3, lspush #24
>  		str	ip, [r0]
>  		bne	5b
>  		mov	pc, lr
>  
> -6:		mov	ip, r3, pull #24
> +6:		mov	ip, r3, lspull #24
>  		ldr	r3, [r1], #4
>  		subs	r2, r2, #1
> -		orr	ip, ip, r3, push #8
> +		orr	ip, ip, r3, lspush #8
>  		str	ip, [r0]
>  		bne	6b
>  		mov	pc, lr
> diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S
> index 938fc14..d1fc0c0 100644
> --- a/arch/arm/lib/memmove.S
> +++ b/arch/arm/lib/memmove.S
> @@ -147,24 +147,24 @@ ENTRY(memmove)
>  
>  12:	PLD(	pld	[r1, #-128]		)
>  13:		ldmdb   r1!, {r7, r8, r9, ip}
> -		mov     lr, r3, push #\push
> +		mov     lr, r3, lspush #\push
>  		subs    r2, r2, #32
>  		ldmdb   r1!, {r3, r4, r5, r6}
> -		orr     lr, lr, ip, pull #\pull
> -		mov     ip, ip, push #\push
> -		orr     ip, ip, r9, pull #\pull
> -		mov     r9, r9, push #\push
> -		orr     r9, r9, r8, pull #\pull
> -		mov     r8, r8, push #\push
> -		orr     r8, r8, r7, pull #\pull
> -		mov     r7, r7, push #\push
> -		orr     r7, r7, r6, pull #\pull
> -		mov     r6, r6, push #\push
> -		orr     r6, r6, r5, pull #\pull
> -		mov     r5, r5, push #\push
> -		orr     r5, r5, r4, pull #\pull
> -		mov     r4, r4, push #\push
> -		orr     r4, r4, r3, pull #\pull
> +		orr     lr, lr, ip, lspull #\pull
> +		mov     ip, ip, lspush #\push
> +		orr     ip, ip, r9, lspull #\pull
> +		mov     r9, r9, lspush #\push
> +		orr     r9, r9, r8, lspull #\pull
> +		mov     r8, r8, lspush #\push
> +		orr     r8, r8, r7, lspull #\pull
> +		mov     r7, r7, lspush #\push
> +		orr     r7, r7, r6, lspull #\pull
> +		mov     r6, r6, lspush #\push
> +		orr     r6, r6, r5, lspull #\pull
> +		mov     r5, r5, lspush #\push
> +		orr     r5, r5, r4, lspull #\pull
> +		mov     r4, r4, lspush #\push
> +		orr     r4, r4, r3, lspull #\pull
>  		stmdb   r0!, {r4 - r9, ip, lr}
>  		bge	12b
>  	PLD(	cmn	r2, #96			)
> @@ -175,10 +175,10 @@ ENTRY(memmove)
>  14:		ands	ip, r2, #28
>  		beq	16f
>  
> -15:		mov     lr, r3, push #\push
> +15:		mov     lr, r3, lspush #\push
>  		ldr	r3, [r1, #-4]!
>  		subs	ip, ip, #4
> -		orr	lr, lr, r3, pull #\pull
> +		orr	lr, lr, r3, lspull #\pull
>  		str	lr, [r0, #-4]!
>  		bgt	15b
>  	CALGN(	cmp	r2, #0			)
> diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
> index 5c908b1..e505209 100644
> --- a/arch/arm/lib/uaccess.S
> +++ b/arch/arm/lib/uaccess.S
> @@ -117,9 +117,9 @@ USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  .Lc2u_1fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lc2u_1nowords
> -		mov	r3, r7, pull #8
> +		mov	r3, r7, lspull #8
>  		ldr	r7, [r1], #4
> -		orr	r3, r3, r7, push #24
> +		orr	r3, r3, r7, lspush #24
>  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
> @@ -131,30 +131,30 @@ USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		subs	ip, ip, #16
>  		blt	.Lc2u_1rem8lp
>  
> -.Lc2u_1cpy8lp:	mov	r3, r7, pull #8
> +.Lc2u_1cpy8lp:	mov	r3, r7, lspull #8
>  		ldmia	r1!, {r4 - r7}
>  		subs	ip, ip, #16
> -		orr	r3, r3, r4, push #24
> -		mov	r4, r4, pull #8
> -		orr	r4, r4, r5, push #24
> -		mov	r5, r5, pull #8
> -		orr	r5, r5, r6, push #24
> -		mov	r6, r6, pull #8
> -		orr	r6, r6, r7, push #24
> +		orr	r3, r3, r4, lspush #24
> +		mov	r4, r4, lspull #8
> +		orr	r4, r4, r5, lspush #24
> +		mov	r5, r5, lspull #8
> +		orr	r5, r5, r6, lspush #24
> +		mov	r6, r6, lspull #8
> +		orr	r6, r6, r7, lspush #24
>  		stmia	r0!, {r3 - r6}			@ Shouldnt fault
>  		bpl	.Lc2u_1cpy8lp
>  
>  .Lc2u_1rem8lp:	tst	ip, #8
> -		movne	r3, r7, pull #8
> +		movne	r3, r7, lspull #8
>  		ldmneia	r1!, {r4, r7}
> -		orrne	r3, r3, r4, push #24
> -		movne	r4, r4, pull #8
> -		orrne	r4, r4, r7, push #24
> +		orrne	r3, r3, r4, lspush #24
> +		movne	r4, r4, lspull #8
> +		orrne	r4, r4, r7, lspush #24
>  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
>  		tst	ip, #4
> -		movne	r3, r7, pull #8
> +		movne	r3, r7, lspull #8
>  		ldrne	r7, [r1], #4
> -		orrne	r3, r3, r7, push #24
> +		orrne	r3, r3, r7, lspush #24
>  	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_1fupi
> @@ -172,9 +172,9 @@ USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  .Lc2u_2fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lc2u_2nowords
> -		mov	r3, r7, pull #16
> +		mov	r3, r7, lspull #16
>  		ldr	r7, [r1], #4
> -		orr	r3, r3, r7, push #16
> +		orr	r3, r3, r7, lspush #16
>  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
> @@ -186,30 +186,30 @@ USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		subs	ip, ip, #16
>  		blt	.Lc2u_2rem8lp
>  
> -.Lc2u_2cpy8lp:	mov	r3, r7, pull #16
> +.Lc2u_2cpy8lp:	mov	r3, r7, lspull #16
>  		ldmia	r1!, {r4 - r7}
>  		subs	ip, ip, #16
> -		orr	r3, r3, r4, push #16
> -		mov	r4, r4, pull #16
> -		orr	r4, r4, r5, push #16
> -		mov	r5, r5, pull #16
> -		orr	r5, r5, r6, push #16
> -		mov	r6, r6, pull #16
> -		orr	r6, r6, r7, push #16
> +		orr	r3, r3, r4, lspush #16
> +		mov	r4, r4, lspull #16
> +		orr	r4, r4, r5, lspush #16
> +		mov	r5, r5, lspull #16
> +		orr	r5, r5, r6, lspush #16
> +		mov	r6, r6, lspull #16
> +		orr	r6, r6, r7, lspush #16
>  		stmia	r0!, {r3 - r6}			@ Shouldnt fault
>  		bpl	.Lc2u_2cpy8lp
>  
>  .Lc2u_2rem8lp:	tst	ip, #8
> -		movne	r3, r7, pull #16
> +		movne	r3, r7, lspull #16
>  		ldmneia	r1!, {r4, r7}
> -		orrne	r3, r3, r4, push #16
> -		movne	r4, r4, pull #16
> -		orrne	r4, r4, r7, push #16
> +		orrne	r3, r3, r4, lspush #16
> +		movne	r4, r4, lspull #16
> +		orrne	r4, r4, r7, lspush #16
>  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
>  		tst	ip, #4
> -		movne	r3, r7, pull #16
> +		movne	r3, r7, lspull #16
>  		ldrne	r7, [r1], #4
> -		orrne	r3, r3, r7, push #16
> +		orrne	r3, r3, r7, lspush #16
>  	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_2fupi
> @@ -227,9 +227,9 @@ USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
>  .Lc2u_3fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lc2u_3nowords
> -		mov	r3, r7, pull #24
> +		mov	r3, r7, lspull #24
>  		ldr	r7, [r1], #4
> -		orr	r3, r3, r7, push #8
> +		orr	r3, r3, r7, lspush #8
>  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		mov	ip, r0, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
> @@ -241,30 +241,30 @@ USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
>  		subs	ip, ip, #16
>  		blt	.Lc2u_3rem8lp
>  
> -.Lc2u_3cpy8lp:	mov	r3, r7, pull #24
> +.Lc2u_3cpy8lp:	mov	r3, r7, lspull #24
>  		ldmia	r1!, {r4 - r7}
>  		subs	ip, ip, #16
> -		orr	r3, r3, r4, push #8
> -		mov	r4, r4, pull #24
> -		orr	r4, r4, r5, push #8
> -		mov	r5, r5, pull #24
> -		orr	r5, r5, r6, push #8
> -		mov	r6, r6, pull #24
> -		orr	r6, r6, r7, push #8
> +		orr	r3, r3, r4, lspush #8
> +		mov	r4, r4, lspull #24
> +		orr	r4, r4, r5, lspush #8
> +		mov	r5, r5, lspull #24
> +		orr	r5, r5, r6, lspush #8
> +		mov	r6, r6, lspull #24
> +		orr	r6, r6, r7, lspush #8
>  		stmia	r0!, {r3 - r6}			@ Shouldnt fault
>  		bpl	.Lc2u_3cpy8lp
>  
>  .Lc2u_3rem8lp:	tst	ip, #8
> -		movne	r3, r7, pull #24
> +		movne	r3, r7, lspull #24
>  		ldmneia	r1!, {r4, r7}
> -		orrne	r3, r3, r4, push #8
> -		movne	r4, r4, pull #24
> -		orrne	r4, r4, r7, push #8
> +		orrne	r3, r3, r4, lspush #8
> +		movne	r4, r4, lspull #24
> +		orrne	r4, r4, r7, lspush #8
>  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
>  		tst	ip, #4
> -		movne	r3, r7, pull #24
> +		movne	r3, r7, lspull #24
>  		ldrne	r7, [r1], #4
> -		orrne	r3, r3, r7, push #8
> +		orrne	r3, r3, r7, lspush #8
>  	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
>  		ands	ip, ip, #3
>  		beq	.Lc2u_3fupi
> @@ -382,9 +382,9 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  .Lcfu_1fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_1nowords
> -		mov	r3, r7, pull #8
> +		mov	r3, r7, lspull #8
>  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> -		orr	r3, r3, r7, push #24
> +		orr	r3, r3, r7, lspush #24
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
> @@ -396,30 +396,30 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		subs	ip, ip, #16
>  		blt	.Lcfu_1rem8lp
>  
> -.Lcfu_1cpy8lp:	mov	r3, r7, pull #8
> +.Lcfu_1cpy8lp:	mov	r3, r7, lspull #8
>  		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
>  		subs	ip, ip, #16
> -		orr	r3, r3, r4, push #24
> -		mov	r4, r4, pull #8
> -		orr	r4, r4, r5, push #24
> -		mov	r5, r5, pull #8
> -		orr	r5, r5, r6, push #24
> -		mov	r6, r6, pull #8
> -		orr	r6, r6, r7, push #24
> +		orr	r3, r3, r4, lspush #24
> +		mov	r4, r4, lspull #8
> +		orr	r4, r4, r5, lspush #24
> +		mov	r5, r5, lspull #8
> +		orr	r5, r5, r6, lspush #24
> +		mov	r6, r6, lspull #8
> +		orr	r6, r6, r7, lspush #24
>  		stmia	r0!, {r3 - r6}
>  		bpl	.Lcfu_1cpy8lp
>  
>  .Lcfu_1rem8lp:	tst	ip, #8
> -		movne	r3, r7, pull #8
> +		movne	r3, r7, lspull #8
>  		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
> -		orrne	r3, r3, r4, push #24
> -		movne	r4, r4, pull #8
> -		orrne	r4, r4, r7, push #24
> +		orrne	r3, r3, r4, lspush #24
> +		movne	r4, r4, lspull #8
> +		orrne	r4, r4, r7, lspush #24
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
> -		movne	r3, r7, pull #8
> +		movne	r3, r7, lspull #8
>  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> -		orrne	r3, r3, r7, push #24
> +		orrne	r3, r3, r7, lspush #24
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
>  		beq	.Lcfu_1fupi
> @@ -437,9 +437,9 @@ USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
>  .Lcfu_2fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_2nowords
> -		mov	r3, r7, pull #16
> +		mov	r3, r7, lspull #16
>  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> -		orr	r3, r3, r7, push #16
> +		orr	r3, r3, r7, lspush #16
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
> @@ -452,30 +452,30 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		blt	.Lcfu_2rem8lp
>  
>  
> -.Lcfu_2cpy8lp:	mov	r3, r7, pull #16
> +.Lcfu_2cpy8lp:	mov	r3, r7, lspull #16
>  		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
>  		subs	ip, ip, #16
> -		orr	r3, r3, r4, push #16
> -		mov	r4, r4, pull #16
> -		orr	r4, r4, r5, push #16
> -		mov	r5, r5, pull #16
> -		orr	r5, r5, r6, push #16
> -		mov	r6, r6, pull #16
> -		orr	r6, r6, r7, push #16
> +		orr	r3, r3, r4, lspush #16
> +		mov	r4, r4, lspull #16
> +		orr	r4, r4, r5, lspush #16
> +		mov	r5, r5, lspull #16
> +		orr	r5, r5, r6, lspush #16
> +		mov	r6, r6, lspull #16
> +		orr	r6, r6, r7, lspush #16
>  		stmia	r0!, {r3 - r6}
>  		bpl	.Lcfu_2cpy8lp
>  
>  .Lcfu_2rem8lp:	tst	ip, #8
> -		movne	r3, r7, pull #16
> +		movne	r3, r7, lspull #16
>  		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
> -		orrne	r3, r3, r4, push #16
> -		movne	r4, r4, pull #16
> -		orrne	r4, r4, r7, push #16
> +		orrne	r3, r3, r4, lspush #16
> +		movne	r4, r4, lspull #16
> +		orrne	r4, r4, r7, lspush #16
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
> -		movne	r3, r7, pull #16
> +		movne	r3, r7, lspull #16
>  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> -		orrne	r3, r3, r7, push #16
> +		orrne	r3, r3, r7, lspush #16
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
>  		beq	.Lcfu_2fupi
> @@ -493,9 +493,9 @@ USER(	TUSER(	ldrgtb) r3, [r1], #0)			@ May fault
>  .Lcfu_3fupi:	subs	r2, r2, #4
>  		addmi	ip, r2, #4
>  		bmi	.Lcfu_3nowords
> -		mov	r3, r7, pull #24
> +		mov	r3, r7, lspull #24
>  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> -		orr	r3, r3, r7, push #8
> +		orr	r3, r3, r7, lspush #8
>  		str	r3, [r0], #4
>  		mov	ip, r1, lsl #32 - PAGE_SHIFT
>  		rsb	ip, ip, #0
> @@ -507,30 +507,30 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
>  		subs	ip, ip, #16
>  		blt	.Lcfu_3rem8lp
>  
> -.Lcfu_3cpy8lp:	mov	r3, r7, pull #24
> +.Lcfu_3cpy8lp:	mov	r3, r7, lspull #24
>  		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
> -		orr	r3, r3, r4, push #8
> -		mov	r4, r4, pull #24
> -		orr	r4, r4, r5, push #8
> -		mov	r5, r5, pull #24
> -		orr	r5, r5, r6, push #8
> -		mov	r6, r6, pull #24
> -		orr	r6, r6, r7, push #8
> +		orr	r3, r3, r4, lspush #8
> +		mov	r4, r4, lspull #24
> +		orr	r4, r4, r5, lspush #8
> +		mov	r5, r5, lspull #24
> +		orr	r5, r5, r6, lspush #8
> +		mov	r6, r6, lspull #24
> +		orr	r6, r6, r7, lspush #8
>  		stmia	r0!, {r3 - r6}
>  		subs	ip, ip, #16
>  		bpl	.Lcfu_3cpy8lp
>  
>  .Lcfu_3rem8lp:	tst	ip, #8
> -		movne	r3, r7, pull #24
> +		movne	r3, r7, lspull #24
>  		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
> -		orrne	r3, r3, r4, push #8
> -		movne	r4, r4, pull #24
> -		orrne	r4, r4, r7, push #8
> +		orrne	r3, r3, r4, lspush #8
> +		movne	r4, r4, lspull #24
> +		orrne	r4, r4, r7, lspush #8
>  		stmneia	r0!, {r3 - r4}
>  		tst	ip, #4
> -		movne	r3, r7, pull #24
> +		movne	r3, r7, lspull #24
>  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> -		orrne	r3, r3, r7, push #8
> +		orrne	r3, r3, r7, lspush #8
>  		strne	r3, [r0], #4
>  		ands	ip, ip, #3
>  		beq	.Lcfu_3fupi
> -- 
> 1.8.1.4
>
Dave Martin Feb. 11, 2014, 3:54 p.m. UTC | #2
On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
> On Mon, 10 Feb 2014, Victor Kamensky wrote:
> 
> > Renames logical shift macros, 'push' and 'pull', defined in
> > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
> 
> I don't have any fundamental objection to the idea, except maybe for the 
> actual names.  I just can't come up with anything better though.  

For consistency with the get_byte_ stuff, how about:

	push -> towards_byte_0
	pull -> from_byte_0

That may make the purpose a little clearer, too.

(Assuming I've got them the right way around...)

Cheers
---Dave

> Therefore...
> 
> Acked-by: Nicolas Pitre <nico@linaro.org>
> 
> > That eliminates name conflict between 'push' logical shift macro
> > and 'push' instruction mnemonic. That allows assembler.h to be
> > included in .S files that use 'push' instruction.
> > 
> > Suggested-by: Will Deacon <will.deacon@arm.com>
> > Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
> > ---
> >  arch/arm/include/asm/assembler.h      |   8 +-
> >  arch/arm/lib/copy_template.S          |  36 +++----
> >  arch/arm/lib/csumpartialcopygeneric.S |  96 ++++++++---------
> >  arch/arm/lib/io-readsl.S              |  12 +--
> >  arch/arm/lib/io-writesl.S             |  12 +--
> >  arch/arm/lib/memmove.S                |  36 +++----
> >  arch/arm/lib/uaccess.S                | 192 +++++++++++++++++-----------------
> >  7 files changed, 196 insertions(+), 196 deletions(-)
> > 
> > diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
> > index 5c22851..380ac4f 100644
> > --- a/arch/arm/include/asm/assembler.h
> > +++ b/arch/arm/include/asm/assembler.h
> > @@ -30,8 +30,8 @@
> >   * Endian independent macros for shifting bytes within registers.
> >   */
> >  #ifndef __ARMEB__
> > -#define pull            lsr
> > -#define push            lsl
> > +#define lspull          lsr
> > +#define lspush          lsl
> >  #define get_byte_0      lsl #0
> >  #define get_byte_1	lsr #8
> >  #define get_byte_2	lsr #16
> > @@ -41,8 +41,8 @@
> >  #define put_byte_2	lsl #16
> >  #define put_byte_3	lsl #24
> >  #else
> > -#define pull            lsl
> > -#define push            lsr
> > +#define lspull          lsl
> > +#define lspush          lsr
> >  #define get_byte_0	lsr #24
> >  #define get_byte_1	lsr #16
> >  #define get_byte_2	lsr #8
> > diff --git a/arch/arm/lib/copy_template.S b/arch/arm/lib/copy_template.S
> > index 805e3f8..3bc8eb8 100644
> > --- a/arch/arm/lib/copy_template.S
> > +++ b/arch/arm/lib/copy_template.S
> > @@ -197,24 +197,24 @@
> >  
> >  12:	PLD(	pld	[r1, #124]		)
> >  13:		ldr4w	r1, r4, r5, r6, r7, abort=19f
> > -		mov	r3, lr, pull #\pull
> > +		mov	r3, lr, lspull #\pull
> >  		subs	r2, r2, #32
> >  		ldr4w	r1, r8, r9, ip, lr, abort=19f
> > -		orr	r3, r3, r4, push #\push
> > -		mov	r4, r4, pull #\pull
> > -		orr	r4, r4, r5, push #\push
> > -		mov	r5, r5, pull #\pull
> > -		orr	r5, r5, r6, push #\push
> > -		mov	r6, r6, pull #\pull
> > -		orr	r6, r6, r7, push #\push
> > -		mov	r7, r7, pull #\pull
> > -		orr	r7, r7, r8, push #\push
> > -		mov	r8, r8, pull #\pull
> > -		orr	r8, r8, r9, push #\push
> > -		mov	r9, r9, pull #\pull
> > -		orr	r9, r9, ip, push #\push
> > -		mov	ip, ip, pull #\pull
> > -		orr	ip, ip, lr, push #\push
> > +		orr	r3, r3, r4, lspush #\push
> > +		mov	r4, r4, lspull #\pull
> > +		orr	r4, r4, r5, lspush #\push
> > +		mov	r5, r5, lspull #\pull
> > +		orr	r5, r5, r6, lspush #\push
> > +		mov	r6, r6, lspull #\pull
> > +		orr	r6, r6, r7, lspush #\push
> > +		mov	r7, r7, lspull #\pull
> > +		orr	r7, r7, r8, lspush #\push
> > +		mov	r8, r8, lspull #\pull
> > +		orr	r8, r8, r9, lspush #\push
> > +		mov	r9, r9, lspull #\pull
> > +		orr	r9, r9, ip, lspush #\push
> > +		mov	ip, ip, lspull #\pull
> > +		orr	ip, ip, lr, lspush #\push
> >  		str8w	r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
> >  		bge	12b
> >  	PLD(	cmn	r2, #96			)
> > @@ -225,10 +225,10 @@
> >  14:		ands	ip, r2, #28
> >  		beq	16f
> >  
> > -15:		mov	r3, lr, pull #\pull
> > +15:		mov	r3, lr, lspull #\pull
> >  		ldr1w	r1, lr, abort=21f
> >  		subs	ip, ip, #4
> > -		orr	r3, r3, lr, push #\push
> > +		orr	r3, r3, lr, lspush #\push
> >  		str1w	r0, r3, abort=21f
> >  		bgt	15b
> >  	CALGN(	cmp	r2, #0			)
> > diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S
> > index d620a5f..d6e742d 100644
> > --- a/arch/arm/lib/csumpartialcopygeneric.S
> > +++ b/arch/arm/lib/csumpartialcopygeneric.S
> > @@ -141,7 +141,7 @@ FN_ENTRY
> >  		tst	len, #2
> >  		mov	r5, r4, get_byte_0
> >  		beq	.Lexit
> > -		adcs	sum, sum, r4, push #16
> > +		adcs	sum, sum, r4, lspush #16
> >  		strb	r5, [dst], #1
> >  		mov	r5, r4, get_byte_1
> >  		strb	r5, [dst], #1
> > @@ -171,23 +171,23 @@ FN_ENTRY
> >  		cmp	ip, #2
> >  		beq	.Lsrc2_aligned
> >  		bhi	.Lsrc3_aligned
> > -		mov	r4, r5, pull #8		@ C = 0
> > +		mov	r4, r5, lspull #8		@ C = 0
> >  		bics	ip, len, #15
> >  		beq	2f
> >  1:		load4l	r5, r6, r7, r8
> > -		orr	r4, r4, r5, push #24
> > -		mov	r5, r5, pull #8
> > -		orr	r5, r5, r6, push #24
> > -		mov	r6, r6, pull #8
> > -		orr	r6, r6, r7, push #24
> > -		mov	r7, r7, pull #8
> > -		orr	r7, r7, r8, push #24
> > +		orr	r4, r4, r5, lspush #24
> > +		mov	r5, r5, lspull #8
> > +		orr	r5, r5, r6, lspush #24
> > +		mov	r6, r6, lspull #8
> > +		orr	r6, r6, r7, lspush #24
> > +		mov	r7, r7, lspull #8
> > +		orr	r7, r7, r8, lspush #24
> >  		stmia	dst!, {r4, r5, r6, r7}
> >  		adcs	sum, sum, r4
> >  		adcs	sum, sum, r5
> >  		adcs	sum, sum, r6
> >  		adcs	sum, sum, r7
> > -		mov	r4, r8, pull #8
> > +		mov	r4, r8, lspull #8
> >  		sub	ip, ip, #16
> >  		teq	ip, #0
> >  		bne	1b
> > @@ -196,50 +196,50 @@ FN_ENTRY
> >  		tst	ip, #8
> >  		beq	3f
> >  		load2l	r5, r6
> > -		orr	r4, r4, r5, push #24
> > -		mov	r5, r5, pull #8
> > -		orr	r5, r5, r6, push #24
> > +		orr	r4, r4, r5, lspush #24
> > +		mov	r5, r5, lspull #8
> > +		orr	r5, r5, r6, lspush #24
> >  		stmia	dst!, {r4, r5}
> >  		adcs	sum, sum, r4
> >  		adcs	sum, sum, r5
> > -		mov	r4, r6, pull #8
> > +		mov	r4, r6, lspull #8
> >  		tst	ip, #4
> >  		beq	4f
> >  3:		load1l	r5
> > -		orr	r4, r4, r5, push #24
> > +		orr	r4, r4, r5, lspush #24
> >  		str	r4, [dst], #4
> >  		adcs	sum, sum, r4
> > -		mov	r4, r5, pull #8
> > +		mov	r4, r5, lspull #8
> >  4:		ands	len, len, #3
> >  		beq	.Ldone
> >  		mov	r5, r4, get_byte_0
> >  		tst	len, #2
> >  		beq	.Lexit
> > -		adcs	sum, sum, r4, push #16
> > +		adcs	sum, sum, r4, lspush #16
> >  		strb	r5, [dst], #1
> >  		mov	r5, r4, get_byte_1
> >  		strb	r5, [dst], #1
> >  		mov	r5, r4, get_byte_2
> >  		b	.Lexit
> >  
> > -.Lsrc2_aligned:	mov	r4, r5, pull #16
> > +.Lsrc2_aligned:	mov	r4, r5, lspull #16
> >  		adds	sum, sum, #0
> >  		bics	ip, len, #15
> >  		beq	2f
> >  1:		load4l	r5, r6, r7, r8
> > -		orr	r4, r4, r5, push #16
> > -		mov	r5, r5, pull #16
> > -		orr	r5, r5, r6, push #16
> > -		mov	r6, r6, pull #16
> > -		orr	r6, r6, r7, push #16
> > -		mov	r7, r7, pull #16
> > -		orr	r7, r7, r8, push #16
> > +		orr	r4, r4, r5, lspush #16
> > +		mov	r5, r5, lspull #16
> > +		orr	r5, r5, r6, lspush #16
> > +		mov	r6, r6, lspull #16
> > +		orr	r6, r6, r7, lspush #16
> > +		mov	r7, r7, lspull #16
> > +		orr	r7, r7, r8, lspush #16
> >  		stmia	dst!, {r4, r5, r6, r7}
> >  		adcs	sum, sum, r4
> >  		adcs	sum, sum, r5
> >  		adcs	sum, sum, r6
> >  		adcs	sum, sum, r7
> > -		mov	r4, r8, pull #16
> > +		mov	r4, r8, lspull #16
> >  		sub	ip, ip, #16
> >  		teq	ip, #0
> >  		bne	1b
> > @@ -248,20 +248,20 @@ FN_ENTRY
> >  		tst	ip, #8
> >  		beq	3f
> >  		load2l	r5, r6
> > -		orr	r4, r4, r5, push #16
> > -		mov	r5, r5, pull #16
> > -		orr	r5, r5, r6, push #16
> > +		orr	r4, r4, r5, lspush #16
> > +		mov	r5, r5, lspull #16
> > +		orr	r5, r5, r6, lspush #16
> >  		stmia	dst!, {r4, r5}
> >  		adcs	sum, sum, r4
> >  		adcs	sum, sum, r5
> > -		mov	r4, r6, pull #16
> > +		mov	r4, r6, lspull #16
> >  		tst	ip, #4
> >  		beq	4f
> >  3:		load1l	r5
> > -		orr	r4, r4, r5, push #16
> > +		orr	r4, r4, r5, lspush #16
> >  		str	r4, [dst], #4
> >  		adcs	sum, sum, r4
> > -		mov	r4, r5, pull #16
> > +		mov	r4, r5, lspull #16
> >  4:		ands	len, len, #3
> >  		beq	.Ldone
> >  		mov	r5, r4, get_byte_0
> > @@ -276,24 +276,24 @@ FN_ENTRY
> >  		load1b	r5
> >  		b	.Lexit
> >  
> > -.Lsrc3_aligned:	mov	r4, r5, pull #24
> > +.Lsrc3_aligned:	mov	r4, r5, lspull #24
> >  		adds	sum, sum, #0
> >  		bics	ip, len, #15
> >  		beq	2f
> >  1:		load4l	r5, r6, r7, r8
> > -		orr	r4, r4, r5, push #8
> > -		mov	r5, r5, pull #24
> > -		orr	r5, r5, r6, push #8
> > -		mov	r6, r6, pull #24
> > -		orr	r6, r6, r7, push #8
> > -		mov	r7, r7, pull #24
> > -		orr	r7, r7, r8, push #8
> > +		orr	r4, r4, r5, lspush #8
> > +		mov	r5, r5, lspull #24
> > +		orr	r5, r5, r6, lspush #8
> > +		mov	r6, r6, lspull #24
> > +		orr	r6, r6, r7, lspush #8
> > +		mov	r7, r7, lspull #24
> > +		orr	r7, r7, r8, lspush #8
> >  		stmia	dst!, {r4, r5, r6, r7}
> >  		adcs	sum, sum, r4
> >  		adcs	sum, sum, r5
> >  		adcs	sum, sum, r6
> >  		adcs	sum, sum, r7
> > -		mov	r4, r8, pull #24
> > +		mov	r4, r8, lspull #24
> >  		sub	ip, ip, #16
> >  		teq	ip, #0
> >  		bne	1b
> > @@ -302,20 +302,20 @@ FN_ENTRY
> >  		tst	ip, #8
> >  		beq	3f
> >  		load2l	r5, r6
> > -		orr	r4, r4, r5, push #8
> > -		mov	r5, r5, pull #24
> > -		orr	r5, r5, r6, push #8
> > +		orr	r4, r4, r5, lspush #8
> > +		mov	r5, r5, lspull #24
> > +		orr	r5, r5, r6, lspush #8
> >  		stmia	dst!, {r4, r5}
> >  		adcs	sum, sum, r4
> >  		adcs	sum, sum, r5
> > -		mov	r4, r6, pull #24
> > +		mov	r4, r6, lspull #24
> >  		tst	ip, #4
> >  		beq	4f
> >  3:		load1l	r5
> > -		orr	r4, r4, r5, push #8
> > +		orr	r4, r4, r5, lspush #8
> >  		str	r4, [dst], #4
> >  		adcs	sum, sum, r4
> > -		mov	r4, r5, pull #24
> > +		mov	r4, r5, lspull #24
> >  4:		ands	len, len, #3
> >  		beq	.Ldone
> >  		mov	r5, r4, get_byte_0
> > @@ -326,7 +326,7 @@ FN_ENTRY
> >  		load1l	r4
> >  		mov	r5, r4, get_byte_0
> >  		strb	r5, [dst], #1
> > -		adcs	sum, sum, r4, push #24
> > +		adcs	sum, sum, r4, lspush #24
> >  		mov	r5, r4, get_byte_1
> >  		b	.Lexit
> >  FN_EXIT
> > diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S
> > index 5fb97e7..7a74309 100644
> > --- a/arch/arm/lib/io-readsl.S
> > +++ b/arch/arm/lib/io-readsl.S
> > @@ -47,25 +47,25 @@ ENTRY(__raw_readsl)
> >  		strb	ip, [r1], #1
> >  
> >  4:		subs	r2, r2, #1
> > -		mov	ip, r3, pull #24
> > +		mov	ip, r3, lspull #24
> >  		ldrne	r3, [r0]
> > -		orrne	ip, ip, r3, push #8
> > +		orrne	ip, ip, r3, lspush #8
> >  		strne	ip, [r1], #4
> >  		bne	4b
> >  		b	8f
> >  
> >  5:		subs	r2, r2, #1
> > -		mov	ip, r3, pull #16
> > +		mov	ip, r3, lspull #16
> >  		ldrne	r3, [r0]
> > -		orrne	ip, ip, r3, push #16
> > +		orrne	ip, ip, r3, lspush #16
> >  		strne	ip, [r1], #4
> >  		bne	5b
> >  		b	7f
> >  
> >  6:		subs	r2, r2, #1
> > -		mov	ip, r3, pull #8
> > +		mov	ip, r3, lspull #8
> >  		ldrne	r3, [r0]
> > -		orrne	ip, ip, r3, push #24
> > +		orrne	ip, ip, r3, lspush #24
> >  		strne	ip, [r1], #4
> >  		bne	6b
> >  
> > diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S
> > index 8d3b781..d0d104a 100644
> > --- a/arch/arm/lib/io-writesl.S
> > +++ b/arch/arm/lib/io-writesl.S
> > @@ -41,26 +41,26 @@ ENTRY(__raw_writesl)
> >  		blt	5f
> >  		bgt	6f
> >  
> > -4:		mov	ip, r3, pull #16
> > +4:		mov	ip, r3, lspull #16
> >  		ldr	r3, [r1], #4
> >  		subs	r2, r2, #1
> > -		orr	ip, ip, r3, push #16
> > +		orr	ip, ip, r3, lspush #16
> >  		str	ip, [r0]
> >  		bne	4b
> >  		mov	pc, lr
> >  
> > -5:		mov	ip, r3, pull #8
> > +5:		mov	ip, r3, lspull #8
> >  		ldr	r3, [r1], #4
> >  		subs	r2, r2, #1
> > -		orr	ip, ip, r3, push #24
> > +		orr	ip, ip, r3, lspush #24
> >  		str	ip, [r0]
> >  		bne	5b
> >  		mov	pc, lr
> >  
> > -6:		mov	ip, r3, pull #24
> > +6:		mov	ip, r3, lspull #24
> >  		ldr	r3, [r1], #4
> >  		subs	r2, r2, #1
> > -		orr	ip, ip, r3, push #8
> > +		orr	ip, ip, r3, lspush #8
> >  		str	ip, [r0]
> >  		bne	6b
> >  		mov	pc, lr
> > diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S
> > index 938fc14..d1fc0c0 100644
> > --- a/arch/arm/lib/memmove.S
> > +++ b/arch/arm/lib/memmove.S
> > @@ -147,24 +147,24 @@ ENTRY(memmove)
> >  
> >  12:	PLD(	pld	[r1, #-128]		)
> >  13:		ldmdb   r1!, {r7, r8, r9, ip}
> > -		mov     lr, r3, push #\push
> > +		mov     lr, r3, lspush #\push
> >  		subs    r2, r2, #32
> >  		ldmdb   r1!, {r3, r4, r5, r6}
> > -		orr     lr, lr, ip, pull #\pull
> > -		mov     ip, ip, push #\push
> > -		orr     ip, ip, r9, pull #\pull
> > -		mov     r9, r9, push #\push
> > -		orr     r9, r9, r8, pull #\pull
> > -		mov     r8, r8, push #\push
> > -		orr     r8, r8, r7, pull #\pull
> > -		mov     r7, r7, push #\push
> > -		orr     r7, r7, r6, pull #\pull
> > -		mov     r6, r6, push #\push
> > -		orr     r6, r6, r5, pull #\pull
> > -		mov     r5, r5, push #\push
> > -		orr     r5, r5, r4, pull #\pull
> > -		mov     r4, r4, push #\push
> > -		orr     r4, r4, r3, pull #\pull
> > +		orr     lr, lr, ip, lspull #\pull
> > +		mov     ip, ip, lspush #\push
> > +		orr     ip, ip, r9, lspull #\pull
> > +		mov     r9, r9, lspush #\push
> > +		orr     r9, r9, r8, lspull #\pull
> > +		mov     r8, r8, lspush #\push
> > +		orr     r8, r8, r7, lspull #\pull
> > +		mov     r7, r7, lspush #\push
> > +		orr     r7, r7, r6, lspull #\pull
> > +		mov     r6, r6, lspush #\push
> > +		orr     r6, r6, r5, lspull #\pull
> > +		mov     r5, r5, lspush #\push
> > +		orr     r5, r5, r4, lspull #\pull
> > +		mov     r4, r4, lspush #\push
> > +		orr     r4, r4, r3, lspull #\pull
> >  		stmdb   r0!, {r4 - r9, ip, lr}
> >  		bge	12b
> >  	PLD(	cmn	r2, #96			)
> > @@ -175,10 +175,10 @@ ENTRY(memmove)
> >  14:		ands	ip, r2, #28
> >  		beq	16f
> >  
> > -15:		mov     lr, r3, push #\push
> > +15:		mov     lr, r3, lspush #\push
> >  		ldr	r3, [r1, #-4]!
> >  		subs	ip, ip, #4
> > -		orr	lr, lr, r3, pull #\pull
> > +		orr	lr, lr, r3, lspull #\pull
> >  		str	lr, [r0, #-4]!
> >  		bgt	15b
> >  	CALGN(	cmp	r2, #0			)
> > diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
> > index 5c908b1..e505209 100644
> > --- a/arch/arm/lib/uaccess.S
> > +++ b/arch/arm/lib/uaccess.S
> > @@ -117,9 +117,9 @@ USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
> >  .Lc2u_1fupi:	subs	r2, r2, #4
> >  		addmi	ip, r2, #4
> >  		bmi	.Lc2u_1nowords
> > -		mov	r3, r7, pull #8
> > +		mov	r3, r7, lspull #8
> >  		ldr	r7, [r1], #4
> > -		orr	r3, r3, r7, push #24
> > +		orr	r3, r3, r7, lspush #24
> >  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
> >  		mov	ip, r0, lsl #32 - PAGE_SHIFT
> >  		rsb	ip, ip, #0
> > @@ -131,30 +131,30 @@ USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
> >  		subs	ip, ip, #16
> >  		blt	.Lc2u_1rem8lp
> >  
> > -.Lc2u_1cpy8lp:	mov	r3, r7, pull #8
> > +.Lc2u_1cpy8lp:	mov	r3, r7, lspull #8
> >  		ldmia	r1!, {r4 - r7}
> >  		subs	ip, ip, #16
> > -		orr	r3, r3, r4, push #24
> > -		mov	r4, r4, pull #8
> > -		orr	r4, r4, r5, push #24
> > -		mov	r5, r5, pull #8
> > -		orr	r5, r5, r6, push #24
> > -		mov	r6, r6, pull #8
> > -		orr	r6, r6, r7, push #24
> > +		orr	r3, r3, r4, lspush #24
> > +		mov	r4, r4, lspull #8
> > +		orr	r4, r4, r5, lspush #24
> > +		mov	r5, r5, lspull #8
> > +		orr	r5, r5, r6, lspush #24
> > +		mov	r6, r6, lspull #8
> > +		orr	r6, r6, r7, lspush #24
> >  		stmia	r0!, {r3 - r6}			@ Shouldnt fault
> >  		bpl	.Lc2u_1cpy8lp
> >  
> >  .Lc2u_1rem8lp:	tst	ip, #8
> > -		movne	r3, r7, pull #8
> > +		movne	r3, r7, lspull #8
> >  		ldmneia	r1!, {r4, r7}
> > -		orrne	r3, r3, r4, push #24
> > -		movne	r4, r4, pull #8
> > -		orrne	r4, r4, r7, push #24
> > +		orrne	r3, r3, r4, lspush #24
> > +		movne	r4, r4, lspull #8
> > +		orrne	r4, r4, r7, lspush #24
> >  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
> >  		tst	ip, #4
> > -		movne	r3, r7, pull #8
> > +		movne	r3, r7, lspull #8
> >  		ldrne	r7, [r1], #4
> > -		orrne	r3, r3, r7, push #24
> > +		orrne	r3, r3, r7, lspush #24
> >  	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
> >  		ands	ip, ip, #3
> >  		beq	.Lc2u_1fupi
> > @@ -172,9 +172,9 @@ USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
> >  .Lc2u_2fupi:	subs	r2, r2, #4
> >  		addmi	ip, r2, #4
> >  		bmi	.Lc2u_2nowords
> > -		mov	r3, r7, pull #16
> > +		mov	r3, r7, lspull #16
> >  		ldr	r7, [r1], #4
> > -		orr	r3, r3, r7, push #16
> > +		orr	r3, r3, r7, lspush #16
> >  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
> >  		mov	ip, r0, lsl #32 - PAGE_SHIFT
> >  		rsb	ip, ip, #0
> > @@ -186,30 +186,30 @@ USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
> >  		subs	ip, ip, #16
> >  		blt	.Lc2u_2rem8lp
> >  
> > -.Lc2u_2cpy8lp:	mov	r3, r7, pull #16
> > +.Lc2u_2cpy8lp:	mov	r3, r7, lspull #16
> >  		ldmia	r1!, {r4 - r7}
> >  		subs	ip, ip, #16
> > -		orr	r3, r3, r4, push #16
> > -		mov	r4, r4, pull #16
> > -		orr	r4, r4, r5, push #16
> > -		mov	r5, r5, pull #16
> > -		orr	r5, r5, r6, push #16
> > -		mov	r6, r6, pull #16
> > -		orr	r6, r6, r7, push #16
> > +		orr	r3, r3, r4, lspush #16
> > +		mov	r4, r4, lspull #16
> > +		orr	r4, r4, r5, lspush #16
> > +		mov	r5, r5, lspull #16
> > +		orr	r5, r5, r6, lspush #16
> > +		mov	r6, r6, lspull #16
> > +		orr	r6, r6, r7, lspush #16
> >  		stmia	r0!, {r3 - r6}			@ Shouldnt fault
> >  		bpl	.Lc2u_2cpy8lp
> >  
> >  .Lc2u_2rem8lp:	tst	ip, #8
> > -		movne	r3, r7, pull #16
> > +		movne	r3, r7, lspull #16
> >  		ldmneia	r1!, {r4, r7}
> > -		orrne	r3, r3, r4, push #16
> > -		movne	r4, r4, pull #16
> > -		orrne	r4, r4, r7, push #16
> > +		orrne	r3, r3, r4, lspush #16
> > +		movne	r4, r4, lspull #16
> > +		orrne	r4, r4, r7, lspush #16
> >  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
> >  		tst	ip, #4
> > -		movne	r3, r7, pull #16
> > +		movne	r3, r7, lspull #16
> >  		ldrne	r7, [r1], #4
> > -		orrne	r3, r3, r7, push #16
> > +		orrne	r3, r3, r7, lspush #16
> >  	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
> >  		ands	ip, ip, #3
> >  		beq	.Lc2u_2fupi
> > @@ -227,9 +227,9 @@ USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
> >  .Lc2u_3fupi:	subs	r2, r2, #4
> >  		addmi	ip, r2, #4
> >  		bmi	.Lc2u_3nowords
> > -		mov	r3, r7, pull #24
> > +		mov	r3, r7, lspull #24
> >  		ldr	r7, [r1], #4
> > -		orr	r3, r3, r7, push #8
> > +		orr	r3, r3, r7, lspush #8
> >  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
> >  		mov	ip, r0, lsl #32 - PAGE_SHIFT
> >  		rsb	ip, ip, #0
> > @@ -241,30 +241,30 @@ USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
> >  		subs	ip, ip, #16
> >  		blt	.Lc2u_3rem8lp
> >  
> > -.Lc2u_3cpy8lp:	mov	r3, r7, pull #24
> > +.Lc2u_3cpy8lp:	mov	r3, r7, lspull #24
> >  		ldmia	r1!, {r4 - r7}
> >  		subs	ip, ip, #16
> > -		orr	r3, r3, r4, push #8
> > -		mov	r4, r4, pull #24
> > -		orr	r4, r4, r5, push #8
> > -		mov	r5, r5, pull #24
> > -		orr	r5, r5, r6, push #8
> > -		mov	r6, r6, pull #24
> > -		orr	r6, r6, r7, push #8
> > +		orr	r3, r3, r4, lspush #8
> > +		mov	r4, r4, lspull #24
> > +		orr	r4, r4, r5, lspush #8
> > +		mov	r5, r5, lspull #24
> > +		orr	r5, r5, r6, lspush #8
> > +		mov	r6, r6, lspull #24
> > +		orr	r6, r6, r7, lspush #8
> >  		stmia	r0!, {r3 - r6}			@ Shouldnt fault
> >  		bpl	.Lc2u_3cpy8lp
> >  
> >  .Lc2u_3rem8lp:	tst	ip, #8
> > -		movne	r3, r7, pull #24
> > +		movne	r3, r7, lspull #24
> >  		ldmneia	r1!, {r4, r7}
> > -		orrne	r3, r3, r4, push #8
> > -		movne	r4, r4, pull #24
> > -		orrne	r4, r4, r7, push #8
> > +		orrne	r3, r3, r4, lspush #8
> > +		movne	r4, r4, lspull #24
> > +		orrne	r4, r4, r7, lspush #8
> >  		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
> >  		tst	ip, #4
> > -		movne	r3, r7, pull #24
> > +		movne	r3, r7, lspull #24
> >  		ldrne	r7, [r1], #4
> > -		orrne	r3, r3, r7, push #8
> > +		orrne	r3, r3, r7, lspush #8
> >  	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
> >  		ands	ip, ip, #3
> >  		beq	.Lc2u_3fupi
> > @@ -382,9 +382,9 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> >  .Lcfu_1fupi:	subs	r2, r2, #4
> >  		addmi	ip, r2, #4
> >  		bmi	.Lcfu_1nowords
> > -		mov	r3, r7, pull #8
> > +		mov	r3, r7, lspull #8
> >  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> > -		orr	r3, r3, r7, push #24
> > +		orr	r3, r3, r7, lspush #24
> >  		str	r3, [r0], #4
> >  		mov	ip, r1, lsl #32 - PAGE_SHIFT
> >  		rsb	ip, ip, #0
> > @@ -396,30 +396,30 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> >  		subs	ip, ip, #16
> >  		blt	.Lcfu_1rem8lp
> >  
> > -.Lcfu_1cpy8lp:	mov	r3, r7, pull #8
> > +.Lcfu_1cpy8lp:	mov	r3, r7, lspull #8
> >  		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
> >  		subs	ip, ip, #16
> > -		orr	r3, r3, r4, push #24
> > -		mov	r4, r4, pull #8
> > -		orr	r4, r4, r5, push #24
> > -		mov	r5, r5, pull #8
> > -		orr	r5, r5, r6, push #24
> > -		mov	r6, r6, pull #8
> > -		orr	r6, r6, r7, push #24
> > +		orr	r3, r3, r4, lspush #24
> > +		mov	r4, r4, lspull #8
> > +		orr	r4, r4, r5, lspush #24
> > +		mov	r5, r5, lspull #8
> > +		orr	r5, r5, r6, lspush #24
> > +		mov	r6, r6, lspull #8
> > +		orr	r6, r6, r7, lspush #24
> >  		stmia	r0!, {r3 - r6}
> >  		bpl	.Lcfu_1cpy8lp
> >  
> >  .Lcfu_1rem8lp:	tst	ip, #8
> > -		movne	r3, r7, pull #8
> > +		movne	r3, r7, lspull #8
> >  		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
> > -		orrne	r3, r3, r4, push #24
> > -		movne	r4, r4, pull #8
> > -		orrne	r4, r4, r7, push #24
> > +		orrne	r3, r3, r4, lspush #24
> > +		movne	r4, r4, lspull #8
> > +		orrne	r4, r4, r7, lspush #24
> >  		stmneia	r0!, {r3 - r4}
> >  		tst	ip, #4
> > -		movne	r3, r7, pull #8
> > +		movne	r3, r7, lspull #8
> >  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> > -		orrne	r3, r3, r7, push #24
> > +		orrne	r3, r3, r7, lspush #24
> >  		strne	r3, [r0], #4
> >  		ands	ip, ip, #3
> >  		beq	.Lcfu_1fupi
> > @@ -437,9 +437,9 @@ USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> >  .Lcfu_2fupi:	subs	r2, r2, #4
> >  		addmi	ip, r2, #4
> >  		bmi	.Lcfu_2nowords
> > -		mov	r3, r7, pull #16
> > +		mov	r3, r7, lspull #16
> >  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> > -		orr	r3, r3, r7, push #16
> > +		orr	r3, r3, r7, lspush #16
> >  		str	r3, [r0], #4
> >  		mov	ip, r1, lsl #32 - PAGE_SHIFT
> >  		rsb	ip, ip, #0
> > @@ -452,30 +452,30 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> >  		blt	.Lcfu_2rem8lp
> >  
> >  
> > -.Lcfu_2cpy8lp:	mov	r3, r7, pull #16
> > +.Lcfu_2cpy8lp:	mov	r3, r7, lspull #16
> >  		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
> >  		subs	ip, ip, #16
> > -		orr	r3, r3, r4, push #16
> > -		mov	r4, r4, pull #16
> > -		orr	r4, r4, r5, push #16
> > -		mov	r5, r5, pull #16
> > -		orr	r5, r5, r6, push #16
> > -		mov	r6, r6, pull #16
> > -		orr	r6, r6, r7, push #16
> > +		orr	r3, r3, r4, lspush #16
> > +		mov	r4, r4, lspull #16
> > +		orr	r4, r4, r5, lspush #16
> > +		mov	r5, r5, lspull #16
> > +		orr	r5, r5, r6, lspush #16
> > +		mov	r6, r6, lspull #16
> > +		orr	r6, r6, r7, lspush #16
> >  		stmia	r0!, {r3 - r6}
> >  		bpl	.Lcfu_2cpy8lp
> >  
> >  .Lcfu_2rem8lp:	tst	ip, #8
> > -		movne	r3, r7, pull #16
> > +		movne	r3, r7, lspull #16
> >  		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
> > -		orrne	r3, r3, r4, push #16
> > -		movne	r4, r4, pull #16
> > -		orrne	r4, r4, r7, push #16
> > +		orrne	r3, r3, r4, lspush #16
> > +		movne	r4, r4, lspull #16
> > +		orrne	r4, r4, r7, lspush #16
> >  		stmneia	r0!, {r3 - r4}
> >  		tst	ip, #4
> > -		movne	r3, r7, pull #16
> > +		movne	r3, r7, lspull #16
> >  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> > -		orrne	r3, r3, r7, push #16
> > +		orrne	r3, r3, r7, lspush #16
> >  		strne	r3, [r0], #4
> >  		ands	ip, ip, #3
> >  		beq	.Lcfu_2fupi
> > @@ -493,9 +493,9 @@ USER(	TUSER(	ldrgtb) r3, [r1], #0)			@ May fault
> >  .Lcfu_3fupi:	subs	r2, r2, #4
> >  		addmi	ip, r2, #4
> >  		bmi	.Lcfu_3nowords
> > -		mov	r3, r7, pull #24
> > +		mov	r3, r7, lspull #24
> >  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> > -		orr	r3, r3, r7, push #8
> > +		orr	r3, r3, r7, lspush #8
> >  		str	r3, [r0], #4
> >  		mov	ip, r1, lsl #32 - PAGE_SHIFT
> >  		rsb	ip, ip, #0
> > @@ -507,30 +507,30 @@ USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
> >  		subs	ip, ip, #16
> >  		blt	.Lcfu_3rem8lp
> >  
> > -.Lcfu_3cpy8lp:	mov	r3, r7, pull #24
> > +.Lcfu_3cpy8lp:	mov	r3, r7, lspull #24
> >  		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
> > -		orr	r3, r3, r4, push #8
> > -		mov	r4, r4, pull #24
> > -		orr	r4, r4, r5, push #8
> > -		mov	r5, r5, pull #24
> > -		orr	r5, r5, r6, push #8
> > -		mov	r6, r6, pull #24
> > -		orr	r6, r6, r7, push #8
> > +		orr	r3, r3, r4, lspush #8
> > +		mov	r4, r4, lspull #24
> > +		orr	r4, r4, r5, lspush #8
> > +		mov	r5, r5, lspull #24
> > +		orr	r5, r5, r6, lspush #8
> > +		mov	r6, r6, lspull #24
> > +		orr	r6, r6, r7, lspush #8
> >  		stmia	r0!, {r3 - r6}
> >  		subs	ip, ip, #16
> >  		bpl	.Lcfu_3cpy8lp
> >  
> >  .Lcfu_3rem8lp:	tst	ip, #8
> > -		movne	r3, r7, pull #24
> > +		movne	r3, r7, lspull #24
> >  		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
> > -		orrne	r3, r3, r4, push #8
> > -		movne	r4, r4, pull #24
> > -		orrne	r4, r4, r7, push #8
> > +		orrne	r3, r3, r4, lspush #8
> > +		movne	r4, r4, lspull #24
> > +		orrne	r4, r4, r7, lspush #8
> >  		stmneia	r0!, {r3 - r4}
> >  		tst	ip, #4
> > -		movne	r3, r7, pull #24
> > +		movne	r3, r7, lspull #24
> >  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
> > -		orrne	r3, r3, r7, push #8
> > +		orrne	r3, r3, r7, lspush #8
> >  		strne	r3, [r0], #4
> >  		ands	ip, ip, #3
> >  		beq	.Lcfu_3fupi
> > -- 
> > 1.8.1.4
> > 
> 
> _______________________________________________
> linaro-kernel mailing list
> linaro-kernel@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-kernel
Dave Martin Feb. 11, 2014, 3:59 p.m. UTC | #3
On Tue, Feb 11, 2014 at 03:54:37PM +0000, Dave Martin wrote:
> On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
> > On Mon, 10 Feb 2014, Victor Kamensky wrote:
> > 
> > > Renames logical shift macros, 'push' and 'pull', defined in
> > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
> > 
> > I don't have any fundamental objection to the idea, except maybe for the 
> > actual names.  I just can't come up with anything better though.  
> 
> For consistency with the get_byte_ stuff, how about:
> 
> 	push -> towards_byte_0
> 	pull -> from_byte_0
> 
> That may make the purpose a little clearer, too.
> 
> (Assuming I've got them the right way around...)

(Actually, I did get it the wrong way round by the look of it.
But you get the general idea.)

Cheers
---Dave
Nicolas Pitre Feb. 11, 2014, 5:09 p.m. UTC | #4
On Tue, 11 Feb 2014, Dave Martin wrote:

> On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
> > On Mon, 10 Feb 2014, Victor Kamensky wrote:
> > 
> > > Renames logical shift macros, 'push' and 'pull', defined in
> > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
> > 
> > I don't have any fundamental objection to the idea, except maybe for the 
> > actual names.  I just can't come up with anything better though.  
> 
> For consistency with the get_byte_ stuff, how about:
> 
> 	push -> towards_byte_0
> 	pull -> from_byte_0
> 
> That may make the purpose a little clearer, too.

I don't know if

	mov	r0, r1, from_byte_0 #8

is that much clearer though.

> (Assuming I've got them the right way around...)

As you later noticed you got it wrong.  :-)
Most likely because "full from" and "push towards" are common english 
constructs.


Nicolas
Dave Martin Feb. 11, 2014, 5:37 p.m. UTC | #5
On Tue, Feb 11, 2014 at 12:09:35PM -0500, Nicolas Pitre wrote:
> On Tue, 11 Feb 2014, Dave Martin wrote:
> 
> > On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
> > > On Mon, 10 Feb 2014, Victor Kamensky wrote:
> > > 
> > > > Renames logical shift macros, 'push' and 'pull', defined in
> > > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
> > > 
> > > I don't have any fundamental objection to the idea, except maybe for the 
> > > actual names.  I just can't come up with anything better though.  
> > 
> > For consistency with the get_byte_ stuff, how about:
> > 
> > 	push -> towards_byte_0
> > 	pull -> from_byte_0
> > 
> > That may make the purpose a little clearer, too.
> 
> I don't know if
> 
> 	mov	r0, r1, from_byte_0 #8
> 
> is that much clearer though.
> 
> > (Assuming I've got them the right way around...)
> 
> As you later noticed you got it wrong.  :-)
> Most likely because "full from" and "push towards" are common english 
> constructs.

No more so than "pull towards" and "push from".

I'll blame it on the fact that the get_byte_ macros have wrong-
endian numbering, which I didn't look at carefully enough ;)

But I think we proved that my suggestion didn't really make things
easier to understand...

Cheers
---Dave
Nicolas Pitre Feb. 11, 2014, 5:58 p.m. UTC | #6
On Tue, 11 Feb 2014, Dave Martin wrote:

> On Tue, Feb 11, 2014 at 12:09:35PM -0500, Nicolas Pitre wrote:
> > On Tue, 11 Feb 2014, Dave Martin wrote:
> > 
> > > On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
> > > > On Mon, 10 Feb 2014, Victor Kamensky wrote:
> > > > 
> > > > > Renames logical shift macros, 'push' and 'pull', defined in
> > > > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
> > > > 
> > > > I don't have any fundamental objection to the idea, except maybe for the 
> > > > actual names.  I just can't come up with anything better though.  
> > > 
> > > For consistency with the get_byte_ stuff, how about:
> > > 
> > > 	push -> towards_byte_0
> > > 	pull -> from_byte_0
> > > 
> > > That may make the purpose a little clearer, too.
> > 
> > I don't know if
> > 
> > 	mov	r0, r1, from_byte_0 #8
> > 
> > is that much clearer though.
> > 
> > > (Assuming I've got them the right way around...)
> > 
> > As you later noticed you got it wrong.  :-)
> > Most likely because "full from" and "push towards" are common english 
> > constructs.
> 
> No more so than "pull towards" and "push from".

OK.  I'll trust you on that account.

> I'll blame it on the fact that the get_byte_ macros have wrong-
> endian numbering, which I didn't look at carefully enough ;)
> 
> But I think we proved that my suggestion didn't really make things
> easier to understand...

What about:

	push -> next
	pull -> prev

?

That would make:

	mov	r0, r1, next #8


Nicolas
Victor Kamensky Feb. 11, 2014, 7:36 p.m. UTC | #7
On 11 February 2014 09:58, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> On Tue, 11 Feb 2014, Dave Martin wrote:
>
>> On Tue, Feb 11, 2014 at 12:09:35PM -0500, Nicolas Pitre wrote:
>> > On Tue, 11 Feb 2014, Dave Martin wrote:
>> >
>> > > On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
>> > > > On Mon, 10 Feb 2014, Victor Kamensky wrote:
>> > > >
>> > > > > Renames logical shift macros, 'push' and 'pull', defined in
>> > > > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
>> > > >
>> > > > I don't have any fundamental objection to the idea, except maybe for the
>> > > > actual names.  I just can't come up with anything better though.
>> > >
>> > > For consistency with the get_byte_ stuff, how about:
>> > >
>> > >   push -> towards_byte_0
>> > >   pull -> from_byte_0
>> > >
>> > > That may make the purpose a little clearer, too.
>> >
>> > I don't know if
>> >
>> >     mov     r0, r1, from_byte_0 #8
>> >
>> > is that much clearer though.
>> >
>> > > (Assuming I've got them the right way around...)
>> >
>> > As you later noticed you got it wrong.  :-)
>> > Most likely because "full from" and "push towards" are common english
>> > constructs.
>>
>> No more so than "pull towards" and "push from".
>
> OK.  I'll trust you on that account.
>
>> I'll blame it on the fact that the get_byte_ macros have wrong-
>> endian numbering, which I didn't look at carefully enough ;)
>>
>> But I think we proved that my suggestion didn't really make things
>> easier to understand...
>
> What about:
>
>         push -> next
>         pull -> prev
>
> ?
>
> That would make:
>
>         mov     r0, r1, next #8

I am not native English speaker, so subtle details of your
discussion go above my head :). For me those tokens
were just symbols with specific meaning of logical shifts
and selected endianness. I'll do as you decide. Quick
grep over .S files under arch/arm seems 'next' and 'prev'
will be OK and I did build that confirms that.

One nit/question though: there are some cases where
'push' and 'pull' macros were used in macros and macro
parameters were also called 'push' and 'pull'. I.e something
like this:

mov     r3, lr, pull #\pull

with rename 'pull' to 'lspull' I did not bother to rename
macro parameters because they are separate, have
just local context and 'lspull' is close to 'pull'. Resulting
proposed diff was:
-               mov     r3, lr, pull #\pull
+               mov     r3, lr, lspull #\pull

I assume that if we change 'push -> next' and 'pull -> prev' I
will need to rename macro parameters in the same way.
So it will be:
+               mov     r3, lr, prev #\prev
Is it correct?

Thanks,
Victor

>
> Nicolas
Victor Kamensky Feb. 11, 2014, 7:52 p.m. UTC | #8
On 11 February 2014 11:36, Victor Kamensky <victor.kamensky@linaro.org> wrote:
> On 11 February 2014 09:58, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
>> On Tue, 11 Feb 2014, Dave Martin wrote:
>>
>>> On Tue, Feb 11, 2014 at 12:09:35PM -0500, Nicolas Pitre wrote:
>>> > On Tue, 11 Feb 2014, Dave Martin wrote:
>>> >
>>> > > On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
>>> > > > On Mon, 10 Feb 2014, Victor Kamensky wrote:
>>> > > >
>>> > > > > Renames logical shift macros, 'push' and 'pull', defined in
>>> > > > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
>>> > > >
>>> > > > I don't have any fundamental objection to the idea, except maybe for the
>>> > > > actual names.  I just can't come up with anything better though.
>>> > >
>>> > > For consistency with the get_byte_ stuff, how about:
>>> > >
>>> > >   push -> towards_byte_0
>>> > >   pull -> from_byte_0
>>> > >
>>> > > That may make the purpose a little clearer, too.
>>> >
>>> > I don't know if
>>> >
>>> >     mov     r0, r1, from_byte_0 #8
>>> >
>>> > is that much clearer though.
>>> >
>>> > > (Assuming I've got them the right way around...)
>>> >
>>> > As you later noticed you got it wrong.  :-)
>>> > Most likely because "full from" and "push towards" are common english
>>> > constructs.
>>>
>>> No more so than "pull towards" and "push from".
>>
>> OK.  I'll trust you on that account.
>>
>>> I'll blame it on the fact that the get_byte_ macros have wrong-
>>> endian numbering, which I didn't look at carefully enough ;)
>>>
>>> But I think we proved that my suggestion didn't really make things
>>> easier to understand...
>>
>> What about:
>>
>>         push -> next
>>         pull -> prev
>>
>> ?
>>
>> That would make:
>>
>>         mov     r0, r1, next #8
>
> I am not native English speaker, so subtle details of your
> discussion go above my head :). For me those tokens
> were just symbols with specific meaning of logical shifts
> and selected endianness. I'll do as you decide. Quick
> grep over .S files under arch/arm seems 'next' and 'prev'
> will be OK and I did build that confirms that.

Forgot to mention one detail. There is a case in
./nwfpe/entry.S file where 'next' is used as label name. I guess,
it should work if macro would rename it into lsl or lsr label
name. And/or we could rename the label.

Wondering ... whether idea to have those macros
name in way that coincides with English words would lead
us to some conflict earlier or latter. With this respect lspull
and lspush IMHO are somewhat better because they are
sort of abbreviations.

Thanks,
Victor

> One nit/question though: there are some cases where
> 'push' and 'pull' macros were used in macros and macro
> parameters were also called 'push' and 'pull'. I.e something
> like this:
>
> mov     r3, lr, pull #\pull
>
> with rename 'pull' to 'lspull' I did not bother to rename
> macro parameters because they are separate, have
> just local context and 'lspull' is close to 'pull'. Resulting
> proposed diff was:
> -               mov     r3, lr, pull #\pull
> +               mov     r3, lr, lspull #\pull
>
> I assume that if we change 'push -> next' and 'pull -> prev' I
> will need to rename macro parameters in the same way.
> So it will be:
> +               mov     r3, lr, prev #\prev
> Is it correct?
>
> Thanks,
> Victor
>
>>
>> Nicolas
Nicolas Pitre Feb. 11, 2014, 8:31 p.m. UTC | #9
On Tue, 11 Feb 2014, Victor Kamensky wrote:

> On 11 February 2014 11:36, Victor Kamensky <victor.kamensky@linaro.org> wrote:
> > On 11 February 2014 09:58, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> >> On Tue, 11 Feb 2014, Dave Martin wrote:
> >>
> >>> On Tue, Feb 11, 2014 at 12:09:35PM -0500, Nicolas Pitre wrote:
> >>> > On Tue, 11 Feb 2014, Dave Martin wrote:
> >>> >
> >>> > > On Mon, Feb 10, 2014 at 04:30:01PM -0500, Nicolas Pitre wrote:
> >>> > > > On Mon, 10 Feb 2014, Victor Kamensky wrote:
> >>> > > >
> >>> > > > > Renames logical shift macros, 'push' and 'pull', defined in
> >>> > > > > arch/arm/include/asm/assembler.h, into 'lspush' and 'lspull'.
> >>> > > >
> >>> > > > I don't have any fundamental objection to the idea, except maybe for the
> >>> > > > actual names.  I just can't come up with anything better though.
> >>> > >
> >>> > > For consistency with the get_byte_ stuff, how about:
> >>> > >
> >>> > >   push -> towards_byte_0
> >>> > >   pull -> from_byte_0
> >>> > >
> >>> > > That may make the purpose a little clearer, too.
> >>> >
> >>> > I don't know if
> >>> >
> >>> >     mov     r0, r1, from_byte_0 #8
> >>> >
> >>> > is that much clearer though.
> >>> >
> >>> > > (Assuming I've got them the right way around...)
> >>> >
> >>> > As you later noticed you got it wrong.  :-)
> >>> > Most likely because "full from" and "push towards" are common english
> >>> > constructs.
> >>>
> >>> No more so than "pull towards" and "push from".
> >>
> >> OK.  I'll trust you on that account.
> >>
> >>> I'll blame it on the fact that the get_byte_ macros have wrong-
> >>> endian numbering, which I didn't look at carefully enough ;)
> >>>
> >>> But I think we proved that my suggestion didn't really make things
> >>> easier to understand...
> >>
> >> What about:
> >>
> >>         push -> next
> >>         pull -> prev
> >>
> >> ?
> >>
> >> That would make:
> >>
> >>         mov     r0, r1, next #8
> >
> > I am not native English speaker, so subtle details of your
> > discussion go above my head :). For me those tokens
> > were just symbols with specific meaning of logical shifts
> > and selected endianness. I'll do as you decide. Quick
> > grep over .S files under arch/arm seems 'next' and 'prev'
> > will be OK and I did build that confirms that.
> 
> Forgot to mention one detail. There is a case in
> ./nwfpe/entry.S file where 'next' is used as label name. I guess,
> it should work if macro would rename it into lsl or lsr label
> name. And/or we could rename the label.
> 
> Wondering ... whether idea to have those macros
> name in way that coincides with English words would lead
> us to some conflict earlier or latter. With this respect lspull
> and lspush IMHO are somewhat better because they are
> sort of abbreviations.

Agreed.  I think it was worth exploring  different alternatives, but 
nothing really better came out.


Nicolas
diff mbox

Patch

diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index 5c22851..380ac4f 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -30,8 +30,8 @@ 
  * Endian independent macros for shifting bytes within registers.
  */
 #ifndef __ARMEB__
-#define pull            lsr
-#define push            lsl
+#define lspull          lsr
+#define lspush          lsl
 #define get_byte_0      lsl #0
 #define get_byte_1	lsr #8
 #define get_byte_2	lsr #16
@@ -41,8 +41,8 @@ 
 #define put_byte_2	lsl #16
 #define put_byte_3	lsl #24
 #else
-#define pull            lsl
-#define push            lsr
+#define lspull          lsl
+#define lspush          lsr
 #define get_byte_0	lsr #24
 #define get_byte_1	lsr #16
 #define get_byte_2	lsr #8
diff --git a/arch/arm/lib/copy_template.S b/arch/arm/lib/copy_template.S
index 805e3f8..3bc8eb8 100644
--- a/arch/arm/lib/copy_template.S
+++ b/arch/arm/lib/copy_template.S
@@ -197,24 +197,24 @@ 
 
 12:	PLD(	pld	[r1, #124]		)
 13:		ldr4w	r1, r4, r5, r6, r7, abort=19f
-		mov	r3, lr, pull #\pull
+		mov	r3, lr, lspull #\pull
 		subs	r2, r2, #32
 		ldr4w	r1, r8, r9, ip, lr, abort=19f
-		orr	r3, r3, r4, push #\push
-		mov	r4, r4, pull #\pull
-		orr	r4, r4, r5, push #\push
-		mov	r5, r5, pull #\pull
-		orr	r5, r5, r6, push #\push
-		mov	r6, r6, pull #\pull
-		orr	r6, r6, r7, push #\push
-		mov	r7, r7, pull #\pull
-		orr	r7, r7, r8, push #\push
-		mov	r8, r8, pull #\pull
-		orr	r8, r8, r9, push #\push
-		mov	r9, r9, pull #\pull
-		orr	r9, r9, ip, push #\push
-		mov	ip, ip, pull #\pull
-		orr	ip, ip, lr, push #\push
+		orr	r3, r3, r4, lspush #\push
+		mov	r4, r4, lspull #\pull
+		orr	r4, r4, r5, lspush #\push
+		mov	r5, r5, lspull #\pull
+		orr	r5, r5, r6, lspush #\push
+		mov	r6, r6, lspull #\pull
+		orr	r6, r6, r7, lspush #\push
+		mov	r7, r7, lspull #\pull
+		orr	r7, r7, r8, lspush #\push
+		mov	r8, r8, lspull #\pull
+		orr	r8, r8, r9, lspush #\push
+		mov	r9, r9, lspull #\pull
+		orr	r9, r9, ip, lspush #\push
+		mov	ip, ip, lspull #\pull
+		orr	ip, ip, lr, lspush #\push
 		str8w	r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
 		bge	12b
 	PLD(	cmn	r2, #96			)
@@ -225,10 +225,10 @@ 
 14:		ands	ip, r2, #28
 		beq	16f
 
-15:		mov	r3, lr, pull #\pull
+15:		mov	r3, lr, lspull #\pull
 		ldr1w	r1, lr, abort=21f
 		subs	ip, ip, #4
-		orr	r3, r3, lr, push #\push
+		orr	r3, r3, lr, lspush #\push
 		str1w	r0, r3, abort=21f
 		bgt	15b
 	CALGN(	cmp	r2, #0			)
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S
index d620a5f..d6e742d 100644
--- a/arch/arm/lib/csumpartialcopygeneric.S
+++ b/arch/arm/lib/csumpartialcopygeneric.S
@@ -141,7 +141,7 @@  FN_ENTRY
 		tst	len, #2
 		mov	r5, r4, get_byte_0
 		beq	.Lexit
-		adcs	sum, sum, r4, push #16
+		adcs	sum, sum, r4, lspush #16
 		strb	r5, [dst], #1
 		mov	r5, r4, get_byte_1
 		strb	r5, [dst], #1
@@ -171,23 +171,23 @@  FN_ENTRY
 		cmp	ip, #2
 		beq	.Lsrc2_aligned
 		bhi	.Lsrc3_aligned
-		mov	r4, r5, pull #8		@ C = 0
+		mov	r4, r5, lspull #8		@ C = 0
 		bics	ip, len, #15
 		beq	2f
 1:		load4l	r5, r6, r7, r8
-		orr	r4, r4, r5, push #24
-		mov	r5, r5, pull #8
-		orr	r5, r5, r6, push #24
-		mov	r6, r6, pull #8
-		orr	r6, r6, r7, push #24
-		mov	r7, r7, pull #8
-		orr	r7, r7, r8, push #24
+		orr	r4, r4, r5, lspush #24
+		mov	r5, r5, lspull #8
+		orr	r5, r5, r6, lspush #24
+		mov	r6, r6, lspull #8
+		orr	r6, r6, r7, lspush #24
+		mov	r7, r7, lspull #8
+		orr	r7, r7, r8, lspush #24
 		stmia	dst!, {r4, r5, r6, r7}
 		adcs	sum, sum, r4
 		adcs	sum, sum, r5
 		adcs	sum, sum, r6
 		adcs	sum, sum, r7
-		mov	r4, r8, pull #8
+		mov	r4, r8, lspull #8
 		sub	ip, ip, #16
 		teq	ip, #0
 		bne	1b
@@ -196,50 +196,50 @@  FN_ENTRY
 		tst	ip, #8
 		beq	3f
 		load2l	r5, r6
-		orr	r4, r4, r5, push #24
-		mov	r5, r5, pull #8
-		orr	r5, r5, r6, push #24
+		orr	r4, r4, r5, lspush #24
+		mov	r5, r5, lspull #8
+		orr	r5, r5, r6, lspush #24
 		stmia	dst!, {r4, r5}
 		adcs	sum, sum, r4
 		adcs	sum, sum, r5
-		mov	r4, r6, pull #8
+		mov	r4, r6, lspull #8
 		tst	ip, #4
 		beq	4f
 3:		load1l	r5
-		orr	r4, r4, r5, push #24
+		orr	r4, r4, r5, lspush #24
 		str	r4, [dst], #4
 		adcs	sum, sum, r4
-		mov	r4, r5, pull #8
+		mov	r4, r5, lspull #8
 4:		ands	len, len, #3
 		beq	.Ldone
 		mov	r5, r4, get_byte_0
 		tst	len, #2
 		beq	.Lexit
-		adcs	sum, sum, r4, push #16
+		adcs	sum, sum, r4, lspush #16
 		strb	r5, [dst], #1
 		mov	r5, r4, get_byte_1
 		strb	r5, [dst], #1
 		mov	r5, r4, get_byte_2
 		b	.Lexit
 
-.Lsrc2_aligned:	mov	r4, r5, pull #16
+.Lsrc2_aligned:	mov	r4, r5, lspull #16
 		adds	sum, sum, #0
 		bics	ip, len, #15
 		beq	2f
 1:		load4l	r5, r6, r7, r8
-		orr	r4, r4, r5, push #16
-		mov	r5, r5, pull #16
-		orr	r5, r5, r6, push #16
-		mov	r6, r6, pull #16
-		orr	r6, r6, r7, push #16
-		mov	r7, r7, pull #16
-		orr	r7, r7, r8, push #16
+		orr	r4, r4, r5, lspush #16
+		mov	r5, r5, lspull #16
+		orr	r5, r5, r6, lspush #16
+		mov	r6, r6, lspull #16
+		orr	r6, r6, r7, lspush #16
+		mov	r7, r7, lspull #16
+		orr	r7, r7, r8, lspush #16
 		stmia	dst!, {r4, r5, r6, r7}
 		adcs	sum, sum, r4
 		adcs	sum, sum, r5
 		adcs	sum, sum, r6
 		adcs	sum, sum, r7
-		mov	r4, r8, pull #16
+		mov	r4, r8, lspull #16
 		sub	ip, ip, #16
 		teq	ip, #0
 		bne	1b
@@ -248,20 +248,20 @@  FN_ENTRY
 		tst	ip, #8
 		beq	3f
 		load2l	r5, r6
-		orr	r4, r4, r5, push #16
-		mov	r5, r5, pull #16
-		orr	r5, r5, r6, push #16
+		orr	r4, r4, r5, lspush #16
+		mov	r5, r5, lspull #16
+		orr	r5, r5, r6, lspush #16
 		stmia	dst!, {r4, r5}
 		adcs	sum, sum, r4
 		adcs	sum, sum, r5
-		mov	r4, r6, pull #16
+		mov	r4, r6, lspull #16
 		tst	ip, #4
 		beq	4f
 3:		load1l	r5
-		orr	r4, r4, r5, push #16
+		orr	r4, r4, r5, lspush #16
 		str	r4, [dst], #4
 		adcs	sum, sum, r4
-		mov	r4, r5, pull #16
+		mov	r4, r5, lspull #16
 4:		ands	len, len, #3
 		beq	.Ldone
 		mov	r5, r4, get_byte_0
@@ -276,24 +276,24 @@  FN_ENTRY
 		load1b	r5
 		b	.Lexit
 
-.Lsrc3_aligned:	mov	r4, r5, pull #24
+.Lsrc3_aligned:	mov	r4, r5, lspull #24
 		adds	sum, sum, #0
 		bics	ip, len, #15
 		beq	2f
 1:		load4l	r5, r6, r7, r8
-		orr	r4, r4, r5, push #8
-		mov	r5, r5, pull #24
-		orr	r5, r5, r6, push #8
-		mov	r6, r6, pull #24
-		orr	r6, r6, r7, push #8
-		mov	r7, r7, pull #24
-		orr	r7, r7, r8, push #8
+		orr	r4, r4, r5, lspush #8
+		mov	r5, r5, lspull #24
+		orr	r5, r5, r6, lspush #8
+		mov	r6, r6, lspull #24
+		orr	r6, r6, r7, lspush #8
+		mov	r7, r7, lspull #24
+		orr	r7, r7, r8, lspush #8
 		stmia	dst!, {r4, r5, r6, r7}
 		adcs	sum, sum, r4
 		adcs	sum, sum, r5
 		adcs	sum, sum, r6
 		adcs	sum, sum, r7
-		mov	r4, r8, pull #24
+		mov	r4, r8, lspull #24
 		sub	ip, ip, #16
 		teq	ip, #0
 		bne	1b
@@ -302,20 +302,20 @@  FN_ENTRY
 		tst	ip, #8
 		beq	3f
 		load2l	r5, r6
-		orr	r4, r4, r5, push #8
-		mov	r5, r5, pull #24
-		orr	r5, r5, r6, push #8
+		orr	r4, r4, r5, lspush #8
+		mov	r5, r5, lspull #24
+		orr	r5, r5, r6, lspush #8
 		stmia	dst!, {r4, r5}
 		adcs	sum, sum, r4
 		adcs	sum, sum, r5
-		mov	r4, r6, pull #24
+		mov	r4, r6, lspull #24
 		tst	ip, #4
 		beq	4f
 3:		load1l	r5
-		orr	r4, r4, r5, push #8
+		orr	r4, r4, r5, lspush #8
 		str	r4, [dst], #4
 		adcs	sum, sum, r4
-		mov	r4, r5, pull #24
+		mov	r4, r5, lspull #24
 4:		ands	len, len, #3
 		beq	.Ldone
 		mov	r5, r4, get_byte_0
@@ -326,7 +326,7 @@  FN_ENTRY
 		load1l	r4
 		mov	r5, r4, get_byte_0
 		strb	r5, [dst], #1
-		adcs	sum, sum, r4, push #24
+		adcs	sum, sum, r4, lspush #24
 		mov	r5, r4, get_byte_1
 		b	.Lexit
 FN_EXIT
diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S
index 5fb97e7..7a74309 100644
--- a/arch/arm/lib/io-readsl.S
+++ b/arch/arm/lib/io-readsl.S
@@ -47,25 +47,25 @@  ENTRY(__raw_readsl)
 		strb	ip, [r1], #1
 
 4:		subs	r2, r2, #1
-		mov	ip, r3, pull #24
+		mov	ip, r3, lspull #24
 		ldrne	r3, [r0]
-		orrne	ip, ip, r3, push #8
+		orrne	ip, ip, r3, lspush #8
 		strne	ip, [r1], #4
 		bne	4b
 		b	8f
 
 5:		subs	r2, r2, #1
-		mov	ip, r3, pull #16
+		mov	ip, r3, lspull #16
 		ldrne	r3, [r0]
-		orrne	ip, ip, r3, push #16
+		orrne	ip, ip, r3, lspush #16
 		strne	ip, [r1], #4
 		bne	5b
 		b	7f
 
 6:		subs	r2, r2, #1
-		mov	ip, r3, pull #8
+		mov	ip, r3, lspull #8
 		ldrne	r3, [r0]
-		orrne	ip, ip, r3, push #24
+		orrne	ip, ip, r3, lspush #24
 		strne	ip, [r1], #4
 		bne	6b
 
diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S
index 8d3b781..d0d104a 100644
--- a/arch/arm/lib/io-writesl.S
+++ b/arch/arm/lib/io-writesl.S
@@ -41,26 +41,26 @@  ENTRY(__raw_writesl)
 		blt	5f
 		bgt	6f
 
-4:		mov	ip, r3, pull #16
+4:		mov	ip, r3, lspull #16
 		ldr	r3, [r1], #4
 		subs	r2, r2, #1
-		orr	ip, ip, r3, push #16
+		orr	ip, ip, r3, lspush #16
 		str	ip, [r0]
 		bne	4b
 		mov	pc, lr
 
-5:		mov	ip, r3, pull #8
+5:		mov	ip, r3, lspull #8
 		ldr	r3, [r1], #4
 		subs	r2, r2, #1
-		orr	ip, ip, r3, push #24
+		orr	ip, ip, r3, lspush #24
 		str	ip, [r0]
 		bne	5b
 		mov	pc, lr
 
-6:		mov	ip, r3, pull #24
+6:		mov	ip, r3, lspull #24
 		ldr	r3, [r1], #4
 		subs	r2, r2, #1
-		orr	ip, ip, r3, push #8
+		orr	ip, ip, r3, lspush #8
 		str	ip, [r0]
 		bne	6b
 		mov	pc, lr
diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S
index 938fc14..d1fc0c0 100644
--- a/arch/arm/lib/memmove.S
+++ b/arch/arm/lib/memmove.S
@@ -147,24 +147,24 @@  ENTRY(memmove)
 
 12:	PLD(	pld	[r1, #-128]		)
 13:		ldmdb   r1!, {r7, r8, r9, ip}
-		mov     lr, r3, push #\push
+		mov     lr, r3, lspush #\push
 		subs    r2, r2, #32
 		ldmdb   r1!, {r3, r4, r5, r6}
-		orr     lr, lr, ip, pull #\pull
-		mov     ip, ip, push #\push
-		orr     ip, ip, r9, pull #\pull
-		mov     r9, r9, push #\push
-		orr     r9, r9, r8, pull #\pull
-		mov     r8, r8, push #\push
-		orr     r8, r8, r7, pull #\pull
-		mov     r7, r7, push #\push
-		orr     r7, r7, r6, pull #\pull
-		mov     r6, r6, push #\push
-		orr     r6, r6, r5, pull #\pull
-		mov     r5, r5, push #\push
-		orr     r5, r5, r4, pull #\pull
-		mov     r4, r4, push #\push
-		orr     r4, r4, r3, pull #\pull
+		orr     lr, lr, ip, lspull #\pull
+		mov     ip, ip, lspush #\push
+		orr     ip, ip, r9, lspull #\pull
+		mov     r9, r9, lspush #\push
+		orr     r9, r9, r8, lspull #\pull
+		mov     r8, r8, lspush #\push
+		orr     r8, r8, r7, lspull #\pull
+		mov     r7, r7, lspush #\push
+		orr     r7, r7, r6, lspull #\pull
+		mov     r6, r6, lspush #\push
+		orr     r6, r6, r5, lspull #\pull
+		mov     r5, r5, lspush #\push
+		orr     r5, r5, r4, lspull #\pull
+		mov     r4, r4, lspush #\push
+		orr     r4, r4, r3, lspull #\pull
 		stmdb   r0!, {r4 - r9, ip, lr}
 		bge	12b
 	PLD(	cmn	r2, #96			)
@@ -175,10 +175,10 @@  ENTRY(memmove)
 14:		ands	ip, r2, #28
 		beq	16f
 
-15:		mov     lr, r3, push #\push
+15:		mov     lr, r3, lspush #\push
 		ldr	r3, [r1, #-4]!
 		subs	ip, ip, #4
-		orr	lr, lr, r3, pull #\pull
+		orr	lr, lr, r3, lspull #\pull
 		str	lr, [r0, #-4]!
 		bgt	15b
 	CALGN(	cmp	r2, #0			)
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
index 5c908b1..e505209 100644
--- a/arch/arm/lib/uaccess.S
+++ b/arch/arm/lib/uaccess.S
@@ -117,9 +117,9 @@  USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
 .Lc2u_1fupi:	subs	r2, r2, #4
 		addmi	ip, r2, #4
 		bmi	.Lc2u_1nowords
-		mov	r3, r7, pull #8
+		mov	r3, r7, lspull #8
 		ldr	r7, [r1], #4
-		orr	r3, r3, r7, push #24
+		orr	r3, r3, r7, lspush #24
 USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
 		mov	ip, r0, lsl #32 - PAGE_SHIFT
 		rsb	ip, ip, #0
@@ -131,30 +131,30 @@  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
 		subs	ip, ip, #16
 		blt	.Lc2u_1rem8lp
 
-.Lc2u_1cpy8lp:	mov	r3, r7, pull #8
+.Lc2u_1cpy8lp:	mov	r3, r7, lspull #8
 		ldmia	r1!, {r4 - r7}
 		subs	ip, ip, #16
-		orr	r3, r3, r4, push #24
-		mov	r4, r4, pull #8
-		orr	r4, r4, r5, push #24
-		mov	r5, r5, pull #8
-		orr	r5, r5, r6, push #24
-		mov	r6, r6, pull #8
-		orr	r6, r6, r7, push #24
+		orr	r3, r3, r4, lspush #24
+		mov	r4, r4, lspull #8
+		orr	r4, r4, r5, lspush #24
+		mov	r5, r5, lspull #8
+		orr	r5, r5, r6, lspush #24
+		mov	r6, r6, lspull #8
+		orr	r6, r6, r7, lspush #24
 		stmia	r0!, {r3 - r6}			@ Shouldnt fault
 		bpl	.Lc2u_1cpy8lp
 
 .Lc2u_1rem8lp:	tst	ip, #8
-		movne	r3, r7, pull #8
+		movne	r3, r7, lspull #8
 		ldmneia	r1!, {r4, r7}
-		orrne	r3, r3, r4, push #24
-		movne	r4, r4, pull #8
-		orrne	r4, r4, r7, push #24
+		orrne	r3, r3, r4, lspush #24
+		movne	r4, r4, lspull #8
+		orrne	r4, r4, r7, lspush #24
 		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
 		tst	ip, #4
-		movne	r3, r7, pull #8
+		movne	r3, r7, lspull #8
 		ldrne	r7, [r1], #4
-		orrne	r3, r3, r7, push #24
+		orrne	r3, r3, r7, lspush #24
 	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
 		ands	ip, ip, #3
 		beq	.Lc2u_1fupi
@@ -172,9 +172,9 @@  USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
 .Lc2u_2fupi:	subs	r2, r2, #4
 		addmi	ip, r2, #4
 		bmi	.Lc2u_2nowords
-		mov	r3, r7, pull #16
+		mov	r3, r7, lspull #16
 		ldr	r7, [r1], #4
-		orr	r3, r3, r7, push #16
+		orr	r3, r3, r7, lspush #16
 USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
 		mov	ip, r0, lsl #32 - PAGE_SHIFT
 		rsb	ip, ip, #0
@@ -186,30 +186,30 @@  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
 		subs	ip, ip, #16
 		blt	.Lc2u_2rem8lp
 
-.Lc2u_2cpy8lp:	mov	r3, r7, pull #16
+.Lc2u_2cpy8lp:	mov	r3, r7, lspull #16
 		ldmia	r1!, {r4 - r7}
 		subs	ip, ip, #16
-		orr	r3, r3, r4, push #16
-		mov	r4, r4, pull #16
-		orr	r4, r4, r5, push #16
-		mov	r5, r5, pull #16
-		orr	r5, r5, r6, push #16
-		mov	r6, r6, pull #16
-		orr	r6, r6, r7, push #16
+		orr	r3, r3, r4, lspush #16
+		mov	r4, r4, lspull #16
+		orr	r4, r4, r5, lspush #16
+		mov	r5, r5, lspull #16
+		orr	r5, r5, r6, lspush #16
+		mov	r6, r6, lspull #16
+		orr	r6, r6, r7, lspush #16
 		stmia	r0!, {r3 - r6}			@ Shouldnt fault
 		bpl	.Lc2u_2cpy8lp
 
 .Lc2u_2rem8lp:	tst	ip, #8
-		movne	r3, r7, pull #16
+		movne	r3, r7, lspull #16
 		ldmneia	r1!, {r4, r7}
-		orrne	r3, r3, r4, push #16
-		movne	r4, r4, pull #16
-		orrne	r4, r4, r7, push #16
+		orrne	r3, r3, r4, lspush #16
+		movne	r4, r4, lspull #16
+		orrne	r4, r4, r7, lspush #16
 		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
 		tst	ip, #4
-		movne	r3, r7, pull #16
+		movne	r3, r7, lspull #16
 		ldrne	r7, [r1], #4
-		orrne	r3, r3, r7, push #16
+		orrne	r3, r3, r7, lspush #16
 	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
 		ands	ip, ip, #3
 		beq	.Lc2u_2fupi
@@ -227,9 +227,9 @@  USER(	TUSER(	strgtb) r3, [r0], #1)			@ May fault
 .Lc2u_3fupi:	subs	r2, r2, #4
 		addmi	ip, r2, #4
 		bmi	.Lc2u_3nowords
-		mov	r3, r7, pull #24
+		mov	r3, r7, lspull #24
 		ldr	r7, [r1], #4
-		orr	r3, r3, r7, push #8
+		orr	r3, r3, r7, lspush #8
 USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
 		mov	ip, r0, lsl #32 - PAGE_SHIFT
 		rsb	ip, ip, #0
@@ -241,30 +241,30 @@  USER(	TUSER(	str)	r3, [r0], #4)			@ May fault
 		subs	ip, ip, #16
 		blt	.Lc2u_3rem8lp
 
-.Lc2u_3cpy8lp:	mov	r3, r7, pull #24
+.Lc2u_3cpy8lp:	mov	r3, r7, lspull #24
 		ldmia	r1!, {r4 - r7}
 		subs	ip, ip, #16
-		orr	r3, r3, r4, push #8
-		mov	r4, r4, pull #24
-		orr	r4, r4, r5, push #8
-		mov	r5, r5, pull #24
-		orr	r5, r5, r6, push #8
-		mov	r6, r6, pull #24
-		orr	r6, r6, r7, push #8
+		orr	r3, r3, r4, lspush #8
+		mov	r4, r4, lspull #24
+		orr	r4, r4, r5, lspush #8
+		mov	r5, r5, lspull #24
+		orr	r5, r5, r6, lspush #8
+		mov	r6, r6, lspull #24
+		orr	r6, r6, r7, lspush #8
 		stmia	r0!, {r3 - r6}			@ Shouldnt fault
 		bpl	.Lc2u_3cpy8lp
 
 .Lc2u_3rem8lp:	tst	ip, #8
-		movne	r3, r7, pull #24
+		movne	r3, r7, lspull #24
 		ldmneia	r1!, {r4, r7}
-		orrne	r3, r3, r4, push #8
-		movne	r4, r4, pull #24
-		orrne	r4, r4, r7, push #8
+		orrne	r3, r3, r4, lspush #8
+		movne	r4, r4, lspull #24
+		orrne	r4, r4, r7, lspush #8
 		stmneia	r0!, {r3 - r4}			@ Shouldnt fault
 		tst	ip, #4
-		movne	r3, r7, pull #24
+		movne	r3, r7, lspull #24
 		ldrne	r7, [r1], #4
-		orrne	r3, r3, r7, push #8
+		orrne	r3, r3, r7, lspush #8
 	TUSER(	strne) r3, [r0], #4			@ Shouldnt fault
 		ands	ip, ip, #3
 		beq	.Lc2u_3fupi
@@ -382,9 +382,9 @@  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
 .Lcfu_1fupi:	subs	r2, r2, #4
 		addmi	ip, r2, #4
 		bmi	.Lcfu_1nowords
-		mov	r3, r7, pull #8
+		mov	r3, r7, lspull #8
 USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
-		orr	r3, r3, r7, push #24
+		orr	r3, r3, r7, lspush #24
 		str	r3, [r0], #4
 		mov	ip, r1, lsl #32 - PAGE_SHIFT
 		rsb	ip, ip, #0
@@ -396,30 +396,30 @@  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
 		subs	ip, ip, #16
 		blt	.Lcfu_1rem8lp
 
-.Lcfu_1cpy8lp:	mov	r3, r7, pull #8
+.Lcfu_1cpy8lp:	mov	r3, r7, lspull #8
 		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
 		subs	ip, ip, #16
-		orr	r3, r3, r4, push #24
-		mov	r4, r4, pull #8
-		orr	r4, r4, r5, push #24
-		mov	r5, r5, pull #8
-		orr	r5, r5, r6, push #24
-		mov	r6, r6, pull #8
-		orr	r6, r6, r7, push #24
+		orr	r3, r3, r4, lspush #24
+		mov	r4, r4, lspull #8
+		orr	r4, r4, r5, lspush #24
+		mov	r5, r5, lspull #8
+		orr	r5, r5, r6, lspush #24
+		mov	r6, r6, lspull #8
+		orr	r6, r6, r7, lspush #24
 		stmia	r0!, {r3 - r6}
 		bpl	.Lcfu_1cpy8lp
 
 .Lcfu_1rem8lp:	tst	ip, #8
-		movne	r3, r7, pull #8
+		movne	r3, r7, lspull #8
 		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
-		orrne	r3, r3, r4, push #24
-		movne	r4, r4, pull #8
-		orrne	r4, r4, r7, push #24
+		orrne	r3, r3, r4, lspush #24
+		movne	r4, r4, lspull #8
+		orrne	r4, r4, r7, lspush #24
 		stmneia	r0!, {r3 - r4}
 		tst	ip, #4
-		movne	r3, r7, pull #8
+		movne	r3, r7, lspull #8
 USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
-		orrne	r3, r3, r7, push #24
+		orrne	r3, r3, r7, lspush #24
 		strne	r3, [r0], #4
 		ands	ip, ip, #3
 		beq	.Lcfu_1fupi
@@ -437,9 +437,9 @@  USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
 .Lcfu_2fupi:	subs	r2, r2, #4
 		addmi	ip, r2, #4
 		bmi	.Lcfu_2nowords
-		mov	r3, r7, pull #16
+		mov	r3, r7, lspull #16
 USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
-		orr	r3, r3, r7, push #16
+		orr	r3, r3, r7, lspush #16
 		str	r3, [r0], #4
 		mov	ip, r1, lsl #32 - PAGE_SHIFT
 		rsb	ip, ip, #0
@@ -452,30 +452,30 @@  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
 		blt	.Lcfu_2rem8lp
 
 
-.Lcfu_2cpy8lp:	mov	r3, r7, pull #16
+.Lcfu_2cpy8lp:	mov	r3, r7, lspull #16
 		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
 		subs	ip, ip, #16
-		orr	r3, r3, r4, push #16
-		mov	r4, r4, pull #16
-		orr	r4, r4, r5, push #16
-		mov	r5, r5, pull #16
-		orr	r5, r5, r6, push #16
-		mov	r6, r6, pull #16
-		orr	r6, r6, r7, push #16
+		orr	r3, r3, r4, lspush #16
+		mov	r4, r4, lspull #16
+		orr	r4, r4, r5, lspush #16
+		mov	r5, r5, lspull #16
+		orr	r5, r5, r6, lspush #16
+		mov	r6, r6, lspull #16
+		orr	r6, r6, r7, lspush #16
 		stmia	r0!, {r3 - r6}
 		bpl	.Lcfu_2cpy8lp
 
 .Lcfu_2rem8lp:	tst	ip, #8
-		movne	r3, r7, pull #16
+		movne	r3, r7, lspull #16
 		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
-		orrne	r3, r3, r4, push #16
-		movne	r4, r4, pull #16
-		orrne	r4, r4, r7, push #16
+		orrne	r3, r3, r4, lspush #16
+		movne	r4, r4, lspull #16
+		orrne	r4, r4, r7, lspush #16
 		stmneia	r0!, {r3 - r4}
 		tst	ip, #4
-		movne	r3, r7, pull #16
+		movne	r3, r7, lspull #16
 USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
-		orrne	r3, r3, r7, push #16
+		orrne	r3, r3, r7, lspush #16
 		strne	r3, [r0], #4
 		ands	ip, ip, #3
 		beq	.Lcfu_2fupi
@@ -493,9 +493,9 @@  USER(	TUSER(	ldrgtb) r3, [r1], #0)			@ May fault
 .Lcfu_3fupi:	subs	r2, r2, #4
 		addmi	ip, r2, #4
 		bmi	.Lcfu_3nowords
-		mov	r3, r7, pull #24
+		mov	r3, r7, lspull #24
 USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
-		orr	r3, r3, r7, push #8
+		orr	r3, r3, r7, lspush #8
 		str	r3, [r0], #4
 		mov	ip, r1, lsl #32 - PAGE_SHIFT
 		rsb	ip, ip, #0
@@ -507,30 +507,30 @@  USER(	TUSER(	ldr)	r7, [r1], #4)			@ May fault
 		subs	ip, ip, #16
 		blt	.Lcfu_3rem8lp
 
-.Lcfu_3cpy8lp:	mov	r3, r7, pull #24
+.Lcfu_3cpy8lp:	mov	r3, r7, lspull #24
 		ldmia	r1!, {r4 - r7}			@ Shouldnt fault
-		orr	r3, r3, r4, push #8
-		mov	r4, r4, pull #24
-		orr	r4, r4, r5, push #8
-		mov	r5, r5, pull #24
-		orr	r5, r5, r6, push #8
-		mov	r6, r6, pull #24
-		orr	r6, r6, r7, push #8
+		orr	r3, r3, r4, lspush #8
+		mov	r4, r4, lspull #24
+		orr	r4, r4, r5, lspush #8
+		mov	r5, r5, lspull #24
+		orr	r5, r5, r6, lspush #8
+		mov	r6, r6, lspull #24
+		orr	r6, r6, r7, lspush #8
 		stmia	r0!, {r3 - r6}
 		subs	ip, ip, #16
 		bpl	.Lcfu_3cpy8lp
 
 .Lcfu_3rem8lp:	tst	ip, #8
-		movne	r3, r7, pull #24
+		movne	r3, r7, lspull #24
 		ldmneia	r1!, {r4, r7}			@ Shouldnt fault
-		orrne	r3, r3, r4, push #8
-		movne	r4, r4, pull #24
-		orrne	r4, r4, r7, push #8
+		orrne	r3, r3, r4, lspush #8
+		movne	r4, r4, lspull #24
+		orrne	r4, r4, r7, lspush #8
 		stmneia	r0!, {r3 - r4}
 		tst	ip, #4
-		movne	r3, r7, pull #24
+		movne	r3, r7, lspull #24
 USER(	TUSER(	ldrne) r7, [r1], #4)			@ May fault
-		orrne	r3, r3, r7, push #8
+		orrne	r3, r3, r7, lspush #8
 		strne	r3, [r0], #4
 		ands	ip, ip, #3
 		beq	.Lcfu_3fupi