.nop and .nops generate code, not data. Hence them invoking
md_cons_align() is at best inappropriate. In fact it actually gets in
the of x86'es state maintenance involving i386_cons_align().
md_flush_pending_output ();
#endif
-#ifdef md_cons_align
- md_cons_align (1);
-#endif
-
SKIP_WHITESPACE ();
expression (&exp);
demand_empty_rest_of_line ();
md_flush_pending_output ();
#endif
-#ifdef md_cons_align
- md_cons_align (1);
-#endif
-
SKIP_WHITESPACE ();
expression (&exp);
/* Note - this expression is tested for an absolute value in
.*: Assembler messages:
-.*:4: Warning: `constant directive` skips -malign-branch-boundary on `jnc`
+.*:5: Warning: `constant directive` skips -malign-branch-boundary on `jnc`
+[a-f0-9]+: f3 c3 repz ret
+[a-f0-9]+: c3 ret
+[a-f0-9]+: f3 ff d0 repz call \*%eax
+
+[a-f0-9]+ <directive>:
+ +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: 0f ae e8 lfence
+ +[a-f0-9]+: ff d0 call \*%eax
+ +[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
+ +[a-f0-9]+: 83 0c 24 00 orl \$0x0,\(%esp\)
+ +[a-f0-9]+: 0f ae e8 lfence
+ +[a-f0-9]+: c3 ret
#pass
call *%eax
.data
.byte 0
+
+ .text
+directive:
+ .nop
+ call *%eax
+ .nops 3
+ ret