aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRenlin Li <renlin.li@arm.com>2015-04-07 18:10:33 +0100
committerJiong Wang <jiong.wang@arm.com>2015-04-07 18:10:33 +0100
commita97902de74aba337b2ba28ff8f322f5b4a3602bf (patch)
treea6a215e843880e640bc5c76455ece27b844969ea /gas
parent9f6dbe2bbbdcc3694f264878e10c6b80285b4608 (diff)
downloadbinutils-a97902de74aba337b2ba28ff8f322f5b4a3602bf.zip
binutils-a97902de74aba337b2ba28ff8f322f5b4a3602bf.tar.gz
binutils-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')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-aarch64.c18
2 files changed, 15 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c896dea..6f9118da 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2015-04-07 Renlin Li <renlin.li@arm.com>
+
+ * config/tc-aarch64.c (mapping_state): Use subseg_text_p.
+ (s_aarch64_inst): Likewise.
+ (md_assemble): Likewise.
+
2015-04-06 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Use bfd_putb64 to write uncompressed
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);