equal
deleted
inserted
replaced
3087 |
3087 |
3088 // Set up locals for receiver |
3088 // Set up locals for receiver |
3089 int idx = 0; |
3089 int idx = 0; |
3090 if (!method()->is_static()) { |
3090 if (!method()->is_static()) { |
3091 // we should always see the receiver |
3091 // we should always see the receiver |
3092 state->store_local(idx, new Local(method()->holder(), objectType, idx)); |
3092 state->store_local(idx, new Local(method()->holder(), objectType, idx, true)); |
3093 idx = 1; |
3093 idx = 1; |
3094 } |
3094 } |
3095 |
3095 |
3096 // Set up locals for incoming arguments |
3096 // Set up locals for incoming arguments |
3097 ciSignature* sig = method()->signature(); |
3097 ciSignature* sig = method()->signature(); |
3099 ciType* type = sig->type_at(i); |
3099 ciType* type = sig->type_at(i); |
3100 BasicType basic_type = type->basic_type(); |
3100 BasicType basic_type = type->basic_type(); |
3101 // don't allow T_ARRAY to propagate into locals types |
3101 // don't allow T_ARRAY to propagate into locals types |
3102 if (basic_type == T_ARRAY) basic_type = T_OBJECT; |
3102 if (basic_type == T_ARRAY) basic_type = T_OBJECT; |
3103 ValueType* vt = as_ValueType(basic_type); |
3103 ValueType* vt = as_ValueType(basic_type); |
3104 state->store_local(idx, new Local(type, vt, idx)); |
3104 state->store_local(idx, new Local(type, vt, idx, false)); |
3105 idx += type->size(); |
3105 idx += type->size(); |
3106 } |
3106 } |
3107 |
3107 |
3108 // lock synchronized method |
3108 // lock synchronized method |
3109 if (method()->is_synchronized()) { |
3109 if (method()->is_synchronized()) { |