diff options
author | Renlin Li <renlin.li@arm.com> | 2015-04-07 18:10:33 +0100 |
---|---|---|
committer | Jiong Wang <jiong.wang@arm.com> | 2015-04-07 18:10:33 +0100 |
commit | a97902de74aba337b2ba28ff8f322f5b4a3602bf (patch) | |
tree | a6a215e843880e640bc5c76455ece27b844969ea /gas/config/tc-aarch64.c | |
parent | 9f6dbe2bbbdcc3694f264878e10c6b80285b4608 (diff) | |
download | gdb-a97902de74aba337b2ba28ff8f322f5b4a3602bf.zip gdb-a97902de74aba337b2ba28ff8f322f5b4a3602bf.tar.gz gdb-a97902de74aba337b2ba28ff8f322f5b4a3602bf.tar.bz2 |
[AArch64] use subseg_text_p to check .text
2015-04-07 Renlin Li <renlin.li@arm.com>
gas/
* config/tc-aarch64.c (mapping_state): Use subseg_text_p.
(s_aarch64_inst): Likewise.
(md_assemble): Likewise.
Diffstat (limited to 'gas/config/tc-aarch64.c')
-rw-r--r-- | gas/config/tc-aarch64.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 2163d53..5492ff4 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -1472,8 +1472,8 @@ mapping_state (enum mstate state) record_alignment (now_seg, 2); #define TRANSITION(from, to) (mapstate == (from) && state == (to)) - if (TRANSITION (MAP_UNDEFINED, MAP_DATA) && now_seg != text_section) - /* Emit MAP_DATA within text section in order. Otherwise, it will be + if (TRANSITION (MAP_UNDEFINED, MAP_DATA) && !subseg_text_p (now_seg)) + /* Emit MAP_DATA within executable section in order. Otherwise, it will be evaluated later in the next else. */ return; else if (TRANSITION (MAP_UNDEFINED, MAP_INSN)) @@ -1855,13 +1855,13 @@ s_aarch64_inst (int ignored ATTRIBUTE_UNUSED) return; } - /* Sections are assumed to start aligned. In text section, there is no + /* Sections are assumed to start aligned. In executable section, there is no MAP_DATA symbol pending. So we only align the address during MAP_DATA --> MAP_INSN transition. For other sections, this is not guaranteed, align it anyway. */ enum mstate mapstate = seg_info (now_seg)->tc_segment_info_data.mapstate; - if (!need_pass_2 && ((now_seg == text_section && mapstate == MAP_DATA) - || now_seg != text_section)) + if (!need_pass_2 && ((subseg_text_p (now_seg) && mapstate == MAP_DATA) + || !subseg_text_p (now_seg))) frag_align_code (2, 0); #ifdef OBJ_ELF @@ -5705,14 +5705,14 @@ md_assemble (char *str) dump_opcode_operands (opcode); #endif /* DEBUG_AARCH64 */ - /* Sections are assumed to start aligned. In text section, there is no + /* Sections are assumed to start aligned. In executable section, there is no MAP_DATA symbol pending. So we only align the address during MAP_DATA --> MAP_INSN transition. For other sections, this is not guaranteed, align it anyway. */ enum mstate mapstate = seg_info (now_seg)->tc_segment_info_data.mapstate; - if (!need_pass_2 && ((now_seg == text_section && mapstate == MAP_DATA) - || now_seg != text_section)) - frag_align_code (2, 0); + if (!need_pass_2 && ((subseg_text_p (now_seg) && mapstate == MAP_DATA) + || !subseg_text_p (now_seg))) + frag_align_code (2, 0); mapping_state (MAP_INSN); |