diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-04-09 07:59:35 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-04-14 17:26:51 -0400 |
commit | 89c6bc5884e52ec004f03071f268ba3f27003aba (patch) | |
tree | 57a9a8f938fa1a986c794d07729408acf2af8dc3 /arch/arm/include/asm | |
parent | 38e42f121601fc0640c032871a38efa5a59cff68 (diff) |
ARM: allow 16-bit instructions in ALT_UP()
Allow ALT_UP() to cope with a 16-bit Thumb instruction by automatically
inserting a following nop instruction. This allows us to care less
about getting the assembler to emit a 32-bit thumb instruction.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include/asm')
-rw-r--r-- | arch/arm/include/asm/assembler.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index f67fd3afebdf..186270b3e194 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h | |||
@@ -237,6 +237,9 @@ | |||
237 | .pushsection ".alt.smp.init", "a" ;\ | 237 | .pushsection ".alt.smp.init", "a" ;\ |
238 | .long 9998b ;\ | 238 | .long 9998b ;\ |
239 | 9997: instr ;\ | 239 | 9997: instr ;\ |
240 | .if . - 9997b == 2 ;\ | ||
241 | nop ;\ | ||
242 | .endif ;\ | ||
240 | .if . - 9997b != 4 ;\ | 243 | .if . - 9997b != 4 ;\ |
241 | .error "ALT_UP() content must assemble to exactly 4 bytes";\ | 244 | .error "ALT_UP() content must assemble to exactly 4 bytes";\ |
242 | .endif ;\ | 245 | .endif ;\ |