]> git.dujemihanovic.xyz Git - u-boot.git/commit
Prepare U-Boot for gcc-4.x: fix global data pointer initialization
authorWolfgang Denk <wd@pollux.denx.de>
Tue, 30 Aug 2005 12:13:23 +0000 (14:13 +0200)
committerWolfgang Denk <wd@pollux.denx.de>
Tue, 30 Aug 2005 12:13:23 +0000 (14:13 +0200)
commitbce84c4dab92062bc5ae7608c4a2508803b1225e
tree55060df62dd4a227b5eca5b212daa1d560e6404c
parentf7fbf269feb10af44001236b1bef984fb0e8fff1
Prepare U-Boot for gcc-4.x: fix global data pointer initialization

The global data pointer, stored in r29 before relocation to RAM, was
not initialized to a correct value. This happened because the pointer
declaration was done locally in the scope of the board_init_f()
function. What follows is a cite from gcc.info, 5.37, "Variables in
Specified Registers":
    ...
    The compiler's data flow analysis is capable of determining where
    the specified registers contain live values, and where they are
    available for other uses. Stores into local register variables
    may be deleted when they appear to be dead according to dataflow
    analysis. References to local register variables may be deleted
    or moved or simplified.
    ...
Moving the global data declaration to global scope solved the
problem.
lib_ppc/board.c