< prev index next >

src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp

Print this page

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

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