From patchwork Mon Oct 27 07:59:38 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Pinski X-Patchwork-Id: 3424 Received: (qmail 30573 invoked by alias); 27 Oct 2014 08:03:15 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 30521 invoked by uid 89); 27 Oct 2014 08:03:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 X-HELO: mail-ie0-f182.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NdYIGfwKfDSDTFlAjqTtCNHgzinFLp6KdtzosIWwCWQ=; b=XvLRUILmG0ux5P6PRiitqZ4fXT4gnvLCPgoDgV/C/1eoC1cYFjAOSro6lKTnptTSN/ fU4fHb/rW8jdKbYjV1EqkqGbm89Zdpa6vBh8FZkmS4oMjbXUq3yHJNrWSQ0uZzMKEoqV IBzll4OXndhavVk8XkjvMUzWgEupwZoo29ZiLHOngZZg+oB1OuTy/mDmFvs8zWRl+1dC AMI0zJpEpWatrNmB1PBBgfcquIschPUCjGNXO6PystC6fve654ftpigB+aVqQ5Ke50Zh E8+dt3Ev9wu4Zi4Qp/bhMs9rIo2RZnQKRu21ZBi629YlqdkaOPczJGHg0Udv631GdfNP cqsw== X-Gm-Message-State: ALoCoQkRZcF2Cco/rPl+DQrGGBI/wy63JNf6l+jQBDw+aQsoeQuKNSXb9YJXcdPWED15S4Wr1/ru X-Received: by 10.107.27.2 with SMTP id b2mr392701iob.70.1414396991796; Mon, 27 Oct 2014 01:03:11 -0700 (PDT) From: Andrew Pinski To: libc-alpha@sourceware.org Cc: Andrew Pinski Subject: [PATCH 14/29] [AARCH64] Use PTR_* in start.S Date: Mon, 27 Oct 2014 00:59:38 -0700 Message-Id: <1414396793-9005-15-git-send-email-apinski@cavium.com> In-Reply-To: <1414396793-9005-1-git-send-email-apinski@cavium.com> References: <1414396793-9005-1-git-send-email-apinski@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. --- sysdeps/aarch64/start.S | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S index 35d603a..dfa0622 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 . */ +#include + /* 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. @@ -53,26 +55,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,