diff options
Diffstat (limited to 'arch/arm/lib/putuser.S')
-rw-r--r-- | arch/arm/lib/putuser.S | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S index 864f3c1c4f18..02fedbf07c0d 100644 --- a/arch/arm/lib/putuser.S +++ b/arch/arm/lib/putuser.S | |||
@@ -37,6 +37,15 @@ ENDPROC(__put_user_1) | |||
37 | 37 | ||
38 | ENTRY(__put_user_2) | 38 | ENTRY(__put_user_2) |
39 | mov ip, r2, lsr #8 | 39 | mov ip, r2, lsr #8 |
40 | #ifdef CONFIG_THUMB2_KERNEL | ||
41 | #ifndef __ARMEB__ | ||
42 | 2: strbt r2, [r0] | ||
43 | 3: strbt ip, [r0, #1] | ||
44 | #else | ||
45 | 2: strbt ip, [r0] | ||
46 | 3: strbt r2, [r0, #1] | ||
47 | #endif | ||
48 | #else /* !CONFIG_THUMB2_KERNEL */ | ||
40 | #ifndef __ARMEB__ | 49 | #ifndef __ARMEB__ |
41 | 2: strbt r2, [r0], #1 | 50 | 2: strbt r2, [r0], #1 |
42 | 3: strbt ip, [r0] | 51 | 3: strbt ip, [r0] |
@@ -44,6 +53,7 @@ ENTRY(__put_user_2) | |||
44 | 2: strbt ip, [r0], #1 | 53 | 2: strbt ip, [r0], #1 |
45 | 3: strbt r2, [r0] | 54 | 3: strbt r2, [r0] |
46 | #endif | 55 | #endif |
56 | #endif /* CONFIG_THUMB2_KERNEL */ | ||
47 | mov r0, #0 | 57 | mov r0, #0 |
48 | mov pc, lr | 58 | mov pc, lr |
49 | ENDPROC(__put_user_2) | 59 | ENDPROC(__put_user_2) |
@@ -55,8 +65,13 @@ ENTRY(__put_user_4) | |||
55 | ENDPROC(__put_user_4) | 65 | ENDPROC(__put_user_4) |
56 | 66 | ||
57 | ENTRY(__put_user_8) | 67 | ENTRY(__put_user_8) |
68 | #ifdef CONFIG_THUMB2_KERNEL | ||
69 | 5: strt r2, [r0] | ||
70 | 6: strt r3, [r0, #4] | ||
71 | #else | ||
58 | 5: strt r2, [r0], #4 | 72 | 5: strt r2, [r0], #4 |
59 | 6: strt r3, [r0] | 73 | 6: strt r3, [r0] |
74 | #endif | ||
60 | mov r0, #0 | 75 | mov r0, #0 |
61 | mov pc, lr | 76 | mov pc, lr |
62 | ENDPROC(__put_user_8) | 77 | ENDPROC(__put_user_8) |