|
@@ -16,8 +16,10 @@
|
|
|
.globl __kernel_clock_gettime
|
|
|
.type __kernel_clock_gettime,@function
|
|
|
__kernel_clock_gettime:
|
|
|
- .cfi_startproc
|
|
|
+ CFI_STARTPROC
|
|
|
aghi %r15,-16
|
|
|
+ CFI_DEF_CFA_OFFSET 176
|
|
|
+ CFI_VAL_OFFSET 15, -160
|
|
|
larl %r5,_vdso_data
|
|
|
cghi %r2,__CLOCK_REALTIME_COARSE
|
|
|
je 4f
|
|
@@ -54,9 +56,13 @@ __kernel_clock_gettime:
|
|
|
stg %r1,8(%r3) /* store tp->tv_nsec */
|
|
|
lghi %r2,0
|
|
|
aghi %r15,16
|
|
|
+ CFI_DEF_CFA_OFFSET 160
|
|
|
+ CFI_RESTORE 15
|
|
|
br %r14
|
|
|
|
|
|
/* CLOCK_MONOTONIC_COARSE */
|
|
|
+ CFI_DEF_CFA_OFFSET 176
|
|
|
+ CFI_VAL_OFFSET 15, -160
|
|
|
3: lg %r4,__VDSO_UPD_COUNT(%r5) /* load update counter */
|
|
|
tmll %r4,0x0001 /* pending update ? loop */
|
|
|
jnz 3b
|
|
@@ -109,9 +115,13 @@ __kernel_clock_gettime:
|
|
|
stg %r1,8(%r3) /* store tp->tv_nsec */
|
|
|
lghi %r2,0
|
|
|
aghi %r15,16
|
|
|
+ CFI_DEF_CFA_OFFSET 160
|
|
|
+ CFI_RESTORE 15
|
|
|
br %r14
|
|
|
|
|
|
/* CPUCLOCK_VIRT for this thread */
|
|
|
+ CFI_DEF_CFA_OFFSET 176
|
|
|
+ CFI_VAL_OFFSET 15, -160
|
|
|
9: lghi %r4,0
|
|
|
icm %r0,15,__VDSO_ECTG_OK(%r5)
|
|
|
jz 12f
|
|
@@ -132,15 +142,21 @@ __kernel_clock_gettime:
|
|
|
stg %r4,8(%r3)
|
|
|
lghi %r2,0
|
|
|
aghi %r15,16
|
|
|
+ CFI_DEF_CFA_OFFSET 160
|
|
|
+ CFI_RESTORE 15
|
|
|
br %r14
|
|
|
|
|
|
/* Fallback to system call */
|
|
|
+ CFI_DEF_CFA_OFFSET 176
|
|
|
+ CFI_VAL_OFFSET 15, -160
|
|
|
12: lghi %r1,__NR_clock_gettime
|
|
|
svc 0
|
|
|
aghi %r15,16
|
|
|
+ CFI_DEF_CFA_OFFSET 160
|
|
|
+ CFI_RESTORE 15
|
|
|
br %r14
|
|
|
+ CFI_ENDPROC
|
|
|
|
|
|
13: .quad 1000000000
|
|
|
14: .quad 19342813113834067
|
|
|
- .cfi_endproc
|
|
|
.size __kernel_clock_gettime,.-__kernel_clock_gettime
|