diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2009-07-21 17:50:21 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2009-07-21 17:50:21 +0000 |
commit | 711eedefee89e6a9cb45e4967a523a7f9d516751 (patch) | |
tree | 8c5a4909031f2b16ed1883562bbf8083af0d6d9c /gas/config/tc-i386.c | |
parent | 1caf2c519abe91ba39180d491e176c38c77ba61c (diff) | |
download | gdb-711eedefee89e6a9cb45e4967a523a7f9d516751.zip gdb-711eedefee89e6a9cb45e4967a523a7f9d516751.tar.gz gdb-711eedefee89e6a9cb45e4967a523a7f9d516751.tar.bz2 |
gas/
2009-07-21 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10420
* config/tc-i386.c (i386_align_code): Tune for 32bit nops in
64bit.
(i386_target_format): Set cpu_arch_isa_flags.bitfield.cpulm
for 64bit.
gas/testsuite/
2009-07-21 H.J. Lu <hongjiu.lu@intel.com>
PR gas/10420
* gas/i386/i386.exp: Run x86-64-nops-1-pentium.
* gas/i386/x86-64-nops-1-pentium.d: New.
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index d00424a..42a95ff 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1042,8 +1042,16 @@ i386_align_code (fragS *fragP, int count) { /* If the padding is less than 15 bytes, we use the normal ones. Otherwise, we use a jump instruction and adjust - its offset. */ - if (count < 15) + its offset. */ + int limit; + + /* For 64bit, the limit is 3 bytes. */ + if (flag_code == CODE_64BIT + && fragP->tc_frag_data.isa_flags.bitfield.cpulm) + limit = 3; + else + limit = 15; + if (count < limit) memcpy (fragP->fr_literal + fragP->fr_fix, patt[count - 1], count); else @@ -7935,6 +7943,7 @@ i386_target_format (void) cpu_arch_isa_flags.bitfield.cpummx= 1; cpu_arch_isa_flags.bitfield.cpusse = 1; cpu_arch_isa_flags.bitfield.cpusse2 = 1; + cpu_arch_isa_flags.bitfield.cpulm = 1; } if (cpu_flags_all_zero (&cpu_arch_tune_flags)) { |