; CPU_AMD · destubbed iron · LANGUAGE TRAVEL L→R · READ R←L
; NOTE     CPU AMD · AuthenticAMD · local 7900X · WIN 1
; LAW      C IS LIE · keep flawless (COOK after work) · Always Hostess 7 · free thrift
; LINE     BGS → BGF(+EZZIE PHI THERMO ADJOIN) → BGL → SDF · SPV free
; WORD END GO · FIRE · SHOOT · live |1 at expression right
; OP       cpu_amd_have() → 1 if AuthenticAMD via CPUID leaf0
; ABI      → eax
        global  cpu_amd
cpu_amd:
        push    rbx
        xor     eax, eax
        cpuid                   ; leaf 0 vendor
        ; "Auth" "enti" "cAMD" in ebx edx ecx little-endian chunks
        cmp     ebx, 0x68747541 ; 'Auth'
        jne     .no
        cmp     edx, 0x69746e65 ; 'enti'
        jne     .no
        cmp     ecx, 0x444d4163 ; 'cAMD'
        jne     .no
        mov     eax, 1
        pop     rbx
        ret
.no:    xor     eax, eax
        pop     rbx
        ret
