// Copyright 2018 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. | |
// +build 386 amd64 amd64p32 | |
// +build !gccgo | |
#include "textflag.h" | |
// func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) | |
TEXT ·cpuid(SB), NOSPLIT, $0-24 | |
MOVL eaxArg+0(FP), AX | |
MOVL ecxArg+4(FP), CX | |
CPUID | |
MOVL AX, eax+8(FP) | |
MOVL BX, ebx+12(FP) | |
MOVL CX, ecx+16(FP) | |
MOVL DX, edx+20(FP) | |
RET | |
// func xgetbv() (eax, edx uint32) | |
TEXT ·xgetbv(SB),NOSPLIT,$0-8 | |
MOVL $0, CX | |
XGETBV | |
MOVL AX, eax+0(FP) | |
MOVL DX, edx+4(FP) | |
RET |