< prev index next >

src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp

Print this page

2079     assert(frame_complete != -1,    "Must be set");
2080     assert(stack_slots != -1,       "Must be set");
2081     assert(vep_offset != -1,        "Must be set");
2082 #endif
2083 
2084     __ flush();
2085     nmethod* nm = nmethod::new_native_nmethod(method,
2086                                               compile_id,
2087                                               masm->code(),
2088                                               vep_offset,
2089                                               frame_complete,
2090                                               stack_slots,
2091                                               in_ByteSize(-1),
2092                                               in_ByteSize(-1),
2093                                               oop_maps,
2094                                               exception_offset);
2095     if (nm == nullptr) return nm;
2096     if (method->is_continuation_enter_intrinsic()) {
2097       ContinuationEntry::set_enter_code(nm, interpreted_entry_offset);
2098     } else if (method->is_continuation_yield_intrinsic()) {
2099       _cont_doYield_stub = nm;
2100     }
2101     return nm;
2102   }
2103 
2104   if (method->is_method_handle_intrinsic()) {
2105     vmIntrinsics::ID iid = method->intrinsic_id();
2106     intptr_t start = (intptr_t)__ pc();
2107     int vep_offset = ((intptr_t)__ pc()) - start;
2108     gen_special_dispatch(masm,
2109                          method,
2110                          in_sig_bt,
2111                          in_regs);
2112     int frame_complete = ((intptr_t)__ pc()) - start;  // not complete, period
2113     __ flush();
2114     int stack_slots = SharedRuntime::out_preserve_stack_slots();  // no out slots at all, actually
2115     return nmethod::new_native_nmethod(method,
2116                                        compile_id,
2117                                        masm->code(),
2118                                        vep_offset,
2119                                        frame_complete,

2079     assert(frame_complete != -1,    "Must be set");
2080     assert(stack_slots != -1,       "Must be set");
2081     assert(vep_offset != -1,        "Must be set");
2082 #endif
2083 
2084     __ flush();
2085     nmethod* nm = nmethod::new_native_nmethod(method,
2086                                               compile_id,
2087                                               masm->code(),
2088                                               vep_offset,
2089                                               frame_complete,
2090                                               stack_slots,
2091                                               in_ByteSize(-1),
2092                                               in_ByteSize(-1),
2093                                               oop_maps,
2094                                               exception_offset);
2095     if (nm == nullptr) return nm;
2096     if (method->is_continuation_enter_intrinsic()) {
2097       ContinuationEntry::set_enter_code(nm, interpreted_entry_offset);
2098     } else if (method->is_continuation_yield_intrinsic()) {
2099       ContinuationEntry::set_yield_code(nm);
2100     }
2101     return nm;
2102   }
2103 
2104   if (method->is_method_handle_intrinsic()) {
2105     vmIntrinsics::ID iid = method->intrinsic_id();
2106     intptr_t start = (intptr_t)__ pc();
2107     int vep_offset = ((intptr_t)__ pc()) - start;
2108     gen_special_dispatch(masm,
2109                          method,
2110                          in_sig_bt,
2111                          in_regs);
2112     int frame_complete = ((intptr_t)__ pc()) - start;  // not complete, period
2113     __ flush();
2114     int stack_slots = SharedRuntime::out_preserve_stack_slots();  // no out slots at all, actually
2115     return nmethod::new_native_nmethod(method,
2116                                        compile_id,
2117                                        masm->code(),
2118                                        vep_offset,
2119                                        frame_complete,
< prev index next >