i965: Make a brw_conditional_mod enum.
authorMatt Turner <mattst88@gmail.com>
Mon, 30 Jun 2014 00:50:20 +0000 (17:50 -0700)
committerMatt Turner <mattst88@gmail.com>
Sun, 6 Jul 2014 05:42:30 +0000 (22:42 -0700)
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
18 files changed:
src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp
src/mesa/drivers/dri/i965/brw_blorp_blit_eu.h
src/mesa/drivers/dri/i965/brw_defines.h
src/mesa/drivers/dri/i965/brw_eu.c
src/mesa/drivers/dri/i965/brw_eu.h
src/mesa/drivers/dri/i965/brw_eu_emit.c
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
src/mesa/drivers/dri/i965/brw_fs_fp.cpp
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/drivers/dri/i965/brw_shader.h
src/mesa/drivers/dri/i965/brw_vec4.h
src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
src/mesa/drivers/dri/i965/brw_vec4_vp.cpp
src/mesa/drivers/dri/i965/gen8_instruction.c

index a2e008b9597b7beeeb2e95206e3a2a87fcb6f16e..c1676a9db44d1a7ed2232c486541632799433e6a 100644 (file)
@@ -117,7 +117,7 @@ brw_blorp_eu_emitter::emit_combine(enum opcode combine_opcode,
 }
 
 fs_inst *
-brw_blorp_eu_emitter::emit_cmp(int op,
+brw_blorp_eu_emitter::emit_cmp(enum brw_conditional_mod op,
                                const struct brw_reg &x,
                                const struct brw_reg &y)
 {
index bc927fedc50d7deb43e7ac3b994a810cf477558b..0459a7e1bd5e3db307e0e733b6286b4cd2fdc168 100644 (file)
@@ -59,7 +59,7 @@ protected:
 
    inline void emit_cond_mov(const struct brw_reg &x,
                              const struct brw_reg &y,
-                             int op,
+                             enum brw_conditional_mod op,
                              const struct brw_reg &dst,
                              const struct brw_reg &src)
    {
@@ -160,7 +160,7 @@ protected:
       insts.push_tail(new (mem_ctx) fs_inst(BRW_OPCODE_RNDD, dst, src));
    }
 
-   inline void emit_cmp_if(int op,
+   inline void emit_cmp_if(enum brw_conditional_mod op,
                            const struct brw_reg &x,
                            const struct brw_reg &y)
    {
@@ -179,7 +179,8 @@ protected:
    }
 
 private:
-   fs_inst *emit_cmp(int op, const struct brw_reg &x, const struct brw_reg &y);
+   fs_inst *emit_cmp(enum brw_conditional_mod op, const struct brw_reg &x,
+                     const struct brw_reg &y);
 
    void *mem_ctx;
    exec_list insts;
index 858d9af43e34d7344197dc55a603f16b9d6790e1..34c39069f98c44965e762ba5477494c02d9fb88c 100644 (file)
@@ -654,18 +654,20 @@ enum brw_compression {
 #define GEN6_COMPRESSION_1H            0
 #define GEN6_COMPRESSION_2H            2
 
-#define BRW_CONDITIONAL_NONE  0
-#define BRW_CONDITIONAL_Z     1
-#define BRW_CONDITIONAL_NZ    2
-#define BRW_CONDITIONAL_EQ    1        /* Z */
-#define BRW_CONDITIONAL_NEQ   2        /* NZ */
-#define BRW_CONDITIONAL_G     3
-#define BRW_CONDITIONAL_GE    4
-#define BRW_CONDITIONAL_L     5
-#define BRW_CONDITIONAL_LE    6
-#define BRW_CONDITIONAL_R     7
-#define BRW_CONDITIONAL_O     8
-#define BRW_CONDITIONAL_U     9
+enum PACKED brw_conditional_mod {
+   BRW_CONDITIONAL_NONE = 0,
+   BRW_CONDITIONAL_Z    = 1,
+   BRW_CONDITIONAL_NZ   = 2,
+   BRW_CONDITIONAL_EQ   = 1,   /* Z */
+   BRW_CONDITIONAL_NEQ  = 2,   /* NZ */
+   BRW_CONDITIONAL_G    = 3,
+   BRW_CONDITIONAL_GE   = 4,
+   BRW_CONDITIONAL_L    = 5,
+   BRW_CONDITIONAL_LE   = 6,
+   BRW_CONDITIONAL_R    = 7,
+   BRW_CONDITIONAL_O    = 8,
+   BRW_CONDITIONAL_U    = 9,
+};
 
 #define BRW_DEBUG_NONE        0
 #define BRW_DEBUG_BREAKPOINT  1
index 6a1e78511e62f451f3985fe4bdf89b0bf426da76..f4c74952a176346785b86d2e2cffaa42bfb19701 100644 (file)
@@ -68,7 +68,7 @@ brw_reg_type_letters(unsigned type)
 /* Returns the corresponding conditional mod for swapping src0 and
  * src1 in e.g. CMP.
  */
-uint32_t
+enum brw_conditional_mod
 brw_swap_cmod(uint32_t cmod)
 {
    switch (cmod) {
index 59b9232feedc97b68c7e33a943ab505c5811d76e..48ef2984f9ba34cabbe70578e25f237f4a6f5cd4 100644 (file)
@@ -320,7 +320,7 @@ void brw_shader_time_add(struct brw_compile *p,
  * channel.
  */
 brw_inst *brw_IF(struct brw_compile *p, unsigned execute_size);
-brw_inst *gen6_IF(struct brw_compile *p, uint32_t conditional,
+brw_inst *gen6_IF(struct brw_compile *p, enum brw_conditional_mod conditional,
                   struct brw_reg src0, struct brw_reg src1);
 
 void brw_ELSE(struct brw_compile *p);
@@ -404,7 +404,7 @@ void brw_set_src1(struct brw_compile *p, brw_inst *insn, struct brw_reg reg);
 
 void brw_set_uip_jip(struct brw_compile *p);
 
-uint32_t brw_swap_cmod(uint32_t cmod);
+enum brw_conditional_mod brw_swap_cmod(uint32_t cmod);
 
 /* brw_eu_compact.c */
 void brw_init_compaction_tables(struct brw_context *brw);
index 44ae700601355510c0452e318c7a9783489c3d37..cd5bc9f2af05366b9793c485e3d8e9f3ef191b75 100644 (file)
@@ -1241,7 +1241,7 @@ brw_IF(struct brw_compile *p, unsigned execute_size)
  * embedded comparison (conditional modifier).  It is not used on gen7.
  */
 brw_inst *
-gen6_IF(struct brw_compile *p, uint32_t conditional,
+gen6_IF(struct brw_compile *p, enum brw_conditional_mod conditional,
        struct brw_reg src0, struct brw_reg src1)
 {
    const struct brw_context *brw = p->brw;
index 2a7c00e7892c3c7ca97e254f63f73c35f72f03bb..d14d20f632b2f30c2cdf23084cbaac41b3956767 100644 (file)
@@ -198,7 +198,8 @@ fs_visitor::IF(uint32_t predicate)
 
 /** Gen6 IF with embedded comparison. */
 fs_inst *
-fs_visitor::IF(const fs_reg &src0, const fs_reg &src1, uint32_t condition)
+fs_visitor::IF(const fs_reg &src0, const fs_reg &src1,
+               enum brw_conditional_mod condition)
 {
    assert(brw->gen == 6);
    fs_inst *inst = new(mem_ctx) fs_inst(BRW_OPCODE_IF,
@@ -213,7 +214,8 @@ fs_visitor::IF(const fs_reg &src0, const fs_reg &src1, uint32_t condition)
  * the flag register with the packed 16 bits of the result.
  */
 fs_inst *
-fs_visitor::CMP(fs_reg dst, fs_reg src0, fs_reg src1, uint32_t condition)
+fs_visitor::CMP(fs_reg dst, fs_reg src0, fs_reg src1,
+                enum brw_conditional_mod condition)
 {
    fs_inst *inst;
 
index da4d373508a0edc242a34ad43aa5e8f4e2df8b70..bffdb2cc5ea0f40e6c20bc96f0e49af55c11cf86 100644 (file)
@@ -273,9 +273,10 @@ public:
    fs_inst *OR(const fs_reg &dst, const fs_reg &src0, const fs_reg &src1);
    fs_inst *XOR(const fs_reg &dst, const fs_reg &src0, const fs_reg &src1);
    fs_inst *IF(uint32_t predicate);
-   fs_inst *IF(const fs_reg &src0, const fs_reg &src1, uint32_t condition);
+   fs_inst *IF(const fs_reg &src0, const fs_reg &src1,
+               enum brw_conditional_mod condition);
    fs_inst *CMP(fs_reg dst, fs_reg src0, fs_reg src1,
-                uint32_t condition);
+                enum brw_conditional_mod condition);
    fs_inst *LRP(const fs_reg &dst, const fs_reg &a, const fs_reg &y,
                 const fs_reg &x);
    fs_inst *DEP_RESOLVE_MOV(int grf);
@@ -385,7 +386,7 @@ public:
    fs_inst *emit_math(enum opcode op, fs_reg dst, fs_reg src0, fs_reg src1);
    void emit_lrp(const fs_reg &dst, const fs_reg &x, const fs_reg &y,
                  const fs_reg &a);
-   void emit_minmax(uint32_t conditionalmod, const fs_reg &dst,
+   void emit_minmax(enum brw_conditional_mod conditionalmod, const fs_reg &dst,
                     const fs_reg &src0, const fs_reg &src1);
    bool try_emit_saturate(ir_expression *ir);
    bool try_emit_mad(ir_expression *ir);
@@ -417,7 +418,7 @@ public:
    void emit_fp_minmax(const struct prog_instruction *fpi,
                        fs_reg dst, fs_reg src0, fs_reg src1);
 
-   void emit_fp_sop(uint32_t conditional_mod,
+   void emit_fp_sop(enum brw_conditional_mod conditional_mod,
                     const struct prog_instruction *fpi,
                     fs_reg dst, fs_reg src0, fs_reg src1, fs_reg one);
 
index 3452a9547e896004993ed1b904fc0ceacd948dea..28e59c6c80789484ede88bd389506590893ac9cd 100644 (file)
@@ -442,7 +442,7 @@ try_constant_propagate(struct brw_context *brw, fs_inst *inst,
             inst->src[i] = entry->src;
             progress = true;
          } else if (i == 0 && inst->src[1].file != IMM) {
-            uint32_t new_cmod;
+            enum brw_conditional_mod new_cmod;
 
             new_cmod = brw_swap_cmod(inst->conditional_mod);
             if (new_cmod != ~0u) {
index 5eaea77c7b1ee029861a83e64067874ed206cfd1..0c5daa7dd68f850fa9d30b93165d516c2261411c 100644 (file)
@@ -57,7 +57,7 @@ void
 fs_visitor::emit_fp_minmax(const prog_instruction *fpi,
                            fs_reg dst, fs_reg src0, fs_reg src1)
 {
-   uint32_t conditionalmod;
+   enum brw_conditional_mod conditionalmod;
    if (fpi->Opcode == OPCODE_MIN)
       conditionalmod = BRW_CONDITIONAL_L;
    else
@@ -72,7 +72,7 @@ fs_visitor::emit_fp_minmax(const prog_instruction *fpi,
 }
 
 void
-fs_visitor::emit_fp_sop(uint32_t conditional_mod,
+fs_visitor::emit_fp_sop(enum brw_conditional_mod conditional_mod,
                         const struct prog_instruction *fpi,
                         fs_reg dst, fs_reg src0, fs_reg src1,
                         fs_reg one)
index cfa67925e4a6b429a0a26ec569dea8c1f0e3659b..8e8affabd401d7bc1e30bd5824f25cc5699725c9 100644 (file)
@@ -251,7 +251,7 @@ fs_visitor::emit_lrp(const fs_reg &dst, const fs_reg &x, const fs_reg &y,
 }
 
 void
-fs_visitor::emit_minmax(uint32_t conditionalmod, const fs_reg &dst,
+fs_visitor::emit_minmax(enum brw_conditional_mod conditionalmod, const fs_reg &dst,
                         const fs_reg &src0, const fs_reg &src1)
 {
    fs_inst *inst;
@@ -2692,7 +2692,7 @@ fs_visitor::emit_color_write(int target, int index, int first_color_mrf)
    }
 }
 
-static int
+static enum brw_conditional_mod
 cond_for_alpha_func(GLenum func)
 {
    switch(func) {
index 58ebd331ef103d5a292199a737e06d74e167eeb0..d7e127b965940f5a2fb44579f07bed55174045cf 100644 (file)
@@ -311,7 +311,7 @@ brw_type_for_base_type(const struct glsl_type *type)
    return BRW_REGISTER_TYPE_F;
 }
 
-uint32_t
+enum brw_conditional_mod
 brw_conditional_for_comparison(unsigned int op)
 {
    switch (op) {
index 7205a8584bd3821d8e7b7b161515fac2be8789e0..7c84ab406163869f305d49d59f9b0366ee2246f4 100644 (file)
@@ -118,7 +118,7 @@ public:
    uint8_t mlen; /**< SEND message length */
    int8_t base_mrf; /**< First MRF in the SEND message, if mlen is nonzero. */
    uint8_t target; /**< MRT target. */
-   uint8_t conditional_mod; /**< BRW_CONDITIONAL_* */
+   enum brw_conditional_mod conditional_mod; /**< BRW_CONDITIONAL_* */
 
    bool force_writemask_all:1;
    bool no_dd_clear:1;
@@ -180,6 +180,6 @@ void annotation_finalize(struct annotation_info *annotation, unsigned offset);
 #endif /* __cplusplus */
 
 enum brw_reg_type brw_type_for_base_type(const struct glsl_type *type);
-uint32_t brw_conditional_for_comparison(unsigned int op);
+enum brw_conditional_mod brw_conditional_for_comparison(unsigned int op);
 uint32_t brw_math_function(enum opcode op);
 const char *brw_instruction_name(enum opcode op);
index 21df552401373aedb8882380470dc0c2d9422baa..d61909d3d22d475d5e0444aa2f2384c1a7f74460 100644 (file)
@@ -441,8 +441,9 @@ public:
    vec4_instruction *ASR(const dst_reg &dst, const src_reg &src0,
                          const src_reg &src1);
    vec4_instruction *CMP(dst_reg dst, src_reg src0, src_reg src1,
-                        uint32_t condition);
-   vec4_instruction *IF(src_reg src0, src_reg src1, uint32_t condition);
+                        enum brw_conditional_mod condition);
+   vec4_instruction *IF(src_reg src0, src_reg src1,
+                        enum brw_conditional_mod condition);
    vec4_instruction *IF(uint32_t predicate);
    vec4_instruction *PULL_CONSTANT_LOAD(const dst_reg &dst,
                                         const src_reg &index);
@@ -479,14 +480,15 @@ public:
    /** Walks an exec_list of ir_instruction and sends it through this visitor. */
    void visit_instructions(const exec_list *list);
 
-   void emit_vp_sop(uint32_t condmod, dst_reg dst,
+   void emit_vp_sop(enum brw_conditional_mod condmod, dst_reg dst,
                     src_reg src0, src_reg src1, src_reg one);
 
    void emit_bool_to_cond_code(ir_rvalue *ir, uint32_t *predicate);
    void emit_bool_comparison(unsigned int op, dst_reg dst, src_reg src0, src_reg src1);
    void emit_if_gen6(ir_if *ir);
 
-   void emit_minmax(uint32_t condmod, dst_reg dst, src_reg src0, src_reg src1);
+   void emit_minmax(enum brw_conditional_mod conditionalmod, dst_reg dst,
+                    src_reg src0, src_reg src1);
 
    void emit_lrp(const dst_reg &dst,
                  const src_reg &x, const src_reg &y, const src_reg &a);
index b6dc07f25d4b30dcac6d9706d60b1710bd8cd7c7..2c41d0208f25acc040ee94c7331ea79c47112a93 100644 (file)
@@ -162,7 +162,7 @@ try_constant_propagate(struct brw_context *brw, vec4_instruction *inst,
         inst->src[arg] = value;
         return true;
       } else if (arg == 0 && inst->src[1].file != IMM) {
-        uint32_t new_cmod;
+        enum brw_conditional_mod new_cmod;
 
         new_cmod = brw_swap_cmod(inst->conditional_mod);
         if (new_cmod != ~0u) {
index 5051d9fa80b0ce59b7bf76e3843e62d2c019d9e5..c5f4b5c9b3d92e326913e2930e3d279172e78974 100644 (file)
@@ -195,7 +195,8 @@ vec4_visitor::IF(uint32_t predicate)
 
 /** Gen6 IF with embedded comparison. */
 vec4_instruction *
-vec4_visitor::IF(src_reg src0, src_reg src1, uint32_t condition)
+vec4_visitor::IF(src_reg src0, src_reg src1,
+                 enum brw_conditional_mod condition)
 {
    assert(brw->gen == 6);
 
@@ -217,7 +218,8 @@ vec4_visitor::IF(src_reg src0, src_reg src1, uint32_t condition)
  * the flag register with the packed 16 bits of the result.
  */
 vec4_instruction *
-vec4_visitor::CMP(dst_reg dst, src_reg src0, src_reg src1, uint32_t condition)
+vec4_visitor::CMP(dst_reg dst, src_reg src0, src_reg src1,
+                  enum brw_conditional_mod condition)
 {
    vec4_instruction *inst;
 
@@ -1185,7 +1187,7 @@ vec4_visitor::emit_bool_comparison(unsigned int op,
 }
 
 void
-vec4_visitor::emit_minmax(uint32_t conditionalmod, dst_reg dst,
+vec4_visitor::emit_minmax(enum brw_conditional_mod conditionalmod, dst_reg dst,
                           src_reg src0, src_reg src1)
 {
    vec4_instruction *inst;
index b62f8097c0a269b07dddc696ac41ce83c7ddee8d..f9c23cae2bf0cbda590f645dd74b36cde8186b24 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
 using namespace brw;
 
 void
-vec4_visitor::emit_vp_sop(uint32_t conditional_mod,
+vec4_visitor::emit_vp_sop(enum brw_conditional_mod conditional_mod,
                           dst_reg dst, src_reg src0, src_reg src1,
                           src_reg one)
 {
index c9cbab639fef0292e42d5fb4cf1ca67e451e2f08..47955e127227e93768b75c68cb2ecd6e93f312bf 100644 (file)
@@ -28,6 +28,7 @@
  * and set various fields.  This is the actual hardware format.
  */
 
+#include "main/compiler.h"
 #include "brw_defines.h"
 #include "gen8_instruction.h"