kernel_optimize_test/arch
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
..
alpha [PATCH] arch/alpha: Use ARRAY_SIZE macro 2006-07-31 13:28:38 -07:00
arm [ARM] 3759/2: Remove uses of %? 2006-09-20 14:58:35 +01:00
arm26 [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
cris [PATCH] pcf8563: remove MOD_INC_USE_COUNT, MOD_DEC_USE_COUNT 2006-07-10 13:24:22 -07:00
frv [PATCH] FRV: Use the generic time stuff for FRV 2006-09-06 11:00:02 -07:00
h8300 [PATCH] irq-flags: H8300: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
i386 Revert mmiocfg heuristics and blacklist changes 2006-09-19 08:15:22 -07:00
ia64 [PATCH] syscall class hookup for all normal targets 2006-09-12 03:04:40 -04:00
m32r [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
m68k [PATCH] irq-flags: M68K: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
m68knommu [PATCH] irq-flags: M68KNOMMU: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
mips [MIPS] sparsemem: fix crash in show_mem 2006-07-13 21:26:22 +01:00
parisc [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00
powerpc Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-09-13 08:01:41 -07:00
ppc [POWERPC] update prep_defconfig 2006-09-13 18:30:08 +10:00
s390 [PATCH] syscall class hookup for all normal targets 2006-09-12 03:04:40 -04:00
sh [PATCH] sh: fix proc file removal for superh store queue module 2006-08-06 08:57:48 -07:00
sh64 sh64: Add a sane pm_power_off implementation. 2006-09-12 14:40:09 +09:00
sparc [SPARC]: Fix regression in sys_getdomainname() 2006-09-18 07:11:36 -07:00
sparc64 [SPARC]: Fix regression in sys_getdomainname() 2006-09-18 07:11:36 -07:00
um [PATCH] vDSO hash-style fix 2006-07-31 13:28:43 -07:00
v850 [PATCH] v850: call init_page_count() instead of set_page_count() 2006-07-31 13:28:38 -07:00
x86_64 Revert mmiocfg heuristics and blacklist changes 2006-09-19 08:15:22 -07:00
xtensa [PATCH] xtensa: ptrace: EXIT_ZOMBIE fix 2006-09-01 11:39:08 -07:00