You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
2.7 KiB
169 lines
2.7 KiB
; Copyright 2002-2019 Intel Corporation.
|
|
;
|
|
; This software is provided to you as Sample Source Code as defined in the accompanying
|
|
; End User License Agreement for the Intel(R) Software Development Products ("Agreement")
|
|
; section 1.L.
|
|
;
|
|
; This software and the related documents are provided as is, with no express or implied
|
|
; warranties, other than those that are expressly stated in the License.
|
|
|
|
.386
|
|
.XMM
|
|
.model flat, c
|
|
|
|
.data
|
|
dummy QWORD 0, 0, 0 , 0
|
|
|
|
.code
|
|
|
|
Fld1_a PROC
|
|
fld1
|
|
fld1
|
|
fld1
|
|
ret
|
|
Fld1_a ENDP
|
|
|
|
|
|
Fld1_b PROC
|
|
fld1
|
|
fld1
|
|
fld1
|
|
ret
|
|
Fld1_b ENDP
|
|
|
|
FldzToTop3_a PROC
|
|
fstp dummy
|
|
fstp dummy
|
|
fstp dummy
|
|
fldz
|
|
fldz
|
|
fldz
|
|
ret
|
|
|
|
FldzToTop3_a ENDP
|
|
|
|
mmx_save PROC buf:DWORD
|
|
push eax
|
|
mov eax, buf
|
|
fxsave [eax]
|
|
pop eax
|
|
RET
|
|
mmx_save ENDP
|
|
|
|
mmx_restore PROC buf:DWORD
|
|
push eax
|
|
mov eax, buf
|
|
fxrstor [eax]
|
|
pop eax
|
|
RET
|
|
mmx_restore ENDP
|
|
|
|
set_xmm_reg0 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm0, [eax]
|
|
RET
|
|
set_xmm_reg0 ENDP
|
|
|
|
get_xmm_reg0 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm0
|
|
RET
|
|
get_xmm_reg0 ENDP
|
|
|
|
set_xmm_reg1 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm1, [eax]
|
|
RET
|
|
set_xmm_reg1 ENDP
|
|
|
|
get_xmm_reg1 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm1
|
|
RET
|
|
get_xmm_reg1 ENDP
|
|
|
|
set_xmm_reg2 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm2, [eax]
|
|
RET
|
|
set_xmm_reg2 ENDP
|
|
|
|
get_xmm_reg2 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm2
|
|
RET
|
|
get_xmm_reg2 ENDP
|
|
|
|
set_xmm_reg3 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm3, [eax]
|
|
RET
|
|
set_xmm_reg3 ENDP
|
|
|
|
get_xmm_reg3 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm3
|
|
RET
|
|
get_xmm_reg3 ENDP
|
|
|
|
set_xmm_reg4 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm4, [eax]
|
|
RET
|
|
set_xmm_reg4 ENDP
|
|
|
|
get_xmm_reg4 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm4
|
|
RET
|
|
get_xmm_reg4 ENDP
|
|
|
|
set_xmm_reg5 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm5, [eax]
|
|
RET
|
|
set_xmm_reg5 ENDP
|
|
|
|
get_xmm_reg5 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm5
|
|
RET
|
|
get_xmm_reg5 ENDP
|
|
|
|
set_xmm_reg6 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm6, [eax]
|
|
RET
|
|
set_xmm_reg6 ENDP
|
|
|
|
get_xmm_reg6 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm6
|
|
RET
|
|
get_xmm_reg6 ENDP
|
|
|
|
set_xmm_reg7 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu xmm7, [eax]
|
|
RET
|
|
set_xmm_reg7 ENDP
|
|
|
|
get_xmm_reg7 PROC xmm_reg:DWORD
|
|
mov eax, xmm_reg
|
|
movdqu [eax], xmm7
|
|
RET
|
|
get_xmm_reg7 ENDP
|
|
set_mmx_reg0 PROC mmx_reg:DWORD
|
|
mov eax, mmx_reg
|
|
movq mm0, [eax]
|
|
RET
|
|
set_mmx_reg0 ENDP
|
|
|
|
get_mmx_reg0 PROC mmx_reg:DWORD
|
|
mov eax, mmx_reg
|
|
movq [eax], mm0
|
|
RET
|
|
get_mmx_reg0 ENDP
|
|
|
|
end
|