diff options
author | Helge Deller <deller@gmx.de> | 2017-03-27 18:22:37 +0200 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2017-05-10 17:46:12 +0200 |
commit | 741394ca54ac6701841a46a84cfa9a0a4ddd6969 (patch) | |
tree | b3daee6ad8c53c85396a98e746f65791a2cc84fb /arch/parisc/lib | |
parent | 56868a460b83c0f93d339256a81064d89aadae8e (diff) | |
download | op-kernel-dev-741394ca54ac6701841a46a84cfa9a0a4ddd6969.zip op-kernel-dev-741394ca54ac6701841a46a84cfa9a0a4ddd6969.tar.gz |
parisc: Inline trivial exception code in lusercopy.S
Fold trivial exception handling for lclear_user() and lstrnlen_user()
into the main functions.
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/lib')
-rw-r--r-- | arch/parisc/lib/lusercopy.S | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/arch/parisc/lib/lusercopy.S b/arch/parisc/lib/lusercopy.S index 85c28bb..d4fe198 100644 --- a/arch/parisc/lib/lusercopy.S +++ b/arch/parisc/lib/lusercopy.S @@ -56,12 +56,6 @@ mtsp %r1,%sr1 .endm - .macro fixup_branch lbl - ldil L%\lbl, %r1 - ldo R%\lbl(%r1), %r1 - bv %r0(%r1) - .endm - /* * unsigned long lclear_user(void *to, unsigned long n) * @@ -82,16 +76,16 @@ $lclu_loop: $lclu_done: bv %r0(%r2) copy %r25,%r28 - .exit -ENDPROC_CFI(lclear_user) - .section .fixup,"ax" -2: fixup_branch $lclu_done - ldo 1(%r25),%r25 - .previous +2: b $lclu_done + ldo 1(%r25),%r25 ASM_EXCEPTIONTABLE_ENTRY(1b,2b) + .exit +ENDPROC_CFI(lclear_user) + + .procend /* @@ -122,16 +116,15 @@ $lslen_done: $lslen_nzero: b $lslen_done ldo 1(%r26),%r26 /* special case for N == 0 */ -ENDPROC_CFI(lstrnlen_user) - .section .fixup,"ax" -3: fixup_branch $lslen_done +3: b $lslen_done copy %r24,%r26 /* reset r26 so 0 is returned on fault */ - .previous ASM_EXCEPTIONTABLE_ENTRY(1b,3b) ASM_EXCEPTIONTABLE_ENTRY(2b,3b) +ENDPROC_CFI(lstrnlen_user) + .procend |