| Index: build/toolchain.gypi | 
| diff --git a/build/toolchain.gypi b/build/toolchain.gypi | 
| index 56b2e338eed352f3b2a95c408ad7fdfdb39653bf..0443790649c81ad1770c15b371b2135e8c59b9a9 100644 | 
| --- a/build/toolchain.gypi | 
| +++ b/build/toolchain.gypi | 
| @@ -223,6 +223,11 @@ | 
| }, { | 
| # 'v8_target_arch!=target_arch' | 
| # Target not built with an Arm CXX compiler (simulator build). | 
| +                'cflags': [ | 
| +                  '-msse2', | 
| +                  '-mfpmath=sse', | 
| +                  '-mmmx',  # Allows mmintrin.h for MMX intrinsics. | 
| +                ], | 
| 'conditions': [ | 
| [ 'arm_float_abi=="hard"', { | 
| 'defines': [ | 
| @@ -812,36 +817,6 @@ | 
| ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ | 
| or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ | 
| v8_target_arch=="ia32"', { | 
| -        # All floating-point computations on x87 happens in 80-bit | 
| -        # precision.  Because the C and C++ language standards allow | 
| -        # the compiler to keep the floating-point values in higher | 
| -        # precision than what's specified in the source and doing so | 
| -        # is more efficient than constantly rounding up to 64-bit or | 
| -        # 32-bit precision as specified in the source, the compiler, | 
| -        # especially in the optimized mode, tries very hard to keep | 
| -        # values in x87 floating-point stack (in 80-bit precision) | 
| -        # as long as possible. This has important side effects, that | 
| -        # the real value used in computation may change depending on | 
| -        # how the compiler did the optimization - that is, the value | 
| -        # kept in 80-bit is different than the value rounded down to | 
| -        # 64-bit or 32-bit. There are possible compiler options to | 
| -        # make this behavior consistent (e.g. -ffloat-store would keep | 
| -        # all floating-values in the memory, thus force them to be | 
| -        # rounded to its original precision) but they have significant | 
| -        # runtime performance penalty. | 
| -        # | 
| -        # -mfpmath=sse -msse2 makes the compiler use SSE instructions | 
| -        # which keep floating-point values in SSE registers in its | 
| -        # native precision (32-bit for single precision, and 64-bit | 
| -        # for double precision values). This means the floating-point | 
| -        # value used during computation does not change depending on | 
| -        # how the compiler optimized the code, since the value is | 
| -        # always kept in its specified precision. | 
| -        # | 
| -        # Refer to http://crbug.com/348761 for rationale behind SSE2 | 
| -        # being a minimum requirement for 32-bit Linux builds and | 
| -        # http://crbug.com/313032 for an example where this has "bit" | 
| -        # us in the past. | 
| 'cflags': [ | 
| '-msse2', | 
| '-mfpmath=sse', | 
|  |