comparison src/share/vm/c1/c1_GraphBuilder.cpp @ 2468:6c97c830fb6f

Merge
author jrose
date Sat, 09 Apr 2011 21:16:12 -0700
parents 13bc79b5c9c8
children 5d046bf49ce7
comparison
equal deleted inserted replaced
2439:0930dc920c18 2468:6c97c830fb6f
2822 2822
2823 // Set up locals for receiver 2823 // Set up locals for receiver
2824 int idx = 0; 2824 int idx = 0;
2825 if (!method()->is_static()) { 2825 if (!method()->is_static()) {
2826 // we should always see the receiver 2826 // we should always see the receiver
2827 state->store_local(idx, new Local(objectType, idx)); 2827 state->store_local(idx, new Local(method()->holder(), objectType, idx));
2828 idx = 1; 2828 idx = 1;
2829 } 2829 }
2830 2830
2831 // Set up locals for incoming arguments 2831 // Set up locals for incoming arguments
2832 ciSignature* sig = method()->signature(); 2832 ciSignature* sig = method()->signature();
2834 ciType* type = sig->type_at(i); 2834 ciType* type = sig->type_at(i);
2835 BasicType basic_type = type->basic_type(); 2835 BasicType basic_type = type->basic_type();
2836 // don't allow T_ARRAY to propagate into locals types 2836 // don't allow T_ARRAY to propagate into locals types
2837 if (basic_type == T_ARRAY) basic_type = T_OBJECT; 2837 if (basic_type == T_ARRAY) basic_type = T_OBJECT;
2838 ValueType* vt = as_ValueType(basic_type); 2838 ValueType* vt = as_ValueType(basic_type);
2839 state->store_local(idx, new Local(vt, idx)); 2839 state->store_local(idx, new Local(type, vt, idx));
2840 idx += type->size(); 2840 idx += type->size();
2841 } 2841 }
2842 2842
2843 // lock synchronized method 2843 // lock synchronized method
2844 if (method()->is_synchronized()) { 2844 if (method()->is_synchronized()) {