From 56733e1dbda372b2c1df839103933187b9e21fb1 Mon Sep 17 00:00:00 2001 From: visualfc Date: Wed, 20 Aug 2025 16:53:53 +0800 Subject: [PATCH] runtime/internal/lib/internal/cpu: use __cpuid_count --- runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c b/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c index 3756ee17..8dde9cb1 100644 --- a/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c +++ b/runtime/internal/lib/internal/cpu/_wrap/cpu_x86.c @@ -1,19 +1,12 @@ #if defined(__GNUC__) || defined(__clang__) +#include + void llgo_getcpuid(unsigned int eax, unsigned int ecx, unsigned int *a, unsigned int *b, unsigned int *c, unsigned int *d) { #if defined(__i386__) || defined(__x86_64__) - __asm__ __volatile__( - "pushq %%rbp\n\t" - "movq %%rsp, %%rbp\n\t" - "andq $-16, %%rsp\n\t" // 16-byte align stack - "cpuid\n\t" - "movq %%rbp, %%rsp\n\t" - "popq %%rbp\n\t" - : "=a"(*a), "=b"(*b), "=c"(*c), "=d"(*d) - : "a"(eax), "c"(ecx) - : "memory"); + __cpuid_count(eax, ecx, *a, *b, *c, *d); #endif } #else