Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 741394ca authored by Helge Deller's avatar Helge Deller
Browse files

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: default avatarHelge Deller <deller@gmx.de>
parent 56868a46
Loading
Loading
Loading
Loading
+9 −16
Original line number Diff line number Diff line
@@ -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
2:	b           $lclu_done
	ldo         1(%r25),%r25
	.previous

	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