< prev index next >

src/hotspot/share/interpreter/templateInterpreterGenerator.cpp

Print this page
rev 50027 : 8201593: Print array length in ArrayIndexOutOfBoundsException.
Reviewed-by: dholmes, mdoerr, smonteith, shade


 156       EntryPoint(
 157                  generate_safept_entry_for(btos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 158                  generate_safept_entry_for(ztos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 159                  generate_safept_entry_for(ctos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 160                  generate_safept_entry_for(stos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 161                  generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 162                  generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 163                  generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 164                  generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 165                  generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 166                  generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
 167                  );
 168   }
 169 
 170   { CodeletMark cm(_masm, "exception handling");
 171     // (Note: this is not safepoint safe because thread may return to compiled code)
 172     generate_throw_exception();
 173   }
 174 
 175   { CodeletMark cm(_masm, "throw exception entrypoints");
 176     Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler("java/lang/ArrayIndexOutOfBoundsException");
 177     Interpreter::_throw_ArrayStoreException_entry            = generate_klass_exception_handler("java/lang/ArrayStoreException"                 );
 178     Interpreter::_throw_ArithmeticException_entry            = generate_exception_handler("java/lang/ArithmeticException"           , "/ by zero");
 179     Interpreter::_throw_ClassCastException_entry             = generate_ClassCastException_handler();
 180     Interpreter::_throw_NullPointerException_entry           = generate_exception_handler("java/lang/NullPointerException"          , NULL       );
 181     Interpreter::_throw_StackOverflowError_entry             = generate_StackOverflowError_handler();
 182   }
 183 
 184 
 185 
 186 #define method_entry(kind)                                              \
 187   { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
 188     Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
 189     Interpreter::update_cds_entry_table(Interpreter::kind); \
 190   }
 191 
 192   // all non-native method kinds
 193   method_entry(zerolocals)
 194   method_entry(zerolocals_synchronized)
 195   method_entry(empty)
 196   method_entry(accessor)
 197   method_entry(abstract)
 198   method_entry(java_lang_math_sin  )
 199   method_entry(java_lang_math_cos  )
 200   method_entry(java_lang_math_tan  )




 156       EntryPoint(
 157                  generate_safept_entry_for(btos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 158                  generate_safept_entry_for(ztos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 159                  generate_safept_entry_for(ctos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 160                  generate_safept_entry_for(stos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 161                  generate_safept_entry_for(atos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 162                  generate_safept_entry_for(itos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 163                  generate_safept_entry_for(ltos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 164                  generate_safept_entry_for(ftos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 165                  generate_safept_entry_for(dtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint)),
 166                  generate_safept_entry_for(vtos, CAST_FROM_FN_PTR(address, InterpreterRuntime::at_safepoint))
 167                  );
 168   }
 169 
 170   { CodeletMark cm(_masm, "exception handling");
 171     // (Note: this is not safepoint safe because thread may return to compiled code)
 172     generate_throw_exception();
 173   }
 174 
 175   { CodeletMark cm(_masm, "throw exception entrypoints");
 176     Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler();
 177     Interpreter::_throw_ArrayStoreException_entry            = generate_klass_exception_handler("java/lang/ArrayStoreException");
 178     Interpreter::_throw_ArithmeticException_entry            = generate_exception_handler("java/lang/ArithmeticException", "/ by zero");
 179     Interpreter::_throw_ClassCastException_entry             = generate_ClassCastException_handler();
 180     Interpreter::_throw_NullPointerException_entry           = generate_exception_handler("java/lang/NullPointerException", NULL);
 181     Interpreter::_throw_StackOverflowError_entry             = generate_StackOverflowError_handler();
 182   }
 183 
 184 
 185 
 186 #define method_entry(kind)                                              \
 187   { CodeletMark cm(_masm, "method entry point (kind = " #kind ")"); \
 188     Interpreter::_entry_table[Interpreter::kind] = generate_method_entry(Interpreter::kind); \
 189     Interpreter::update_cds_entry_table(Interpreter::kind); \
 190   }
 191 
 192   // all non-native method kinds
 193   method_entry(zerolocals)
 194   method_entry(zerolocals_synchronized)
 195   method_entry(empty)
 196   method_entry(accessor)
 197   method_entry(abstract)
 198   method_entry(java_lang_math_sin  )
 199   method_entry(java_lang_math_cos  )
 200   method_entry(java_lang_math_tan  )


< prev index next >