linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Diggs <kevdig@hypersurf.com>
To: linuxppc-dev@ozlabs.org
Subject: inline assembly & r0 SOS
Date: Tue, 05 Aug 2008 17:20:48 -0700	[thread overview]
Message-ID: <4898EE60.9080206@hypersurf.com> (raw)

Hi,

If I have:

inline unsigned int get_PLL_range(unsigned int range, unsigned int
         config)
{
unsigned int ret;

         /*
          * Turn r3 (range) into a rotate count for the selected range.
          * 0 -> 23, 1 -> 31
          */
         __asm__ __volatile__ (  "slwi %0,%0,3\n"
                                 "addi %0,%0,23\n"
                                 "rlwnm %0,%1,%0,30,31\n":
                 "=r"(ret):
                 "r"(config),"0"(range)
         );

         return ret;
}

in a header and the resultant code generated is:

.L58:
         li 0,1   # ratio,
         mr 29,0  # ret, ratio
#APP
         slwi 29,29,3     # ret
addi 29,29,21    # ret
rlwnm 29,28,29,27,31     # ret, ret

         slwi 0,0,3       # ret
addi 0,0,23      # ret
rlwnm 0,28,0,30,31       # ret, ret

#NO_APP

thats bad right? Because the "addi 0, 0, 23" will not work as expected 
because of the "special property" of r0. FYI:  The first three lines 
after the "#APP" are from a similar function get_PLL_ratio().

	Is there a way to blacklist r0?

kevin

             reply	other threads:[~2008-08-06  0:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-06  0:20 Kevin Diggs [this message]
2008-08-06  0:35 ` inline assembly & r0 SOS Benjamin Herrenschmidt
2008-08-06  0:41 ` Jeremy Kerr
2008-08-06  2:31   ` Kevin Diggs
2008-08-06  8:49     ` Andreas Schwab
2008-08-06 14:39       ` Segher Boessenkool

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=4898EE60.9080206@hypersurf.com \
    --to=kevdig@hypersurf.com \
    --cc=linuxppc-dev@ozlabs.org \
    /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 NNTP newsgroup(s).