equal
deleted
inserted
replaced
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()) { |