mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-30 00:52:16 +08:00
[AArch64] Don't try to align insn in non-executale section
2015-04-27 Renlin Li <renlin.li@arm.com> gas/ * config/tc-aarch64.c (s_aarch64_inst): Don't align code for non-text section. (md_assemble): Likewise, move the align code outside the loop.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2015-04-27 Renlin Li <renlin.li@arm.com>
|
||||||
|
|
||||||
|
* config/tc-aarch64.c (s_aarch64_inst): Don't align code for non-text
|
||||||
|
section.
|
||||||
|
(md_assemble): Likewise, move the align code outside the loop.
|
||||||
|
|
||||||
2015-04-24 Jim Wilson <jim.wilson@linaro.org>
|
2015-04-24 Jim Wilson <jim.wilson@linaro.org>
|
||||||
|
|
||||||
* config/tc-aarch64.c (aarch64_cpus): Add CRC and CRYPTO features
|
* config/tc-aarch64.c (aarch64_cpus): Add CRC and CRYPTO features
|
||||||
|
@ -1858,10 +1858,9 @@ s_aarch64_inst (int ignored ATTRIBUTE_UNUSED)
|
|||||||
/* Sections are assumed to start aligned. In executable 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 symbol pending. So we only align the address during
|
||||||
MAP_DATA --> MAP_INSN transition.
|
MAP_DATA --> MAP_INSN transition.
|
||||||
For other sections, this is not guaranteed, align it anyway. */
|
For other sections, this is not guaranteed. */
|
||||||
enum mstate mapstate = seg_info (now_seg)->tc_segment_info_data.mapstate;
|
enum mstate mapstate = seg_info (now_seg)->tc_segment_info_data.mapstate;
|
||||||
if (!need_pass_2 && ((subseg_text_p (now_seg) && mapstate == MAP_DATA)
|
if (!need_pass_2 && subseg_text_p (now_seg) && mapstate == MAP_DATA)
|
||||||
|| !subseg_text_p (now_seg)))
|
|
||||||
frag_align_code (2, 0);
|
frag_align_code (2, 0);
|
||||||
|
|
||||||
#ifdef OBJ_ELF
|
#ifdef OBJ_ELF
|
||||||
@ -5690,6 +5689,14 @@ md_assemble (char *str)
|
|||||||
|
|
||||||
init_operand_error_report ();
|
init_operand_error_report ();
|
||||||
|
|
||||||
|
/* 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. */
|
||||||
|
enum mstate mapstate = seg_info (now_seg)->tc_segment_info_data.mapstate;
|
||||||
|
if (!need_pass_2 && subseg_text_p (now_seg) && mapstate == MAP_DATA)
|
||||||
|
frag_align_code (2, 0);
|
||||||
|
|
||||||
saved_cond = inst.cond;
|
saved_cond = inst.cond;
|
||||||
reset_aarch64_instruction (&inst);
|
reset_aarch64_instruction (&inst);
|
||||||
inst.cond = saved_cond;
|
inst.cond = saved_cond;
|
||||||
@ -5705,15 +5712,6 @@ md_assemble (char *str)
|
|||||||
dump_opcode_operands (opcode);
|
dump_opcode_operands (opcode);
|
||||||
#endif /* DEBUG_AARCH64 */
|
#endif /* DEBUG_AARCH64 */
|
||||||
|
|
||||||
/* 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 && ((subseg_text_p (now_seg) && mapstate == MAP_DATA)
|
|
||||||
|| !subseg_text_p (now_seg)))
|
|
||||||
frag_align_code (2, 0);
|
|
||||||
|
|
||||||
mapping_state (MAP_INSN);
|
mapping_state (MAP_INSN);
|
||||||
|
|
||||||
inst_base = &inst.base;
|
inst_base = &inst.base;
|
||||||
|
Reference in New Issue
Block a user