mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
x86: respect {nooptimize} for LEA
Dropping a meaningless segment prefix occurs outside of optimize_encoding() and hence needs explicit checking for a request to avoid any optimizations.
This commit is contained in:
@ -8159,7 +8159,7 @@ process_operands (void)
|
||||
{
|
||||
if (!quiet_warnings)
|
||||
as_warn (_("segment override on `%s' is ineffectual"), insn_name (&i.tm));
|
||||
if (optimize)
|
||||
if (optimize && !i.no_optimize)
|
||||
{
|
||||
i.seg[0] = NULL;
|
||||
i.prefix[SEG_PREFIX] = 0;
|
||||
|
@ -10,6 +10,7 @@ Disassembly of section .text:
|
||||
0+ <start>:
|
||||
[ ]*[0-9a-f]+:[ ]+8d 04 08[ ]+lea[ ]+\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+8d 04 08[ ]+lea[ ]+\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+26 8d 04 01[ ]+lea[ ]+%es:\(%ecx,%eax(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+8d 48 01[ ]+lea[ ]+0x1\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8d 88 00 00 00 00[ ]+lea[ ]+0x0\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8d 0c 25 00 00 00 00[ ]+lea[ ]+0x0\(,(%eiz)?(,1)?\),%ecx
|
||||
@ -21,6 +22,7 @@ Disassembly of section .text:
|
||||
[ ]*[0-9a-f]+:[ ]+8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+64 8d 08[ ]+lea[ ]+%fs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+0f b7 c6[ ]+movzwl[ ]+%si,%eax
|
||||
[ ]*[0-9a-f]+:[ ]+0f b7 f6[ ]+movzwl[ ]+%si,%esi
|
||||
[ ]*[0-9a-f]+:[ ]+0f b7 c6[ ]+movzwl[ ]+%si,%eax
|
||||
|
@ -9,6 +9,7 @@ Disassembly of section .text:
|
||||
0+ <start>:
|
||||
[ ]*[0-9a-f]+:[ ]+36 8d 04 08[ ]+lea[ ]+%ss:\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+36 8d 04 08[ ]+lea[ ]+%ss:\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+26 8d 04 01[ ]+lea[ ]+%es:\(%ecx,%eax(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+8d 48 01[ ]+lea[ ]+0x1\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8d 88 00 00 00 00[ ]+lea[ ]+0x0\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8d 0c 25 00 00 00 00[ ]+lea[ ]+0x0\(,(%eiz)?(,1)?\),%ecx
|
||||
@ -20,6 +21,7 @@ Disassembly of section .text:
|
||||
[ ]*[0-9a-f]+:[ ]+8d 08[ ]+lea[ ]+\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+8d 08[ ]+lea[ ]+\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+65 8d 08[ ]+lea[ ]+%gs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+64 8d 08[ ]+lea[ ]+%fs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+67 8d 34[ ]+lea[ ]+\(%si\),%esi
|
||||
[ ]*[0-9a-f]+:[ ]+67 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
|
@ -1,4 +1,6 @@
|
||||
.*: Assembler messages:
|
||||
.*:3: Warning: .* `lea' .*
|
||||
.*:4: Warning: .* `lea' .*
|
||||
.*:19: Warning: .* `lea' .*
|
||||
.*:5: Warning: .* `lea' .*
|
||||
.*:20: Warning: .* `lea' .*
|
||||
.*:21: Warning: .* `lea' .*
|
||||
|
@ -2,6 +2,7 @@
|
||||
start:
|
||||
lea %ss:(%eax,%ecx), %eax
|
||||
ss lea (%eax,%ecx), %eax
|
||||
{nooptimize} es lea (%ecx,%eax), %eax
|
||||
|
||||
.allow_index_reg
|
||||
lea 1(%eax), %ecx
|
||||
@ -17,6 +18,7 @@ start:
|
||||
lea (%eax), %ecx
|
||||
lea 1-1(%eax), %ecx
|
||||
lea %gs:(%eax), %ecx
|
||||
{nooptimize} lea %fs:(%eax), %ecx
|
||||
|
||||
lea (%si), %eax
|
||||
lea (%si), %esi
|
||||
|
@ -10,6 +10,7 @@ Disassembly of section .text:
|
||||
0+ <start>:
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 04 08[ ]+lea[ ]+\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 04 08[ ]+lea[ ]+\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+26 67 66 8d 04 01[ ]+lea[ ]+%es:\(%ecx,%eax(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 48 01[ ]+lea[ ]+0x1\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 88 00 00 00 00[ ]+lea[ ]+0x0\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 0c 25 00 00 00 00[ ]+addr32 lea[ ]+0x0,%ecx
|
||||
@ -21,6 +22,7 @@ Disassembly of section .text:
|
||||
[ ]*[0-9a-f]+:[ ]+66 8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+64 67 66 8d 08[ ]+lea[ ]+%fs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 34[ ]+lea[ ]+\(%si\),%esi
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
|
@ -10,6 +10,7 @@ Disassembly of section .text:
|
||||
0+ <start>:
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 04 08[ ]+lea[ ]+\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 04 08[ ]+lea[ ]+\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+26 67 66 8d 04 01[ ]+lea[ ]+%es:\(%ecx,%eax(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 48 01[ ]+lea[ ]+0x1\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 88 00 00 00 00[ ]+lea[ ]+0x0\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 0c 25 00 00 00 00[ ]+addr32 lea[ ]+0x0,%ecx
|
||||
@ -21,6 +22,7 @@ Disassembly of section .text:
|
||||
[ ]*[0-9a-f]+:[ ]+66 8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8b c8[ ]+mov[ ]+%eax,%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+64 67 66 8d 08[ ]+lea[ ]+%fs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 34[ ]+lea[ ]+\(%si\),%esi
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
|
@ -10,6 +10,7 @@ Disassembly of section .text:
|
||||
0+ <start>:
|
||||
[ ]*[0-9a-f]+:[ ]+36 67 66 8d 04 08[ ]+lea[ ]+%ss:\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+36 67 66 8d 04 08[ ]+lea[ ]+%ss:\(%eax,%ecx(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+26 67 66 8d 04 01[ ]+lea[ ]+%es:\(%ecx,%eax(,1)?\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 48 01[ ]+lea[ ]+0x1\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 88 00 00 00 00[ ]+lea[ ]+0x0\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 0c 25 00 00 00 00[ ]+addr32 lea[ ]+0x0,%ecx
|
||||
@ -21,6 +22,7 @@ Disassembly of section .text:
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 08[ ]+lea[ ]+\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+67 66 8d 08[ ]+lea[ ]+\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+65 67 66 8d 08[ ]+lea[ ]+%gs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+64 67 66 8d 08[ ]+lea[ ]+%fs:\(%eax\),%ecx
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 34[ ]+lea[ ]+\(%si\),%esi
|
||||
[ ]*[0-9a-f]+:[ ]+66 8d 04[ ]+lea[ ]+\(%si\),%eax
|
||||
|
Reference in New Issue
Block a user