Mercurial > hg > truffle
comparison src/share/vm/interpreter/templateInterpreter.cpp @ 710:e5b0439ef4ae
6655638: dynamic languages need method handles
Summary: initial implementation, with known omissions (x86/64, sparc, compiler optim., c-oops, C++ interp.)
Reviewed-by: kvn, twisti, never
author | jrose |
---|---|
date | Wed, 08 Apr 2009 10:56:49 -0700 |
parents | a61af66fc99e |
children | be93aad57795 |
comparison
equal
deleted
inserted
replaced
709:1d037ecd7960 | 710:e5b0439ef4ae |
---|---|
1 /* | 1 /* |
2 * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. | 2 * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
166 | 166 |
167 address TemplateInterpreter::_throw_ArrayIndexOutOfBoundsException_entry = NULL; | 167 address TemplateInterpreter::_throw_ArrayIndexOutOfBoundsException_entry = NULL; |
168 address TemplateInterpreter::_throw_ArrayStoreException_entry = NULL; | 168 address TemplateInterpreter::_throw_ArrayStoreException_entry = NULL; |
169 address TemplateInterpreter::_throw_ArithmeticException_entry = NULL; | 169 address TemplateInterpreter::_throw_ArithmeticException_entry = NULL; |
170 address TemplateInterpreter::_throw_ClassCastException_entry = NULL; | 170 address TemplateInterpreter::_throw_ClassCastException_entry = NULL; |
171 address TemplateInterpreter::_throw_WrongMethodType_entry = NULL; | |
171 address TemplateInterpreter::_throw_NullPointerException_entry = NULL; | 172 address TemplateInterpreter::_throw_NullPointerException_entry = NULL; |
172 address TemplateInterpreter::_throw_StackOverflowError_entry = NULL; | 173 address TemplateInterpreter::_throw_StackOverflowError_entry = NULL; |
173 address TemplateInterpreter::_throw_exception_entry = NULL; | 174 address TemplateInterpreter::_throw_exception_entry = NULL; |
174 | 175 |
175 #ifndef PRODUCT | 176 #ifndef PRODUCT |
339 { CodeletMark cm(_masm, "throw exception entrypoints"); | 340 { CodeletMark cm(_masm, "throw exception entrypoints"); |
340 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler("java/lang/ArrayIndexOutOfBoundsException"); | 341 Interpreter::_throw_ArrayIndexOutOfBoundsException_entry = generate_ArrayIndexOutOfBounds_handler("java/lang/ArrayIndexOutOfBoundsException"); |
341 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException" ); | 342 Interpreter::_throw_ArrayStoreException_entry = generate_klass_exception_handler("java/lang/ArrayStoreException" ); |
342 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException" , "/ by zero"); | 343 Interpreter::_throw_ArithmeticException_entry = generate_exception_handler("java/lang/ArithmeticException" , "/ by zero"); |
343 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler(); | 344 Interpreter::_throw_ClassCastException_entry = generate_ClassCastException_handler(); |
345 Interpreter::_throw_WrongMethodType_entry = generate_WrongMethodType_handler(); | |
344 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException" , NULL ); | 346 Interpreter::_throw_NullPointerException_entry = generate_exception_handler("java/lang/NullPointerException" , NULL ); |
345 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler(); | 347 Interpreter::_throw_StackOverflowError_entry = generate_StackOverflowError_handler(); |
346 } | 348 } |
347 | 349 |
348 | 350 |
356 method_entry(zerolocals) | 358 method_entry(zerolocals) |
357 method_entry(zerolocals_synchronized) | 359 method_entry(zerolocals_synchronized) |
358 method_entry(empty) | 360 method_entry(empty) |
359 method_entry(accessor) | 361 method_entry(accessor) |
360 method_entry(abstract) | 362 method_entry(abstract) |
363 method_entry(method_handle) | |
361 method_entry(java_lang_math_sin ) | 364 method_entry(java_lang_math_sin ) |
362 method_entry(java_lang_math_cos ) | 365 method_entry(java_lang_math_cos ) |
363 method_entry(java_lang_math_tan ) | 366 method_entry(java_lang_math_tan ) |
364 method_entry(java_lang_math_abs ) | 367 method_entry(java_lang_math_abs ) |
365 method_entry(java_lang_math_sqrt ) | 368 method_entry(java_lang_math_sqrt ) |