< prev index next >

src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp

Print this page

2035     assert(frame_complete != -1,    "Must be set");
2036     assert(stack_slots != -1,       "Must be set");
2037     assert(vep_offset != -1,        "Must be set");
2038 #endif
2039 
2040     __ flush();
2041     nmethod* nm = nmethod::new_native_nmethod(method,
2042                                               compile_id,
2043                                               masm->code(),
2044                                               vep_offset,
2045                                               frame_complete,
2046                                               stack_slots,
2047                                               in_ByteSize(-1),
2048                                               in_ByteSize(-1),
2049                                               oop_maps,
2050                                               exception_offset);
2051     if (nm == nullptr) return nm;
2052     if (method->is_continuation_enter_intrinsic()) {
2053       ContinuationEntry::set_enter_code(nm, interpreted_entry_offset);
2054     } else if (method->is_continuation_yield_intrinsic()) {
2055       _cont_doYield_stub = nm;
2056     }
2057     return nm;
2058   }
2059 
2060   if (method->is_method_handle_intrinsic()) {
2061     vmIntrinsics::ID iid = method->intrinsic_id();
2062     intptr_t start = (intptr_t)__ pc();
2063     int vep_offset = ((intptr_t)__ pc()) - start;
2064     gen_special_dispatch(masm,
2065                          method,
2066                          in_sig_bt,
2067                          in_regs);
2068     int frame_complete = ((intptr_t)__ pc()) - start;  // not complete, period
2069     __ flush();
2070     int stack_slots = SharedRuntime::out_preserve_stack_slots();  // no out slots at all, actually
2071     return nmethod::new_native_nmethod(method,
2072                                        compile_id,
2073                                        masm->code(),
2074                                        vep_offset,
2075                                        frame_complete,

2035     assert(frame_complete != -1,    "Must be set");
2036     assert(stack_slots != -1,       "Must be set");
2037     assert(vep_offset != -1,        "Must be set");
2038 #endif
2039 
2040     __ flush();
2041     nmethod* nm = nmethod::new_native_nmethod(method,
2042                                               compile_id,
2043                                               masm->code(),
2044                                               vep_offset,
2045                                               frame_complete,
2046                                               stack_slots,
2047                                               in_ByteSize(-1),
2048                                               in_ByteSize(-1),
2049                                               oop_maps,
2050                                               exception_offset);
2051     if (nm == nullptr) return nm;
2052     if (method->is_continuation_enter_intrinsic()) {
2053       ContinuationEntry::set_enter_code(nm, interpreted_entry_offset);
2054     } else if (method->is_continuation_yield_intrinsic()) {
2055       ContinuationEntry::set_yield_code(nm);
2056     }
2057     return nm;
2058   }
2059 
2060   if (method->is_method_handle_intrinsic()) {
2061     vmIntrinsics::ID iid = method->intrinsic_id();
2062     intptr_t start = (intptr_t)__ pc();
2063     int vep_offset = ((intptr_t)__ pc()) - start;
2064     gen_special_dispatch(masm,
2065                          method,
2066                          in_sig_bt,
2067                          in_regs);
2068     int frame_complete = ((intptr_t)__ pc()) - start;  // not complete, period
2069     __ flush();
2070     int stack_slots = SharedRuntime::out_preserve_stack_slots();  // no out slots at all, actually
2071     return nmethod::new_native_nmethod(method,
2072                                        compile_id,
2073                                        masm->code(),
2074                                        vep_offset,
2075                                        frame_complete,
< prev index next >