99e1784525
This reverts commit 60a3cb9ad8
.
Reason for revert: x87 instruction usage might not be as
clear cut as I would like. At the very least, llvm mingw
builds appear to having issues with emms.
Original change's description:
> remove fldcw/fstcw from Win64 builds
>
> _MCW_PC (Precision control) is not supported on x64:
> https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/control87-controlfp-control87-2
>
> The x87 FPU is not used on Win64 or ARM so setting the x87 control word
> is not necessary. The SSE/SSE2 and ARM FPUs don't have a precision
> control - the precision is embedded in each instruction - so the need to
> set the control word is also gone.
BUG=webm:1500
Change-Id: I25bcfa96bc9c860f6c7e03315d75fa6fd1d88ec5
34 lines
788 B
NASM
34 lines
788 B
NASM
;
|
|
; Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
;
|
|
; Use of this source code is governed by a BSD-style license
|
|
; that can be found in the LICENSE file in the root of the source
|
|
; tree. An additional intellectual property rights grant can be found
|
|
; in the file PATENTS. All contributing project authors may
|
|
; be found in the AUTHORS file in the root of the source tree.
|
|
;
|
|
|
|
|
|
%include "vpx_ports/x86_abi_support.asm"
|
|
|
|
section .text
|
|
|
|
%if LIBVPX_YASM_WIN64
|
|
global sym(vpx_winx64_fldcw) PRIVATE
|
|
sym(vpx_winx64_fldcw):
|
|
sub rsp, 8
|
|
mov [rsp], rcx ; win x64 specific
|
|
fldcw [rsp]
|
|
add rsp, 8
|
|
ret
|
|
|
|
|
|
global sym(vpx_winx64_fstcw) PRIVATE
|
|
sym(vpx_winx64_fstcw):
|
|
sub rsp, 8
|
|
fstcw [rsp]
|
|
mov rax, [rsp]
|
|
add rsp, 8
|
|
ret
|
|
%endif
|