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.
next prev parent 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).