vpx/vp8/encoder
Paul Wilkins 81c6041922 Fix SIMD unsafe use of floating point.
This commit fixes unsafe simd / floating point interactions arising
from the current hybrid and 16x16 transform implementation.
These led to a raft of bugs and issues when the project was
built using VS2008 for Win32 though they did not show up with
the unix builds.

Gerrit makes a meal out of presenting the fix but all I have actually
done is indent the body of each function that uses floating point by
one level and bracket with emms instructions using  the function
vp8_clear_system_state(). See below.

function () {
  vp8_clear_system_state();
  {
  ... function body
  }
  vp8_clear_system_state();
}

This is almost certainly over the top in terms of number of emms
instructions but is a temporary measure pending implementation of
integer variants of each function to replace the floating point.

Limited testing suggests that this fixes the problems that arose for
Win32 VS2008 when the hybrid or 16x16 transforms were enabled.

Change-Id: I7c9a72bd79315246ed880578dec51e2b7c178442
2012-10-05 11:16:46 +01:00
..
arm Merging in the sixteenth subpel uv experiment 2012-08-08 16:57:43 -07:00
generic hybrid transform of 16x16 dimension 2012-08-30 16:52:25 -07:00
ppc Restyle code 2012-07-17 11:46:03 -07:00
x86 Merging in the sixteenth subpel uv experiment 2012-08-08 16:57:43 -07:00
asm_enc_offsets.c use GCC inline magic 2011-06-08 16:19:37 -04:00
bitstream.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
bitstream.h Restyle code 2012-07-17 11:46:03 -07:00
block.h Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
boolhuff.c Merges several experiments 2012-07-27 12:12:39 -07:00
boolhuff.h Merges several experiments 2012-07-27 12:12:39 -07:00
dct.c Fix SIMD unsafe use of floating point. 2012-10-05 11:16:46 +01:00
dct.h hybrid transform of 16x16 dimension 2012-08-30 16:52:25 -07:00
encodeframe.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
encodeintra.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
encodeintra.h Restyle code 2012-07-17 11:46:03 -07:00
encodemb.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
encodemb.h hybrid transform of 16x16 dimension 2012-08-30 16:52:25 -07:00
encodemv.c Adds feature for companded MV encoding 2012-09-12 11:51:10 -07:00
encodemv.h New motion vector entropy coding 2012-09-06 08:28:21 -07:00
firstpass.c New motion vector entropy coding 2012-09-06 08:28:21 -07:00
firstpass.h Move firstpass motion map to stats packet 2010-10-21 14:04:20 -04:00
lookahead.c Restyle code 2012-07-17 11:46:03 -07:00
lookahead.h Restyle code 2012-07-17 11:46:03 -07:00
mbgraph.c New motion vector entropy coding 2012-09-06 08:28:21 -07:00
mbgraph.h Further segment feature extensions. 2011-10-24 15:52:18 +01:00
mcomp.c Adds feature for companded MV encoding 2012-09-12 11:51:10 -07:00
mcomp.h New motion vector entropy coding 2012-09-06 08:28:21 -07:00
modecosts.c Adds support for switchable interpolation filters. 2012-07-30 11:33:43 -07:00
modecosts.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
onyx_if.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
onyx_int.h Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
picklpf.c Restyle code 2012-07-17 11:46:03 -07:00
psnr.c Restyle code 2012-07-17 11:46:03 -07:00
psnr.h Increase static linkage, remove unused functions 2011-03-17 20:53:47 -04:00
quantize.c hybrid transform of 16x16 dimension 2012-08-30 16:52:25 -07:00
quantize.h hybrid transform of 16x16 dimension 2012-08-30 16:52:25 -07:00
ratectrl.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
ratectrl.h Restyle code 2012-07-17 11:46:03 -07:00
rdopt.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
rdopt.h Superblock coding. 2012-08-20 14:43:34 -07:00
sad_c.c Use 3 rows and cols of pixels for ref_mv scoring 2012-09-14 09:47:43 -07:00
satd_c.c Restyle code 2012-07-17 11:46:03 -07:00
segmentation.c Superblock coding. 2012-08-20 14:43:34 -07:00
segmentation.h Restyle code 2012-07-17 11:46:03 -07:00
ssim.c Restyle code 2012-07-17 11:46:03 -07:00
temporal_filter.c New motion vector entropy coding 2012-09-06 08:28:21 -07:00
temporal_filter.h Restyle code 2012-07-17 11:46:03 -07:00
tokenize.c Entropy coding for hybrid transform 2012-09-27 11:21:39 -07:00
tokenize.h Cleanups for hybrid transform 2012-09-11 20:53:13 -07:00
treewriter.c Restyle code 2012-07-17 11:46:03 -07:00
treewriter.h Restyle code 2012-07-17 11:46:03 -07:00
variance_c.c Superblock coding. 2012-08-20 14:43:34 -07:00
variance.h Merge "Superblock coding." into experimental 2012-08-20 17:04:23 -07:00