This reverts commit
118a57045bf5b49ab7c2f7f930543b9217fd422e.
Reason for revert: Fails on Visual Studio builds:
vpxmdd.lib(vpx_ports_emms_mmx.obj) : error LNK2019: unresolved
external symbol _m_empty referenced in function
vpx_clear_system_state
Original change's description:
> use intrinsics for 'emms'
>
> BUG=webm:1500
>
> Change-Id: I3235d8c2abc01dd3a35e14c5cbcfe20283ff8fb2
Change-Id: Ia9c40bc103c57cced83353249c55218eaf2f0b0c
#define TEST_CLEAR_SYSTEM_STATE_H_
#include "./vpx_config.h"
-#include "vpx_ports/system_state.h"
+#if ARCH_X86 || ARCH_X86_64
+#include "vpx_ports/x86.h"
+#endif
namespace libvpx_test {
// Reset system to a known state. This function should be used for all non-API
// test cases.
-inline void ClearSystemState() { vpx_clear_system_state(); }
+inline void ClearSystemState() {
+#if ARCH_X86 || ARCH_X86_64
+ vpx_reset_mmx_state();
+#endif
+}
} // namespace libvpx_test
#endif // TEST_CLEAR_SYSTEM_STATE_H_
%include "vpx_ports/x86_abi_support.asm"
section .text
+global sym(vpx_reset_mmx_state) PRIVATE
+sym(vpx_reset_mmx_state):
+ emms
+ ret
+
%if LIBVPX_YASM_WIN64
global sym(vpx_winx64_fldcw) PRIVATE
+++ /dev/null
-/*
- * Copyright (c) 2018 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 <mmintrin.h>
-
-void vpx_clear_system_state() { _mm_empty(); }
#include "./vpx_config.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if HAVE_MMX
-extern void vpx_clear_system_state();
+#if ARCH_X86 || ARCH_X86_64
+void vpx_reset_mmx_state(void);
+#define vpx_clear_system_state() vpx_reset_mmx_state()
#else
#define vpx_clear_system_state()
-#endif // HAVE_MMX
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
+#endif // ARCH_X86 || ARCH_X86_64
#endif // VPX_PORTS_SYSTEM_STATE_H_
PORTS_SRCS-yes += system_state.h
PORTS_SRCS-yes += vpx_timer.h
-PORTS_SRCS-$(HAVE_MMX) += emms_mmx.c
-
ifeq ($(ARCH_X86)$(ARCH_X86_64),yes)
PORTS_SRCS-yes += emms.asm
PORTS_SRCS-yes += x86.h
return mode;
}
+extern void vpx_reset_mmx_state(void);
+
#ifdef __cplusplus
} // extern "C"
#endif