Mercurial > hg > graal-compiler
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(); |