1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2015 The Chromium Authors 2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 4*8975f5c5SAndroid Build Coastguard Worker 5*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/v8_target_cpu.gni") 6*8975f5c5SAndroid Build Coastguard Worker 7*8975f5c5SAndroid Build Coastguard Worker# These are primarily relevant in current_cpu == "mips*" contexts, where 8*8975f5c5SAndroid Build Coastguard Worker# MIPS code is being compiled. But they can also be relevant in the 9*8975f5c5SAndroid Build Coastguard Worker# other contexts when the code will change its behavior based on the 10*8975f5c5SAndroid Build Coastguard Worker# cpu it wants to generate code for. 11*8975f5c5SAndroid Build Coastguard Workerdeclare_args() { 12*8975f5c5SAndroid Build Coastguard Worker # MIPS MultiMedia Instruction compilation flag. 13*8975f5c5SAndroid Build Coastguard Worker mips_use_mmi = false 14*8975f5c5SAndroid Build Coastguard Worker} 15*8975f5c5SAndroid Build Coastguard Worker 16*8975f5c5SAndroid Build Coastguard Workerif (current_cpu == "mipsel" || v8_current_cpu == "mipsel" || 17*8975f5c5SAndroid Build Coastguard Worker current_cpu == "mips" || v8_current_cpu == "mips") { 18*8975f5c5SAndroid Build Coastguard Worker declare_args() { 19*8975f5c5SAndroid Build Coastguard Worker # MIPS arch variant. Possible values are: 20*8975f5c5SAndroid Build Coastguard Worker # "r1" 21*8975f5c5SAndroid Build Coastguard Worker # "r2" 22*8975f5c5SAndroid Build Coastguard Worker # "r6" 23*8975f5c5SAndroid Build Coastguard Worker # "loongson3" 24*8975f5c5SAndroid Build Coastguard Worker mips_arch_variant = "r1" 25*8975f5c5SAndroid Build Coastguard Worker 26*8975f5c5SAndroid Build Coastguard Worker # MIPS DSP ASE revision. Possible values are: 27*8975f5c5SAndroid Build Coastguard Worker # 0: unavailable 28*8975f5c5SAndroid Build Coastguard Worker # 1: revision 1 29*8975f5c5SAndroid Build Coastguard Worker # 2: revision 2 30*8975f5c5SAndroid Build Coastguard Worker mips_dsp_rev = 0 31*8975f5c5SAndroid Build Coastguard Worker 32*8975f5c5SAndroid Build Coastguard Worker # MIPS SIMD Arch compilation flag. 33*8975f5c5SAndroid Build Coastguard Worker mips_use_msa = false 34*8975f5c5SAndroid Build Coastguard Worker 35*8975f5c5SAndroid Build Coastguard Worker # MIPS floating-point ABI. Possible values are: 36*8975f5c5SAndroid Build Coastguard Worker # "hard": sets the GCC -mhard-float option. 37*8975f5c5SAndroid Build Coastguard Worker # "soft": sets the GCC -msoft-float option. 38*8975f5c5SAndroid Build Coastguard Worker mips_float_abi = "hard" 39*8975f5c5SAndroid Build Coastguard Worker 40*8975f5c5SAndroid Build Coastguard Worker # MIPS32 floating-point register width. Possible values are: 41*8975f5c5SAndroid Build Coastguard Worker # "fp32": sets the GCC -mfp32 option. 42*8975f5c5SAndroid Build Coastguard Worker # "fp64": sets the GCC -mfp64 option. 43*8975f5c5SAndroid Build Coastguard Worker # "fpxx": sets the GCC -mfpxx option. 44*8975f5c5SAndroid Build Coastguard Worker mips_fpu_mode = "fp32" 45*8975f5c5SAndroid Build Coastguard Worker } 46*8975f5c5SAndroid Build Coastguard Worker} else if (current_cpu == "mips64el" || v8_current_cpu == "mips64el" || 47*8975f5c5SAndroid Build Coastguard Worker current_cpu == "mips64" || v8_current_cpu == "mips64") { 48*8975f5c5SAndroid Build Coastguard Worker # MIPS arch variant. Possible values are: 49*8975f5c5SAndroid Build Coastguard Worker # "r2" 50*8975f5c5SAndroid Build Coastguard Worker # "r6" 51*8975f5c5SAndroid Build Coastguard Worker # "loongson3" 52*8975f5c5SAndroid Build Coastguard Worker if (current_os == "android" || target_os == "android") { 53*8975f5c5SAndroid Build Coastguard Worker declare_args() { 54*8975f5c5SAndroid Build Coastguard Worker mips_arch_variant = "r6" 55*8975f5c5SAndroid Build Coastguard Worker 56*8975f5c5SAndroid Build Coastguard Worker # MIPS SIMD Arch compilation flag. 57*8975f5c5SAndroid Build Coastguard Worker mips_use_msa = true 58*8975f5c5SAndroid Build Coastguard Worker } 59*8975f5c5SAndroid Build Coastguard Worker } else { 60*8975f5c5SAndroid Build Coastguard Worker declare_args() { 61*8975f5c5SAndroid Build Coastguard Worker mips_arch_variant = "r2" 62*8975f5c5SAndroid Build Coastguard Worker 63*8975f5c5SAndroid Build Coastguard Worker # MIPS SIMD Arch compilation flag. 64*8975f5c5SAndroid Build Coastguard Worker mips_use_msa = false 65*8975f5c5SAndroid Build Coastguard Worker } 66*8975f5c5SAndroid Build Coastguard Worker } 67*8975f5c5SAndroid Build Coastguard Worker} 68