Skip to content

Commit

Permalink
Thumb-2: Add some .align statements to the .S files
Browse files Browse the repository at this point in the history
Since the Thumb-2 instructions can be 16-bit wide, data in the .text
sections may not be aligned to a 32-bit word and this leads to unaligned
exceptions. This patch does not affect the ARM code generation.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
  • Loading branch information
Catalin Marinas committed Jul 24, 2009
1 parent 4be3bd7 commit 88987ef
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 0 deletions.
3 changes: 3 additions & 0 deletions arch/arm/boot/compressed/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ wont_overwrite: mov r0, r4
bl decompress_kernel
b call_kernel

.align 2
.type LC0, #object
LC0: .word LC0 @ r1
.word __bss_start @ r2
Expand Down Expand Up @@ -589,6 +590,7 @@ call_cache_fn: adr r12, proc_types
* methods. Writeback caches _must_ have the flush method
* defined.
*/
.align 2
.type proc_types,#object
proc_types:
.word 0x41560600 @ ARM6/610
Expand Down Expand Up @@ -945,6 +947,7 @@ __armv3_mpu_cache_flush:
* memory, which again must be relocatable.
*/
#ifdef DEBUG
.align 2
.type phexbuf,#object
phexbuf: .space 12
.size phexbuf, . - phexbuf
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/kernel/entry-armv.S
Original file line number Diff line number Diff line change
Expand Up @@ -1065,6 +1065,10 @@ vector_\name:
ldr lr, [pc, lr, lsl #2]
movs pc, lr @ branch to handler in SVC mode
ENDPROC(vector_\name)

.align 2
@ handler addresses follow this label
1:
.endm

.globl __stubs_start
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/kernel/head-common.S
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#define ATAG_CORE 0x54410001
#define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2)

.align 2
.type __switch_data, %object
__switch_data:
.long __mmap_switched
Expand Down Expand Up @@ -185,6 +186,7 @@ ENDPROC(lookup_processor_type)
* Look in <asm/procinfo.h> and arch/arm/kernel/arch.[ch] for
* more information about the __proc_info and __arch_info structures.
*/
.align 2
.long __proc_info_begin
.long __proc_info_end
3: .long .
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/lib/sha1.S
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ ENTRY(sha_transform)

ENDPROC(sha_transform)

.align 2
.L_sha_K:
.word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6

Expand All @@ -195,6 +196,7 @@ ENDPROC(sha_transform)
* void sha_init(__u32 *buf)
*/

.align 2
.L_sha_initial_digest:
.word 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/vfp/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ ENTRY(vfp_null_entry)
mov pc, lr
ENDPROC(vfp_null_entry)

.align 2
.LCvfp:
.word vfp_vector

Expand All @@ -61,6 +62,7 @@ ENTRY(vfp_testing_entry)
mov pc, r9 @ we have handled the fault
ENDPROC(vfp_testing_entry)

.align 2
VFP_arch_address:
.word VFP_arch

Expand Down

0 comments on commit 88987ef

Please sign in to comment.