mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 22:20:24 +00:00
242ecccb64
* pixops/*.S: NetBSD portability fixes. (#346374, Thomas Klausner)
77 lines
1.5 KiB
ArmAsm
77 lines
1.5 KiB
ArmAsm
/*
|
|
* Copyright (C) 2000 Red Hat, Inc
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser 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.
|
|
*/
|
|
.file "have_mmx.S"
|
|
.version "01.01"
|
|
gcc2_compiled.:
|
|
.text
|
|
.align 16
|
|
|
|
#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__INTERIX)
|
|
|
|
/* Magic indicating no need for an executable stack */
|
|
#if !defined __powerpc64__ && !defined __ia64__
|
|
.section .note.GNU-stack; .previous
|
|
#endif
|
|
|
|
.globl _pixops_have_mmx
|
|
.type _pixops_have_mmx,@function
|
|
_pixops_have_mmx:
|
|
|
|
#else
|
|
|
|
.globl __pixops_have_mmx
|
|
__pixops_have_mmx:
|
|
|
|
#endif
|
|
|
|
push %ebx
|
|
|
|
# Check if bit 21 in flags word is writeable
|
|
|
|
pushfl
|
|
popl %eax
|
|
movl %eax,%ebx
|
|
xorl $0x00200000, %eax
|
|
pushl %eax
|
|
popfl
|
|
pushfl
|
|
popl %eax
|
|
|
|
cmpl %eax, %ebx
|
|
|
|
je .notfound
|
|
|
|
# OK, we have CPUID
|
|
|
|
movl $1, %eax
|
|
cpuid
|
|
|
|
test $0x00800000, %edx
|
|
jz .notfound
|
|
|
|
movl $1, %eax
|
|
jmp .out
|
|
|
|
.notfound:
|
|
movl $0, %eax
|
|
.out:
|
|
popl %ebx
|
|
ret
|
|
|