}
ir_to_mesa_src_reg ir_to_mesa_undef = {
- PROGRAM_UNDEFINED, 0, SWIZZLE_NOOP, false,
+ PROGRAM_UNDEFINED, 0, SWIZZLE_NOOP, NEGATE_NONE, false,
};
ir_to_mesa_dst_reg ir_to_mesa_undef_dst = {
tree->right = right;
tree->v = this;
tree->src_reg.swizzle = SWIZZLE_XYZW;
+ tree->src_reg.negate = 0;
tree->dst_reg.writemask = WRITEMASK_XYZW;
ir_to_mesa_set_tree_reg(tree, PROGRAM_UNDEFINED, 0);
tree->ir = ir;
this->result = this->create_tree(MB_TERM_seq_vec4_vec4, ir,
op[0], this->result);
break;
+ case ir_unop_neg:
+ op[0]->src_reg.negate = ~op[0]->src_reg.negate;
+ this->result = op[0];
+ break;
case ir_unop_exp:
this->result = this->create_tree(MB_TERM_exp_vec4, ir, op[0], NULL);
break;
int file; /**< PROGRAM_* from Mesa */
int index; /**< temporary index, VERT_ATTRIB_*, FRAG_ATTRIB_*, etc. */
int swizzle; /**< SWIZZLE_XYZWONEZERO swizzles from Mesa. */
+ int negate; /**< NEGATE_XYZW mask from mesa */
bool reladdr; /**< Register index should be offset by address reg. */
} ir_to_mesa_src_reg;