[ARM] Orion NAND: Make asm volatile avoid GCC pushing ldrd out of the loop
authorSimon Kagstrom <simon.kagstrom@netinsight.net>
Thu, 20 Aug 2009 07:19:53 +0000 (09:19 +0200)
committerNicolas Pitre <nico@cam.org>
Mon, 24 Aug 2009 15:56:00 +0000 (11:56 -0400)
commit94da210af4978b94cb70318bd1b282a73c50b175
tree804b77b50f7aba63d416f0a579405879daeb42b6
parentc55bf102b675c94edef006ce487d909669221d90
[ARM] Orion NAND: Make asm volatile avoid GCC pushing ldrd out of the loop

GCC 4.3.3 and 4.4.1 happily moves the dword load instruction out of the
loop in orion_nand_read_buf. This patch makes the instruction volatile
to avoid the issue. I've discussed this at gcc-help, refer to the thread
at

  http://gcc.gnu.org/ml/gcc-help/2009-08/msg00187.html

The early clobber is added to avoid the destination registers and the
source register overlapping.

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
drivers/mtd/nand/orion_nand.c