Commit 5883246d authored by Yaowu Xu's avatar Yaowu Xu
Browse files

make debug match release build on win32 with 8x8 transform enabled

The 8x8 forward transform makes use of floating operations, therefore
requires emms call to reset mmx registers to correct state. Without
the resets, the 8x8 forward transform results are indefinite on win32
platform.

Change-Id: Ib5b71c3213e10b8a04fe776adf885f3714e7deb1
Showing with 9 additions and 0 deletions
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "dct.h" #include "dct.h"
#include "vpx_mem/vpx_mem.h" #include "vpx_mem/vpx_mem.h"
#include "rdopt.h" #include "rdopt.h"
#include "vp8/common/systemdependent.h"
#if CONFIG_RUNTIME_CPU_DETECT #if CONFIG_RUNTIME_CPU_DETECT
#define IF_RTCD(x) (x) #define IF_RTCD(x) (x)
...@@ -241,6 +242,8 @@ void vp8_transform_mbuv_8x8(MACROBLOCK *x) ...@@ -241,6 +242,8 @@ void vp8_transform_mbuv_8x8(MACROBLOCK *x)
{ {
int i; int i;
vp8_clear_system_state();
for (i = 16; i < 24; i += 4) for (i = 16; i < 24; i += 4)
{ {
x->vp8_short_fdct8x8(&x->block[i].src_diff[0], x->vp8_short_fdct8x8(&x->block[i].src_diff[0],
...@@ -253,6 +256,8 @@ void vp8_transform_intra_mby_8x8(MACROBLOCK *x)//changed ...@@ -253,6 +256,8 @@ void vp8_transform_intra_mby_8x8(MACROBLOCK *x)//changed
{ {
int i; int i;
vp8_clear_system_state();
for (i = 0; i < 9; i += 8) for (i = 0; i < 9; i += 8)
{ {
x->vp8_short_fdct8x8(&x->block[i].src_diff[0], x->vp8_short_fdct8x8(&x->block[i].src_diff[0],
...@@ -278,6 +283,8 @@ void vp8_transform_mb_8x8(MACROBLOCK *x) ...@@ -278,6 +283,8 @@ void vp8_transform_mb_8x8(MACROBLOCK *x)
{ {
int i; int i;
vp8_clear_system_state();
for (i = 0; i < 9; i += 8) for (i = 0; i < 9; i += 8)
{ {
x->vp8_short_fdct8x8(&x->block[i].src_diff[0], x->vp8_short_fdct8x8(&x->block[i].src_diff[0],
...@@ -309,6 +316,8 @@ void vp8_transform_mby_8x8(MACROBLOCK *x) ...@@ -309,6 +316,8 @@ void vp8_transform_mby_8x8(MACROBLOCK *x)
{ {
int i; int i;
vp8_clear_system_state();
for (i = 0; i < 9; i += 8) for (i = 0; i < 9; i += 8)
{ {
x->vp8_short_fdct8x8(&x->block[i].src_diff[0], x->vp8_short_fdct8x8(&x->block[i].src_diff[0],
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment