From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27583 invoked by alias); 27 Feb 2013 03:17:11 -0000 Received: (qmail 27467 invoked by uid 22791); 27 Feb 2013 03:17:10 -0000 X-SWARE-Spam-Status: No, hits=-5.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_SPAMHAUS_DROP,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-pb0-f48.google.com (HELO mail-pb0-f48.google.com) (209.85.160.48) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 27 Feb 2013 03:16:55 +0000 Received: by mail-pb0-f48.google.com with SMTP id wy12so74809pbc.7 for ; Tue, 26 Feb 2013 19:16:54 -0800 (PST) X-Received: by 10.66.251.162 with SMTP id zl2mr5258930pac.36.1361935014822; Tue, 26 Feb 2013 19:16:54 -0800 (PST) Received: from pebble.twiddle.net (50-194-63-110-static.hfc.comcastbusiness.net. [50.194.63.110]) by mx.google.com with ESMTPS id pp1sm265271pac.7.2013.02.26.19.16.53 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 26 Feb 2013 19:16:53 -0800 (PST) From: Richard Henderson To: libc-ports@sourceware.org Cc: Joseph Myers Subject: [PATCH 13/26] arm: Store lr in r2 around GET_TLS Date: Wed, 27 Feb 2013 03:17:00 -0000 Message-Id: <1361934986-17018-14-git-send-email-rth@twiddle.net> In-Reply-To: <1361934986-17018-1-git-send-email-rth@twiddle.net> References: <1361934986-17018-1-git-send-email-rth@twiddle.net> X-IsSubscribed: yes Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2013-02/txt/msg00079.txt.bz2 Rather than on the stack. --- * sysdeps/unix/sysv/linux/arm/nptl/vfork.S (SAVE_PID): Save lr to r2 around the GET_TLS call. * sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S (SAVE_PID): Likewise. --- ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S | 8 +++----- ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S b/ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S index bc0a771..cd51122 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S +++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S @@ -19,12 +19,10 @@ /* Save the PID value. */ #define SAVE_PID \ - str lr, [sp, #-4]!; /* Save LR. */ \ - cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (lr, 0); \ + mov r2, lr; /* Save LR. */ \ + cfi_register (lr, r2); \ GET_TLS; \ - ldr lr, [sp], #4; /* Restore LR. */ \ - cfi_adjust_cfa_offset (-4); \ + mov lr, r2; /* Restore LR. */ \ cfi_restore (lr); \ NEGOFF_ADJ_BASE2(r2, r0, PID_OFFSET); /* Save the TLS addr in r2. */ \ ldr r3, NEGOFF_OFF1(r2, PID_OFFSET); /* Load the saved PID. */ \ diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S b/ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S index 3c0ef78..4007081 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S +++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S @@ -19,12 +19,10 @@ /* Save the PID value. */ #define SAVE_PID \ - str lr, [sp, #-4]!; /* Save LR. */ \ - cfi_adjust_cfa_offset (4); \ - cfi_rel_offset (lr, 0); \ + mov r2, lr; /* Save LR. */ \ + cfi_register (lr, r2); \ GET_TLS; \ - ldr lr, [sp], #4; /* Restore LR. */ \ - cfi_adjust_cfa_offset (-4); \ + mov lr, r2; /* Restore LR. */ \ cfi_restore (lr); \ NEGOFF_ADJ_BASE2(r2, r0, PID_OFFSET); /* Save the TLS addr in r2. */ \ ldr r3, NEGOFF_OFF1(r2, PID_OFFSET); /* Load the saved PID. */ \ -- 1.8.1.2