linux/arch/arm/kernel
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
..
Makefile [ARM] Add Integrator support for glibc outb() and friends 2006-08-28 12:47:05 +01:00
apm.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
armksyms.c [ARM] nommu: uaccess tweaks 2006-06-28 17:59:46 +01:00
arthur.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
asm-offsets.c [ARM] Set bit 4 on section mappings correctly depending on CPU 2006-06-29 18:24:21 +01:00
bios32.c [ARM] arch/arm/kernel/bios32.c: no need to set isa_bridge 2006-07-13 16:14:26 +01:00
calls.S [ARM] 3338/1: old ABI compat: sys_socketcall 2006-02-16 22:36:13 +00:00
compat.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
compat.h [ARM] 3365/1: [cleanup] header for compat.c exported functions 2006-03-15 23:17:30 +00:00
crunch-bits.S [ARM] 3370/2: ep93xx: add crunch support 2006-06-28 17:55:01 +01:00
crunch.c [ARM] 3370/2: ep93xx: add crunch support 2006-06-28 17:55:01 +01:00
debug.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
dma-isa.c [ARM] arch/arm/kernel/dma-isa.c: named initializers 2006-05-16 22:09:46 +01:00
dma.c [ARM] Move DMA exports to be next to each function 2006-01-04 15:52:45 +00:00
ecard.c [ARM] 3739/1: genirq updates: irq_chip, add and use irq_chip.name 2006-08-01 22:26:25 +01:00
entry-armv.S [ARM] Add ARM irqtrace support 2006-09-20 14:58:35 +01:00
entry-common.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry-header.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fiq.c [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
head-common.S [ARM] nommu: start-up code 2006-03-27 14:58:25 +01:00
head-nommu.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S [ARM] 3757/1: Use PROCINFO_INITFUNC in head.S 2006-08-18 15:34:46 +01:00
init_task.c
io.c [ARM] Fix compiler warnings for memcpy_toio/memcpy_fromio/memset_io 2005-09-24 10:42:06 +01:00
irq.c [ARM] 3739/1: genirq updates: irq_chip, add and use irq_chip.name 2006-08-01 22:26:25 +01:00
isa.c [ARM] Arrange for isa.c to use named initialisers 2006-08-28 12:44:03 +01:00
iwmmxt-notifier.c [ARM] 3707/1: iwmmxt: use the generic thread notifier infrastructure 2006-07-01 19:56:48 +01:00
iwmmxt.S [ARM] 3707/1: iwmmxt: use the generic thread notifier infrastructure 2006-07-01 19:56:48 +01:00
module.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
process.c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2006-07-02 15:04:12 -07:00
ptrace.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ptrace.h
semaphore.c [ARM] 3103/1: ARM EABI: stack pointer must be 64-bit aligned (part 2) 2006-01-14 16:18:09 +00:00
setup.c [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
signal.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
signal.h [ARM] nommu: fixups for the exception vectors 2006-03-27 15:18:50 +01:00
smp.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sys_arm.c [ARM] noMMU: block sys_fork in nommu mode 2006-03-21 22:03:19 +00:00
sys_oabi-compat.c [ARM] 3338/1: old ABI compat: sys_socketcall 2006-02-16 22:36:13 +00:00
time.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
traps.c [ARM] 3759/2: Remove uses of %? 2006-09-20 14:58:35 +01:00
vmlinux.lds.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00