src/share/vm/interpreter/templateInterpreterGenerator.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8169206.02 Sdiff src/share/vm/interpreter

src/share/vm/interpreter/templateInterpreterGenerator.cpp

Print this page




 153                        generate_deopt_entry_for(ftos, i),
 154                        generate_deopt_entry_for(dtos, i),
 155                        generate_deopt_entry_for(vtos, i)
 156                        );
 157         }
 158       }
 159 
 160       { CodeletMark cm(_masm, "result handlers for native calls");
 161         // The various result converter stublets.
 162         int is_generated[Interpreter::number_of_result_handlers];
 163         memset(is_generated, 0, sizeof(is_generated));
 164 
 165         for (int i = 0; i < Interpreter::number_of_result_handlers; i++) {
 166           BasicType type = types[i];
 167           if (!is_generated[Interpreter::BasicType_as_index(type)]++) {
 168             Interpreter::_native_abi_to_tosca[Interpreter::BasicType_as_index(type)] = generate_result_handler_for(type);
 169           }
 170         }
 171       }
 172 
 173       { CodeletMark cm(_masm, "continuation entry points");
 174         Interpreter::_continuation_entry =
 175           EntryPoint(
 176                      generate_continuation_for(btos),
 177                      generate_continuation_for(ztos),
 178                      generate_continuation_for(ctos),
 179                      generate_continuation_for(stos),
 180                      generate_continuation_for(atos),
 181                      generate_continuation_for(itos),
 182                      generate_continuation_for(ltos),
 183                      generate_continuation_for(ftos),
 184                      generate_continuation_for(dtos),
 185                      generate_continuation_for(vtos)
 186                      );
 187       }
 188 
 189       { CodeletMark cm(_masm, "safepoint entry points");
 190         Interpreter::_safept_entry =
 191           EntryPoint(
 192                      generate_safept_entry_for(btos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 193                      generate_safept_entry_for(ztos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 194                      generate_safept_entry_for(ctos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 195                      generate_safept_entry_for(stos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 196                      generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 197                      generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 198                      generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 199                      generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 200                      generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 201                      generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
 202                      );
 203       }
 204 
 205       { CodeletMark cm(_masm, "exception handling");
 206         // (Note: this is not safepoint safe because thread may return to compiled code)
 207         generate_throw_exception();
 208       }




 153                        generate_deopt_entry_for(ftos, i),
 154                        generate_deopt_entry_for(dtos, i),
 155                        generate_deopt_entry_for(vtos, i)
 156                        );
 157         }
 158       }
 159 
 160       { CodeletMark cm(_masm, "result handlers for native calls");
 161         // The various result converter stublets.
 162         int is_generated[Interpreter::number_of_result_handlers];
 163         memset(is_generated, 0, sizeof(is_generated));
 164 
 165         for (int i = 0; i < Interpreter::number_of_result_handlers; i++) {
 166           BasicType type = types[i];
 167           if (!is_generated[Interpreter::BasicType_as_index(type)]++) {
 168             Interpreter::_native_abi_to_tosca[Interpreter::BasicType_as_index(type)] = generate_result_handler_for(type);
 169           }
 170         }
 171       }
 172 
















 173       { CodeletMark cm(_masm, "safepoint entry points");
 174         Interpreter::_safept_entry =
 175           EntryPoint(
 176                      generate_safept_entry_for(btos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 177                      generate_safept_entry_for(ztos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 178                      generate_safept_entry_for(ctos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 179                      generate_safept_entry_for(stos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 180                      generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 181                      generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 182                      generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 183                      generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 184                      generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 185                      generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
 186                      );
 187       }
 188 
 189       { CodeletMark cm(_masm, "exception handling");
 190         // (Note: this is not safepoint safe because thread may return to compiled code)
 191         generate_throw_exception();
 192       }


src/share/vm/interpreter/templateInterpreterGenerator.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File