Commit 7ba11a9c authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Russell King

[ARM] 3150/1: make various assembly local labels actually local (uaccess.S)

Patch from Nicolas Pitre

For assembly labels to actually be local they must start with ".L" and
not only "." otherwise they still remain visible in the final link and
clutter kallsyms needlessly, and possibly make for unclear symbolic
backtrace. This patch simply inserts a"L" where appropriate. The code
itself is unchanged.
Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 388f7ef7
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
* Returns : Number of bytes NOT copied. * Returns : Number of bytes NOT copied.
*/ */
.c2u_dest_not_aligned: .Lc2u_dest_not_aligned:
rsb ip, ip, #4 rsb ip, ip, #4
cmp ip, #2 cmp ip, #2
ldrb r3, [r1], #1 ldrb r3, [r1], #1
...@@ -37,32 +37,32 @@ USER( strgebt r3, [r0], #1) @ May fault ...@@ -37,32 +37,32 @@ USER( strgebt r3, [r0], #1) @ May fault
ldrgtb r3, [r1], #1 ldrgtb r3, [r1], #1
USER( strgtbt r3, [r0], #1) @ May fault USER( strgtbt r3, [r0], #1) @ May fault
sub r2, r2, ip sub r2, r2, ip
b .c2u_dest_aligned b .Lc2u_dest_aligned
ENTRY(__arch_copy_to_user) ENTRY(__arch_copy_to_user)
stmfd sp!, {r2, r4 - r7, lr} stmfd sp!, {r2, r4 - r7, lr}
cmp r2, #4 cmp r2, #4
blt .c2u_not_enough blt .Lc2u_not_enough
ands ip, r0, #3 ands ip, r0, #3
bne .c2u_dest_not_aligned bne .Lc2u_dest_not_aligned
.c2u_dest_aligned: .Lc2u_dest_aligned:
ands ip, r1, #3 ands ip, r1, #3
bne .c2u_src_not_aligned bne .Lc2u_src_not_aligned
/* /*
* Seeing as there has to be at least 8 bytes to copy, we can * Seeing as there has to be at least 8 bytes to copy, we can
* copy one word, and force a user-mode page fault... * copy one word, and force a user-mode page fault...
*/ */
.c2u_0fupi: subs r2, r2, #4 .Lc2u_0fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .c2u_0nowords bmi .Lc2u_0nowords
ldr r3, [r1], #4 ldr r3, [r1], #4
USER( strt r3, [r0], #4) @ May fault USER( strt r3, [r0], #4) @ May fault
mov ip, r0, lsl #32 - PAGE_SHIFT @ On each page, use a ld/st??t instruction mov ip, r0, lsl #32 - PAGE_SHIFT @ On each page, use a ld/st??t instruction
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .c2u_0fupi beq .Lc2u_0fupi
/* /*
* ip = max no. of bytes to copy before needing another "strt" insn * ip = max no. of bytes to copy before needing another "strt" insn
*/ */
...@@ -70,16 +70,16 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -70,16 +70,16 @@ USER( strt r3, [r0], #4) @ May fault
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #32 subs ip, ip, #32
blt .c2u_0rem8lp blt .Lc2u_0rem8lp
.c2u_0cpy8lp: ldmia r1!, {r3 - r6} .Lc2u_0cpy8lp: ldmia r1!, {r3 - r6}
stmia r0!, {r3 - r6} @ Shouldnt fault stmia r0!, {r3 - r6} @ Shouldnt fault
ldmia r1!, {r3 - r6} ldmia r1!, {r3 - r6}
subs ip, ip, #32 subs ip, ip, #32
stmia r0!, {r3 - r6} @ Shouldnt fault stmia r0!, {r3 - r6} @ Shouldnt fault
bpl .c2u_0cpy8lp bpl .Lc2u_0cpy8lp
.c2u_0rem8lp: cmn ip, #16 .Lc2u_0rem8lp: cmn ip, #16
ldmgeia r1!, {r3 - r6} ldmgeia r1!, {r3 - r6}
stmgeia r0!, {r3 - r6} @ Shouldnt fault stmgeia r0!, {r3 - r6} @ Shouldnt fault
tst ip, #8 tst ip, #8
...@@ -89,33 +89,33 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -89,33 +89,33 @@ USER( strt r3, [r0], #4) @ May fault
ldrne r3, [r1], #4 ldrne r3, [r1], #4
strnet r3, [r0], #4 @ Shouldnt fault strnet r3, [r0], #4 @ Shouldnt fault
ands ip, ip, #3 ands ip, ip, #3
beq .c2u_0fupi beq .Lc2u_0fupi
.c2u_0nowords: teq ip, #0 .Lc2u_0nowords: teq ip, #0
beq .c2u_finished beq .Lc2u_finished
.c2u_nowords: cmp ip, #2 .Lc2u_nowords: cmp ip, #2
ldrb r3, [r1], #1 ldrb r3, [r1], #1
USER( strbt r3, [r0], #1) @ May fault USER( strbt r3, [r0], #1) @ May fault
ldrgeb r3, [r1], #1 ldrgeb r3, [r1], #1
USER( strgebt r3, [r0], #1) @ May fault USER( strgebt r3, [r0], #1) @ May fault
ldrgtb r3, [r1], #1 ldrgtb r3, [r1], #1
USER( strgtbt r3, [r0], #1) @ May fault USER( strgtbt r3, [r0], #1) @ May fault
b .c2u_finished b .Lc2u_finished
.c2u_not_enough: .Lc2u_not_enough:
movs ip, r2 movs ip, r2
bne .c2u_nowords bne .Lc2u_nowords
.c2u_finished: mov r0, #0 .Lc2u_finished: mov r0, #0
LOADREGS(fd,sp!,{r2, r4 - r7, pc}) LOADREGS(fd,sp!,{r2, r4 - r7, pc})
.c2u_src_not_aligned: .Lc2u_src_not_aligned:
bic r1, r1, #3 bic r1, r1, #3
ldr r7, [r1], #4 ldr r7, [r1], #4
cmp ip, #2 cmp ip, #2
bgt .c2u_3fupi bgt .Lc2u_3fupi
beq .c2u_2fupi beq .Lc2u_2fupi
.c2u_1fupi: subs r2, r2, #4 .Lc2u_1fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .c2u_1nowords bmi .Lc2u_1nowords
mov r3, r7, pull #8 mov r3, r7, pull #8
ldr r7, [r1], #4 ldr r7, [r1], #4
orr r3, r3, r7, push #24 orr r3, r3, r7, push #24
...@@ -123,14 +123,14 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -123,14 +123,14 @@ USER( strt r3, [r0], #4) @ May fault
mov ip, r0, lsl #32 - PAGE_SHIFT mov ip, r0, lsl #32 - PAGE_SHIFT
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .c2u_1fupi beq .Lc2u_1fupi
cmp r2, ip cmp r2, ip
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #16 subs ip, ip, #16
blt .c2u_1rem8lp blt .Lc2u_1rem8lp
.c2u_1cpy8lp: mov r3, r7, pull #8 .Lc2u_1cpy8lp: mov r3, r7, pull #8
ldmia r1!, {r4 - r7} ldmia r1!, {r4 - r7}
subs ip, ip, #16 subs ip, ip, #16
orr r3, r3, r4, push #24 orr r3, r3, r4, push #24
...@@ -141,9 +141,9 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -141,9 +141,9 @@ USER( strt r3, [r0], #4) @ May fault
mov r6, r6, pull #8 mov r6, r6, pull #8
orr r6, r6, r7, push #24 orr r6, r6, r7, push #24
stmia r0!, {r3 - r6} @ Shouldnt fault stmia r0!, {r3 - r6} @ Shouldnt fault
bpl .c2u_1cpy8lp bpl .Lc2u_1cpy8lp
.c2u_1rem8lp: tst ip, #8 .Lc2u_1rem8lp: tst ip, #8
movne r3, r7, pull #8 movne r3, r7, pull #8
ldmneia r1!, {r4, r7} ldmneia r1!, {r4, r7}
orrne r3, r3, r4, push #24 orrne r3, r3, r4, push #24
...@@ -156,21 +156,21 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -156,21 +156,21 @@ USER( strt r3, [r0], #4) @ May fault
orrne r3, r3, r7, push #24 orrne r3, r3, r7, push #24
strnet r3, [r0], #4 @ Shouldnt fault strnet r3, [r0], #4 @ Shouldnt fault
ands ip, ip, #3 ands ip, ip, #3
beq .c2u_1fupi beq .Lc2u_1fupi
.c2u_1nowords: mov r3, r7, get_byte_1 .Lc2u_1nowords: mov r3, r7, get_byte_1
teq ip, #0 teq ip, #0
beq .c2u_finished beq .Lc2u_finished
cmp ip, #2 cmp ip, #2
USER( strbt r3, [r0], #1) @ May fault USER( strbt r3, [r0], #1) @ May fault
movge r3, r7, get_byte_2 movge r3, r7, get_byte_2
USER( strgebt r3, [r0], #1) @ May fault USER( strgebt r3, [r0], #1) @ May fault
movgt r3, r7, get_byte_3 movgt r3, r7, get_byte_3
USER( strgtbt r3, [r0], #1) @ May fault USER( strgtbt r3, [r0], #1) @ May fault
b .c2u_finished b .Lc2u_finished
.c2u_2fupi: subs r2, r2, #4 .Lc2u_2fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .c2u_2nowords bmi .Lc2u_2nowords
mov r3, r7, pull #16 mov r3, r7, pull #16
ldr r7, [r1], #4 ldr r7, [r1], #4
orr r3, r3, r7, push #16 orr r3, r3, r7, push #16
...@@ -178,14 +178,14 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -178,14 +178,14 @@ USER( strt r3, [r0], #4) @ May fault
mov ip, r0, lsl #32 - PAGE_SHIFT mov ip, r0, lsl #32 - PAGE_SHIFT
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .c2u_2fupi beq .Lc2u_2fupi
cmp r2, ip cmp r2, ip
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #16 subs ip, ip, #16
blt .c2u_2rem8lp blt .Lc2u_2rem8lp
.c2u_2cpy8lp: mov r3, r7, pull #16 .Lc2u_2cpy8lp: mov r3, r7, pull #16
ldmia r1!, {r4 - r7} ldmia r1!, {r4 - r7}
subs ip, ip, #16 subs ip, ip, #16
orr r3, r3, r4, push #16 orr r3, r3, r4, push #16
...@@ -196,9 +196,9 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -196,9 +196,9 @@ USER( strt r3, [r0], #4) @ May fault
mov r6, r6, pull #16 mov r6, r6, pull #16
orr r6, r6, r7, push #16 orr r6, r6, r7, push #16
stmia r0!, {r3 - r6} @ Shouldnt fault stmia r0!, {r3 - r6} @ Shouldnt fault
bpl .c2u_2cpy8lp bpl .Lc2u_2cpy8lp
.c2u_2rem8lp: tst ip, #8 .Lc2u_2rem8lp: tst ip, #8
movne r3, r7, pull #16 movne r3, r7, pull #16
ldmneia r1!, {r4, r7} ldmneia r1!, {r4, r7}
orrne r3, r3, r4, push #16 orrne r3, r3, r4, push #16
...@@ -211,21 +211,21 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -211,21 +211,21 @@ USER( strt r3, [r0], #4) @ May fault
orrne r3, r3, r7, push #16 orrne r3, r3, r7, push #16
strnet r3, [r0], #4 @ Shouldnt fault strnet r3, [r0], #4 @ Shouldnt fault
ands ip, ip, #3 ands ip, ip, #3
beq .c2u_2fupi beq .Lc2u_2fupi
.c2u_2nowords: mov r3, r7, get_byte_2 .Lc2u_2nowords: mov r3, r7, get_byte_2
teq ip, #0 teq ip, #0
beq .c2u_finished beq .Lc2u_finished
cmp ip, #2 cmp ip, #2
USER( strbt r3, [r0], #1) @ May fault USER( strbt r3, [r0], #1) @ May fault
movge r3, r7, get_byte_3 movge r3, r7, get_byte_3
USER( strgebt r3, [r0], #1) @ May fault USER( strgebt r3, [r0], #1) @ May fault
ldrgtb r3, [r1], #0 ldrgtb r3, [r1], #0
USER( strgtbt r3, [r0], #1) @ May fault USER( strgtbt r3, [r0], #1) @ May fault
b .c2u_finished b .Lc2u_finished
.c2u_3fupi: subs r2, r2, #4 .Lc2u_3fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .c2u_3nowords bmi .Lc2u_3nowords
mov r3, r7, pull #24 mov r3, r7, pull #24
ldr r7, [r1], #4 ldr r7, [r1], #4
orr r3, r3, r7, push #8 orr r3, r3, r7, push #8
...@@ -233,14 +233,14 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -233,14 +233,14 @@ USER( strt r3, [r0], #4) @ May fault
mov ip, r0, lsl #32 - PAGE_SHIFT mov ip, r0, lsl #32 - PAGE_SHIFT
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .c2u_3fupi beq .Lc2u_3fupi
cmp r2, ip cmp r2, ip
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #16 subs ip, ip, #16
blt .c2u_3rem8lp blt .Lc2u_3rem8lp
.c2u_3cpy8lp: mov r3, r7, pull #24 .Lc2u_3cpy8lp: mov r3, r7, pull #24
ldmia r1!, {r4 - r7} ldmia r1!, {r4 - r7}
subs ip, ip, #16 subs ip, ip, #16
orr r3, r3, r4, push #8 orr r3, r3, r4, push #8
...@@ -251,9 +251,9 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -251,9 +251,9 @@ USER( strt r3, [r0], #4) @ May fault
mov r6, r6, pull #24 mov r6, r6, pull #24
orr r6, r6, r7, push #8 orr r6, r6, r7, push #8
stmia r0!, {r3 - r6} @ Shouldnt fault stmia r0!, {r3 - r6} @ Shouldnt fault
bpl .c2u_3cpy8lp bpl .Lc2u_3cpy8lp
.c2u_3rem8lp: tst ip, #8 .Lc2u_3rem8lp: tst ip, #8
movne r3, r7, pull #24 movne r3, r7, pull #24
ldmneia r1!, {r4, r7} ldmneia r1!, {r4, r7}
orrne r3, r3, r4, push #8 orrne r3, r3, r4, push #8
...@@ -266,17 +266,17 @@ USER( strt r3, [r0], #4) @ May fault ...@@ -266,17 +266,17 @@ USER( strt r3, [r0], #4) @ May fault
orrne r3, r3, r7, push #8 orrne r3, r3, r7, push #8
strnet r3, [r0], #4 @ Shouldnt fault strnet r3, [r0], #4 @ Shouldnt fault
ands ip, ip, #3 ands ip, ip, #3
beq .c2u_3fupi beq .Lc2u_3fupi
.c2u_3nowords: mov r3, r7, get_byte_3 .Lc2u_3nowords: mov r3, r7, get_byte_3
teq ip, #0 teq ip, #0
beq .c2u_finished beq .Lc2u_finished
cmp ip, #2 cmp ip, #2
USER( strbt r3, [r0], #1) @ May fault USER( strbt r3, [r0], #1) @ May fault
ldrgeb r3, [r1], #1 ldrgeb r3, [r1], #1
USER( strgebt r3, [r0], #1) @ May fault USER( strgebt r3, [r0], #1) @ May fault
ldrgtb r3, [r1], #0 ldrgtb r3, [r1], #0
USER( strgtbt r3, [r0], #1) @ May fault USER( strgtbt r3, [r0], #1) @ May fault
b .c2u_finished b .Lc2u_finished
.section .fixup,"ax" .section .fixup,"ax"
.align 0 .align 0
...@@ -290,7 +290,7 @@ USER( strgtbt r3, [r0], #1) @ May fault ...@@ -290,7 +290,7 @@ USER( strgtbt r3, [r0], #1) @ May fault
* : n - number of bytes to copy * : n - number of bytes to copy
* Returns : Number of bytes NOT copied. * Returns : Number of bytes NOT copied.
*/ */
.cfu_dest_not_aligned: .Lcfu_dest_not_aligned:
rsb ip, ip, #4 rsb ip, ip, #4
cmp ip, #2 cmp ip, #2
USER( ldrbt r3, [r1], #1) @ May fault USER( ldrbt r3, [r1], #1) @ May fault
...@@ -300,31 +300,32 @@ USER( ldrgebt r3, [r1], #1) @ May fault ...@@ -300,31 +300,32 @@ USER( ldrgebt r3, [r1], #1) @ May fault
USER( ldrgtbt r3, [r1], #1) @ May fault USER( ldrgtbt r3, [r1], #1) @ May fault
strgtb r3, [r0], #1 strgtb r3, [r0], #1
sub r2, r2, ip sub r2, r2, ip
b .cfu_dest_aligned b .Lcfu_dest_aligned
ENTRY(__arch_copy_from_user) ENTRY(__arch_copy_from_user)
stmfd sp!, {r0, r2, r4 - r7, lr} stmfd sp!, {r0, r2, r4 - r7, lr}
cmp r2, #4 cmp r2, #4
blt .cfu_not_enough blt .Lcfu_not_enough
ands ip, r0, #3 ands ip, r0, #3
bne .cfu_dest_not_aligned bne .Lcfu_dest_not_aligned
.cfu_dest_aligned: .Lcfu_dest_aligned:
ands ip, r1, #3 ands ip, r1, #3
bne .cfu_src_not_aligned bne .Lcfu_src_not_aligned
/* /*
* Seeing as there has to be at least 8 bytes to copy, we can * Seeing as there has to be at least 8 bytes to copy, we can
* copy one word, and force a user-mode page fault... * copy one word, and force a user-mode page fault...
*/ */
.cfu_0fupi: subs r2, r2, #4 .Lcfu_0fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .cfu_0nowords bmi .Lcfu_0nowords
USER( ldrt r3, [r1], #4) USER( ldrt r3, [r1], #4)
str r3, [r0], #4 str r3, [r0], #4
mov ip, r1, lsl #32 - PAGE_SHIFT @ On each page, use a ld/st??t instruction mov ip, r1, lsl #32 - PAGE_SHIFT @ On each page, use a ld/st??t instruction
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .cfu_0fupi beq .Lcfu_0fupi
/* /*
* ip = max no. of bytes to copy before needing another "strt" insn * ip = max no. of bytes to copy before needing another "strt" insn
*/ */
...@@ -332,16 +333,16 @@ USER( ldrt r3, [r1], #4) ...@@ -332,16 +333,16 @@ USER( ldrt r3, [r1], #4)
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #32 subs ip, ip, #32
blt .cfu_0rem8lp blt .Lcfu_0rem8lp
.cfu_0cpy8lp: ldmia r1!, {r3 - r6} @ Shouldnt fault .Lcfu_0cpy8lp: ldmia r1!, {r3 - r6} @ Shouldnt fault
stmia r0!, {r3 - r6} stmia r0!, {r3 - r6}
ldmia r1!, {r3 - r6} @ Shouldnt fault ldmia r1!, {r3 - r6} @ Shouldnt fault
subs ip, ip, #32 subs ip, ip, #32
stmia r0!, {r3 - r6} stmia r0!, {r3 - r6}
bpl .cfu_0cpy8lp bpl .Lcfu_0cpy8lp
.cfu_0rem8lp: cmn ip, #16 .Lcfu_0rem8lp: cmn ip, #16
ldmgeia r1!, {r3 - r6} @ Shouldnt fault ldmgeia r1!, {r3 - r6} @ Shouldnt fault
stmgeia r0!, {r3 - r6} stmgeia r0!, {r3 - r6}
tst ip, #8 tst ip, #8
...@@ -351,34 +352,34 @@ USER( ldrt r3, [r1], #4) ...@@ -351,34 +352,34 @@ USER( ldrt r3, [r1], #4)
ldrnet r3, [r1], #4 @ Shouldnt fault ldrnet r3, [r1], #4 @ Shouldnt fault
strne r3, [r0], #4 strne r3, [r0], #4
ands ip, ip, #3 ands ip, ip, #3
beq .cfu_0fupi beq .Lcfu_0fupi
.cfu_0nowords: teq ip, #0 .Lcfu_0nowords: teq ip, #0
beq .cfu_finished beq .Lcfu_finished
.cfu_nowords: cmp ip, #2 .Lcfu_nowords: cmp ip, #2
USER( ldrbt r3, [r1], #1) @ May fault USER( ldrbt r3, [r1], #1) @ May fault
strb r3, [r0], #1 strb r3, [r0], #1
USER( ldrgebt r3, [r1], #1) @ May fault USER( ldrgebt r3, [r1], #1) @ May fault
strgeb r3, [r0], #1 strgeb r3, [r0], #1
USER( ldrgtbt r3, [r1], #1) @ May fault USER( ldrgtbt r3, [r1], #1) @ May fault
strgtb r3, [r0], #1 strgtb r3, [r0], #1
b .cfu_finished b .Lcfu_finished
.cfu_not_enough: .Lcfu_not_enough:
movs ip, r2 movs ip, r2
bne .cfu_nowords bne .Lcfu_nowords
.cfu_finished: mov r0, #0 .Lcfu_finished: mov r0, #0
add sp, sp, #8 add sp, sp, #8
LOADREGS(fd,sp!,{r4 - r7, pc}) LOADREGS(fd,sp!,{r4 - r7, pc})
.cfu_src_not_aligned: .Lcfu_src_not_aligned:
bic r1, r1, #3 bic r1, r1, #3
USER( ldrt r7, [r1], #4) @ May fault USER( ldrt r7, [r1], #4) @ May fault
cmp ip, #2 cmp ip, #2
bgt .cfu_3fupi bgt .Lcfu_3fupi
beq .cfu_2fupi beq .Lcfu_2fupi
.cfu_1fupi: subs r2, r2, #4 .Lcfu_1fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .cfu_1nowords bmi .Lcfu_1nowords
mov r3, r7, pull #8 mov r3, r7, pull #8
USER( ldrt r7, [r1], #4) @ May fault USER( ldrt r7, [r1], #4) @ May fault
orr r3, r3, r7, push #24 orr r3, r3, r7, push #24
...@@ -386,14 +387,14 @@ USER( ldrt r7, [r1], #4) @ May fault ...@@ -386,14 +387,14 @@ USER( ldrt r7, [r1], #4) @ May fault
mov ip, r1, lsl #32 - PAGE_SHIFT mov ip, r1, lsl #32 - PAGE_SHIFT
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .cfu_1fupi beq .Lcfu_1fupi
cmp r2, ip cmp r2, ip
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #16 subs ip, ip, #16
blt .cfu_1rem8lp blt .Lcfu_1rem8lp
.cfu_1cpy8lp: mov r3, r7, pull #8 .Lcfu_1cpy8lp: mov r3, r7, pull #8
ldmia r1!, {r4 - r7} @ Shouldnt fault ldmia r1!, {r4 - r7} @ Shouldnt fault
subs ip, ip, #16 subs ip, ip, #16
orr r3, r3, r4, push #24 orr r3, r3, r4, push #24
...@@ -404,9 +405,9 @@ USER( ldrt r7, [r1], #4) @ May fault ...@@ -404,9 +405,9 @@ USER( ldrt r7, [r1], #4) @ May fault
mov r6, r6, pull #8 mov r6, r6, pull #8
orr r6, r6, r7, push #24 orr r6, r6, r7, push #24
stmia r0!, {r3 - r6} stmia r0!, {r3 - r6}
bpl .cfu_1cpy8lp bpl .Lcfu_1cpy8lp
.cfu_1rem8lp: tst ip, #8 .Lcfu_1rem8lp: tst ip, #8
movne r3, r7, pull #8 movne r3, r7, pull #8
ldmneia r1!, {r4, r7} @ Shouldnt fault ldmneia r1!, {r4, r7} @ Shouldnt fault
orrne r3, r3, r4, push #24 orrne r3, r3, r4, push #24
...@@ -419,21 +420,21 @@ USER( ldrnet r7, [r1], #4) @ May fault ...@@ -419,21 +420,21 @@ USER( ldrnet r7, [r1], #4) @ May fault
orrne r3, r3, r7, push #24 orrne r3, r3, r7, push #24
strne r3, [r0], #4 strne r3, [r0], #4
ands ip, ip, #3 ands ip, ip, #3
beq .cfu_1fupi beq .Lcfu_1fupi
.cfu_1nowords: mov r3, r7, get_byte_1 .Lcfu_1nowords: mov r3, r7, get_byte_1
teq ip, #0 teq ip, #0
beq .cfu_finished beq .Lcfu_finished
cmp ip, #2 cmp ip, #2
strb r3, [r0], #1 strb r3, [r0], #1
movge r3, r7, get_byte_2 movge r3, r7, get_byte_2
strgeb r3, [r0], #1 strgeb r3, [r0], #1
movgt r3, r7, get_byte_3 movgt r3, r7, get_byte_3
strgtb r3, [r0], #1 strgtb r3, [r0], #1
b .cfu_finished b .Lcfu_finished
.cfu_2fupi: subs r2, r2, #4 .Lcfu_2fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .cfu_2nowords bmi .Lcfu_2nowords
mov r3, r7, pull #16 mov r3, r7, pull #16
USER( ldrt r7, [r1], #4) @ May fault USER( ldrt r7, [r1], #4) @ May fault
orr r3, r3, r7, push #16 orr r3, r3, r7, push #16
...@@ -441,14 +442,15 @@ USER( ldrt r7, [r1], #4) @ May fault ...@@ -441,14 +442,15 @@ USER( ldrt r7, [r1], #4) @ May fault
mov ip, r1, lsl #32 - PAGE_SHIFT mov ip, r1, lsl #32 - PAGE_SHIFT
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .cfu_2fupi beq .Lcfu_2fupi
cmp r2, ip cmp r2, ip
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #16 subs ip, ip, #16
blt .cfu_2rem8lp blt .Lcfu_2rem8lp
.cfu_2cpy8lp: mov r3, r7, pull #16 .Lcfu_2cpy8lp: mov r3, r7, pull #16
ldmia r1!, {r4 - r7} @ Shouldnt fault ldmia r1!, {r4 - r7} @ Shouldnt fault
subs ip, ip, #16 subs ip, ip, #16
orr r3, r3, r4, push #16 orr r3, r3, r4, push #16
...@@ -459,9 +461,9 @@ USER( ldrt r7, [r1], #4) @ May fault ...@@ -459,9 +461,9 @@ USER( ldrt r7, [r1], #4) @ May fault
mov r6, r6, pull #16 mov r6, r6, pull #16
orr r6, r6, r7, push #16 orr r6, r6, r7, push #16
stmia r0!, {r3 - r6} stmia r0!, {r3 - r6}
bpl .cfu_2cpy8lp bpl .Lcfu_2cpy8lp
.cfu_2rem8lp: tst ip, #8 .Lcfu_2rem8lp: tst ip, #8
movne r3, r7, pull #16 movne r3, r7, pull #16
ldmneia r1!, {r4, r7} @ Shouldnt fault ldmneia r1!, {r4, r7} @ Shouldnt fault
orrne r3, r3, r4, push #16 orrne r3, r3, r4, push #16
...@@ -474,21 +476,21 @@ USER( ldrnet r7, [r1], #4) @ May fault ...@@ -474,21 +476,21 @@ USER( ldrnet r7, [r1], #4) @ May fault
orrne r3, r3, r7, push #16 orrne r3, r3, r7, push #16
strne r3, [r0], #4 strne r3, [r0], #4
ands ip, ip, #3 ands ip, ip, #3
beq .cfu_2fupi beq .Lcfu_2fupi
.cfu_2nowords: mov r3, r7, get_byte_2 .Lcfu_2nowords: mov r3, r7, get_byte_2
teq ip, #0 teq ip, #0
beq .cfu_finished beq .Lcfu_finished
cmp ip, #2 cmp ip, #2
strb r3, [r0], #1 strb r3, [r0], #1
movge r3, r7, get_byte_3 movge r3, r7, get_byte_3
strgeb r3, [r0], #1 strgeb r3, [r0], #1
USER( ldrgtbt r3, [r1], #0) @ May fault USER( ldrgtbt r3, [r1], #0) @ May fault
strgtb r3, [r0], #1 strgtb r3, [r0], #1
b .cfu_finished b .Lcfu_finished
.cfu_3fupi: subs r2, r2, #4 .Lcfu_3fupi: subs r2, r2, #4
addmi ip, r2, #4 addmi ip, r2, #4
bmi .cfu_3nowords bmi .Lcfu_3nowords
mov r3, r7, pull #24 mov r3, r7, pull #24
USER( ldrt r7, [r1], #4) @ May fault USER( ldrt r7, [r1], #4) @ May fault
orr r3, r3, r7, push #8 orr r3, r3, r7, push #8
...@@ -496,14 +498,14 @@ USER( ldrt r7, [r1], #4) @ May fault ...@@ -496,14 +498,14 @@ USER( ldrt r7, [r1], #4) @ May fault
mov ip, r1, lsl #32 - PAGE_SHIFT mov ip, r1, lsl #32 - PAGE_SHIFT
rsb ip, ip, #0 rsb ip, ip, #0
movs ip, ip, lsr #32 - PAGE_SHIFT movs ip, ip, lsr #32 - PAGE_SHIFT
beq .cfu_3fupi beq .Lcfu_3fupi
cmp r2, ip cmp r2, ip
movlt ip, r2 movlt ip, r2
sub r2, r2, ip sub r2, r2, ip
subs ip, ip, #16 subs ip, ip, #16
blt .cfu_3rem8lp blt .Lcfu_3rem8lp
.cfu_3cpy8lp: mov r3, r7, pull #24 .Lcfu_3cpy8lp: mov r3, r7, pull #24
ldmia r1!, {r4 - r7} @ Shouldnt fault ldmia r1!, {r4 - r7} @ Shouldnt fault
orr r3, r3, r4, push #8 orr r3, r3, r4, push #8
mov r4, r4, pull #24 mov r4, r4, pull #24
...@@ -514,9 +516,9 @@ USER( ldrt r7, [r1], #4) @ May fault ...@@ -514,9 +516,9 @@ USER( ldrt r7, [r1], #4) @ May fault
orr r6, r6, r7, push #8 orr r6, r6, r7, push #8
stmia r0!, {r3 - r6} stmia r0!, {r3 - r6}
subs ip, ip, #16 subs ip, ip, #16
bpl .cfu_3cpy8lp bpl .Lcfu_3cpy8lp
.cfu_3rem8lp: tst ip, #8 .Lcfu_3rem8lp: tst ip, #8
movne r3, r7, pull #24 movne r3, r7, pull #24
ldmneia r1!, {r4, r7} @ Shouldnt fault ldmneia r1!, {r4, r7} @ Shouldnt fault
orrne r3, r3, r4, push #8 orrne r3, r3, r4, push #8
...@@ -529,17 +531,17 @@ USER( ldrnet r7, [r1], #4) @ May fault ...@@ -529,17 +531,17 @@ USER( ldrnet r7, [r1], #4) @ May fault
orrne r3, r3, r7, push #8 orrne r3, r3, r7, push #8
strne r3, [r0], #4 strne r3, [r0], #4
ands ip, ip, #3 ands ip, ip, #3
beq .cfu_3fupi beq .Lcfu_3fupi
.cfu_3nowords: mov r3, r7, get_byte_3 .Lcfu_3nowords: mov r3, r7, get_byte_3
teq ip, #0 teq ip, #0
beq .cfu_finished beq .Lcfu_finished
cmp ip, #2 cmp ip, #2
strb r3, [r0], #1 strb r3, [r0], #1
USER( ldrgebt r3, [r1], #1) @ May fault USER( ldrgebt r3, [r1], #1) @ May fault
strgeb r3, [r0], #1 strgeb r3, [r0], #1
USER( ldrgtbt r3, [r1], #1) @ May fault USER( ldrgtbt r3, [r1], #1) @ May fault
strgtb r3, [r0], #1 strgtb r3, [r0], #1
b .cfu_finished b .Lcfu_finished
.section .fixup,"ax" .section .fixup,"ax"
.align 0 .align 0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment