From 1f583bc2fcb1b5c4125faf8b8e815255b2b21b62 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 26 Jan 2021 08:18:39 -0800 Subject: [PATCH] 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. --- gas/ChangeLog | 8 ++++++++ gas/config/tc-nios2.c | 4 ---- gas/testsuite/gas/nios2/relax.d | 25 +++++++++++++++++++++++++ gas/testsuite/gas/nios2/relax.s | 5 +++++ 4 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 gas/testsuite/gas/nios2/relax.d create mode 100644 gas/testsuite/gas/nios2/relax.s diff --git a/gas/ChangeLog b/gas/ChangeLog index e76a5bf531a..b3eb7db8cf9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2021-01-26 H.J. Lu + + 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 * testsuite/gas/all/local-label-overflow.d: Use xfail rather than diff --git a/gas/config/tc-nios2.c b/gas/config/tc-nios2.c index eea6687fcc4..be4536caa8a 100644 --- a/gas/config/tc-nios2.c +++ b/gas/config/tc-nios2.c @@ -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; diff --git a/gas/testsuite/gas/nios2/relax.d b/gas/testsuite/gas/nios2/relax.d new file mode 100644 index 00000000000..ca01a4f926a --- /dev/null +++ b/gas/testsuite/gas/nios2/relax.d @@ -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 diff --git a/gas/testsuite/gas/nios2/relax.s b/gas/testsuite/gas/nios2/relax.s new file mode 100644 index 00000000000..ef417fdc33b --- /dev/null +++ b/gas/testsuite/gas/nios2/relax.s @@ -0,0 +1,5 @@ + .text + bne r4, r5, 1f + .zero 0x10000 +1: + ret -- 2.30.2