diff options
author | Kenneth Graunke <[email protected]> | 2015-02-25 16:07:03 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2015-02-27 11:36:08 -0800 |
commit | 4ebacf8aa67b1bfba7820f25536be98c7452dcb1 (patch) | |
tree | c570237bb90aed4ab6146cb99c407c46337e93df /src/mesa | |
parent | 0fad07af9aa9855ebdff5eabeef6419449e2996c (diff) |
i965/fs: Introduce brw_negate_cmod().
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu.c | 22 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu.h | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu.c b/src/mesa/drivers/dri/i965/brw_eu.c index 990597286d8..a1b7fda9336 100644 --- a/src/mesa/drivers/dri/i965/brw_eu.c +++ b/src/mesa/drivers/dri/i965/brw_eu.c @@ -65,6 +65,28 @@ brw_reg_type_letters(unsigned type) return names[type]; } +/* Returns a conditional modifier that negates the condition. */ +enum brw_conditional_mod +brw_negate_cmod(uint32_t cmod) +{ + switch (cmod) { + case BRW_CONDITIONAL_Z: + return BRW_CONDITIONAL_NZ; + case BRW_CONDITIONAL_NZ: + return BRW_CONDITIONAL_Z; + case BRW_CONDITIONAL_G: + return BRW_CONDITIONAL_LE; + case BRW_CONDITIONAL_GE: + return BRW_CONDITIONAL_L; + case BRW_CONDITIONAL_L: + return BRW_CONDITIONAL_GE; + case BRW_CONDITIONAL_LE: + return BRW_CONDITIONAL_G; + default: + return ~0; + } +} + /* Returns the corresponding conditional mod for swapping src0 and * src1 in e.g. CMP. */ diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h index a94ea4221ad..736c54b4fa6 100644 --- a/src/mesa/drivers/dri/i965/brw_eu.h +++ b/src/mesa/drivers/dri/i965/brw_eu.h @@ -445,6 +445,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); +enum brw_conditional_mod brw_negate_cmod(uint32_t cmod); enum brw_conditional_mod brw_swap_cmod(uint32_t cmod); /* brw_eu_compact.c */ |