hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
changeset 9102 4708a4aefb33
parent 8872 36680c58660e
child 9182 ab3e9e0925ad
equal deleted inserted replaced
9101:ff58f9a8e31c 9102:4708a4aefb33
  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()) {