mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
x86: extend LEA's segment override warning
For one both possible forms should be warned about. And then, to guard against future surprises, qualify the original opcode check by excluding VEX/EVEX-like templates.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2020-02-XX Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
|
* config/tc-i386.c (process_operands): Also check insn prefix
|
||||||
|
for ineffectual segment override warning. Don't cover possible
|
||||||
|
VEX/EVEX encoded insns there.
|
||||||
|
* testsuite/gas/i386/lea.s, testsuite/gas/i386/lea.d,
|
||||||
|
testsuite/gas/i386/lea.e: New.
|
||||||
|
* testsuite/gas/i386/i386.exp: Run new test.
|
||||||
|
|
||||||
2020-02-14 H.J. Lu <hongjiu.lu@intel.com>
|
2020-02-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR gas/25438
|
PR gas/25438
|
||||||
|
@ -7164,9 +7164,10 @@ duplicate:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i.tm.base_opcode == 0x8d /* lea */
|
if ((i.seg[0] || i.prefix[SEG_PREFIX])
|
||||||
&& i.seg[0]
|
&& !quiet_warnings
|
||||||
&& !quiet_warnings)
|
&& i.tm.base_opcode == 0x8d /* lea */
|
||||||
|
&& !is_any_vex_encoding(&i.tm))
|
||||||
as_warn (_("segment override on `%s' is ineffectual"), i.tm.name);
|
as_warn (_("segment override on `%s' is ineffectual"), i.tm.name);
|
||||||
|
|
||||||
/* If a segment was explicitly specified, and the specified segment
|
/* If a segment was explicitly specified, and the specified segment
|
||||||
|
@ -65,6 +65,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
|
|||||||
run_dump_test "intelok"
|
run_dump_test "intelok"
|
||||||
run_dump_test "prefix"
|
run_dump_test "prefix"
|
||||||
run_list_test "prefix32" "-al"
|
run_list_test "prefix32" "-al"
|
||||||
|
run_dump_test "lea"
|
||||||
run_dump_test "amd"
|
run_dump_test "amd"
|
||||||
run_dump_test "katmai"
|
run_dump_test "katmai"
|
||||||
run_dump_test "jump"
|
run_dump_test "jump"
|
||||||
|
12
gas/testsuite/gas/i386/lea.d
Normal file
12
gas/testsuite/gas/i386/lea.d
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#objdump: -dw
|
||||||
|
#name: i386 LEA-like warnings
|
||||||
|
#warning_output: lea.e
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+ <start>:
|
||||||
|
[ ]*[0-9a-f]+:[ ]+36 8d 00[ ]+lea[ ]+%ss:\(%eax\),%eax
|
||||||
|
[ ]*[0-9a-f]+:[ ]+36 8d 00[ ]+lea[ ]+%ss:\(%eax\),%eax
|
||||||
|
#pass
|
3
gas/testsuite/gas/i386/lea.e
Normal file
3
gas/testsuite/gas/i386/lea.e
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.*: Assembler messages:
|
||||||
|
.*:3: Warning: .* `lea' .*
|
||||||
|
.*:4: Warning: .* `lea' .*
|
4
gas/testsuite/gas/i386/lea.s
Normal file
4
gas/testsuite/gas/i386/lea.s
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.text
|
||||||
|
start:
|
||||||
|
lea %ss:(%eax), %eax
|
||||||
|
ss lea (%eax), %eax
|
Reference in New Issue
Block a user