mirror of
https://github.com/golang/go
synced 2024-09-30 05:34:35 -06:00
be72e3c3ff
Test for CL 222660. Change-Id: I1dae41a9746dfc4144a0d29c02201de8ecd216fd Reviewed-on: https://go-review.googlesource.com/c/go/+/222978 Reviewed-by: Keith Randall <khr@golang.org>
52 lines
767 B
ArmAsm
52 lines
767 B
ArmAsm
// Copyright 2020 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.
|
|
|
|
#include "textflag.h"
|
|
|
|
TEXT ·clflush(SB),NOSPLIT,$0-8
|
|
MOVQ arg+0(FP), AX
|
|
CLFLUSH 0(AX)
|
|
RET
|
|
|
|
TEXT ·rdtscp(SB),NOSPLIT,$0-8
|
|
RDTSCP
|
|
SHLQ $32, DX
|
|
ORQ DX, AX
|
|
MOVQ AX, ret+0(FP)
|
|
RET
|
|
|
|
TEXT ·nop(SB),NOSPLIT,$0-0
|
|
RET
|
|
|
|
TEXT ·cpuid(SB),NOSPLIT,$0-0
|
|
CPUID
|
|
RET
|
|
|
|
TEXT ·features(SB),NOSPLIT,$0-2
|
|
MOVL $0, AX
|
|
MOVL $0, CX
|
|
CPUID
|
|
CMPL AX, $1
|
|
JLT none
|
|
|
|
MOVL $1, AX
|
|
MOVL $0, CX
|
|
CPUID
|
|
SHRL $19, DX
|
|
ANDL $1, DX
|
|
MOVB DX, hasCLFLUSH+0(FP)
|
|
|
|
MOVL $0x80000001, AX
|
|
MOVL $0, CX
|
|
CPUID
|
|
SHRL $27, DX
|
|
ANDL $1, DX
|
|
MOVB DX, hasRDTSCP+0(FP)
|
|
RET
|
|
|
|
none:
|
|
MOVB $0, hasCLFLUSH+0(FP)
|
|
MOVB $0, hasRDTSCP+1(FP)
|
|
RET
|