common/board_f: remove XTRN_DECLARE_GLOBAL_DATA_PTR dead code
The XTRN_DECLARE_GLOBAL_DATA_PTR declarations in ppc code are permanently commented out, so there are no users for this macro: #if 1 #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 \ gd_t *gd #endif Remove all references to this macro, but add a documentation note regarding the possibility of using plain global data for the GD pointer. Signed-off-by: Ovidiu Panait <ovpanait@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
a70c75caba
commit
181cbd4017
@ -92,12 +92,6 @@ struct arch_global_data {
|
|||||||
|
|
||||||
#include <asm-generic/global_data.h>
|
#include <asm-generic/global_data.h>
|
||||||
|
|
||||||
#if 1
|
|
||||||
#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r2")
|
#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 \
|
|
||||||
gd_t *gd
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __ASM_GBL_DATA_H */
|
#endif /* __ASM_GBL_DATA_H */
|
||||||
|
@ -59,18 +59,7 @@
|
|||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/log2.h>
|
#include <linux/log2.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* Pointer to initial global data area
|
|
||||||
*
|
|
||||||
* Here we initialize it if needed.
|
|
||||||
*/
|
|
||||||
#ifdef XTRN_DECLARE_GLOBAL_DATA_PTR
|
|
||||||
#undef XTRN_DECLARE_GLOBAL_DATA_PTR
|
|
||||||
#define XTRN_DECLARE_GLOBAL_DATA_PTR /* empty = allocate here */
|
|
||||||
DECLARE_GLOBAL_DATA_PTR = (gd_t *)(CONFIG_SYS_INIT_GD_ADDR);
|
|
||||||
#else
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO(sjg@chromium.org): IMO this code should be
|
* TODO(sjg@chromium.org): IMO this code should be
|
||||||
|
@ -36,6 +36,11 @@ On most architectures the global data pointer is stored in a register.
|
|||||||
|
|
||||||
The sandbox, x86_64, and Xtensa are notable exceptions.
|
The sandbox, x86_64, and Xtensa are notable exceptions.
|
||||||
|
|
||||||
|
Current implementation uses a register for the GD pointer because this results
|
||||||
|
in smaller code. However, using plain global data for the GD pointer would be
|
||||||
|
possible too (and simpler, as it does not require the reservation of a specific
|
||||||
|
register for it), but the resulting code is bigger.
|
||||||
|
|
||||||
Clang for ARM does not support assigning a global register. When using Clang
|
Clang for ARM does not support assigning a global register. When using Clang
|
||||||
gd is defined as an inline function using assembly code. This adds a few bytes
|
gd is defined as an inline function using assembly code. This adds a few bytes
|
||||||
to the code size.
|
to the code size.
|
||||||
|
Loading…
Reference in New Issue
Block a user