svn commit: r276596 - in head/sys/arm: arm include

Ian Lepore ian at FreeBSD.org
Fri Jan 2 23:46:31 UTC 2015


Author: ian
Date: Fri Jan  2 23:46:26 2015
New Revision: 276596
URL: https://svnweb.freebsd.org/changeset/base/276596

Log:
  Fix alignment directives in arm asm code after clang 3.5 import.
  
  The ancient gas we've been using interprets .align 0 as align to the
  minimum required alignment for the current section.  Clang's integrated
  assembler interprets it as align to a byte boundary.  Fortunately both
  assemblers interpret a non-zero value as align to 2^N so just make sure
  we have appropriate non-zero values everywhere.

Modified:
  head/sys/arm/arm/bcopyinout.S
  head/sys/arm/arm/bcopyinout_xscale.S
  head/sys/arm/arm/copystr.S
  head/sys/arm/arm/cpufunc_asm.S
  head/sys/arm/arm/cpufunc_asm_arm10.S
  head/sys/arm/arm/cpufunc_asm_arm9.S
  head/sys/arm/arm/cpufunc_asm_armv5.S
  head/sys/arm/arm/exception.S
  head/sys/arm/arm/fusu.S
  head/sys/arm/arm/locore-v4.S
  head/sys/arm/arm/locore-v6.S
  head/sys/arm/include/asm.h
  head/sys/arm/include/profile.h

Modified: head/sys/arm/arm/bcopyinout.S
==============================================================================
--- head/sys/arm/arm/bcopyinout.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/bcopyinout.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$");
 #else
 
 	.text
-	.align	0
+	.align	2
 
 #ifdef _ARM_ARCH_6
 #define GET_PCB(tmp) \

Modified: head/sys/arm/arm/bcopyinout_xscale.S
==============================================================================
--- head/sys/arm/arm/bcopyinout_xscale.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/bcopyinout_xscale.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -40,7 +40,7 @@ __FBSDID("$FreeBSD$");
 
 	.syntax	unified
 	.text
-	.align	0
+	.align	2
 
 #ifdef _ARM_ARCH_6
 #define GET_PCB(tmp) \

Modified: head/sys/arm/arm/copystr.S
==============================================================================
--- head/sys/arm/arm/copystr.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/copystr.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/errno.h>
 
 	.text
-	.align	0
+	.align	2
 
 #ifdef _ARM_ARCH_6
 #define GET_PCB(tmp) \
@@ -210,5 +210,5 @@ END(copyoutstr)
 
 Lcopystrpcbfaulttext:
 	.asciz	"No valid PCB during copyinoutstr() addr1=%08x addr2=%08x\n"
-	.align	0
+	.align	2
 #endif

Modified: head/sys/arm/arm/cpufunc_asm.S
==============================================================================
--- head/sys/arm/arm/cpufunc_asm.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/cpufunc_asm.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -46,7 +46,7 @@
 __FBSDID("$FreeBSD$");
 
 	.text
-	.align	0
+	.align	2
 
 ENTRY(cpufunc_nullop)
 	RET
@@ -138,7 +138,7 @@ ENTRY(cpufunc_control)
 	RET
 .Lglou:
 	.asciz "plop %p\n"
-	.align 0
+	.align 2
 END(cpufunc_control)
 
 /*

Modified: head/sys/arm/arm/cpufunc_asm_arm10.S
==============================================================================
--- head/sys/arm/arm/cpufunc_asm_arm10.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/cpufunc_asm_arm10.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -265,7 +265,7 @@ END(arm10_context_switch)
  * four variables is assumed in the code above.  Hence the reason for
  * declaring them in the assembler file.
  */
-	.align 0
+	.align 2
 C_OBJECT(arm10_dcache_sets_max)
 	.space	4
 C_OBJECT(arm10_dcache_index_max)

Modified: head/sys/arm/arm/cpufunc_asm_arm9.S
==============================================================================
--- head/sys/arm/arm/cpufunc_asm_arm9.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/cpufunc_asm_arm9.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -252,7 +252,7 @@ END(arm9_context_switch)
  * four variables is assumed in the code above.  Hence the reason for
  * declaring them in the assembler file.
  */
-	.align 0
+	.align 2
 C_OBJECT(arm9_dcache_sets_max)
 	.space	4
 C_OBJECT(arm9_dcache_index_max)

Modified: head/sys/arm/arm/cpufunc_asm_armv5.S
==============================================================================
--- head/sys/arm/arm/cpufunc_asm_armv5.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/cpufunc_asm_armv5.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -236,7 +236,7 @@ END(armv5_idcache_wbinv_all)
  * four variables is assumed in the code above.  Hence the reason for
  * declaring them in the assembler file.
  */
-	.align 0
+	.align 2
 C_OBJECT(armv5_dcache_sets_max)
 	.space	4
 C_OBJECT(armv5_dcache_index_max)

Modified: head/sys/arm/arm/exception.S
==============================================================================
--- head/sys/arm/arm/exception.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/exception.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -54,7 +54,7 @@
 __FBSDID("$FreeBSD$");
 
 	.text	
-	.align	0
+	.align	2
 
 /*
  * ASM macros for pushing and pulling trapframes from the stack

Modified: head/sys/arm/arm/fusu.S
==============================================================================
--- head/sys/arm/arm/fusu.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/fusu.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -204,7 +204,7 @@ Lblock_userspace_access:
 	.word	_C_LABEL(block_userspace_access)
 
 	.data
-	.align	0
+	.align	2
 	.global	_C_LABEL(block_userspace_access)
 _C_LABEL(block_userspace_access):
 	.word	0

Modified: head/sys/arm/arm/locore-v4.S
==============================================================================
--- head/sys/arm/arm/locore-v4.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/locore-v4.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$");
  * the running kernel.
  */
 	.text
-	.align	0
+	.align	2
 #ifdef PHYSADDR
 .globl kernbase
 .set kernbase,KERNBASE
@@ -373,7 +373,7 @@ Lend:
 
 .Lmainreturned:
 	.asciz	"main() returned"
-	.align	0
+	.align	2
 
 	.bss
 svcstk:
@@ -389,7 +389,7 @@ pagetable:
 	.space	L1_TABLE_SIZE
 
 	.text
-	.align	0
+	.align	2
 
 .Lcpufuncs:
 	.word	_C_LABEL(cpufuncs)
@@ -476,7 +476,7 @@ mpvirt_done:
 
 .Lmpreturned:
 	.asciz	"init_secondary() returned"
-	.align	0
+	.align	2
 END(mpentry)
 #endif
 
@@ -584,7 +584,7 @@ END(sigcode)
 	.word	SYS_sigreturn
 	.word	SYS_exit
 
-	.align	0
+	.align	2
 	.global _C_LABEL(esigcode)
 		_C_LABEL(esigcode):
 

Modified: head/sys/arm/arm/locore-v6.S
==============================================================================
--- head/sys/arm/arm/locore-v6.S	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/arm/locore-v6.S	Fri Jan  2 23:46:26 2015	(r276596)
@@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$");
 #define	INIT_ARM_STACK_SIZE	2048
 
 	.text
-	.align	0
+	.align	2
 
 /*
  * On entry for	FreeBSD	boot ABI:
@@ -373,7 +373,7 @@ VA_TO_PA_POINTER(Lpagetable, boot_pt1)
 
 .Lmainreturned:
 	.asciz	"main()	returned"
-	.align	0
+	.align	2
 
 	.bss
 svcstk:
@@ -390,7 +390,7 @@ boot_pt1:
 	.space	L1_TABLE_SIZE
 
 	.text
-	.align	0
+	.align	2
 
 .Lcpufuncs:
 	.word	_C_LABEL(cpufuncs)
@@ -443,11 +443,11 @@ ASENTRY_NP(mpentry)
 	adr	r0, .Lmpreturned
 	b	_C_LABEL(panic)
 	/* NOTREACHED */
+END(mpentry)
 
 .Lmpreturned:
 	.asciz	"init_secondary() returned"
-	.align	0
-END(mpentry)
+	.align	2
 #endif
 
 ENTRY_NP(cpu_halt)
@@ -525,7 +525,7 @@ END(sigcode)
 	.word	SYS_sigreturn
 	.word	SYS_exit
 
-	.align	0
+	.align	2
 	.global	_C_LABEL(esigcode)
 		_C_LABEL(esigcode):
 

Modified: head/sys/arm/include/asm.h
==============================================================================
--- head/sys/arm/include/asm.h	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/include/asm.h	Fri Jan  2 23:46:26 2015	(r276596)
@@ -46,7 +46,7 @@
 #define	_ASM_LABEL(x)	x
 
 #ifndef _ALIGN_TEXT
-# define _ALIGN_TEXT .align 0
+# define _ALIGN_TEXT .align 2
 #endif
 
 #if defined(__ARM_EABI__) && !defined(_STANDALONE)
@@ -129,11 +129,11 @@
 	pclabel: add	got, got, pc
 #ifdef __thumb__
 #define	GOT_INITSYM(gotsym,pclabel) \
-	.align 0;		\
+	.align 2;		\
 	gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) - (pclabel+4)
 #else
 #define	GOT_INITSYM(gotsym,pclabel) \
-	.align 0;		\
+	.align 2;		\
 	gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) - (pclabel+8)
 #endif
 

Modified: head/sys/arm/include/profile.h
==============================================================================
--- head/sys/arm/include/profile.h	Fri Jan  2 23:27:16 2015	(r276595)
+++ head/sys/arm/include/profile.h	Fri Jan  2 23:46:26 2015	(r276596)
@@ -60,7 +60,7 @@ typedef u_long	fptrdiff_t;
 
 #define	MCOUNT								\
 	__asm__(".text");						\
-	__asm__(".align	0");						\
+	__asm__(".align	2");						\
 	__asm__(".type	__mcount ,%function");				\
 	__asm__(".global	__mcount");				\
 	__asm__("__mcount:");						\


More information about the svn-src-head mailing list