| ; libFLAC - Free Lossless Audio Codec library |
| ; Copyright (C) 2001 Josh Coalson |
| ; |
| ; This library is free software; you can redistribute it and/or |
| ; modify it under the terms of the GNU Library General Public |
| ; License as published by the Free Software Foundation; either |
| ; version 2 of the License, or (at your option) any later version. |
| ; |
| ; This library is distributed in the hope that it will be useful, |
| ; but WITHOUT ANY WARRANTY; without even the implied warranty of |
| ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| ; Library General Public License for more details. |
| ; |
| ; You should have received a copy of the GNU Library General Public |
| ; License along with this library; if not, write to the |
| ; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
| ; Boston, MA 02111-1307, USA. |
| |
| %include "nasm.h" |
| |
| data_section |
| |
| cglobal FLAC__cpu_info_asm_ia32 |
| |
| code_section |
| |
| ; ********************************************************************** |
| ; |
| ALIGN 16 |
| cident FLAC__cpu_info_asm_ia32 |
| |
| push ebx |
| |
| pushfd |
| pop eax |
| mov edx, eax |
| xor eax, 00200000h |
| push eax |
| popfd |
| pushfd |
| pop eax |
| cmp eax, edx |
| jz .no_cpuid |
| mov eax, 1 |
| cpuid |
| mov eax, edx |
| jmp short .end |
| .no_cpuid: |
| xor eax, eax ; return 0 |
| .end: |
| pop ebx |
| ret |
| |
| end |