[PATCH] Orion NAND: Make dword load asm volatile to avoid GCC optimizing it away
Simon Kagstrom
simon.kagstrom at netinsight.net
Fri Aug 21 02:07:53 EDT 2009
On Thu, 20 Aug 2009 12:14:47 -0400 (EDT)
Nicolas Pitre <nico at cam.org> wrote:
> > Yes, it works fine with 4.3.3 and 4.4.1 with this change. So the
> > updated patch can be found below. I belive the early clobber should be
> > there though, since (from the ARM architecture reference manual):
> >
> > If <addressing_mode> performs base register write-back and the base
> > register <Rn> is one of the two destination registers of the
> > instruction, the results are UNPREDICTABLE.
> >
> > it works fine without the early clobber as well, but I'd feel more safe
> > having it in.
>
> But this isn't the case here. We don't perform any writeback.
> You get a writeback when you have an addressing mode of the form:
>
> insn rd, [rn, rm]!
> insn rd, [rn, #off]!
> insn rd, [rn], #off
>
> but not with:
>
> insn rd, [rn, #off]
OK, I'm still a beginner on the ARM architecture, so thanks for the
explanation!
> Still the early clobber shouldn't have any adverse effect either, unlike
> the memory clobber.
>
> Acked-by: Nicolas Pitre <nico at marvell.com>
>
> Unless the MTD guys are going to pick this patch and push it to Linus
> soon I'll carry it in the Orion git repo.
Great, thanks!
// Simon
More information about the linux-mtd
mailing list