Messages in this thread | | | Date | Sat, 20 Jan 2024 00:22:59 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 1/2] x86: Remove dynamic NOP selection |
| |
On January 19, 2024 10:58:56 PM PST, Thorsten Glaser <tg@debian.org> wrote: >Peter Zijlstra dixit: > >>-/* generic versions from gas >[…] >>- 3: leal 0x00(%esi),%esi >>- 4: leal 0x00(,%esi,1),%esi >>- 6: leal 0x00000000(%esi),%esi >>- 7: leal 0x00000000(,%esi,1),%esi > >vs. > >>+ * Generic 32bit nops from GAS: >[…] >>+ * 3: leal 0x0(%esi),%esi >>+ * 4: leal 0x0(%esi,%eiz,1),%esi >>+ * 5: leal %ds:0x0(%esi,%eiz,1),%esi >>+ * 6: leal 0x0(%esi),%esi >>+ * 7: leal 0x0(%esi,%eiz,1),%esi >>+ * 8: leal %ds:0x0(%esi,%eiz,1),%esi > >I think there’s some mistake introduced. The BYTES_* are >identical for e.g. #7, but %eiz must be wrong, it’s not >a register. Indeed, gas (on Debian bullseye) does not >assemble that either. > >(Awful AT&T syntax aside…) > >bye, >//mirabilos
%eiz was something that binutils used to put in when disassembling certain redundant encodings with SIB at some point.
| |