cen64/arch/x86_64/rsp/gcc/vne.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

79 lines
1.4 KiB
ArmAsm

//
// arch/x86_64/rsp/gcc/vne.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_VNE
.def RSP_VNE; .scl 2; .type 32; .endef
.seh_proc RSP_VNE
.ifndef __VECTORCALL__
RSP_VNE:
movdqa (%r8), %xmm0
movdqa (%r9), %xmm1
pxor %xmm2, %xmm2
.endif
.else
.global RSP_VNE
.type RSP_VNE, @function
RSP_VNE:
.endif
.ifdef __AVX__
vpcmpeqw %xmm0, %xmm1, %xmm3
pcmpeqw %xmm3, %xmm2
pxor vcc_hi, vcc_hi
pand vco_hi, %xmm3
vpor %xmm3, %xmm2, 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
pcmpeqw %xmm0, %xmm2
pxor vcc_hi, vcc_hi
pand vco_hi, %xmm0
pxor vco_lo, vco_lo
por %xmm2, %xmm0
pxor vco_hi, vco_hi
pblendvb %xmm0, %xmm1, acc_lo
movdqa %xmm0, vcc_lo
movdqa acc_lo, %xmm0
retq
.else
movdqa %xmm0, %xmm3
pcmpeqw %xmm1, %xmm0
pcmpeqw %xmm0, %xmm2
pxor vcc_hi, vcc_hi
pand vco_hi, %xmm0
pxor vco_lo, vco_lo
por %xmm2, %xmm0
pxor vco_hi, vco_hi
pand %xmm0, %xmm1
movdqa %xmm0, vcc_lo
pandn %xmm3, %xmm0
por %xmm1, %xmm0
movdqa %xmm0, acc_lo
retq
.endif
.ifdef __MINGW__
.seh_endproc
.else
.size RSP_VNE,.-RSP_VNE
.endif