mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
nios2: fix r15 issue for gcc4
The "-ffixed-r15" option doesn't work well for gcc4. Since we don't use gp for small data with option "-G0", we can use gp as global data pointer. This allows compiler to use r15. It is necessary for gcc4 to work properly. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: Scott McNutt <smcnutt@psyent.com>
This commit is contained in:
committed by
Scott McNutt
parent
661ba14051
commit
0df01fd3d7
@@ -84,7 +84,7 @@ gd_t *global_data;
|
||||
: : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x) : "r0");
|
||||
#elif defined(CONFIG_NIOS2)
|
||||
/*
|
||||
* r15 holds the pointer to the global_data, r8 is call-clobbered
|
||||
* gp holds the pointer to the global_data, r8 is call-clobbered
|
||||
*/
|
||||
#define EXPORT_FUNC(x) \
|
||||
asm volatile ( \
|
||||
@@ -92,11 +92,11 @@ gd_t *global_data;
|
||||
#x ":\n" \
|
||||
" movhi r8, %%hi(%0)\n" \
|
||||
" ori r8, r0, %%lo(%0)\n" \
|
||||
" add r8, r8, r15\n" \
|
||||
" add r8, r8, gp\n" \
|
||||
" ldw r8, 0(r8)\n" \
|
||||
" ldw r8, %1(r8)\n" \
|
||||
" jmp r8\n" \
|
||||
: : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "r15");
|
||||
: : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "gp");
|
||||
#elif defined(CONFIG_M68K)
|
||||
/*
|
||||
* d7 holds the pointer to the global_data, a0 is a call-clobbered
|
||||
|
Reference in New Issue
Block a user