From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH v3] ARM: Introduce patching of phys_to_virt and vice versa
Date: Wed, 10 Nov 2010 20:37:44 +0000 [thread overview]
Message-ID: <20101110203744.GE27571@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <alpine.LFD.2.00.1011101327520.13911@xanadu.home>
On Wed, Nov 10, 2010 at 03:23:50PM -0500, Nicolas Pitre wrote:
> > add rd, rn, #PHYS_OFFSET - PAGE_OFFSET
> >
> > and phys_to_virt() is:
> >
> > sub rd, rn, #PHYS_OFFSET - PAGE_OFFSET
>
> Does this work even if PHYS_OFFSET - PAGE_OFFSET goes negative?
Yes.
add rd, rn, #0xc0000000
sub rd, rn, #0x40000000
are identical operations. The operand is an 8 bit constant, zero padded,
rotated right by (in this case) 8 bits - there can be no sign extension.
> On Wed, 10 Nov 2010, Russell King - ARM Linux wrote:
> > Here's something which uses the above ideas (untested). I think this is
> > something we can (and should) do unconditionally for the !XIP cases.
>
> What do you mean by "unconditionally"?
For any machine where the v:p offset is respresentable. It means that
we increase the amount of testing, and actually this becomes the
standard way.
> > +2: cmp r4, r5
> > + ldrlo r7, [r4], #4
> > + ldrlo ip, [r7, r3]
> > + bic ip, ip, #0x000000ff
> > + bic ip, ip, #0x00000f00
> > + orr ip, ip, r6
>
> The above 3 insns could be replaced with:
>
> mov ip, ip, lsr #12
> orr ip, r6, ip, lsl #12
They could be, but it's not worth optimizing to that extent - we're
already hitting load delays for both of those ldr instructions that
this isn't going to be blindingly fast... at least there aren't
thousands of them to fixup.
next prev parent reply other threads:[~2010-11-10 20:37 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-05 18:40 [RFC PATCH v3] ARM: Introduce patching of phys_to_virt and vice versa Eric Miao
2010-11-07 16:48 ` Russell King - ARM Linux
2010-11-08 4:38 ` Nicolas Pitre
2010-11-08 11:49 ` Russell King - ARM Linux
2010-11-10 16:45 ` Russell King - ARM Linux
2010-11-10 17:55 ` Russell King - ARM Linux
2010-11-10 20:23 ` Nicolas Pitre
2010-11-10 20:37 ` Russell King - ARM Linux [this message]
2010-11-10 21:43 ` Nicolas Pitre
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=20101110203744.GE27571@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.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).