binutils-gdb/gas/doc
H.J. Lu 3ae729d5a4 x86: Rewrite NOP generation for fill and alignment
Rewrite NOP generation for fill and code alignment by:

1. Add a 11-byte NOP with another 0x66 prefix.
2. Remove the multi-byte NOP entries which consist of 2 instructions.
3. Select proper NOPs based on ISA and processor tuning.
4. Generate multiple NOPs with the longer NOPs first followed by the
shorter NOP.
5. Use jump for larger NOP padding:
   a. > 8 bytes (2 NOPs) in 16-bit mode.
   b. > 14 bytes (2 NOPs) for older processors.
   c. > 77 bytes (7 NOPs) for newer processors.
6. Update MAX_MEM_FOR_RS_ALIGN_CODE to 4095.

	PR gas/22874
	* config/tc-i386.c (f32_5): Removed.
	(f32_8): Likewise.
	(f32_9): Likewise.
	(f32_10): Likewise.
	(f32_11): Likewise.
	(f32_12): Likewise.
	(f32_13): Likewise.
	(f32_14): Likewise.
	(f16_5): Likewise.
	(f16_6): Likewise.
	(f16_7): Likewise.
	(f16_8): Likewise.
	(jump_31): Likewise.
	(alt64_11): Likewise.
	(alt64_patt): Likewise.
	(jump_disp8): New.
	(jump32_disp32): Likewise.
	(jump16_disp32): Likewise.
	(alt_11): Likewise.
	(f32_patt): Updated.
	(f16_patt): Likewise.
	(alt_patt): Add alt_11.
	(i386_align_code): Merged with ...
	(i386_generate_nops): This.  Rewritten.
	(fits_in_imm7): Moved before i386_generate_nops.
	(fits_in_imm31): Likewise.
	* config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Updated to
	4095.
	(i386_align_code): Removed.
	(HANDLE_ALIGN): Rewritten with i386_generate_nops.
	* doc/as.texinfo: Update limits of control byte for x86 .nops
	directive.
	* testsuite/gas/i386/i386.exp: Run nops-7 and x86-64-nops-7.
	* gas/testsuite/gas/i386/noavx-3.l: Updated.
	* gas/testsuite/gas/i386/nop-1.d: Likewise.
	* gas/testsuite/gas/i386/nop-1.s: Likewise.
	* gas/testsuite/gas/i386/nop-2.d: Likewise.
	* gas/testsuite/gas/i386/nop-2.s: Likewise.
	* gas/testsuite/gas/i386/nop-3.d: Likewise.
	* gas/testsuite/gas/i386/nop-4.d: Likewise.
	* gas/testsuite/gas/i386/nop-5.d: Likewise.
	* gas/testsuite/gas/i386/nop-5.s: Likewise.
	* gas/testsuite/gas/i386/nop-6.d: Likewise.
	* gas/testsuite/gas/i386/nop-bad-1.l: Likewise.
	* gas/testsuite/gas/i386/nops-1-core2.d: Likewise.
	* gas/testsuite/gas/i386/nops-1-i386-i686.d: Likewise.
	* gas/testsuite/gas/i386/nops-1-i386.d: Likewise.
	* gas/testsuite/gas/i386/nops-1-i686.d: Likewise.
	* gas/testsuite/gas/i386/nops-1-k8.d: Likewise.
	* gas/testsuite/gas/i386/nops-1.d: Likewise.
	* gas/testsuite/gas/i386/nops-2-core2.d: Likewise.
	* gas/testsuite/gas/i386/nops-2-i386.d: Likewise.
	* gas/testsuite/gas/i386/nops-2.d: Likewise.
	* gas/testsuite/gas/i386/nops-3-i386.d: Likewise.
	* gas/testsuite/gas/i386/nops-3-i686.d: Likewise.
	* gas/testsuite/gas/i386/nops-3.d: Likewise.
	* gas/testsuite/gas/i386/nops-4-i386.d: Likewise.
	* gas/testsuite/gas/i386/nops-4-i686.d: Likewise.
	* gas/testsuite/gas/i386/nops-4.d: Likewise.
	* gas/testsuite/gas/i386/nops-4a-i686.d: Likewise.
	* gas/testsuite/gas/i386/nops-5-i686.d: Likewise.
	* gas/testsuite/gas/i386/nops-5.d: Likewise.
	* gas/testsuite/gas/i386/nops-6.d: Likewise.
	* gas/testsuite/gas/i386/nops16-1.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nop-1.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nop-2.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nop-5.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-1-core2.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-1-g64.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-1-k8.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-1-pentium.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-1.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-2.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-3.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-4-core2.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-4-k8.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-4.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-5-k8.d: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-5.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise.
	* gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d: Likewise.
	* gas/testsuite/gas/i386/nops-7.d: New file.
	* gas/testsuite/gas/i386/nops-7.s: Likewise.
	* gas/testsuite/gas/i386/x86-64-nops-7.d: Likewise.
2018-03-07 04:18:56 -08:00
..
all.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
as.texinfo x86: Rewrite NOP generation for fill and alignment 2018-03-07 04:18:56 -08:00
c-aarch64.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-alpha.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-arc.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-arm.texi Clarify .arch_extension possible values 2018-02-20 12:49:37 +00:00
c-avr.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-bfin.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-cr16.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-cris.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-d10v.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-d30v.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-epiphany.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-h8300.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-hppa.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-i370.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-i386.texi x86: Add -O[2|s] assembler command-line options 2018-02-27 07:36:43 -08:00
c-i860.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-i960.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-ia64.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-ip2k.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-lm32.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-m32c.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-m32r.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-m68hc11.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-m68k.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-metag.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-microblaze.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-mips.texi GAS/doc: Correct `.set nomips16e2' directive description syntax 2018-01-22 21:09:50 +00:00
c-mmix.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-msp430.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-mt.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-nds32.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-nios2.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-ns32k.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-pdp11.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-pj.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-ppc.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-pru.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-riscv.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-rl78.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-rx.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-s390.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-score.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-sh64.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-sh.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-sparc.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-tic6x.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-tic54x.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-tilegx.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-tilepro.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-v850.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-vax.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-visium.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-wasm32.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-xc16x.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-xgate.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-xstormy16.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-xtensa.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-z8k.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
c-z80.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
fdl.texi
h8.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
internals.texi Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
Makefile.am Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
Makefile.in Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30