s_aarch64_inst (int ignored ATTRIBUTE_UNUSED)
 {
   expressionS exp;
+  unsigned n = 0;
 
 #ifdef md_flush_pending_output
   md_flush_pending_output ();
          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 ();
 
 
 0+ <.*>:
    0:  3619194c        tbz     w12, #3, 2328 <\.text\+0x2328>
+ *[0-9a-f]*:   d503201f        nop
+ *[0-9a-f]*:   d503201f        nop
+ *[0-9a-f]*:   d503201f        nop
 
 
 .text
        .inst   0x3619194c
+       .inst   0xd503201f, 0xd503201f, 0xd503201f
 
--- /dev/null
+#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