From: Grant Grundler <grundler@parisc-linux.org>
To: Joel Soete <soete.joel@scarlet.be>
Cc: Grant Grundler <grundler@parisc-linux.org>,
linux-parisc <linux-parisc@vger.kernel.org>
Subject: Re: in ccio_io_pdir_entry(),BUG_ON() seems to break gcc-4.2 optimization?
Date: Sat, 28 Jun 2008 14:23:47 -0600 [thread overview]
Message-ID: <20080628202347.GA23898@colo.lackof.org> (raw)
In-Reply-To: <K324MR$1963B6E59C4D4D716463AB17911CD186@scarlet.be>
On Thu, Jun 26, 2008 at 07:28:03AM +0100, Joel Soete wrote:
> Just for remind:
>
> Joel Soete wrote:
> >
> >
> [snip]
> >>> But this time, it seems not consider assembly:
> >>> asm volatile ("lci %%r0(%%sr1, %1), %0" : "=r" (ci) : "r"
> >>> (vba));
> >>> asm volatile ("extru %1,19,12,%0" : "+r" (ci) : "r" (ci));
> >>> asm volatile ("depw %1,15,12,%0" : "+r" (pa) : "r" (ci));
> >>>
> >>> as a 'volatile' block and insert line 1c:
>
> This seems to make better what I want:
> __asm__ __volatile__ (
> "lci %%r0(%%sr1, %2), %0\n"
> "\textru %0,19,12,%0\n"
> "\tdepw %0,15,12,%1\n"
> : "+r" (ci), "+r" (pa)
> : "r" (vba)
> : "memory"
Why the "memory"? This asm code isn't modifying memory at all.
> );
>
>
> in <ccio_map_sg>
> 200: 06 80 53 13 lci r0(sr1,r20),r19 | 200: 08 1a 02 54 copy r26,r20
> 204: d2 73 1a 74 extrw,u r19,19,12,r19 | 204: 06 a0 53 14 lci
> r0(sr1,r21),r20
> 208: 08 1a 02 5c copy r26,ret0 | 208: d2 94 1a 74 extrw,u
> r20,19,12,r20
> 20c: d7 93 0e 14 depw r19,15,12,ret0 | 20c: d7 94 0e 14 depw
> r20,15,12,ret0
> 210: 0e dc 12 80 stw ret0,0(r22) 210: 0e dc 12 80 stw ret0,0(r22)
> 214: 06 c0 12 80 fdc r0(r22) 214: 06 c0 12 80 fdc r0(r22)
> 218: 00 00 04 00 sync 218: 00 00 04 00 sync
>
> J.
>
> PS: I don't yet understand why kernel panicing when I try to get rid to
> reserve 'ci' variable and use in place a gr as r19 (even if clobbered), the
> produced object seems ok but resulting kernel panicing (even after a full
> rebuild after a make distclean???)
What's wrong with "ci" variable? It's just another register.
C compiler will allocate it and then we pass it to the asm().
And are you sure it's ok to use r19?
hth,
grant
>
next prev parent reply other threads:[~2008-06-28 20:23 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-26 6:28 in ccio_io_pdir_entry(),BUG_ON() seems to break gcc-4.2 optimization? Joel Soete
2008-06-28 20:23 ` Grant Grundler [this message]
2008-06-28 22:26 ` Joel Soete
2008-06-28 22:45 ` John David Anglin
2008-06-29 20:52 ` Grant Grundler
2008-06-30 18:28 ` Joel Soete
2008-07-02 4:28 ` Grant Grundler
2008-07-02 18:01 ` Joel Soete
2008-07-07 15:28 ` Grant Grundler
-- strict thread matches above, loose matches on Subject: below --
2008-07-08 9:04 Joel Soete
2008-06-20 6:37 Joel Soete
2008-06-15 12:37 in ccio_io_pdir_entry(), BUG_ON() " rubisher
2008-06-16 11:37 ` in ccio_io_pdir_entry(),BUG_ON() " rubisher
2008-06-19 16:04 ` in ccio_io_pdir_entry(), BUG_ON() " Grant Grundler
2008-06-19 19:44 ` Joel Soete
2008-06-19 22:48 ` John David Anglin
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=20080628202347.GA23898@colo.lackof.org \
--to=grundler@parisc-linux.org \
--cc=linux-parisc@vger.kernel.org \
--cc=soete.joel@scarlet.be \
/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