comparison src/share/vm/interpreter/interpreter.cpp @ 11173:6b0fd0964b87

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 31 Jul 2013 11:00:54 +0200
parents c6a1ffc707ff b800986664f4
children 096c224171c4
comparison
equal deleted inserted replaced
10912:4ea54634f03e 11173:6b0fd0964b87
1 /* 1 /*
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. 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.
200 ((int)id - vmIntrinsics::FIRST_MH_SIG_POLY) ); 200 ((int)id - vmIntrinsics::FIRST_MH_SIG_POLY) );
201 assert(kind <= method_handle_invoke_LAST, "parallel enum ranges"); 201 assert(kind <= method_handle_invoke_LAST, "parallel enum ranges");
202 return kind; 202 return kind;
203 } 203 }
204 204
205 #ifndef CC_INTERP
206 if (UseCRC32Intrinsics && m->is_native()) {
207 // Use optimized stub code for CRC32 native methods.
208 switch (m->intrinsic_id()) {
209 case vmIntrinsics::_updateCRC32 : return java_util_zip_CRC32_update;
210 case vmIntrinsics::_updateBytesCRC32 : return java_util_zip_CRC32_updateBytes;
211 case vmIntrinsics::_updateByteBufferCRC32 : return java_util_zip_CRC32_updateByteBuffer;
212 }
213 }
214 #endif
215
205 // Native method? 216 // Native method?
206 // Note: This test must come _before_ the test for intrinsic 217 // Note: This test must come _before_ the test for intrinsic
207 // methods. See also comments below. 218 // methods. See also comments below.
208 if (m->is_native()) { 219 if (m->is_native()) {
209 assert(!m->is_method_handle_intrinsic(), "overlapping bits here, watch out"); 220 assert(!m->is_method_handle_intrinsic(), "overlapping bits here, watch out");
305 case java_lang_math_tan : tty->print("java_lang_math_tan" ); break; 316 case java_lang_math_tan : tty->print("java_lang_math_tan" ); break;
306 case java_lang_math_abs : tty->print("java_lang_math_abs" ); break; 317 case java_lang_math_abs : tty->print("java_lang_math_abs" ); break;
307 case java_lang_math_sqrt : tty->print("java_lang_math_sqrt" ); break; 318 case java_lang_math_sqrt : tty->print("java_lang_math_sqrt" ); break;
308 case java_lang_math_log : tty->print("java_lang_math_log" ); break; 319 case java_lang_math_log : tty->print("java_lang_math_log" ); break;
309 case java_lang_math_log10 : tty->print("java_lang_math_log10" ); break; 320 case java_lang_math_log10 : tty->print("java_lang_math_log10" ); break;
321 case java_util_zip_CRC32_update : tty->print("java_util_zip_CRC32_update"); break;
322 case java_util_zip_CRC32_updateBytes : tty->print("java_util_zip_CRC32_updateBytes"); break;
323 case java_util_zip_CRC32_updateByteBuffer : tty->print("java_util_zip_CRC32_updateByteBuffer"); break;
310 default: 324 default:
311 if (kind >= method_handle_invoke_FIRST && 325 if (kind >= method_handle_invoke_FIRST &&
312 kind <= method_handle_invoke_LAST) { 326 kind <= method_handle_invoke_LAST) {
313 const char* kind_name = vmIntrinsics::name_at(method_handle_intrinsic(kind)); 327 const char* kind_name = vmIntrinsics::name_at(method_handle_intrinsic(kind));
314 if (kind_name[0] == '_') kind_name = &kind_name[1]; // '_invokeExact' => 'invokeExact' 328 if (kind_name[0] == '_') kind_name = &kind_name[1]; // '_invokeExact' => 'invokeExact'