public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: "H. J. Lu" <hjl@lucon.org>
To: James E Wilson <wilson@specifixinc.com>
Cc: binutils@sources.redhat.com
Subject: Re: PATCH: Disable hint in B unit for Montecito
Date: Thu, 17 Feb 2005 13:05:00 -0000	[thread overview]
Message-ID: <20050217044311.GA26612@lucon.org> (raw)
In-Reply-To: <20050217020214.GA24401@lucon.org>

On Wed, Feb 16, 2005 at 06:02:14PM -0800, H. J. Lu wrote:
> On Wed, Feb 16, 2005 at 03:50:56PM -0800, James E Wilson wrote:
> > On Wed, 2005-02-16 at 09:02, H. J. Lu wrote:
> > > +	  else if (strcmp (idesc->name, "hint") == 0)
> > > +	    {
> > > +	      if (required_unit == IA64_UNIT_B
> > > +		  && md.hint_b != hint_b_ok)
> > > +		insn_unit = IA64_UNIT_I;
> > > +	      else
> > > +		insn_unit = required_unit;
> > > +	    }
> > 
> > It isn't OK to change units like this.  This will lead to assembler
> > errors when explicit mode is used.  This example for instance
> >         .explicit
> > {       .bbb
> >         hint @pause
> >         hint @pause
> >         hint @pause
> > }
> > gives me
> > aretha$ ./as-new tmp.s
> > tmp.s: Assembler messages:
> > tmp.s:3: Error: `hint.i' does not fit into BBB template
> > which may be confusing to the end user.
> > 
> [...]
> > Since b is always at the end of a template, or followed by another b,
> > there are no unit changes we can make here.  The only thing we can do is
> > emit a warning/error, same as in md_assemble, and then emit the hint.b
> > instruction that the user asked for.
> > 
> > I don't know if this effects the linux kernel compilation.  If it does,
> > then we might need to make this a warning instead of an error by
> > default.
> 
> It shouldn't be a problem. We can change the kernel if needed.
> 

Unfortunately, it is trickier than I thought. With 2.6 kernel, my
old change works OK. My new change doesn't work. Jim, do you have
any suggestions?


H.J.
----
[hjl@gnu-2 hint-2]$ cat 2.s
        .global del_timer_sync#
del_timer_sync:
        hint @pause
        ;;
        .mib
        nop 0
        cmp.ne p14, p15 = r32, r17
        (p14) br.cond.dpnt foo
        hint @pause
        ;;
[hjl@gnu-2 hint-2]$
/export/build/linux/binutils-branch/build-ia64-linux/gas/as-new -o 2.o
2.s
[hjl@gnu-2 hint-2]$ gcc -c 2.s
2.s: Assembler messages:
2.s:10: Error: hint in B unit can't be used
[hjl@gnu-2 hint-2]$
/export/build/linux/binutils-branch/build-ia64-linux/gas/as-new -o 2.o
2.s
[hjl@gnu-2 hint-2]$ objdump -d 2.o

2.o:     file format elf64-ia64-little

Disassembly of section .text:

0000000000000000 <del_timer_sync>:
   0:   0a 00 00 80 01 00       [MMI]       hint.m 0x0;;
   6:   00 00 00 02 00 e0                   nop.m 0x0
   c:   01 8a 38 e0                         cmp.eq p15,p14=r32,r17
  10:   d6 01 00 00 c0 10       [BBB] (p14) br.cond.dpnt.few 10
<del_timer_sync+0x10>
  16:   00 00 00 00 10 00                   nop.b 0x0
  1c:   00 00 00 20                         nop.b 0x0
  20:   0d 00 00 00 01 00       [MFI]       nop.m 0x0
  26:   00 00 00 02 00 00                   nop.f 0x0
  2c:   00 00 06 00                         hint.i 0x0;;
[hjl@gnu-2 hint-2]$ gcc -c 2.s -Wa,-mhint.b=ok
[hjl@gnu-2 hint-2]$ objdump -d 2.o

2.o:     file format elf64-ia64-little

Disassembly of section .text:

0000000000000000 <del_timer_sync>:
   0:   0a 00 00 80 01 00       [MMI]       hint.m 0x0;;
   6:   00 00 00 02 00 e0                   nop.m 0x0
   c:   01 8a 38 e0                         cmp.eq p15,p14=r32,r17
  10:   d7 01 00 00 c0 10       [BBB] (p14) br.cond.dpnt.few 10
<del_timer_sync+0x10>
  16:   00 00 00 02 10 00                   hint.b 0x0
  1c:   00 00 00 20                         nop.b 0x0;;


H.J.

  reply	other threads:[~2005-02-17  4:43 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-17  0:10 H. J. Lu
2005-02-17  3:37 ` James E Wilson
2005-02-17 12:37   ` H. J. Lu
2005-02-17 13:05     ` H. J. Lu [this message]
2005-02-17 21:42       ` H. J. Lu
2005-02-17 21:47         ` H. J. Lu
2005-02-18  0:13         ` James E Wilson
2005-02-18  2:05           ` H. J. Lu
2005-02-18  4:43             ` James E Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050217044311.GA26612@lucon.org \
    --to=hjl@lucon.org \
    --cc=binutils@sources.redhat.com \
    --cc=wilson@specifixinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).