xref: /aosp_15_r20/external/angle/build/config/mips.gni (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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