nios2: Don't disable relaxation with --gdwarf-N

GCC 11 passes --gdwarf-5 to assembler to enable DWARF5 debug info.  Don't
disable relaxation when --gdwarf-N is specified.  The assembler generated
debug information will treat the sequence of the relaxed instructions as
a single instruction.

	PR gas/27243
	* config/tc-nios2.c (md_begin): Don't disable relaxation with
	--gdwarf-N.
	* testsuite/gas/nios2/relax.d: New file.
	* testsuite/gas/nios2/relax.s: Likewise.
This commit is contained in:
H.J. Lu 2021-01-26 08:18:39 -08:00
parent 4ef367bffd
commit 1f583bc2fc
4 changed files with 38 additions and 4 deletions

View file

@ -1,3 +1,11 @@
2021-01-26 H.J. Lu <hongjiu.lu@intel.com>
PR gas/27243
* config/tc-nios2.c (md_begin): Don't disable relaxation with
--gdwarf-N.
* testsuite/gas/nios2/relax.d: New file.
* testsuite/gas/nios2/relax.s: Likewise.
2021-01-26 Alan Modra <amodra@gmail.com>
* testsuite/gas/all/local-label-overflow.d: Use xfail rather than

View file

@ -3643,10 +3643,6 @@ md_begin (void)
nios2_as_options.noat = FALSE;
nios2_as_options.nobreak = FALSE;
/* Debug information is incompatible with relaxation. */
if (debug_type != DEBUG_UNSPECIFIED)
nios2_as_options.relax = relax_none;
/* Initialize the alignment data. */
nios2_current_align_seg = now_seg;
nios2_last_label = NULL;

View file

@ -0,0 +1,25 @@
#source: relax.s
#as: --gdwarf-5
#objdump: -w -WL -dr --prefix-addresses --show-raw-insn
#name: NIOS2 relax with --gdwarf-5
# Test relaxation with assembler generated debug info.
.*: file format elf32-littlenios2
Contents of the .debug_line section:
CU: ./relax.s:
File +name +Line +number +Starting +address +View +Stmt
relax.s +2 +0 +x
relax.s +5 +0x10018 +x
relax.s +- +0x1001c
Disassembly of section .text:
0x00000000 21400526 beq r4,r5,0x00000018
0x00000004 0002e03a nextpc at
0x00000008 085fffc4 addi at,at,32767
0x0000000c 085fffc4 addi at,at,32767
0x00000010 08400484 addi at,at,18
0x00000014 0800683a jmp at
...
0x00010018 f800283a ret

View file

@ -0,0 +1,5 @@
.text
bne r4, r5, 1f
.zero 0x10000
1:
ret