Skip to content

Commit

Permalink
parisc: Inline trivial exception code in lusercopy.S
Browse files Browse the repository at this point in the history
Fold trivial exception handling for lclear_user() and lstrnlen_user()
into the main functions.

Signed-off-by: Helge Deller <deller@gmx.de>
  • Loading branch information
Helge Deller committed May 10, 2017
1 parent 56868a4 commit 741394c
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions arch/parisc/lib/lusercopy.S
Original file line number Diff line number Diff line change
Expand Up @@ -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)
*
Expand All @@ -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

/*
Expand Down Expand Up @@ -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


Expand Down

0 comments on commit 741394c

Please sign in to comment.