]> sourceware.org Git - glibc.git/commitdiff
S390: Use symbolic offsets for stack variables in 64-bit _dl_runtime_resolve
authorIlya Leoshkevich <iii@linux.ibm.com>
Fri, 10 Aug 2018 07:07:42 +0000 (09:07 +0200)
committerStefan Liebler <stli@linux.ibm.com>
Fri, 10 Aug 2018 07:07:42 +0000 (09:07 +0200)
Maintainability improvement.

ChangeLog:

* sysdeps/s390/s390-64/dl-trampoline.h (_dl_runtime_resolve):
Use symbolic offsets for stack variables.

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

index 7014892f407bdcb2b5fba488c9ccbb0f322066e1..49b69c8940f45a300c090b5e52dbe2271b2084d7 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_resolve):
+       Use symbolic offsets for stack variables.
+
 2018-08-10  Ilya Leoshkevich  <iii@linux.ibm.com>
 
        * sysdeps/s390/s390-32/dl-trampoline.h (_dl_runtime_profile):
index d313fd521db0b859b662b18f658d0affa01ce235..0a74694fad4d350651714c4fe50f6b71d266f9e2 100644 (file)
  *   v16 - v31 : call clobbered
  */
 
+#define CFA_OFF 160
+#define FRAME_OFF CFA_OFF + FRAME_SIZE
+#define V24_OFF -288
+#define V25_OFF -272
+#define V26_OFF -256
+#define V27_OFF -240
+#define V28_OFF -224
+#define V29_OFF -208
+#define V30_OFF -192
+#define V31_OFF -176
+#define PLT1_OFF -112
+#define PLT2_OFF -104
+#define R2_OFF -96
+#define R3_OFF -88
+#define R4_OFF -80
+#define R5_OFF -72
+#define R14_OFF -64
+#define R15_OFF -56
+#define F0_OFF -48
+#define F2_OFF -40
+#define F4_OFF -32
+#define F6_OFF -24
        .globl _dl_runtime_resolve
        .type _dl_runtime_resolve, @function
        cfi_startproc
        .align 16
 _dl_runtime_resolve:
-       stmg   %r2,%r5,64(%r15) # save call-clobbered argument registers
-       cfi_offset (r2, -96)
-       cfi_offset (r3, -88)
-       cfi_offset (r4, -80)
-       cfi_offset (r5, -72)
-       stmg   %r14,%r15,96(%r15)
-       cfi_offset (r14, -64)
-       cfi_offset (r15, -56)
-       std    %f0,112(%r15)
-       cfi_offset (f0, -48)
-       std    %f2,120(%r15)
-       cfi_offset (f2, -40)
-       std    %f4,128(%r15)
-       cfi_offset (f4, -32)
-       std    %f6,136(%r15)
-       cfi_offset (f6, -24)
-       lmg    %r2,%r3,48(%r15) # load args for fixup saved by PLT
+       stmg   %r2,%r5,CFA_OFF+R2_OFF(%r15) # save registers
+       cfi_offset (r2, R2_OFF)
+       cfi_offset (r3, R3_OFF)
+       cfi_offset (r4, R4_OFF)
+       cfi_offset (r5, R5_OFF)
+       stmg   %r14,%r15,CFA_OFF+R14_OFF(%r15)
+       cfi_offset (r14, R14_OFF)
+       cfi_offset (r15, R15_OFF)
+       std    %f0,CFA_OFF+F0_OFF(%r15)
+       cfi_offset (f0, F0_OFF)
+       std    %f2,CFA_OFF+F2_OFF(%r15)
+       cfi_offset (f2, F2_OFF)
+       std    %f4,CFA_OFF+F4_OFF(%r15)
+       cfi_offset (f4, F4_OFF)
+       std    %f6,CFA_OFF+F6_OFF(%r15)
+       cfi_offset (f6, F6_OFF)
+       lmg    %r2,%r3,CFA_OFF+PLT1_OFF(%r15) # load args saved by PLT
        lgr    %r0,%r15
 #ifdef RESTORE_VRS
-       aghi   %r15,-288        # create stack frame
-       cfi_adjust_cfa_offset (288)
+# define FRAME_SIZE (CFA_OFF + 128)
+       aghi   %r15,-FRAME_SIZE # create stack frame
+       cfi_adjust_cfa_offset (FRAME_SIZE)
        .machine push
        .machine "z13"
-       vstm   %v24,%v31,160(%r15)# store call-clobbered vector argument registers
-       cfi_offset (v24, -288)
-       cfi_offset (v25, -272)
-       cfi_offset (v26, -256)
-       cfi_offset (v27, -240)
-       cfi_offset (v28, -224)
-       cfi_offset (v29, -208)
-       cfi_offset (v30, -192)
-       cfi_offset (v31, -176)
+       vstm   %v24,%v31,FRAME_OFF+V24_OFF(%r15) # save call-clobbered vr args
+       cfi_offset (v24, V24_OFF)
+       cfi_offset (v25, V25_OFF)
+       cfi_offset (v26, V26_OFF)
+       cfi_offset (v27, V27_OFF)
+       cfi_offset (v28, V28_OFF)
+       cfi_offset (v29, V29_OFF)
+       cfi_offset (v30, V30_OFF)
+       cfi_offset (v31, V31_OFF)
        .machine pop
 #else
-       aghi   %r15,-160        # create stack frame
-       cfi_adjust_cfa_offset (160)
+# define FRAME_SIZE CFA_OFF
+       aghi   %r15,-FRAME_SIZE # create stack frame
+       cfi_adjust_cfa_offset (FRAME_SIZE)
 #endif
        stg    %r0,0(%r15)      # write backchain
        brasl  %r14,_dl_fixup   # call _dl_fixup
@@ -85,22 +109,40 @@ _dl_runtime_resolve:
 #ifdef RESTORE_VRS
        .machine push
        .machine "z13"
-       vlm    %v24,%v31,160(%r15)# restore vector registers
+       vlm    %v24,%v31,FRAME_OFF+V24_OFF(%r15) # restore vector registers
        .machine pop
-       lmg    %r14,%r15,384(%r15)# remove stack frame and restore registers
-#else
-       lmg    %r14,%r15,256(%r15)# remove stack frame and restore registers
 #endif
-       cfi_def_cfa_offset (160)
-       ld     %f0,112(%r15)
-       ld     %f2,120(%r15)
-       ld     %f4,128(%r15)
-       ld     %f6,136(%r15)
-       lmg    %r2,%r5,64(%r15)
+       lmg    %r14,%r15,FRAME_OFF+R14_OFF(%r15) # restore frame and registers
+#undef FRAME_SIZE
+       cfi_def_cfa_offset (CFA_OFF)
+       ld     %f0,CFA_OFF+F0_OFF(%r15)
+       ld     %f2,CFA_OFF+F2_OFF(%r15)
+       ld     %f4,CFA_OFF+F4_OFF(%r15)
+       ld     %f6,CFA_OFF+F6_OFF(%r15)
+       lmg    %r2,%r5,CFA_OFF+R2_OFF(%r15)
        br     %r1
        cfi_endproc
        .size _dl_runtime_resolve, .-_dl_runtime_resolve
-
+#undef V24_OFF
+#undef V25_OFF
+#undef V26_OFF
+#undef V27_OFF
+#undef V28_OFF
+#undef V29_OFF
+#undef V30_OFF
+#undef V31_OFF
+#undef PLT1_OFF
+#undef PLT2_OFF
+#undef R2_OFF
+#undef R3_OFF
+#undef R4_OFF
+#undef R5_OFF
+#undef R14_OFF
+#undef R15_OFF
+#undef F0_OFF
+#undef F2_OFF
+#undef F4_OFF
+#undef F6_OFF
 
 #ifndef PROF
        .globl _dl_runtime_profile
This page took 0.124757 seconds and 5 git commands to generate.