linux/include/asm-arm/arch-l7200
Daniel Jacobowitz 6a39dd6222 [ARM] 3759/2: Remove uses of %?
Patch from Daniel Jacobowitz

The ARM kernel has several uses of asm("foo%?").  %? is a GCC internal
modifier used to output conditional execution predicates.  However, no
version of GCC supports conditionalizing asm statements.  GCC 4.2 will
correctly expand %? to the empty string in user asms.  Earlier versions may
reuse the condition from the previous instruction.  In 'if (foo) asm
("bar%?");' this is somewhat likely to be right... but not reliable.

So, the only safe thing to do is to remove the uses of %?.  I believe
the tlbflush.h occurances were supposed to be removed before, based
on the comment about %? not working at the top of that file.

Old versions of GCC could omit branches around user asms if the asm didn't
mark the condition codes as clobbered.  This problem hasn't been seen on any
recent (3.x or 4.x) GCC, but it could theoretically happen.  So, where
%? was removed a cc clobber was added.

Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-09-20 14:58:35 +01:00
..
aux_reg.h [ARM] Include asm/hardware.h instead of asm/arch/hardware.h 2005-11-16 14:51:20 +00:00
debug-macro.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dma.h [ARM] Remove definition of MAX_DMA_CHANNELS to zero 2006-01-04 15:51:51 +00:00
entry-macro.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gp_timers.h [ARM] Include asm/hardware.h instead of asm/arch/hardware.h 2005-11-16 14:51:20 +00:00
gpio.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hardware.h [ARM] Move FLUSH_BASE macros to asm/arch/memory.h 2006-04-07 13:22:21 +01:00
io.h [ARM] 3759/2: Remove uses of %? 2006-09-20 14:58:35 +01:00
irqs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memory.h [ARM] Move FLUSH_BASE macros to asm/arch/memory.h 2006-04-07 13:22:21 +01:00
pmpcon.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial_l7200.h [SERIAL] typo: buad -> baud 2006-06-05 10:45:30 +01:00
serial.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sib.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys-clock.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
system.h [ARM] Cleanup ARM includes 2006-01-03 17:39:34 +00:00
time.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
timex.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uncompress.h [SERIAL] typo: buad -> baud 2006-06-05 10:45:30 +01:00
vmalloc.h [PATCH] ARM: cleanup vmalloc start/offset macros 2005-05-03 12:20:29 +01:00