diff options
Diffstat (limited to 'arch/arm/kernel/entry-header.S')
| -rw-r--r-- | arch/arm/kernel/entry-header.S | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index ac34c0d9384b..7e9ed1eea40a 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
| @@ -110,6 +110,13 @@ | |||
| 110 | mov \rd, sp, lsr #13 | 110 | mov \rd, sp, lsr #13 |
| 111 | mov \rd, \rd, lsl #13 | 111 | mov \rd, \rd, lsl #13 |
| 112 | .endm | 112 | .endm |
| 113 | |||
| 114 | @ | ||
| 115 | @ 32-bit wide "mov pc, reg" | ||
| 116 | @ | ||
| 117 | .macro movw_pc, reg | ||
| 118 | mov pc, \reg | ||
| 119 | .endm | ||
| 113 | #else /* CONFIG_THUMB2_KERNEL */ | 120 | #else /* CONFIG_THUMB2_KERNEL */ |
| 114 | .macro svc_exit, rpsr | 121 | .macro svc_exit, rpsr |
| 115 | clrex @ clear the exclusive monitor | 122 | clrex @ clear the exclusive monitor |
| @@ -146,6 +153,14 @@ | |||
| 146 | lsr \rd, \rd, #13 | 153 | lsr \rd, \rd, #13 |
| 147 | mov \rd, \rd, lsl #13 | 154 | mov \rd, \rd, lsl #13 |
| 148 | .endm | 155 | .endm |
| 156 | |||
| 157 | @ | ||
| 158 | @ 32-bit wide "mov pc, reg" | ||
| 159 | @ | ||
| 160 | .macro movw_pc, reg | ||
| 161 | mov pc, \reg | ||
| 162 | nop | ||
| 163 | .endm | ||
| 149 | #endif /* !CONFIG_THUMB2_KERNEL */ | 164 | #endif /* !CONFIG_THUMB2_KERNEL */ |
| 150 | 165 | ||
| 151 | /* | 166 | /* |
