Initial commit: Go 1.23 release state
This commit is contained in:
36
src/runtime/time_windows_amd64.s
Normal file
36
src/runtime/time_windows_amd64.s
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2011 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build !faketime
|
||||
|
||||
#include "go_asm.h"
|
||||
#include "textflag.h"
|
||||
#include "time_windows.h"
|
||||
|
||||
TEXT time·now(SB),NOSPLIT,$0-24
|
||||
MOVQ $_INTERRUPT_TIME, DI
|
||||
MOVQ time_lo(DI), AX
|
||||
IMULQ $100, AX
|
||||
MOVQ AX, mono+16(FP)
|
||||
|
||||
MOVQ $_SYSTEM_TIME, DI
|
||||
MOVQ time_lo(DI), AX
|
||||
MOVQ $116444736000000000, DI
|
||||
SUBQ DI, AX
|
||||
IMULQ $100, AX
|
||||
|
||||
// generated code for
|
||||
// func f(x uint64) (uint64, uint64) { return x/1000000000, x%1000000000 }
|
||||
// adapted to reduce duplication
|
||||
MOVQ AX, CX
|
||||
MOVQ $1360296554856532783, AX
|
||||
MULQ CX
|
||||
ADDQ CX, DX
|
||||
RCRQ $1, DX
|
||||
SHRQ $29, DX
|
||||
MOVQ DX, sec+0(FP)
|
||||
IMULQ $1000000000, DX
|
||||
SUBQ DX, CX
|
||||
MOVL CX, nsec+8(FP)
|
||||
RET
|
||||
Reference in New Issue
Block a user