diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2009-07-24 07:32:57 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2009-07-24 07:32:57 -0400 |
commit | 8b592783a2e8b7721a99730bd549aab5208f36af (patch) | |
tree | 468636a17d31f6a29287240c63234e739eabf666 /arch/arm/lib/copy_to_user.S | |
parent | 347c8b70b1d5256e445e54e736f88d21877616cf (diff) |
Thumb-2: Implement the unified arch/arm/lib functions
This patch adds the ARM/Thumb-2 unified support for the arch/arm/lib/*
files.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm/lib/copy_to_user.S')
-rw-r--r-- | arch/arm/lib/copy_to_user.S | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S index 878820f0a320..1a71e1584442 100644 --- a/arch/arm/lib/copy_to_user.S +++ b/arch/arm/lib/copy_to_user.S | |||
@@ -33,8 +33,15 @@ | |||
33 | * Number of bytes NOT copied. | 33 | * Number of bytes NOT copied. |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #define LDR1W_SHIFT 0 | ||
37 | #ifndef CONFIG_THUMB2_KERNEL | ||
38 | #define STR1W_SHIFT 0 | ||
39 | #else | ||
40 | #define STR1W_SHIFT 1 | ||
41 | #endif | ||
42 | |||
36 | .macro ldr1w ptr reg abort | 43 | .macro ldr1w ptr reg abort |
37 | ldr \reg, [\ptr], #4 | 44 | W(ldr) \reg, [\ptr], #4 |
38 | .endm | 45 | .endm |
39 | 46 | ||
40 | .macro ldr4w ptr reg1 reg2 reg3 reg4 abort | 47 | .macro ldr4w ptr reg1 reg2 reg3 reg4 abort |
@@ -50,10 +57,7 @@ | |||
50 | .endm | 57 | .endm |
51 | 58 | ||
52 | .macro str1w ptr reg abort | 59 | .macro str1w ptr reg abort |
53 | 100: strt \reg, [\ptr], #4 | 60 | strusr \reg, \ptr, 4, abort=\abort |
54 | .section __ex_table, "a" | ||
55 | .long 100b, \abort | ||
56 | .previous | ||
57 | .endm | 61 | .endm |
58 | 62 | ||
59 | .macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort | 63 | .macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort |
@@ -68,10 +72,7 @@ | |||
68 | .endm | 72 | .endm |
69 | 73 | ||
70 | .macro str1b ptr reg cond=al abort | 74 | .macro str1b ptr reg cond=al abort |
71 | 100: str\cond\()bt \reg, [\ptr], #1 | 75 | strusr \reg, \ptr, 1, \cond, abort=\abort |
72 | .section __ex_table, "a" | ||
73 | .long 100b, \abort | ||
74 | .previous | ||
75 | .endm | 76 | .endm |
76 | 77 | ||
77 | .macro enter reg1 reg2 | 78 | .macro enter reg1 reg2 |