]> err.no Git - linux-2.6/commit
[PATCH] Work around ppc64 compiler bug
authorAnton Blanchard <anton@samba.org>
Tue, 10 Jan 2006 07:21:20 +0000 (18:21 +1100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 10 Jan 2006 16:32:35 +0000 (08:32 -0800)
commitc8d52465f95c4187871f8e65666c07806ca06d41
tree873a77cf0b47c92fbdc5cb8dd8baa7583c26bbfd
parent115b2ce1c3b974e43e45fa6c9e20cd7271a01dff
[PATCH] Work around ppc64 compiler bug

In the process of optimising our per cpu data code, I found a ppc64
compiler bug that has been around forever. Basically the current
RELOC_HIDE can end up trashing r30. Details of the bug can be found at

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25572

This bug is present in all compilers before 4.1. It is masked by the
fact that our current per cpu data code is inefficient and causes
other loads that end up marking r30 as used.

A workaround identified by Alan Modra is to use the =r asm constraint
instead of =g.

Signed-off-by: Anton Blanchard <anton@samba.org>
[ Verified that this makes no real difference on x86[-64] */
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/compiler-gcc.h