hotspot/src/share/vm/c1/c1_Runtime1.cpp
changeset 11636 3c07b54482a5
parent 11572 84afef481892
child 12377 ae6def2813e0
equal deleted inserted replaced
11635:5a16856f871f 11636:3c07b54482a5
     1 /*
     1 /*
     2  * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1999, 2012, 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.
   595 }
   595 }
   596 
   596 
   597 
   597 
   598 JRT_ENTRY(void, Runtime1::throw_range_check_exception(JavaThread* thread, int index))
   598 JRT_ENTRY(void, Runtime1::throw_range_check_exception(JavaThread* thread, int index))
   599   NOT_PRODUCT(_throw_range_check_exception_count++;)
   599   NOT_PRODUCT(_throw_range_check_exception_count++;)
   600   Events::log("throw_range_check");
       
   601   char message[jintAsStringSize];
   600   char message[jintAsStringSize];
   602   sprintf(message, "%d", index);
   601   sprintf(message, "%d", index);
   603   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message);
   602   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), message);
   604 JRT_END
   603 JRT_END
   605 
   604 
   606 
   605 
   607 JRT_ENTRY(void, Runtime1::throw_index_exception(JavaThread* thread, int index))
   606 JRT_ENTRY(void, Runtime1::throw_index_exception(JavaThread* thread, int index))
   608   NOT_PRODUCT(_throw_index_exception_count++;)
   607   NOT_PRODUCT(_throw_index_exception_count++;)
   609   Events::log("throw_index");
       
   610   char message[16];
   608   char message[16];
   611   sprintf(message, "%d", index);
   609   sprintf(message, "%d", index);
   612   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_IndexOutOfBoundsException(), message);
   610   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_IndexOutOfBoundsException(), message);
   613 JRT_END
   611 JRT_END
   614 
   612 
   802   methodHandle caller_method(THREAD, vfst.method());
   800   methodHandle caller_method(THREAD, vfst.method());
   803   // Note that caller_method->code() may not be same as caller_code because of OSR's
   801   // Note that caller_method->code() may not be same as caller_code because of OSR's
   804   // Note also that in the presence of inlining it is not guaranteed
   802   // Note also that in the presence of inlining it is not guaranteed
   805   // that caller_method() == caller_code->method()
   803   // that caller_method() == caller_code->method()
   806 
   804 
   807 
       
   808   int bci = vfst.bci();
   805   int bci = vfst.bci();
   809 
       
   810   Events::log("patch_code @ " INTPTR_FORMAT , caller_frame.pc());
       
   811 
       
   812   Bytecodes::Code code = caller_method()->java_code_at(bci);
   806   Bytecodes::Code code = caller_method()->java_code_at(bci);
   813 
   807 
   814 #ifndef PRODUCT
   808 #ifndef PRODUCT
   815   // this is used by assertions in the access_field_patching_id
   809   // this is used by assertions in the access_field_patching_id
   816   BasicType patch_field_type = T_ILLEGAL;
   810   BasicType patch_field_type = T_ILLEGAL;