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 )