| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
| 6 import("//build/config/arm.gni") | 6 import("//build/config/arm.gni") |
| 7 import("//build/config/mips.gni") | 7 import("//build/config/mips.gni") |
| 8 import("//build/config/sanitizers/sanitizers.gni") | 8 import("//build/config/sanitizers/sanitizers.gni") |
| 9 | 9 |
| 10 if (is_android) { | 10 if (is_android) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 # based where the regular expression is compiled to a bytecode. | 48 # based where the regular expression is compiled to a bytecode. |
| 49 v8_interpreted_regexp = false | 49 v8_interpreted_regexp = false |
| 50 | 50 |
| 51 # Sets -dOBJECT_PRINT. | 51 # Sets -dOBJECT_PRINT. |
| 52 v8_object_print = false | 52 v8_object_print = false |
| 53 | 53 |
| 54 # With post mortem support enabled, metadata is embedded into libv8 that | 54 # With post mortem support enabled, metadata is embedded into libv8 that |
| 55 # describes various parameters of the VM for use by debuggers. See | 55 # describes various parameters of the VM for use by debuggers. See |
| 56 # tools/gen-postmortem-metadata.py for details. | 56 # tools/gen-postmortem-metadata.py for details. |
| 57 v8_postmortem_support = false | 57 v8_postmortem_support = false |
| 58 |
| 59 # Similar to vfp but on MIPS. |
| 60 v8_can_use_fpu_instructions = true |
| 61 |
| 62 # Similar to the ARM hard float ABI but on MIPS. |
| 63 v8_use_mips_abi_hardfloat = true |
| 58 } | 64 } |
| 59 | 65 |
| 60 v8_random_seed = "314159265" | 66 v8_random_seed = "314159265" |
| 61 v8_toolset_for_d8 = "host" | 67 v8_toolset_for_d8 = "host" |
| 62 | 68 |
| 63 if (is_msan) { | 69 if (is_msan) { |
| 64 # Running the V8-generated code on an ARM simulator is a powerful hack that | 70 # Running the V8-generated code on an ARM simulator is a powerful hack that |
| 65 # allows the tool to see the memory accesses from JITted code. Without this | 71 # allows the tool to see the memory accesses from JITted code. Without this |
| 66 # flag, JS code causes false positive reports from MSan. | 72 # flag, JS code causes false positive reports from MSan. |
| 67 v8_target_arch = "arm64" | 73 v8_target_arch = "arm64" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] | 167 defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ] |
| 162 } | 168 } |
| 163 } | 169 } |
| 164 | 170 |
| 165 config("toolchain") { | 171 config("toolchain") { |
| 166 visibility = [ ":*" ] # Only targets in this file can depend on this. | 172 visibility = [ ":*" ] # Only targets in this file can depend on this. |
| 167 | 173 |
| 168 defines = [] | 174 defines = [] |
| 169 cflags = [] | 175 cflags = [] |
| 170 | 176 |
| 171 # TODO(jochen): Add support for arm subarchs, mips, mipsel, mips64el. | |
| 172 | |
| 173 if (v8_target_arch == "arm") { | 177 if (v8_target_arch == "arm") { |
| 174 defines += [ "V8_TARGET_ARCH_ARM" ] | 178 defines += [ "V8_TARGET_ARCH_ARM" ] |
| 175 if (current_cpu == "arm") { | 179 if (arm_version == 7) { |
| 176 if (arm_version == 7) { | 180 defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ] |
| 177 defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ] | 181 } |
| 178 } | 182 if (arm_fpu == "vfpv3-d16") { |
| 179 if (arm_fpu == "vfpv3-d16") { | 183 defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ] |
| 180 defines += [ "CAN_USE_VFP3_INSTRUCTIONS" ] | 184 } else if (arm_fpu == "vfpv3") { |
| 181 } else if (arm_fpu == "vfpv3") { | |
| 182 defines += [ | |
| 183 "CAN_USE_VFP3_INSTRUCTIONS", | |
| 184 "CAN_USE_VFP32DREGS", | |
| 185 ] | |
| 186 } else if (arm_fpu == "neon") { | |
| 187 defines += [ | |
| 188 "CAN_USE_VFP3_INSTRUCTIONS", | |
| 189 "CAN_USE_VFP32DREGS", | |
| 190 "CAN_USE_NEON", | |
| 191 ] | |
| 192 } | |
| 193 } else { | |
| 194 # These defines ares used for the ARM simulator. | |
| 195 defines += [ | 185 defines += [ |
| 196 "CAN_USE_ARMV7_INSTRUCTIONS", | |
| 197 "CAN_USE_VFP3_INSTRUCTIONS", | 186 "CAN_USE_VFP3_INSTRUCTIONS", |
| 198 "CAN_USE_VFP32DREGS", | 187 "CAN_USE_VFP32DREGS", |
| 199 "USE_EABI_HARDFLOAT=0", | 188 ] |
| 189 } else if (arm_fpu == "neon") { |
| 190 defines += [ |
| 191 "CAN_USE_VFP3_INSTRUCTIONS", |
| 192 "CAN_USE_VFP32DREGS", |
| 193 "CAN_USE_NEON", |
| 200 ] | 194 ] |
| 201 } | 195 } |
| 196 # TODO(jochen): Add support for arm_test_noprobe. |
| 202 | 197 |
| 203 # TODO(jochen): Add support for arm_test_noprobe. | 198 if (current_cpu != "arm") { |
| 199 # These defines ares used for the ARM simulator. |
| 200 if (arm_float_abi == "hard") { |
| 201 defines += [ "USE_EABI_HARDFLOAT=1" ] |
| 202 } else if (arm_float_abi == "softfp") { |
| 203 defines += [ "USE_EABI_HARDFLOAT=0" ] |
| 204 } |
| 205 } |
| 204 } | 206 } |
| 205 if (v8_target_arch == "arm64") { | 207 if (v8_target_arch == "arm64") { |
| 206 defines += [ "V8_TARGET_ARCH_ARM64" ] | 208 defines += [ "V8_TARGET_ARCH_ARM64" ] |
| 207 } | 209 } |
| 210 # TODO(jochen): Add support for mips. |
| 208 if (v8_target_arch == "mipsel") { | 211 if (v8_target_arch == "mipsel") { |
| 209 defines += [ "V8_TARGET_ARCH_MIPS" ] | 212 defines += [ "V8_TARGET_ARCH_MIPS" ] |
| 213 if (v8_can_use_fpu_instructions) { |
| 214 defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] |
| 215 } |
| 216 if (v8_use_mips_abi_hardfloat) { |
| 217 defines += [ |
| 218 "__mips_hard_float=1", |
| 219 "CAN_USE_FPU_INSTRUCTIONS", |
| 220 ] |
| 221 } else { |
| 222 defines += [ "__mips_soft_float=1" ] |
| 223 } |
| 224 if (mips_arch_variant == "r6") { |
| 225 defines += [ |
| 226 "_MIPS_ARCH_MIPS32R6", |
| 227 "FPU_MODE_FP64", |
| 228 ] |
| 229 } else if (mips_arch_variant == "r2") { |
| 230 defines += [ "_MIPS_ARCH_MIPS32R2" ] |
| 231 if (mips_fpu_mode == "fp64") { |
| 232 defines += [ "FPU_MODE_FP64" ] |
| 233 } else if (mips_fpu_mode == "fpxx") { |
| 234 defines += [ "FPU_MODE_FPXX" ] |
| 235 } else if (mips_fpu_mode == "fp32") { |
| 236 defines += [ "FPU_MODE_FP32" ] |
| 237 } |
| 238 } else if (mips_arch_variant == "r1") { |
| 239 defines += [ "FPU_MODE_FP32" ] |
| 240 } |
| 241 # TODO(jochen): Add support for mips_arch_variant rx and loongson. |
| 210 } | 242 } |
| 243 # TODO(jochen): Add support for mips64. |
| 211 if (v8_target_arch == "mips64el") { | 244 if (v8_target_arch == "mips64el") { |
| 212 defines += [ "V8_TARGET_ARCH_MIPS64" ] | 245 defines += [ "V8_TARGET_ARCH_MIPS64" ] |
| 246 if (v8_can_use_fpu_instructions) { |
| 247 defines += [ "CAN_USE_FPU_INSTRUCTIONS" ] |
| 248 } |
| 249 # TODO(jochen): Add support for big endian host byteorder. |
| 250 defines += [ "V8_TARGET_ARCH_MIPS64_LE" ] |
| 251 if (v8_use_mips_abi_hardfloat) { |
| 252 defines += [ |
| 253 "__mips_hard_float=1", |
| 254 "CAN_USE_FPU_INSTRUCTIONS", |
| 255 ] |
| 256 } else { |
| 257 defines += [ "__mips_soft_float=1" ] |
| 258 } |
| 259 if (mips_arch_variant == "r6") { |
| 260 defines += [ "_MIPS_ARCH_MIPS64R6" ] |
| 261 } else if (mips_arch_variant == "r2") { |
| 262 defines += [ "_MIPS_ARCH_MIPS64R2" ] |
| 263 } |
| 213 } | 264 } |
| 214 if (v8_target_arch == "s390") { | 265 if (v8_target_arch == "s390") { |
| 215 defines += [ "V8_TARGET_ARCH_S390" ] | 266 defines += [ "V8_TARGET_ARCH_S390" ] |
| 216 } | 267 } |
| 217 if (v8_target_arch == "s390x") { | 268 if (v8_target_arch == "s390x") { |
| 218 defines += [ | 269 defines += [ |
| 219 "V8_TARGET_ARCH_S390", | 270 "V8_TARGET_ARCH_S390", |
| 220 "V8_TARGET_ARCH_S390X", | 271 "V8_TARGET_ARCH_S390X", |
| 221 ] | 272 ] |
| 222 } | 273 } |
| (...skipping 1938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2161 | 2212 |
| 2162 configs -= [ "//build/config/compiler:chromium_code" ] | 2213 configs -= [ "//build/config/compiler:chromium_code" ] |
| 2163 configs += [ "//build/config/compiler:no_chromium_code" ] | 2214 configs += [ "//build/config/compiler:no_chromium_code" ] |
| 2164 configs += [ | 2215 configs += [ |
| 2165 ":internal_config", | 2216 ":internal_config", |
| 2166 ":libplatform_config", | 2217 ":libplatform_config", |
| 2167 ":features", | 2218 ":features", |
| 2168 ":toolchain", | 2219 ":toolchain", |
| 2169 ] | 2220 ] |
| 2170 } | 2221 } |
| OLD | NEW |