summaryrefslogtreecommitdiff
path: root/include/asm-ppc
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2008-02-14 22:43:22 +0100
committerWolfgang Denk <wd@denx.de>2008-02-14 22:43:22 +0100
commite7670f6c1e52ae6d2a43ff75a8bcfa7a5c86e47b (patch)
treec105ae64bb203f93e670ef11b3256a4a3086c0ad /include/asm-ppc
parent3c234efa693bc59906c2be55c7918ecbb55392ea (diff)
downloadu-boot-imx-e7670f6c1e52ae6d2a43ff75a8bcfa7a5c86e47b.zip
u-boot-imx-e7670f6c1e52ae6d2a43ff75a8bcfa7a5c86e47b.tar.gz
u-boot-imx-e7670f6c1e52ae6d2a43ff75a8bcfa7a5c86e47b.tar.bz2
PPC: Use r2 instead of r29 as global data pointer
R29 was an unlucky choice as with recent toolchains (gcc-4.2.x) gcc will refuse to use load/store multiple insns; instead, it issues a list of simple load/store instructions upon function entry and exit, resulting in bigger code size, which in turn makes the build for a few boards fail. Use r2 instead. Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'include/asm-ppc')
-rw-r--r--include/asm-ppc/global_data.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/asm-ppc/global_data.h b/include/asm-ppc/global_data.h
index aa6384c..bacd02d 100644
--- a/include/asm-ppc/global_data.h
+++ b/include/asm-ppc/global_data.h
@@ -163,7 +163,7 @@ typedef struct global_data {
#define GD_FLG_SILENT 0x00004 /* Silent mode */
#if 1
-#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r29")
+#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2")
#else /* We could use plain global data, but the resulting code is bigger */
#define XTRN_DECLARE_GLOBAL_DATA_PTR extern
#define DECLARE_GLOBAL_DATA_PTR XTRN_DECLARE_GLOBAL_DATA_PTR \