Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
a1f64a87
Commit
a1f64a87
authored
Mar 26, 2003
by
Nicolas Pitre
Committed by
Russell King
Mar 26, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM PATCH] 1447/1: preload support to uaccess.S
Patch from Nicolas Pitre
parent
d2ad48c5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
123 additions
and
15 deletions
+123
-15
arch/arm/lib/uaccess.S
arch/arm/lib/uaccess.S
+123
-15
No files found.
arch/arm/lib/uaccess.S
View file @
a1f64a87
...
@@ -43,6 +43,8 @@ ENTRY(__arch_copy_to_user)
...
@@ -43,6 +43,8 @@ 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
.
c2u_not_enough
PLD
(
pld
[
r1
,
#
0
]
)
PLD
(
pld
[
r0
,
#
0
]
)
ands
ip
,
r0
,
#
3
ands
ip
,
r0
,
#
3
bne
.
c2u_dest_not_aligned
bne
.
c2u_dest_not_aligned
.
c2u_dest_aligned
:
.
c2u_dest_aligned
:
...
@@ -71,13 +73,26 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -71,13 +73,26 @@ USER( strt r3, [r0], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
32
subs
ip
,
ip
,
#
32
blt
.
c2u_0rem8lp
blt
.
c2u_0rem8lp
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
PLD
(
subs
ip
,
ip
,
#
64
)
PLD
(
blt
.
c2u_0cpynopld
)
PLD
(
pld
[
r1
,
#
60
]
)
PLD
(
pld
[
r0
,
#
60
]
)
.
c2u_0cpy8lp
:
ldmia
r1
!,
{
r3
-
r6
}
.
c2u_0cpy8lp
:
PLD
(
pld
[
r1
,
#
92
]
)
PLD
(
pld
[
r0
,
#
92
]
)
.
c2u_0cpynopld
:
ldmia
r1
!,
{
r3
-
r6
}
stmia
r0
!,
{
r3
-
r6
}
@
Shouldnt
fault
stmia
r0
!,
{
r3
-
r6
}
@
Shouldnt
fault
ldmia
r1
!,
{
r3
-
r6
}
ldmia
r1
!,
{
r3
-
r6
}
stmia
r0
!,
{
r3
-
r6
}
@
Shouldnt
fault
subs
ip
,
ip
,
#
32
subs
ip
,
ip
,
#
32
stmia
r0
!,
{
r3
-
r6
}
@
Shouldnt
fault
bpl
.
c2u_0cpy8lp
bpl
.
c2u_0cpy8lp
PLD
(
cmn
ip
,
#
64
)
PLD
(
bge
.
c2u_0cpynopld
)
PLD
(
add
ip
,
ip
,
#
64
)
.
c2u_0rem8lp
:
cmn
ip
,
#
16
.
c2u_0rem8lp
:
cmn
ip
,
#
16
ldmgeia
r1
!,
{
r3
-
r6
}
ldmgeia
r1
!,
{
r3
-
r6
}
stmgeia
r0
!,
{
r3
-
r6
}
@
Shouldnt
fault
stmgeia
r0
!,
{
r3
-
r6
}
@
Shouldnt
fault
...
@@ -128,9 +143,19 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -128,9 +143,19 @@ USER( strt r3, [r0], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
blt
.
c2u_1rem8lp
blt
.
c2u_1rem8lp
PLD
(
pld
[
r1
,
#
12
]
)
PLD
(
pld
[
r0
,
#
12
]
)
PLD
(
subs
ip
,
ip
,
#
32
)
PLD
(
blt
.
c2u_1cpynopld
)
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
.
c2u_1cpy8lp
:
mov
r3
,
r7
,
pull
#
8
.
c2u_1cpy8lp
:
PLD
(
pld
[
r1
,
#
44
]
)
PLD
(
pld
[
r0
,
#
44
]
)
.
c2u_1cpynopld
:
mov
r3
,
r7
,
pull
#
8
ldmia
r1
!,
{
r4
-
r7
}
ldmia
r1
!,
{
r4
-
r7
}
subs
ip
,
ip
,
#
16
orr
r3
,
r3
,
r4
,
push
#
24
orr
r3
,
r3
,
r4
,
push
#
24
mov
r4
,
r4
,
pull
#
8
mov
r4
,
r4
,
pull
#
8
orr
r4
,
r4
,
r5
,
push
#
24
orr
r4
,
r4
,
r5
,
push
#
24
...
@@ -139,8 +164,11 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -139,8 +164,11 @@ 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
subs
ip
,
ip
,
#
16
bpl
.
c2u_1cpy8lp
bpl
.
c2u_1cpy8lp
PLD
(
cmn
ip
,
#
32
)
PLD
(
bge
.
c2u_1cpynopld
)
PLD
(
add
ip
,
ip
,
#
32
)
.
c2u_1rem8lp
:
tst
ip
,
#
8
.
c2u_1rem8lp
:
tst
ip
,
#
8
movne
r3
,
r7
,
pull
#
8
movne
r3
,
r7
,
pull
#
8
ldmneia
r1
!,
{
r4
,
r7
}
ldmneia
r1
!,
{
r4
,
r7
}
...
@@ -182,9 +210,19 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -182,9 +210,19 @@ USER( strt r3, [r0], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
blt
.
c2u_2rem8lp
blt
.
c2u_2rem8lp
PLD
(
pld
[
r1
,
#
12
]
)
PLD
(
pld
[
r0
,
#
12
]
)
PLD
(
subs
ip
,
ip
,
#
32
)
PLD
(
blt
.
c2u_2cpynopld
)
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
.
c2u_2cpy8lp
:
mov
r3
,
r7
,
pull
#
16
.
c2u_2cpy8lp
:
PLD
(
pld
[
r1
,
#
44
]
)
PLD
(
pld
[
r0
,
#
44
]
)
.
c2u_2cpynopld
:
mov
r3
,
r7
,
pull
#
16
ldmia
r1
!,
{
r4
-
r7
}
ldmia
r1
!,
{
r4
-
r7
}
subs
ip
,
ip
,
#
16
orr
r3
,
r3
,
r4
,
push
#
16
orr
r3
,
r3
,
r4
,
push
#
16
mov
r4
,
r4
,
pull
#
16
mov
r4
,
r4
,
pull
#
16
orr
r4
,
r4
,
r5
,
push
#
16
orr
r4
,
r4
,
r5
,
push
#
16
...
@@ -193,8 +231,11 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -193,8 +231,11 @@ 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
subs
ip
,
ip
,
#
16
bpl
.
c2u_2cpy8lp
bpl
.
c2u_2cpy8lp
PLD
(
cmn
ip
,
#
32
)
PLD
(
bge
.
c2u_2cpynopld
)
PLD
(
add
ip
,
ip
,
#
32
)
.
c2u_2rem8lp
:
tst
ip
,
#
8
.
c2u_2rem8lp
:
tst
ip
,
#
8
movne
r3
,
r7
,
pull
#
16
movne
r3
,
r7
,
pull
#
16
ldmneia
r1
!,
{
r4
,
r7
}
ldmneia
r1
!,
{
r4
,
r7
}
...
@@ -236,9 +277,19 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -236,9 +277,19 @@ USER( strt r3, [r0], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
blt
.
c2u_3rem8lp
blt
.
c2u_3rem8lp
PLD
(
pld
[
r1
,
#
12
]
)
PLD
(
pld
[
r0
,
#
12
]
)
PLD
(
subs
ip
,
ip
,
#
32
)
PLD
(
blt
.
c2u_3cpynopld
)
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
.
c2u_3cpy8lp
:
mov
r3
,
r7
,
pull
#
24
.
c2u_3cpy8lp
:
PLD
(
pld
[
r1
,
#
44
]
)
PLD
(
pld
[
r0
,
#
44
]
)
.
c2u_3cpynopld
:
mov
r3
,
r7
,
pull
#
24
ldmia
r1
!,
{
r4
-
r7
}
ldmia
r1
!,
{
r4
-
r7
}
subs
ip
,
ip
,
#
16
orr
r3
,
r3
,
r4
,
push
#
8
orr
r3
,
r3
,
r4
,
push
#
8
mov
r4
,
r4
,
pull
#
24
mov
r4
,
r4
,
pull
#
24
orr
r4
,
r4
,
r5
,
push
#
8
orr
r4
,
r4
,
r5
,
push
#
8
...
@@ -247,8 +298,11 @@ USER( strt r3, [r0], #4) @ May fault
...
@@ -247,8 +298,11 @@ 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
subs
ip
,
ip
,
#
16
bpl
.
c2u_3cpy8lp
bpl
.
c2u_3cpy8lp
PLD
(
cmn
ip
,
#
32
)
PLD
(
bge
.
c2u_3cpynopld
)
PLD
(
add
ip
,
ip
,
#
32
)
.
c2u_3rem8lp
:
tst
ip
,
#
8
.
c2u_3rem8lp
:
tst
ip
,
#
8
movne
r3
,
r7
,
pull
#
24
movne
r3
,
r7
,
pull
#
24
ldmneia
r1
!,
{
r4
,
r7
}
ldmneia
r1
!,
{
r4
,
r7
}
...
@@ -302,6 +356,8 @@ ENTRY(__arch_copy_from_user)
...
@@ -302,6 +356,8 @@ 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
.
cfu_not_enough
PLD
(
pld
[
r1
,
#
0
]
)
PLD
(
pld
[
r0
,
#
0
]
)
ands
ip
,
r0
,
#
3
ands
ip
,
r0
,
#
3
bne
.
cfu_dest_not_aligned
bne
.
cfu_dest_not_aligned
.
cfu_dest_aligned
:
.
cfu_dest_aligned
:
...
@@ -329,13 +385,26 @@ USER( ldrt r3, [r1], #4)
...
@@ -329,13 +385,26 @@ USER( ldrt r3, [r1], #4)
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
32
subs
ip
,
ip
,
#
32
blt
.
cfu_0rem8lp
blt
.
cfu_0rem8lp
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
PLD
(
subs
ip
,
ip
,
#
64
)
PLD
(
blt
.
cfu_0cpynopld
)
PLD
(
pld
[
r1
,
#
60
]
)
PLD
(
pld
[
r0
,
#
60
]
)
.
cfu_0cpy8lp
:
ldmia
r1
!,
{
r3
-
r6
}
@
Shouldnt
fault
.
cfu_0cpy8lp
:
PLD
(
pld
[
r1
,
#
92
]
)
PLD
(
pld
[
r0
,
#
92
]
)
.
cfu_0cpynopld
:
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
stmia
r0
!,
{
r3
-
r6
}
subs
ip
,
ip
,
#
32
subs
ip
,
ip
,
#
32
stmia
r0
!,
{
r3
-
r6
}
bpl
.
cfu_0cpy8lp
bpl
.
cfu_0cpy8lp
PLD
(
cmn
ip
,
#
64
)
PLD
(
bge
.
cfu_0cpynopld
)
PLD
(
add
ip
,
ip
,
#
64
)
.
cfu_0rem8lp
:
cmn
ip
,
#
16
.
cfu_0rem8lp
:
cmn
ip
,
#
16
ldmgeia
r1
!,
{
r3
-
r6
}
@
Shouldnt
fault
ldmgeia
r1
!,
{
r3
-
r6
}
@
Shouldnt
fault
stmgeia
r0
!,
{
r3
-
r6
}
stmgeia
r0
!,
{
r3
-
r6
}
...
@@ -387,9 +456,19 @@ USER( ldrt r7, [r1], #4) @ May fault
...
@@ -387,9 +456,19 @@ USER( ldrt r7, [r1], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
blt
.
cfu_1rem8lp
blt
.
cfu_1rem8lp
PLD
(
pld
[
r1
,
#
12
]
)
PLD
(
pld
[
r0
,
#
12
]
)
PLD
(
subs
ip
,
ip
,
#
32
)
PLD
(
blt
.
cfu_1cpynopld
)
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
.
cfu_1cpy8lp
:
mov
r3
,
r7
,
pull
#
8
.
cfu_1cpy8lp
:
PLD
(
pld
[
r1
,
#
44
]
)
PLD
(
pld
[
r0
,
#
44
]
)
.
cfu_1cpynopld
:
mov
r3
,
r7
,
pull
#
8
ldmia
r1
!,
{
r4
-
r7
}
@
Shouldnt
fault
ldmia
r1
!,
{
r4
-
r7
}
@
Shouldnt
fault
subs
ip
,
ip
,
#
16
orr
r3
,
r3
,
r4
,
push
#
24
orr
r3
,
r3
,
r4
,
push
#
24
mov
r4
,
r4
,
pull
#
8
mov
r4
,
r4
,
pull
#
8
orr
r4
,
r4
,
r5
,
push
#
24
orr
r4
,
r4
,
r5
,
push
#
24
...
@@ -398,8 +477,11 @@ USER( ldrt r7, [r1], #4) @ May fault
...
@@ -398,8 +477,11 @@ 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
}
subs
ip
,
ip
,
#
16
bpl
.
cfu_1cpy8lp
bpl
.
cfu_1cpy8lp
PLD
(
cmn
ip
,
#
32
)
PLD
(
bge
.
cfu_1cpynopld
)
PLD
(
add
ip
,
ip
,
#
32
)
.
cfu_1rem8lp
:
tst
ip
,
#
8
.
cfu_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
...
@@ -441,9 +523,19 @@ USER( ldrt r7, [r1], #4) @ May fault
...
@@ -441,9 +523,19 @@ USER( ldrt r7, [r1], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
blt
.
cfu_2rem8lp
blt
.
cfu_2rem8lp
PLD
(
pld
[
r1
,
#
12
]
)
PLD
(
pld
[
r0
,
#
12
]
)
PLD
(
subs
ip
,
ip
,
#
32
)
PLD
(
blt
.
cfu_2cpynopld
)
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
.
cfu_2cpy8lp
:
mov
r3
,
r7
,
pull
#
16
.
cfu_2cpy8lp
:
PLD
(
pld
[
r1
,
#
44
]
)
PLD
(
pld
[
r0
,
#
44
]
)
.
cfu_2cpynopld
:
mov
r3
,
r7
,
pull
#
16
ldmia
r1
!,
{
r4
-
r7
}
@
Shouldnt
fault
ldmia
r1
!,
{
r4
-
r7
}
@
Shouldnt
fault
subs
ip
,
ip
,
#
16
orr
r3
,
r3
,
r4
,
push
#
16
orr
r3
,
r3
,
r4
,
push
#
16
mov
r4
,
r4
,
pull
#
16
mov
r4
,
r4
,
pull
#
16
orr
r4
,
r4
,
r5
,
push
#
16
orr
r4
,
r4
,
r5
,
push
#
16
...
@@ -452,8 +544,11 @@ USER( ldrt r7, [r1], #4) @ May fault
...
@@ -452,8 +544,11 @@ 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
}
subs
ip
,
ip
,
#
16
bpl
.
cfu_2cpy8lp
bpl
.
cfu_2cpy8lp
PLD
(
cmn
ip
,
#
32
)
PLD
(
bge
.
cfu_2cpynopld
)
PLD
(
add
ip
,
ip
,
#
32
)
.
cfu_2rem8lp
:
tst
ip
,
#
8
.
cfu_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
...
@@ -495,8 +590,17 @@ USER( ldrt r7, [r1], #4) @ May fault
...
@@ -495,8 +590,17 @@ USER( ldrt r7, [r1], #4) @ May fault
sub
r2
,
r2
,
ip
sub
r2
,
r2
,
ip
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
blt
.
cfu_3rem8lp
blt
.
cfu_3rem8lp
PLD
(
pld
[
r1
,
#
12
]
)
PLD
(
pld
[
r0
,
#
12
]
)
PLD
(
subs
ip
,
ip
,
#
32
)
PLD
(
blt
.
cfu_3cpynopld
)
PLD
(
pld
[
r1
,
#
28
]
)
PLD
(
pld
[
r0
,
#
28
]
)
.
cfu_3cpy8lp
:
mov
r3
,
r7
,
pull
#
24
.
cfu_3cpy8lp
:
PLD
(
pld
[
r1
,
#
44
]
)
PLD
(
pld
[
r0
,
#
44
]
)
.
cfu_3cpynopld
:
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
...
@@ -508,6 +612,10 @@ USER( ldrt r7, [r1], #4) @ May fault
...
@@ -508,6 +612,10 @@ USER( ldrt r7, [r1], #4) @ May fault
stmia
r0
!,
{
r3
-
r6
}
stmia
r0
!,
{
r3
-
r6
}
subs
ip
,
ip
,
#
16
subs
ip
,
ip
,
#
16
bpl
.
cfu_3cpy8lp
bpl
.
cfu_3cpy8lp
PLD
(
cmn
ip
,
#
32
)
PLD
(
bge
.
cfu_3cpynopld
)
PLD
(
add
ip
,
ip
,
#
32
)
.
cfu_3rem8lp
:
tst
ip
,
#
8
.
cfu_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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment