8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; $Id$
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync;; @file
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; Disassembly testcase - 3DNow!
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync;
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync;
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; Copyright (C) 2008-2012 Oracle Corporation
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync;
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; available from http://www.virtualbox.org. This file is free software;
bec721b4bea386a3c49c0ad7c3ded959a6a66727vboxsync; you can redistribute it and/or modify it under the terms of the GNU
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; General Public License (GPL) as published by the Free Software
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync;
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync%include "tstAsm.mac"
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync BITS TEST_BITS
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pavgusb mm1, mm0
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pf2id mm5, mm4
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pf2iw mm6, mm3
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfacc mm7, mm2
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfadd mm5, mm4
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfcmpeq mm6, mm3
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfcmpge mm2, mm7
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfcmpgt mm4, mm5
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfmax mm3, mm6
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfmin mm1, mm0
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfmul mm5, mm4
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pmulhrwa mm3, mm6
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfnacc mm4, mm5
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfpnacc mm3, mm6
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrcp mm0, mm1
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrcpit1 mm2, mm7
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrcpit2 mm4, mm5
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrsqrt mm7, mm2
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrsqit1 mm1, mm0
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfsub mm6, mm3
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfsubr mm0, mm1
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pi2fd mm7, mm2
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pi2fw mm0, mm1
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pswapd mm2, mm7
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync%if TEST_BITS == 16
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync %define SIB(extra)
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync %define SIB(extra)
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync%else
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync %define SIB(extra) extra
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync%endif
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pf2id mm5, qword [ds:xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pf2iw mm6, qword [fs:xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfacc mm7, qword [gs:xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfadd mm5, qword [ xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfcmpeq mm6, qword [ xDI SIB(*8+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfcmpge mm2, qword [es:xSI SIB(+000100010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfcmpgt mm4, qword [es:xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfmax mm3, qword [es:xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfmin mm1, qword [es:xSI SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfmul mm5, qword [es:xSI SIB(+000101000h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrcpit1 mm2, qword [es:xBP SIB(+000101510h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync%if TEST_BITS != 16
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pavgusb mm1, qword [es:xAX SIB(+000000010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfpnacc mm3, qword [es:xDX SIB(+000102900h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrcp mm0, qword [es:xCX SIB(+000101020h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pmulhrwa mm3, qword [es:xAX SIB(+0ffffffffh)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrcpit2 mm4, qword [es:xSP SIB(+000101310h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync%endif
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfnacc mm4, qword [es:xBX SIB(+000101010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrsqrt mm7, qword [es:xSI SIB(+0f0106010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfrsqit1 mm1, qword [es:xDI SIB(+0001f1010h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfsub mm6, qword [es:xSI SIB(*2)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pfsubr mm0, qword [es:xSI SIB(*3)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pi2fd mm7, qword [es:xSI SIB(*4)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pi2fw mm0, qword [es:xSI SIB(*5)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pswapd mm2, qword [es:xSI SIB(*8)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync pmulhrwa mm0, qword [ds:xBP SIB(+xDI*8+00f000001h)]
8a0870593492fa30e4ffcbb8880b362d948c9ac9vboxsync