[AArch64] Set the minimum alignment on code segments

gas/
2015-03-10  Matthew Wahab  <matthew.wahab@arm.com>

	* config/tc-aarch64.c (mapping_state): Set minimum alignment for
	code sections.

gas/testsuite
2015-03-10  Matthew Wahab  <matthew.wahab@arm.com>

	* gas/aarch64/codealign.d: Add test for code section alignment.
	* gas/aarch64/codealign.s: New file.
This commit is contained in:
Jiong Wang 2015-03-10 11:20:57 +00:00
parent a5721eddd1
commit a578ef7ed4
5 changed files with 36 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-03-10 Matthew Wahab <matthew.wahab@arm.com>
* config/tc-aarch64.c (mapping_state): Set minimum alignment for
code sections.
2015-03-10 Nick Clifton <nickc@redhat.com>
PR gas/17852

View File

@ -1478,7 +1478,14 @@ mapping_state (enum mstate state)
/* The mapping symbol has already been emitted.
There is nothing else to do. */
return;
else if (TRANSITION (MAP_UNDEFINED, MAP_DATA))
if (state == MAP_INSN)
/* AArch64 instructions require 4-byte alignment. When emitting
instructions into any section, record the appropriate section
alignment. */
record_alignment (now_seg, 2);
if (TRANSITION (MAP_UNDEFINED, MAP_DATA))
/* This case will be evaluated later in the next else. */
return;
else if (TRANSITION (MAP_UNDEFINED, MAP_INSN))

View File

@ -1,3 +1,8 @@
2015-03-10 Matthew Wahab <matthew.wahab@arm.com>
* gas/aarch64/codealign.d: Add test for code section alignment.
* gas/aarch64/codealign.s: New file.
2015-03-04 Richard Sandiford <richard.sandiford@arm.com>
PR gas/17843

View File

@ -0,0 +1,16 @@
#objdump: --section-headers
# Minimum code alignment should be set.
# This test is only valid on ELF based ports.
#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
.*: +file format.*aarch64.*
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text .* .* .* .* 2\*\*2
.*CODE.*
1 \.data .* .* .* .* 2\*\*0
.*DATA.*
2 \.bss .* .* .* .* 2\*\*0
.*

View File

@ -0,0 +1,2 @@
.text
nop