cen64/arch/x86_64/rsp/gcc/veq.s
Derek "Turtle" Roe 8b89df2fdc See long description
Replaced all references to simulation with emulation
Updated copyright year
Updated .gitignore to reduce chances of random files being uploaded to
the repo
Added .gitattributes to normalize all text files, and to ignore binary
files (which includes the logo and the NEC PDF)
2015-07-01 18:44:21 -05:00

74 lines
1.3 KiB
ArmAsm

//
// arch/x86_64/rsp/gcc/veq.s
//
// CEN64: Cycle-Accurate Nintendo 64 Emulator.
// Copyright (C) 2015, Tyler J. Stachecki.
//
// This file is subject to the terms and conditions defined in
// 'LICENSE', which is part of this source code package.
//
.include "rsp/gcc/defs.h"
.text
.ifdef __MINGW__
.globl RSP_VEQ
.def RSP_VEQ; .scl 2; .type 32; .endef
.seh_proc RSP_VEQ
.ifndef __VECTORCALL__
RSP_VEQ:
movdqa (%r8), %xmm0
movdqa (%r9), %xmm1
#pxor %xmm2, %xmm2
.endif
.else
.global RSP_VEQ
.type RSP_VEQ, @function
RSP_VEQ:
.endif
.ifdef __AVX__
vpcmpeqw %xmm0, %xmm1, vcc_lo
pxor vcc_hi, vcc_hi
vpandn vcc_lo, vco_hi, vcc_lo
pxor vco_lo, vco_lo
vpblendvb vcc_lo, %xmm1, %xmm0, %xmm0
pxor vco_hi, vco_hi
movdqa %xmm0, acc_lo
retq
.elseif __SSE4_1__ == 1
movdqa %xmm0, acc_lo
pcmpeqw %xmm1, %xmm0
pxor vcc_hi, vcc_hi
pandn %xmm0, vco_hi
pxor vco_lo, vco_lo
movdqa vco_hi, %xmm0
pxor vco_hi, vco_hi
pblendvb %xmm0, %xmm1, acc_lo
movdqa %xmm0, vcc_lo
movdqa acc_lo, %xmm0
retq
.else
movdqa %xmm1, acc_lo
pcmpeqw %xmm0, %xmm1
pxor vcc_hi, vcc_hi
pandn %xmm1, vco_hi
pxor vco_lo, vco_lo
movdqa vco_hi, vcc_lo
pand vco_hi, acc_lo
pandn %xmm0, vco_hi
por vco_hi, acc_lo
pxor vco_hi, vco_hi
movdqa acc_lo, %xmm0
retq
.endif
.ifdef __MINGW__
.seh_endproc
.else
.size RSP_VEQ,.-RSP_VEQ
.endif