diff options
author | Jan Beulich <jbeulich@suse.com> | 2022-04-07 08:16:29 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2022-04-07 08:16:29 +0200 |
commit | 0f47cb17d14172a5250b2146b82583271280d170 (patch) | |
tree | c3834af0ffeeb5d1a00c3839307209f018dbf02c /gas | |
parent | 13d414afa06a6e290126dbebccdb5076cc6620b8 (diff) | |
download | gdb-0f47cb17d14172a5250b2146b82583271280d170.zip gdb-0f47cb17d14172a5250b2146b82583271280d170.tar.gz gdb-0f47cb17d14172a5250b2146b82583271280d170.tar.bz2 |
Arm64: arrange for line number emission for .inst
Just like insns encoded the more conventional way these should have line
number info associated with them.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/config/tc-aarch64.c | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/inst-directive.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/inst-directive.s | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/inst-dwarf.d | 15 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index a4ef652..cbebc6b 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -1982,6 +1982,7 @@ static void s_aarch64_inst (int ignored ATTRIBUTE_UNUSED) { expressionS exp; + unsigned n = 0; #ifdef md_flush_pending_output md_flush_pending_output (); @@ -2020,10 +2021,13 @@ s_aarch64_inst (int ignored ATTRIBUTE_UNUSED) unsigned int val = exp.X_add_number; exp.X_add_number = SWAP_32 (val); } - emit_expr (&exp, 4); + emit_expr (&exp, INSN_SIZE); + ++n; } while (*input_line_pointer++ == ','); + dwarf2_emit_insn (n * INSN_SIZE); + /* Put terminator back into stream. */ input_line_pointer--; demand_empty_rest_of_line (); diff --git a/gas/testsuite/gas/aarch64/inst-directive.d b/gas/testsuite/gas/aarch64/inst-directive.d index fa64ce8..36a135f 100644 --- a/gas/testsuite/gas/aarch64/inst-directive.d +++ b/gas/testsuite/gas/aarch64/inst-directive.d @@ -6,3 +6,6 @@ Disassembly of section \.text: 0+ <.*>: 0: 3619194c tbz w12, #3, 2328 <\.text\+0x2328> + *[0-9a-f]*: d503201f nop + *[0-9a-f]*: d503201f nop + *[0-9a-f]*: d503201f nop diff --git a/gas/testsuite/gas/aarch64/inst-directive.s b/gas/testsuite/gas/aarch64/inst-directive.s index e928362..1c2e9bc 100644 --- a/gas/testsuite/gas/aarch64/inst-directive.s +++ b/gas/testsuite/gas/aarch64/inst-directive.s @@ -3,3 +3,4 @@ .text .inst 0x3619194c + .inst 0xd503201f, 0xd503201f, 0xd503201f diff --git a/gas/testsuite/gas/aarch64/inst-dwarf.d b/gas/testsuite/gas/aarch64/inst-dwarf.d new file mode 100644 index 0000000..f5c0d35 --- /dev/null +++ b/gas/testsuite/gas/aarch64/inst-dwarf.d @@ -0,0 +1,15 @@ +#as: -gdwarf-2 +#name: Dwarf line number info for .inst +#objdump: -WL -w +#source: inst-directive.s + +.*:[ ]+file format .* + +Contents of the .debug_line section: + +CU: .*/inst-directive.s: +File name +Line number +Starting address.* +inst-directive.s +5 +0.* +inst-directive.s +6 +0x4.* +inst-directive.s +- +0x10 +#pass |