summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-05-03 10:15:02 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-05-03 10:15:02 -0700
commit970353e047052140c592e95b2171ee5a5b323843 (patch)
tree2de6f525500f296364a2350207222ce8ab549238
parent438f38c55afc8a31d01af357de95a56044ea7055 (diff)
parentb0e0da5f07b5072d588ab33b121933c705f3b8a1 (diff)
Merge branch 'fixes'
-rw-r--r--ir_function_inlining.cpp9
-rw-r--r--ir_print_visitor.cpp7
2 files changed, 7 insertions, 9 deletions
diff --git a/ir_function_inlining.cpp b/ir_function_inlining.cpp
index 385ce9e..0d072c1 100644
--- a/ir_function_inlining.cpp
+++ b/ir_function_inlining.cpp
@@ -264,8 +264,7 @@ ir_function_cloning_visitor::visit(ir_return *ir)
rval = this->result->as_rvalue();
assert(rval);
- result = new ir_assignment(new ir_dereference(this->retval),
- ir->get_value(), NULL);
+ result = new ir_assignment(new ir_dereference(this->retval), rval, NULL);
}
@@ -389,15 +388,15 @@ ir_call::generate_inline(ir_instruction *next_ir)
next_ir->insert_before(v.result);
}
- /* Generate the declarations for the parameters to our inlined code,
- * and set up the mapping of real function body variables to ours.
+ /* Copy back the value of any 'out' parameters from the function body
+ * variables to our own.
*/
i = 0;
param_iter = this->actual_parameters.iterator();
for (i = 0; i < num_parameters; i++) {
ir_instruction *const param = (ir_instruction *) param_iter.get();
- /* Move the actual param into our param variable if it's an 'in' type. */
+ /* Move our param variable into the actual param if it's an 'out' type. */
if (parameters[i]->mode == ir_var_out ||
parameters[i]->mode == ir_var_inout) {
ir_assignment *assign;
diff --git a/ir_print_visitor.cpp b/ir_print_visitor.cpp
index 9edb680..ee7aa31 100644
--- a/ir_print_visitor.cpp
+++ b/ir_print_visitor.cpp
@@ -34,9 +34,8 @@ _mesa_print_ir(exec_list *instructions,
for (unsigned i = 0; i < state->num_user_structures; i++) {
const glsl_type *const s = state->user_structures[i];
- printf("(structure (%s) (%s@%08x) (%u) (\n",
- s->name, s->name, (unsigned) s, s->length
- );
+ printf("(structure (%s) (%s@%p) (%u) (\n",
+ s->name, s->name, s, s->length);
for (unsigned j = 0; j < s->length; j++) {
printf("\t((");
@@ -66,7 +65,7 @@ print_type(const glsl_type *t)
printf(" %u)", t->length);
} else if ((t->base_type == GLSL_TYPE_STRUCT)
&& (strncmp("gl_", t->name, 3) != 0)) {
- printf("%s@%08x", t->name, (unsigned) t);
+ printf("%s@%p", t->name, t);
} else {
printf("%s", t->name);
}