mirror of
https://github.com/golang/go
synced 2024-11-24 02:10:11 -07:00
runtime: rename offsets macros to prepare for multiple versions
High Sierra has a new commpage layout (this is issue #3188), so we need to adjust the code to handle multiple versions of the layout. In preparation for this change, we rename the existing offset macros with a prefix that identifies the commpage version they refer to. Updates #22037 Change-Id: Idca4b7a855a2ff6dbc434cd12453fc3194707aa8 Reviewed-on: https://go-review.googlesource.com/67331 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
630d176e7d
commit
11f494f37e
@ -108,28 +108,28 @@ TEXT runtime·madvise(SB), NOSPLIT, $0
|
||||
|
||||
// OS X comm page time offsets
|
||||
// http://www.opensource.apple.com/source/xnu/xnu-1699.26.8/osfmk/i386/cpu_capabilities.h
|
||||
#define nt_tsc_base 0x50
|
||||
#define nt_scale 0x58
|
||||
#define nt_shift 0x5c
|
||||
#define nt_ns_base 0x60
|
||||
#define nt_generation 0x68
|
||||
#define gtod_generation 0x6c
|
||||
#define gtod_ns_base 0x70
|
||||
#define gtod_sec_base 0x78
|
||||
#define v12_nt_tsc_base 0x50
|
||||
#define v12_nt_scale 0x58
|
||||
#define v12_nt_shift 0x5c
|
||||
#define v12_nt_ns_base 0x60
|
||||
#define v12_nt_generation 0x68
|
||||
#define v12_gtod_generation 0x6c
|
||||
#define v12_gtod_ns_base 0x70
|
||||
#define v12_gtod_sec_base 0x78
|
||||
|
||||
TEXT runtime·nanotime(SB),NOSPLIT,$0-8
|
||||
MOVQ $0x7fffffe00000, BP /* comm page base */
|
||||
// Loop trying to take a consistent snapshot
|
||||
// of the time parameters.
|
||||
timeloop:
|
||||
MOVL nt_generation(BP), R9
|
||||
MOVL v12_nt_generation(BP), R9
|
||||
TESTL R9, R9
|
||||
JZ timeloop
|
||||
RDTSC
|
||||
MOVQ nt_tsc_base(BP), R10
|
||||
MOVL nt_scale(BP), R11
|
||||
MOVQ nt_ns_base(BP), R12
|
||||
CMPL nt_generation(BP), R9
|
||||
MOVQ v12_nt_tsc_base(BP), R10
|
||||
MOVL v12_nt_scale(BP), R11
|
||||
MOVQ v12_nt_ns_base(BP), R12
|
||||
CMPL v12_nt_generation(BP), R9
|
||||
JNE timeloop
|
||||
|
||||
// Gathered all the data we need. Compute monotonic time:
|
||||
@ -154,19 +154,19 @@ TEXT time·now(SB), NOSPLIT, $32-24
|
||||
// Loop trying to take a consistent snapshot
|
||||
// of the time parameters.
|
||||
timeloop:
|
||||
MOVL gtod_generation(BP), R8
|
||||
MOVL nt_generation(BP), R9
|
||||
MOVL v12_gtod_generation(BP), R8
|
||||
MOVL v12_nt_generation(BP), R9
|
||||
TESTL R9, R9
|
||||
JZ timeloop
|
||||
RDTSC
|
||||
MOVQ nt_tsc_base(BP), R10
|
||||
MOVL nt_scale(BP), R11
|
||||
MOVQ nt_ns_base(BP), R12
|
||||
CMPL nt_generation(BP), R9
|
||||
MOVQ v12_nt_tsc_base(BP), R10
|
||||
MOVL v12_nt_scale(BP), R11
|
||||
MOVQ v12_nt_ns_base(BP), R12
|
||||
CMPL v12_nt_generation(BP), R9
|
||||
JNE timeloop
|
||||
MOVQ gtod_ns_base(BP), R13
|
||||
MOVQ gtod_sec_base(BP), R14
|
||||
CMPL gtod_generation(BP), R8
|
||||
MOVQ v12_gtod_ns_base(BP), R13
|
||||
MOVQ v12_gtod_sec_base(BP), R14
|
||||
CMPL v12_gtod_generation(BP), R8
|
||||
JNE timeloop
|
||||
|
||||
// Gathered all the data we need. Compute:
|
||||
|
Loading…
Reference in New Issue
Block a user