svn commit: r2181 - in trunk/yasm/modules: arch/x86 arch/x86/tests/gas32 arch/x86/tests/gas64 dbgfmts/dwarf2/tests/pass32 dbgfmts/dwarf2/tests/passwin64

peter at tortall.net peter at tortall.net
Fri Mar 20 00:36:51 PDT 2009


Author: peter
Date: Fri Mar 20 00:36:49 2009
New Revision: 2181

Modified:
   trunk/yasm/modules/arch/x86/tests/gas32/align32.hex
   trunk/yasm/modules/arch/x86/tests/gas64/align64.hex
   trunk/yasm/modules/arch/x86/x86arch.c
   trunk/yasm/modules/arch/x86/x86arch.h
   trunk/yasm/modules/arch/x86/x86cpu.gperf
   trunk/yasm/modules/dbgfmts/dwarf2/tests/pass32/dwarf32_testhd.hex
   trunk/yasm/modules/dbgfmts/dwarf2/tests/pass64/dwarf64_leb128.hex
   trunk/yasm/modules/dbgfmts/dwarf2/tests/passwin64/dwarfwin64_testhd.hex
Changeset:
   http://www.tortall.net/projects/yasm/changeset/2181

Log:
Update code generated for alignment padding for more recent processors.
Also match GAS behavior by using different NOP sequences for AMD and Intel.
Different "Long" NOP opcode sequences are used based on the below criteria.

Defaults in 32-bit mode:
 - CPU directive not used: backwards compatible (no long NOP opcodes)
 - CPU directive with Intel CPU >= 686: Intel guidelines, using long NOPs
 - CPU directive with AMD CPU >= K6: AMD guidelines, using long NOPs

Defaults in 64-bit mode:
 - CPU directive not used: Intel guidelines, using long NOPs
 - CPU directive with Intel CPU >= 686: Intel guidelines, using long NOPs
 - CPU directive with AMD CPU >= K6: AMD guidelines, using long NOPs

The above defaults may be overridden with these options to the CPU directive:
 - CPU basicnop: backwards compatible (no long NOP opcodes)
 - CPU intelnop: Intel guidelines, using long NOPs
 - CPU amdnop: AMD guidelines, using long NOPs

Suggested by: Brian Gladman <brg at gladman.plus.com>



More information about the yasm-cvs mailing list