OLD | NEW |
1 # Copyright 2013 the V8 project authors. All rights reserved. | 1 # Copyright 2013 the V8 project authors. All rights reserved. |
2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
4 # met: | 4 # met: |
5 # | 5 # |
6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
(...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
804 }], | 804 }], |
805 ['OS=="win" and v8_enable_prof==1', { | 805 ['OS=="win" and v8_enable_prof==1', { |
806 'msvs_settings': { | 806 'msvs_settings': { |
807 'VCLinkerTool': { | 807 'VCLinkerTool': { |
808 'GenerateMapFile': 'true', | 808 'GenerateMapFile': 'true', |
809 }, | 809 }, |
810 }, | 810 }, |
811 }], | 811 }], |
812 ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ | 812 ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ |
813 or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ | 813 or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ |
| 814 v8_target_arch=="ia32"', { |
| 815 # All floating-point computations on x87 happens in 80-bit |
| 816 # precision. Because the C and C++ language standards allow |
| 817 # the compiler to keep the floating-point values in higher |
| 818 # precision than what's specified in the source and doing so |
| 819 # is more efficient than constantly rounding up to 64-bit or |
| 820 # 32-bit precision as specified in the source, the compiler, |
| 821 # especially in the optimized mode, tries very hard to keep |
| 822 # values in x87 floating-point stack (in 80-bit precision) |
| 823 # as long as possible. This has important side effects, that |
| 824 # the real value used in computation may change depending on |
| 825 # how the compiler did the optimization - that is, the value |
| 826 # kept in 80-bit is different than the value rounded down to |
| 827 # 64-bit or 32-bit. There are possible compiler options to |
| 828 # make this behavior consistent (e.g. -ffloat-store would keep |
| 829 # all floating-values in the memory, thus force them to be |
| 830 # rounded to its original precision) but they have significant |
| 831 # runtime performance penalty. |
| 832 # |
| 833 # -mfpmath=sse -msse2 makes the compiler use SSE instructions |
| 834 # which keep floating-point values in SSE registers in its |
| 835 # native precision (32-bit for single precision, and 64-bit |
| 836 # for double precision values). This means the floating-point |
| 837 # value used during computation does not change depending on |
| 838 # how the compiler optimized the code, since the value is |
| 839 # always kept in its specified precision. |
| 840 # |
| 841 # Refer to http://crbug.com/348761 for rationale behind SSE2 |
| 842 # being a minimum requirement for 32-bit Linux builds and |
| 843 # http://crbug.com/313032 for an example where this has "bit" |
| 844 # us in the past. |
| 845 'cflags': [ |
| 846 '-msse2', |
| 847 '-mfpmath=sse', |
| 848 '-mmmx', # Allows mmintrin.h for MMX intrinsics. |
| 849 ], |
| 850 }], |
| 851 ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ |
| 852 or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ |
814 (v8_target_arch=="arm" or v8_target_arch=="ia32" or \ | 853 (v8_target_arch=="arm" or v8_target_arch=="ia32" or \ |
815 v8_target_arch=="x87" or v8_target_arch=="mips" or \ | 854 v8_target_arch=="x87" or v8_target_arch=="mips" or \ |
816 v8_target_arch=="mipsel" or v8_target_arch=="ppc")', { | 855 v8_target_arch=="mipsel" or v8_target_arch=="ppc")', { |
817 'target_conditions': [ | 856 'target_conditions': [ |
818 ['_toolset=="host"', { | 857 ['_toolset=="host"', { |
819 'conditions': [ | 858 'conditions': [ |
820 ['host_cxx_is_biarch==1', { | 859 ['host_cxx_is_biarch==1', { |
821 'cflags': [ '-m32' ], | 860 'cflags': [ '-m32' ], |
822 'ldflags': [ '-m32' ] | 861 'ldflags': [ '-m32' ] |
823 }], | 862 }], |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1123 ['v8_enable_slow_dchecks==1', { | 1162 ['v8_enable_slow_dchecks==1', { |
1124 'defines': [ | 1163 'defines': [ |
1125 'ENABLE_SLOW_DCHECKS', | 1164 'ENABLE_SLOW_DCHECKS', |
1126 ], | 1165 ], |
1127 }], | 1166 }], |
1128 ], # conditions | 1167 ], # conditions |
1129 }, # Release | 1168 }, # Release |
1130 }, # configurations | 1169 }, # configurations |
1131 }, # target_defaults | 1170 }, # target_defaults |
1132 } | 1171 } |
OLD | NEW |