ASM code fixes for PIC compilation.
This commit is contained in:
parent
3fde53501d
commit
04c1e6d017
@ -20,8 +20,8 @@
|
|||||||
|
|
||||||
|
|
||||||
FUNCTION(__x86_setup_system_time):
|
FUNCTION(__x86_setup_system_time):
|
||||||
movq %rdi, cv_factor
|
movq %rdi, cv_factor(%rip)
|
||||||
movq %rsi, cv_factor_nsecs
|
movq %rsi, cv_factor_nsecs(%rip)
|
||||||
ret
|
ret
|
||||||
FUNCTION_END(__x86_setup_system_time)
|
FUNCTION_END(__x86_setup_system_time)
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ FUNCTION(system_time):
|
|||||||
// (rdtsc * cv_factor) >> 32.
|
// (rdtsc * cv_factor) >> 32.
|
||||||
// Factor is pre-shifted left by 32 bits.
|
// Factor is pre-shifted left by 32 bits.
|
||||||
|
|
||||||
movq cv_factor, %rcx
|
movq cv_factor(%rip), %rcx
|
||||||
|
|
||||||
// Load 64-bit TSC into %eax (low), %edx (high).
|
// Load 64-bit TSC into %eax (low), %edx (high).
|
||||||
rdtsc
|
rdtsc
|
||||||
@ -56,7 +56,7 @@ FUNCTION(system_time_nsecs):
|
|||||||
// Factor has not been pre-shifted here, otherwise we may lose the upper
|
// Factor has not been pre-shifted here, otherwise we may lose the upper
|
||||||
// 32 bits.
|
// 32 bits.
|
||||||
|
|
||||||
movq cv_factor_nsecs, %rcx
|
movq cv_factor_nsecs(%rip), %rcx
|
||||||
|
|
||||||
// Load 64-bit TSC into %eax (low), %edx (high).
|
// Load 64-bit TSC into %eax (low), %edx (high).
|
||||||
rdtsc
|
rdtsc
|
||||||
|
@ -24,7 +24,7 @@ FUNCTION(_longjmp):
|
|||||||
push %rax
|
push %rax
|
||||||
|
|
||||||
// __longjmp_return restores the signal mask and sets the return value.
|
// __longjmp_return restores the signal mask and sets the return value.
|
||||||
call __longjmp_return
|
call __longjmp_return@PLT
|
||||||
ret
|
ret
|
||||||
FUNCTION_END(siglongjmp)
|
FUNCTION_END(siglongjmp)
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ FUNCTION(sigsetjmp):
|
|||||||
movq %r15, JMP_REGS_R15(%rdi)
|
movq %r15, JMP_REGS_R15(%rdi)
|
||||||
|
|
||||||
// __setjmp_save_sigs handles signal mask and return value.
|
// __setjmp_save_sigs handles signal mask and return value.
|
||||||
jmp __setjmp_save_sigs
|
jmp __setjmp_save_sigs@PLT
|
||||||
FUNCTION_END(setjmp)
|
FUNCTION_END(setjmp)
|
||||||
|
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ FUNCTION_END(setjmp)
|
|||||||
FUNCTION(setjmp):
|
FUNCTION(setjmp):
|
||||||
// Jump to sigsetjmp with a zero saveMask.
|
// Jump to sigsetjmp with a zero saveMask.
|
||||||
xorl %esi, %esi
|
xorl %esi, %esi
|
||||||
jmp sigsetjmp
|
jmp sigsetjmp@PLT
|
||||||
FUNCTION_END(setjmp)
|
FUNCTION_END(setjmp)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user