| // 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. | |
| //go:build (386 || amd64 || amd64p32) && gc | |
| #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 |