mirror of
https://github.com/golang/go
synced 2024-11-24 04:50:07 -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
|
// OS X comm page time offsets
|
||||||
// http://www.opensource.apple.com/source/xnu/xnu-1699.26.8/osfmk/i386/cpu_capabilities.h
|
// http://www.opensource.apple.com/source/xnu/xnu-1699.26.8/osfmk/i386/cpu_capabilities.h
|
||||||
#define nt_tsc_base 0x50
|
#define v12_nt_tsc_base 0x50
|
||||||
#define nt_scale 0x58
|
#define v12_nt_scale 0x58
|
||||||
#define nt_shift 0x5c
|
#define v12_nt_shift 0x5c
|
||||||
#define nt_ns_base 0x60
|
#define v12_nt_ns_base 0x60
|
||||||
#define nt_generation 0x68
|
#define v12_nt_generation 0x68
|
||||||
#define gtod_generation 0x6c
|
#define v12_gtod_generation 0x6c
|
||||||
#define gtod_ns_base 0x70
|
#define v12_gtod_ns_base 0x70
|
||||||
#define gtod_sec_base 0x78
|
#define v12_gtod_sec_base 0x78
|
||||||
|
|
||||||
TEXT runtime·nanotime(SB),NOSPLIT,$0-8
|
TEXT runtime·nanotime(SB),NOSPLIT,$0-8
|
||||||
MOVQ $0x7fffffe00000, BP /* comm page base */
|
MOVQ $0x7fffffe00000, BP /* comm page base */
|
||||||
// Loop trying to take a consistent snapshot
|
// Loop trying to take a consistent snapshot
|
||||||
// of the time parameters.
|
// of the time parameters.
|
||||||
timeloop:
|
timeloop:
|
||||||
MOVL nt_generation(BP), R9
|
MOVL v12_nt_generation(BP), R9
|
||||||
TESTL R9, R9
|
TESTL R9, R9
|
||||||
JZ timeloop
|
JZ timeloop
|
||||||
RDTSC
|
RDTSC
|
||||||
MOVQ nt_tsc_base(BP), R10
|
MOVQ v12_nt_tsc_base(BP), R10
|
||||||
MOVL nt_scale(BP), R11
|
MOVL v12_nt_scale(BP), R11
|
||||||
MOVQ nt_ns_base(BP), R12
|
MOVQ v12_nt_ns_base(BP), R12
|
||||||
CMPL nt_generation(BP), R9
|
CMPL v12_nt_generation(BP), R9
|
||||||
JNE timeloop
|
JNE timeloop
|
||||||
|
|
||||||
// Gathered all the data we need. Compute monotonic time:
|
// 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
|
// Loop trying to take a consistent snapshot
|
||||||
// of the time parameters.
|
// of the time parameters.
|
||||||
timeloop:
|
timeloop:
|
||||||
MOVL gtod_generation(BP), R8
|
MOVL v12_gtod_generation(BP), R8
|
||||||
MOVL nt_generation(BP), R9
|
MOVL v12_nt_generation(BP), R9
|
||||||
TESTL R9, R9
|
TESTL R9, R9
|
||||||
JZ timeloop
|
JZ timeloop
|
||||||
RDTSC
|
RDTSC
|
||||||
MOVQ nt_tsc_base(BP), R10
|
MOVQ v12_nt_tsc_base(BP), R10
|
||||||
MOVL nt_scale(BP), R11
|
MOVL v12_nt_scale(BP), R11
|
||||||
MOVQ nt_ns_base(BP), R12
|
MOVQ v12_nt_ns_base(BP), R12
|
||||||
CMPL nt_generation(BP), R9
|
CMPL v12_nt_generation(BP), R9
|
||||||
JNE timeloop
|
JNE timeloop
|
||||||
MOVQ gtod_ns_base(BP), R13
|
MOVQ v12_gtod_ns_base(BP), R13
|
||||||
MOVQ gtod_sec_base(BP), R14
|
MOVQ v12_gtod_sec_base(BP), R14
|
||||||
CMPL gtod_generation(BP), R8
|
CMPL v12_gtod_generation(BP), R8
|
||||||
JNE timeloop
|
JNE timeloop
|
||||||
|
|
||||||
// Gathered all the data we need. Compute:
|
// Gathered all the data we need. Compute:
|
||||||
|
Loading…
Reference in New Issue
Block a user