Lines Matching defs:rhs
815 * Validates that \c rhs can be assigned to some location. If the types are
816 * not an exact match but an automatic conversion is possible, \c rhs will be
820 * \c NULL if \c rhs cannot be assigned to a location with type \c lhs_type.
822 * \c rhs, or it may be \c rhs after some type conversion.
831 ir_rvalue *rhs, bool is_initializer)
836 if (rhs->type->is_error())
837 return rhs;
860 if (rhs->type == lhs->type)
861 return rhs;
871 const glsl_type *rhs_t = rhs->type;
895 if (rhs->type->get_scalar_type() == lhs->type->get_scalar_type())
896 return rhs;
905 if (apply_implicit_conversion(lhs->type, rhs, state)) {
906 if (rhs->type == lhs->type)
907 return rhs;
914 rhs->type->name, lhs->type->name);
932 ir_rvalue *lhs, ir_rvalue *rhs,
938 bool error_emitted = (lhs->type->is_error() || rhs->type->is_error());
990 validate_assignment(state, lhs_loc, lhs, rhs, is_initializer);
992 rhs = new_rhs;
1008 if (var->data.max_array_access >= rhs->type->array_size()) {
1016 rhs->type->array_size());
1020 mark_whole_array_access(rhs);
1041 ir_variable *var = new(ctx) ir_variable(rhs->type, "assignment_tmp",
1044 instructions->push_tail(assign(var, rhs));
1056 instructions->push_tail(new(ctx) ir_assignment(lhs, rhs));
4595 ir_rvalue *rhs = decl->initializer->hir(initializer_instructions, state);
4613 lhs, rhs, true);
4615 rhs = new_rhs;
4657 rhs->constant_expression_value(mem_ctx);
4686 rhs = constant_value;
4693 rhs = var->constant_value = type->qualifier.flags.q.constant
4699 if (rhs && !rhs->type->is_error()) {
4711 NULL, lhs, rhs,
4716 initializer_type = rhs->type;
4719 var->constant_initializer = rhs->constant_expression_value(mem_ctx);