[AArch64] Record instruction alignment for .inst directive

2015-05-06  Renlin Li  <renlin.li@arm.com>

  gas/
    * config/tc-aarch64.c (mapping_state): Recording alignment before exit.

  gas/testsuite/
    * gas/aarch64/codealign_1.s: New.
    * gas/aarch64/codealign_1.d: New.
This commit is contained in:
Renlin Li 2015-05-06 12:18:19 +01:00 committed by Jiong Wang
parent 03bbcd1c7a
commit 448eb63d72
5 changed files with 30 additions and 5 deletions

View File

@ -1,3 +1,7 @@
2015-05-06 Renlin Li <renlin.li@arm.com>
* config/tc-aarch64.c (mapping_state): Recording alignment before exit.
2015-05-05 Renlin Li <renlin.li@arm.com>
* config/tc-aarch64.c (aarch64_init_frag): Always generate mapping

View File

@ -1460,17 +1460,17 @@ mapping_state (enum mstate state)
{
enum mstate mapstate = seg_info (now_seg)->tc_segment_info_data.mapstate;
if (mapstate == state)
/* The mapping symbol has already been emitted.
There is nothing else to do. */
return;
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 (mapstate == state)
/* The mapping symbol has already been emitted.
There is nothing else to do. */
return;
#define TRANSITION(from, to) (mapstate == (from) && state == (to))
if (TRANSITION (MAP_UNDEFINED, MAP_DATA) && !subseg_text_p (now_seg))
/* Emit MAP_DATA within executable section in order. Otherwise, it will be

View File

@ -1,3 +1,8 @@
2015-05-06 Renlin Li <renlin.li@arm.com>
* gas/aarch64/codealign_1.s: New.
* gas/aarch64/codealign_1.d: New.
2015-05-05 Renlin Li <renlin.li@arm.com>
* gas/aarch64/mapping_5.d: New.

View File

@ -0,0 +1,13 @@
#objdump: --section-headers
# Minimum code alignment should be set.
.*: +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,3 @@
.text
.byte 0xf
.inst 0xd503201f