Index: build/toolchain.gypi |
diff --git a/build/toolchain.gypi b/build/toolchain.gypi |
index bed1dc9f32f5bf9c0faf7bc18db135014cbd1a74..839c4c499629789b8f50c1421b313756b19ba8a2 100644 |
--- a/build/toolchain.gypi |
+++ b/build/toolchain.gypi |
@@ -229,6 +229,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': [ |
@@ -818,36 +823,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', |