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:
parent
56868a460b
commit
741394ca54
@ -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
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user