comparison src/share/vm/interpreter/interpreterRuntime.cpp @ 10408:836a62f43af9

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jun 2013 10:45:56 +0200
parents 89e4d67fdd2a 746b070f5022
children 40b8c383bc31
comparison
equal deleted inserted replaced
10086:e0fb8a213650 10408:836a62f43af9
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.
463 // enough stack space available to reprotect the stack. 463 // enough stack space available to reprotect the stack.
464 #ifndef CC_INTERP 464 #ifndef CC_INTERP
465 continuation = Interpreter::remove_activation_entry(); 465 continuation = Interpreter::remove_activation_entry();
466 #endif 466 #endif
467 // Count this for compilation purposes 467 // Count this for compilation purposes
468 h_method->interpreter_throwout_increment(); 468 h_method->interpreter_throwout_increment(THREAD);
469 } else { 469 } else {
470 // handler in this method => change bci/bcp to handler bci/bcp and continue there 470 // handler in this method => change bci/bcp to handler bci/bcp and continue there
471 handler_pc = h_method->code_base() + handler_bci; 471 handler_pc = h_method->code_base() + handler_bci;
472 #ifndef CC_INTERP 472 #ifndef CC_INTERP
473 set_bcp_and_mdp(handler_pc, thread); 473 set_bcp_and_mdp(handler_pc, thread);
910 // need to take the lock before making any ProfileData structures. 910 // need to take the lock before making any ProfileData structures.
911 ProfileData* data = h_mdo->data_at(h_mdo->dp_to_di(fr.interpreter_frame_mdp())); 911 ProfileData* data = h_mdo->data_at(h_mdo->dp_to_di(fr.interpreter_frame_mdp()));
912 RetData* rdata = data->as_RetData(); 912 RetData* rdata = data->as_RetData();
913 address new_mdp = rdata->fixup_ret(return_bci, h_mdo); 913 address new_mdp = rdata->fixup_ret(return_bci, h_mdo);
914 fr.interpreter_frame_set_mdp(new_mdp); 914 fr.interpreter_frame_set_mdp(new_mdp);
915 IRT_END
916
917 IRT_ENTRY(MethodCounters*, InterpreterRuntime::build_method_counters(JavaThread* thread, Method* m))
918 MethodCounters* mcs = Method::build_method_counters(m, thread);
919 if (HAS_PENDING_EXCEPTION) {
920 assert((PENDING_EXCEPTION->is_a(SystemDictionary::OutOfMemoryError_klass())), "we expect only an OOM error here");
921 CLEAR_PENDING_EXCEPTION;
922 }
923 return mcs;
915 IRT_END 924 IRT_END
916 925
917 926
918 IRT_ENTRY(void, InterpreterRuntime::at_safepoint(JavaThread* thread)) 927 IRT_ENTRY(void, InterpreterRuntime::at_safepoint(JavaThread* thread))
919 // We used to need an explict preserve_arguments here for invoke bytecodes. However, 928 // We used to need an explict preserve_arguments here for invoke bytecodes. However,
1052 void SignatureHandlerLibrary::initialize() { 1061 void SignatureHandlerLibrary::initialize() {
1053 if (_fingerprints != NULL) { 1062 if (_fingerprints != NULL) {
1054 return; 1063 return;
1055 } 1064 }
1056 if (set_handler_blob() == NULL) { 1065 if (set_handler_blob() == NULL) {
1057 vm_exit_out_of_memory(blob_size, "native signature handlers"); 1066 vm_exit_out_of_memory(blob_size, OOM_MALLOC_ERROR, "native signature handlers");
1058 } 1067 }
1059 1068
1060 BufferBlob* bb = BufferBlob::create("Signature Handler Temp Buffer", 1069 BufferBlob* bb = BufferBlob::create("Signature Handler Temp Buffer",
1061 SignatureHandlerLibrary::buffer_size); 1070 SignatureHandlerLibrary::buffer_size);
1062 _buffer = bb->code_begin(); 1071 _buffer = bb->code_begin();