From: Matt Turner Date: Thu, 31 Oct 2019 17:27:48 +0000 (-0700) Subject: intel/compiler: Extract GEN_* macros into separate file X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb47aa2124c055c8dabeda7c1b4c48372e63098c;p=mesa.git intel/compiler: Extract GEN_* macros into separate file Will be used by the instruction compaction unit test. Reviewed-by: Caio Marcelo de Oliveira Filho Part-of: --- diff --git a/src/intel/compiler/brw_eu.cpp b/src/intel/compiler/brw_eu.cpp index 1261c726ace..4ce36fc2597 100644 --- a/src/intel/compiler/brw_eu.cpp +++ b/src/intel/compiler/brw_eu.cpp @@ -35,6 +35,7 @@ #include "brw_eu_defines.h" #include "brw_eu.h" #include "brw_shader.h" +#include "brw_gen_enum.h" #include "dev/gen_debug.h" #include "util/ralloc.h" @@ -457,25 +458,6 @@ brw_disassemble(const struct gen_device_info *devinfo, } } -enum gen { - GEN4 = (1 << 0), - GEN45 = (1 << 1), - GEN5 = (1 << 2), - GEN6 = (1 << 3), - GEN7 = (1 << 4), - GEN75 = (1 << 5), - GEN8 = (1 << 6), - GEN9 = (1 << 7), - GEN10 = (1 << 8), - GEN11 = (1 << 9), - GEN12 = (1 << 10), - GEN_ALL = ~0 -}; - -#define GEN_LT(gen) ((gen) - 1) -#define GEN_GE(gen) (~GEN_LT(gen)) -#define GEN_LE(gen) (GEN_LT(gen) | (gen)) - static const struct opcode_desc opcode_descs[] = { /* IR, HW, name, nsrc, ndst, gens */ { BRW_OPCODE_ILLEGAL, 0, "illegal", 0, 0, GEN_ALL }, @@ -583,24 +565,6 @@ static const struct opcode_desc opcode_descs[] = { { BRW_OPCODE_NOP, 96, "nop", 0, 0, GEN_GE(GEN12) } }; -static enum gen -gen_from_devinfo(const struct gen_device_info *devinfo) -{ - switch (devinfo->gen) { - case 4: return devinfo->is_g4x ? GEN45 : GEN4; - case 5: return GEN5; - case 6: return GEN6; - case 7: return devinfo->is_haswell ? GEN75 : GEN7; - case 8: return GEN8; - case 9: return GEN9; - case 10: return GEN10; - case 11: return GEN11; - case 12: return GEN12; - default: - unreachable("not reached"); - } -} - /** * Look up the opcode_descs[] entry with \p key member matching \p k which is * supported by the device specified by \p devinfo, or NULL if there is no diff --git a/src/intel/compiler/brw_gen_enum.h b/src/intel/compiler/brw_gen_enum.h new file mode 100644 index 00000000000..cd50f9c6f4d --- /dev/null +++ b/src/intel/compiler/brw_gen_enum.h @@ -0,0 +1,62 @@ +/* + * Copyright © 2015 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "util/macros.h" +#include "dev/gen_device_info.h" + +enum gen { + GEN4 = (1 << 0), + GEN45 = (1 << 1), + GEN5 = (1 << 2), + GEN6 = (1 << 3), + GEN7 = (1 << 4), + GEN75 = (1 << 5), + GEN8 = (1 << 6), + GEN9 = (1 << 7), + GEN10 = (1 << 8), + GEN11 = (1 << 9), + GEN12 = (1 << 10), + GEN_ALL = ~0 +}; + +#define GEN_LT(gen) ((gen) - 1) +#define GEN_GE(gen) (~GEN_LT(gen)) +#define GEN_LE(gen) (GEN_LT(gen) | (gen)) + +static enum gen +gen_from_devinfo(const struct gen_device_info *devinfo) +{ + switch (devinfo->gen) { + case 4: return devinfo->is_g4x ? GEN45 : GEN4; + case 5: return GEN5; + case 6: return GEN6; + case 7: return devinfo->is_haswell ? GEN75 : GEN7; + case 8: return GEN8; + case 9: return GEN9; + case 10: return GEN10; + case 11: return GEN11; + case 12: return GEN12; + default: + unreachable("not reached"); + } +}