forked from Imagelibrary/binutils-gdb
PR29991, MicroMIPS flag erased after align directives
PR 29991 * config/tc-mips.c (s_align): Call file_mips_check_options and mips_mark_labels. * testsuite/gas/mips/align-after-label.s, * testsuite/gas/mips/mips-align-after-label.d, * testsuite/gas/mips/micromips-align-after-label.d: New test. * testsuite/gas/mips/mips.exp: Run it.
This commit is contained in:
@@ -16262,6 +16262,8 @@ s_align (int x ATTRIBUTE_UNUSED)
|
||||
int temp, fill_value, *fill_ptr;
|
||||
long max_alignment = 28;
|
||||
|
||||
file_mips_check_options ();
|
||||
|
||||
/* o Note that the assembler pulls down any immediately preceding label
|
||||
to the aligned address.
|
||||
o It's not documented but auto alignment is reinstated by
|
||||
@@ -16286,6 +16288,9 @@ s_align (int x ATTRIBUTE_UNUSED)
|
||||
}
|
||||
else
|
||||
fill_ptr = 0;
|
||||
|
||||
mips_mark_labels ();
|
||||
|
||||
if (temp)
|
||||
{
|
||||
segment_info_type *si = seg_info (now_seg);
|
||||
|
||||
3
gas/testsuite/gas/mips/align-after-label.s
Normal file
3
gas/testsuite/gas/mips/align-after-label.s
Normal file
@@ -0,0 +1,3 @@
|
||||
seg1:
|
||||
.align 2
|
||||
ADDIU $0, $0, 1
|
||||
13
gas/testsuite/gas/mips/micromips-align-after-label.d
Normal file
13
gas/testsuite/gas/mips/micromips-align-after-label.d
Normal file
@@ -0,0 +1,13 @@
|
||||
#objdump: -dr --show-raw-insn
|
||||
#name: microMIPSr3 (align after label)
|
||||
#as: -mips32r3 -32 -mmicromips -EB
|
||||
#source: align-after-label.s
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
[0-9a-f]+ <seg1>:
|
||||
[ 0-9a-f]+: 4c02 addiu zero,zero,1
|
||||
[ 0-9a-f]+: 0c00 nop
|
||||
#pass
|
||||
12
gas/testsuite/gas/mips/mips-align-after-label.d
Normal file
12
gas/testsuite/gas/mips/mips-align-after-label.d
Normal file
@@ -0,0 +1,12 @@
|
||||
#objdump: -dr --show-raw-insn
|
||||
#name: MIPS32r3 (align after label)
|
||||
#as: -mips32r3 -32 -mno-micromips -EB
|
||||
#source: align-after-label.s
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
[0-9a-f]+ <seg1>:
|
||||
[ 0-9a-f]+: 24000001 li zero,1
|
||||
#pass
|
||||
@@ -1518,6 +1518,8 @@ if { [istarget mips*-*-vxworks*] } {
|
||||
run_dump_test "align2"
|
||||
run_dump_test "align2-el"
|
||||
run_dump_test "align3"
|
||||
run_dump_test "mips-align-after-label"
|
||||
run_dump_test "micromips-align-after-label"
|
||||
run_dump_test "odd-float"
|
||||
run_dump_test "insn-opts"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user