Blame src/libmpg123/check_neon.S
|
Packit |
c32a2d |
/*
|
|
Packit |
c32a2d |
check_neon: check NEON availability
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
copyright 1995-2014 by the mpg123 project - free software under the terms of the LGPL 2.1
|
|
Packit |
c32a2d |
see COPYING and AUTHORS files in distribution or http://mpg123.org
|
|
Packit |
c32a2d |
initially written by Taihei Momma
|
|
Packit |
c32a2d |
*/
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#include "mangle.h"
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#ifndef __aarch64__
|
|
Packit |
c32a2d |
#ifndef _M_ARM
|
|
Packit |
c32a2d |
.code 32
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
#ifndef __APPLE__
|
|
Packit |
c32a2d |
.fpu neon
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
.text
|
|
Packit |
c32a2d |
GLOBAL_SYMBOL ASM_NAME(check_neon)
|
|
Packit |
c32a2d |
#ifdef __ELF__
|
|
Packit |
c32a2d |
.type ASM_NAME(check_neon), %function
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
ALIGN4
|
|
Packit |
c32a2d |
ASM_NAME(check_neon):
|
|
Packit |
c32a2d |
#ifdef __aarch64__
|
|
Packit |
c32a2d |
orr v0.16b, v0.16b, v0.16b
|
|
Packit |
c32a2d |
ret
|
|
Packit |
c32a2d |
#else
|
|
Packit |
c32a2d |
vorr d0, d0, d0
|
|
Packit |
c32a2d |
bx lr
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
NONEXEC_STACK
|