3129 InterpreterRuntime::throw_IncompatibleClassChangeError));
3130 // the call_VM checks for exception, so we should never return here.
3131 __ should_not_reach_here();
3132 return;
3133 }
3134
3135 prepare_invoke(rax, rbx, byte_no);
3136
3137 // rax: CallSite object (f1)
3138 // rbx: unused (f2)
3139 // rcx: receiver address
3140 // rdx: flags (unused)
3141
3142 if (ProfileInterpreter) {
3143 Label L;
3144 // %%% should make a type profile for any invokedynamic that takes a ref argument
3145 // profile this call
3146 __ profile_call(rsi);
3147 }
3148
3149 Label handle_unlinked_site;
3150 __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
3151 __ null_check(rcx);
3152 __ prepare_to_jump_from_interpreted();
3153 __ jump_to_method_handle_entry(rcx, rdx);
3154 }
3155
3156 //----------------------------------------------------------------------------------------------------
3157 // Allocation
3158
3159 void TemplateTable::_new() {
3160 transition(vtos, atos);
3161 __ get_unsigned_2_byte_index_at_bcp(rdx, 1);
3162 Label slow_case;
3163 Label done;
3164 Label initialize_header;
3165 Label initialize_object; // including clearing the fields
3166 Label allocate_shared;
3167
3168 __ get_cpool_and_tags(rcx, rax);
3169 // get instanceKlass
|
3129 InterpreterRuntime::throw_IncompatibleClassChangeError));
3130 // the call_VM checks for exception, so we should never return here.
3131 __ should_not_reach_here();
3132 return;
3133 }
3134
3135 prepare_invoke(rax, rbx, byte_no);
3136
3137 // rax: CallSite object (f1)
3138 // rbx: unused (f2)
3139 // rcx: receiver address
3140 // rdx: flags (unused)
3141
3142 if (ProfileInterpreter) {
3143 Label L;
3144 // %%% should make a type profile for any invokedynamic that takes a ref argument
3145 // profile this call
3146 __ profile_call(rsi);
3147 }
3148
3149 __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
3150 __ null_check(rcx);
3151 __ prepare_to_jump_from_interpreted();
3152 __ jump_to_method_handle_entry(rcx, rdx);
3153 }
3154
3155 //----------------------------------------------------------------------------------------------------
3156 // Allocation
3157
3158 void TemplateTable::_new() {
3159 transition(vtos, atos);
3160 __ get_unsigned_2_byte_index_at_bcp(rdx, 1);
3161 Label slow_case;
3162 Label done;
3163 Label initialize_header;
3164 Label initialize_object; // including clearing the fields
3165 Label allocate_shared;
3166
3167 __ get_cpool_and_tags(rcx, rax);
3168 // get instanceKlass
|