From: Jan Beulich Date: Fri, 1 Dec 2023 07:28:20 +0000 (+0100) Subject: gas: no md_cons_align() for .nop{,s} X-Git-Tag: binutils-2_42~760 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=54fc4573887bfba8bd2ac0cb2eb9259e94ba178d;p=thirdparty%2Fbinutils-gdb.git gas: no md_cons_align() for .nop{,s} .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(). --- diff --git a/gas/read.c b/gas/read.c index 826156db3fe..76ef86c523c 100644 --- a/gas/read.c +++ b/gas/read.c @@ -3466,10 +3466,6 @@ s_nop (int ignore ATTRIBUTE_UNUSED) md_flush_pending_output (); #endif -#ifdef md_cons_align - md_cons_align (1); -#endif - SKIP_WHITESPACE (); expression (&exp); demand_empty_rest_of_line (); @@ -3519,10 +3515,6 @@ s_nops (int ignore ATTRIBUTE_UNUSED) 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 diff --git a/gas/testsuite/gas/i386/align-branch-6.e b/gas/testsuite/gas/i386/align-branch-6.e index c3378353ef7..c959492cf65 100644 --- a/gas/testsuite/gas/i386/align-branch-6.e +++ b/gas/testsuite/gas/i386/align-branch-6.e @@ -1,2 +1,2 @@ .*: Assembler messages: -.*:4: Warning: `constant directive` skips -malign-branch-boundary on `jnc` +.*:5: Warning: `constant directive` skips -malign-branch-boundary on `jnc` diff --git a/gas/testsuite/gas/i386/lfence-byte.d b/gas/testsuite/gas/i386/lfence-byte.d index 6d9a8893085..f0236a8278d 100644 --- a/gas/testsuite/gas/i386/lfence-byte.d +++ b/gas/testsuite/gas/i386/lfence-byte.d @@ -27,4 +27,13 @@ Disassembly of section .text: +[a-f0-9]+: f3 c3 repz ret +[a-f0-9]+: c3 ret +[a-f0-9]+: f3 ff d0 repz call \*%eax + +[a-f0-9]+ : + +[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 diff --git a/gas/testsuite/gas/i386/lfence-byte.s b/gas/testsuite/gas/i386/lfence-byte.s index 0a05e6405b9..570a1c6ef35 100644 --- a/gas/testsuite/gas/i386/lfence-byte.s +++ b/gas/testsuite/gas/i386/lfence-byte.s @@ -21,3 +21,10 @@ _start: call *%eax .data .byte 0 + + .text +directive: + .nop + call *%eax + .nops 3 + ret