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.
This commit is contained in:
Jan Beulich
2022-04-07 08:16:29 +02:00
parent 13d414afa0
commit 0f47cb17d1
4 changed files with 24 additions and 1 deletions

View File

@@ -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 ();

View File

@@ -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

View File

@@ -3,3 +3,4 @@
.text
.inst 0x3619194c
.inst 0xd503201f, 0xd503201f, 0xd503201f

View File

@@ -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