From: Andrew Pinski <apin...@cavium.com>

To support ILP32 without much sources changes, this changes
sysdeps/aarch64/start.S to use the PTR_* macros which was defined
earlier.

* sysdeps/aarch64/start.S: Include sysdep.h
(_start): Use PTR_REG, PTR_SIZE macros.

Signed-off-by: Yury Norov <yno...@caviumnetworks.com>
---
 sysdeps/aarch64/start.S | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
index efe2474..9198c57 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -16,6 +16,8 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <sysdep.h>
+
 /* This is the canonical entry point, usually the first thing in the text
    segment.
 
@@ -25,7 +27,7 @@
 
    At this entry point, most registers' values are unspecified, except:
 
-   x0          Contains a function pointer to be registered with `atexit'.
+   x0/w0       Contains a function pointer to be registered with `atexit'.
                This is how the dynamic linker arranges to have DT_FINI
                functions called for shared libraries that have been loaded
                before this code runs.
@@ -52,26 +54,26 @@ _start:
        mov     x5, x0
 
        /* Load argc and a pointer to argv */
-       ldr     x1, [sp, #0]
-       add     x2, sp, #8
+       ldr     PTR_REG (1), [sp, #0]
+       add     x2, sp, #PTR_SIZE
 
        /* Setup stack limit in argument register */
        mov     x6, sp
 
 #ifdef SHARED
         adrp    x0, :got:main
-       ldr     x0, [x0, #:got_lo12:main]
+       ldr     PTR_REG (0), [x0, #:got_lo12:main]
 
         adrp    x3, :got:__libc_csu_init
-       ldr     x3, [x3, #:got_lo12:__libc_csu_init]
+       ldr     PTR_REG (3), [x3, #:got_lo12:__libc_csu_init]
 
         adrp    x4, :got:__libc_csu_fini
-       ldr     x4, [x4, #:got_lo12:__libc_csu_fini]
+       ldr     PTR_REG (4), [x4, #:got_lo12:__libc_csu_fini]
 #else
        /* Set up the other arguments in registers */
-       ldr     x0, =main
-       ldr     x3, =__libc_csu_init
-       ldr     x4, =__libc_csu_fini
+       ldr     PTR_REG (0), =main
+       ldr     PTR_REG (3), =__libc_csu_init
+       ldr     PTR_REG (4), =__libc_csu_fini
 #endif
 
        /* __libc_start_main (main, argc, argv, init, fini, rtld_fini,
-- 
2.7.4

Reply via email to