diff options
author | Jan Beulich <jbeulich@suse.com> | 2023-12-01 08:28:20 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2023-12-01 08:28:20 +0100 |
commit | 54fc4573887bfba8bd2ac0cb2eb9259e94ba178d (patch) | |
tree | ec32ca471baf49b05a681ab8f37f6de95a39e69e /gas | |
parent | 175ce60f0ff7f3423b49c0d41a88a0c51a08ac03 (diff) | |
download | gdb-54fc4573887bfba8bd2ac0cb2eb9259e94ba178d.zip gdb-54fc4573887bfba8bd2ac0cb2eb9259e94ba178d.tar.gz gdb-54fc4573887bfba8bd2ac0cb2eb9259e94ba178d.tar.bz2 |
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().
Diffstat (limited to 'gas')
-rw-r--r-- | gas/read.c | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/align-branch-6.e | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/lfence-byte.d | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/lfence-byte.s | 7 |
4 files changed, 17 insertions, 9 deletions
@@ -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 c337835..c959492 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 6d9a889..f0236a8 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]+ <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 diff --git a/gas/testsuite/gas/i386/lfence-byte.s b/gas/testsuite/gas/i386/lfence-byte.s index 0a05e64..570a1c6 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 |