[PATCH] ia64: fix regression from fix for PR/803
Jan Beulich
JBeulich@novell.com
Mon May 23 16:05:00 GMT 2005
>2005-03-28 David Mosberger <davidm@hpl.hp.com>
> H.J. Lu <hongjiu.lu@intel.com>
>
> PR 803
> NEWS: Mention "-mtune=[itanium1|itanium2]".
>
> * config/tc-ia64.c (md): Add tune.
> (md_parse_option): Accepted "-mtune=[itanium1|itanium2]".
> (md_show_usage): Add "-mtune=[itanium1|itanium2]".
> (extra_goodness): Prefer M- and I-unit NOPs for itanium2. F and
> B unit NOPs are discouraged for McKinley-derived cores.
> (md_begin): Don't hardcode the "extra_goodness()" function in
> the comment...
This introduced a regression in that an M-, A-, or dynamic type instruction
followed by an X-type one would be, when at a bundle start, encoded in two
bundles rather than one.
I additionallly wonder whether M-unit NOPs shouldn't be preferred over I-
unit ones (by letting extra_goodness return 2 only for an M-unit match, but
1 for an I-unit match).
Built and tested on ia64-unknown-linux-gnu.
Jan
gas/
2005-05-23 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (md_begin): Don't try to match slot 2 of an MLX
template.
--- /home/jbeulich/src/binutils/mainline/2005-05-18/gas/config/tc-ia64.c 2005-05-09 08:31:38.000000000 +0200
+++ 2005-05-18/gas/config/tc-ia64.c 2005-05-23 15:43:10.368845760 +0200
@@ -7294,7 +7294,7 @@ md_begin ()
{
if (match (t, j, 1))
{
- if (match (t, k, 2))
+ if ((t == 2 && j == IA64_TYPE_X) || match (t, k, 2))
goodness = 3 + 3 + 3;
else
goodness = 3 + 3 + extra_goodness (t, 2);
@@ -7310,7 +7310,7 @@ md_begin ()
}
else if (match (t, i, 1))
{
- if (match (t, j, 2))
+ if ((t == 2 && i == IA64_TYPE_X) || match (t, j, 2))
goodness = 3 + 3;
else
goodness = 3 + extra_goodness (t, 2);
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils-mainline-ia64-mlx.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20050523/9320d3f1/attachment.ksh>
More information about the Binutils
mailing list