]> sourceware.org Git - glibc.git/commitdiff
S390: Do not clobber R0 in 64-bit _dl_runtime_profile
authorIlya Leoshkevich <iii@linux.ibm.com>
Fri, 10 Aug 2018 07:07:43 +0000 (09:07 +0200)
committerStefan Liebler <stli@linux.ibm.com>
Fri, 10 Aug 2018 07:07:43 +0000 (09:07 +0200)
Preparation for the usage of R0 by __fentry__.

ChangeLog:

* sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_profile):
Do not clobber R0.

ChangeLog
sysdeps/s390/s390-64/dl-trampoline.h

index fb04742ba7fbe2e5336c254c6d2ce0e6401c1388..87e328871267700bfef2e7c188d80bf3e6658ae5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-08-10  Ilya Leoshkevich  <iii@linux.ibm.com>
+
+       * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_profile):
+       Do not clobber R0.
+
 2018-08-10  Ilya Leoshkevich  <iii@linux.ibm.com>
 
        * sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
index a9d56a6925f4cd50c0ab37bd5d85d7d77779a65a..fc5ba235636c6e0160f146611be0e580a71a0700 100644 (file)
@@ -170,6 +170,7 @@ _dl_runtime_resolve:
 # define V29_OFF -208
 # define V30_OFF -192
 # define V31_OFF -176
+# define R0_OFF -144
 # define R12_OFF -136
 # define R14_OFF -128
 # define FRAMESIZE_OFF -120
@@ -185,6 +186,8 @@ _dl_runtime_resolve:
        cfi_startproc
        .align 16
 _dl_runtime_profile:
+       stg     %r0,CFA_OFF+R0_OFF(%r15)
+       cfi_offset (r0, R0_OFF)
        stg    %r12,CFA_OFF+R12_OFF(%r15)       # r12 is used as backup of r15
        cfi_offset (r12, R12_OFF)
        stg    %r14,CFA_OFF+R14_OFF(%r15)
@@ -250,6 +253,7 @@ _dl_runtime_profile:
        cfi_def_cfa_register (15)
        lg     %r14,CFA_OFF+R14_OFF(%r15)       # restore registers
        lg     %r12,CFA_OFF+R12_OFF(%r15)
+       lg     %r0,CFA_OFF+R0_OFF(%r15)
        br     %r1                              # tail call
 
        cfi_def_cfa_register (12)
@@ -287,6 +291,7 @@ _dl_runtime_profile:
        cfi_def_cfa_register (15)
        lg     %r14,CFA_OFF+R14_OFF(%r15)       # restore registers
        lg     %r12,CFA_OFF+R12_OFF(%r15)
+       lg     %r0,CFA_OFF+R0_OFF(%r15)
        lg     %r2,CFA_OFF+RET_R2_OFF(%r15)     # restore return values
        ld     %f0,CFA_OFF+RET_F0_OFF(%r15)
 # ifdef RESTORE_VRS
@@ -318,6 +323,7 @@ _dl_runtime_profile:
 # undef V29_OFF
 # undef V30_OFF
 # undef V31_OFF
+# undef R0_OFF
 # undef R12_OFF
 # undef R14_OFF
 # undef FRAMESIZE_OFF
This page took 0.070214 seconds and 5 git commands to generate.