hotspot/src/share/vm/c1/c1_GraphBuilder.cpp
changeset 35543 0961315f4016
parent 35071 a0910b1d3e0d
child 36602 3ab2b2853c57
equal deleted inserted replaced
35542:9dccb7f9f656 35543:0961315f4016
  1746   ciMethod*             target = stream()->get_method(will_link, &declared_signature);
  1746   ciMethod*             target = stream()->get_method(will_link, &declared_signature);
  1747   ciKlass*              holder = stream()->get_declared_method_holder();
  1747   ciKlass*              holder = stream()->get_declared_method_holder();
  1748   const Bytecodes::Code bc_raw = stream()->cur_bc_raw();
  1748   const Bytecodes::Code bc_raw = stream()->cur_bc_raw();
  1749   assert(declared_signature != NULL, "cannot be null");
  1749   assert(declared_signature != NULL, "cannot be null");
  1750 
  1750 
  1751   if (!C1PatchInvokeDynamic && Bytecodes::has_optional_appendix(bc_raw) && !will_link) {
       
  1752     BAILOUT("unlinked call site (C1PatchInvokeDynamic is off)");
       
  1753   }
       
  1754 
       
  1755   // we have to make sure the argument size (incl. the receiver)
  1751   // we have to make sure the argument size (incl. the receiver)
  1756   // is correct for compilation (the call would fail later during
  1752   // is correct for compilation (the call would fail later during
  1757   // linkage anyway) - was bug (gri 7/28/99)
  1753   // linkage anyway) - was bug (gri 7/28/99)
  1758   {
  1754   {
  1759     // Use raw to get rewritten bytecode.
  1755     // Use raw to get rewritten bytecode.
  1801   }
  1797   }
  1802 
  1798 
  1803   // Push appendix argument (MethodType, CallSite, etc.), if one.
  1799   // Push appendix argument (MethodType, CallSite, etc.), if one.
  1804   bool patch_for_appendix = false;
  1800   bool patch_for_appendix = false;
  1805   int patching_appendix_arg = 0;
  1801   int patching_appendix_arg = 0;
  1806   if (C1PatchInvokeDynamic &&
  1802   if (Bytecodes::has_optional_appendix(bc_raw) && (!will_link || PatchALot)) {
  1807       (Bytecodes::has_optional_appendix(bc_raw) && (!will_link || PatchALot))) {
       
  1808     Value arg = append(new Constant(new ObjectConstant(compilation()->env()->unloaded_ciinstance()), copy_state_before()));
  1803     Value arg = append(new Constant(new ObjectConstant(compilation()->env()->unloaded_ciinstance()), copy_state_before()));
  1809     apush(arg);
  1804     apush(arg);
  1810     patch_for_appendix = true;
  1805     patch_for_appendix = true;
  1811     patching_appendix_arg = (will_link && stream()->has_appendix()) ? 0 : 1;
  1806     patching_appendix_arg = (will_link && stream()->has_appendix()) ? 0 : 1;
  1812   } else if (stream()->has_appendix()) {
  1807   } else if (stream()->has_appendix()) {