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>
This commit is contained in:
Helge Deller 2017-03-27 18:22:37 +02:00
parent 56868a460b
commit 741394ca54

View File

@ -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,15 +76,15 @@ $lclu_loop:
$lclu_done:
bv %r0(%r2)
copy %r25,%r28
2: b $lclu_done
ldo 1(%r25),%r25
ASM_EXCEPTIONTABLE_ENTRY(1b,2b)
.exit
ENDPROC_CFI(lclear_user)
.section .fixup,"ax"
2: fixup_branch $lclu_done
ldo 1(%r25),%r25
.previous
ASM_EXCEPTIONTABLE_ENTRY(1b,2b)
.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