hotspot/src/share/vm/runtime/interfaceSupport.hpp
changeset 22838 82c7497fbad4
parent 22827 07d991d45a51
parent 19769 edc48ee8130a
child 29070 b0a5fc9c59c8
equal deleted inserted replaced
22837:feba5d4126b8 22838:82c7497fbad4
     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.
    54   ~HandleMarkCleaner() {
    54   ~HandleMarkCleaner() {
    55     _thread->last_handle_mark()->pop_and_restore();
    55     _thread->last_handle_mark()->pop_and_restore();
    56   }
    56   }
    57 
    57 
    58  private:
    58  private:
    59   inline void* operator new(size_t size, void* ptr) {
    59   inline void* operator new(size_t size, void* ptr) throw() {
    60     return ptr;
    60     return ptr;
    61   }
    61   }
    62 };
    62 };
    63 
    63 
    64 // InterfaceSupport provides functionality used by the VM_LEAF_BASE and
    64 // InterfaceSupport provides functionality used by the VM_LEAF_BASE and
   472   result_type header {                                               \
   472   result_type header {                                               \
   473     ThreadInVMfromJavaNoAsyncException __tiv(thread);                \
   473     ThreadInVMfromJavaNoAsyncException __tiv(thread);                \
   474     VM_ENTRY_BASE(result_type, header, thread)                       \
   474     VM_ENTRY_BASE(result_type, header, thread)                       \
   475     debug_only(VMEntryWrapper __vew;)
   475     debug_only(VMEntryWrapper __vew;)
   476 
   476 
   477 // Another special case for nmethod_entry_point so the nmethod that the
       
   478 // interpreter is about to branch to doesn't get flushed before as we
       
   479 // branch to it's interpreter_entry_point.  Skip stress testing here too.
       
   480 // Also we don't allow async exceptions because it is just too painful.
       
   481 #define IRT_ENTRY_FOR_NMETHOD(result_type, header)                   \
       
   482   result_type header {                                               \
       
   483     nmethodLocker _nmlock(nm);                                       \
       
   484     ThreadInVMfromJavaNoAsyncException __tiv(thread);                                \
       
   485     VM_ENTRY_BASE(result_type, header, thread)
       
   486 
       
   487 #define IRT_END }
   477 #define IRT_END }
   488 
   478 
   489 
   479 
   490 // Definitions for JRT (Java (Compiler/Shared) Runtime)
   480 // Definitions for JRT (Java (Compiler/Shared) Runtime)
   491 
   481