19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_CODE_STUBS_HPP
26 #define SHARE_VM_CODE_STUBS_HPP
27
28 #include "asm/codeBuffer.hpp"
29 #include "memory/allocation.hpp"
30 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 #endif
36 #ifdef TARGET_OS_FAMILY_windows
37 # include "os_windows.inline.hpp"
38 #endif
39 #ifdef TARGET_OS_FAMILY_bsd
40 # include "os_bsd.inline.hpp"
41 #endif
42
43 // The classes in this file provide a simple framework for the
44 // management of little pieces of machine code - or stubs -
45 // created on the fly and frequently discarded. In this frame-
46 // work stubs are stored in a queue.
47
48
49 // Stub serves as abstract base class. A concrete stub
50 // implementation is a subclass of Stub, implementing
51 // all (non-virtual!) functions required sketched out
52 // in the Stub class.
53 //
54 // A concrete stub layout may look like this (both data
55 // and code sections could be empty as well):
56 //
57 // ________
58 // stub -->| | <--+
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_CODE_STUBS_HPP
26 #define SHARE_VM_CODE_STUBS_HPP
27
28 #include "asm/codeBuffer.hpp"
29 #include "memory/allocation.hpp"
30 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 #endif
36 #ifdef TARGET_OS_FAMILY_windows
37 # include "os_windows.inline.hpp"
38 #endif
39 #ifdef TARGET_OS_FAMILY_aix
40 # include "os_aix.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_bsd
43 # include "os_bsd.inline.hpp"
44 #endif
45
46 // The classes in this file provide a simple framework for the
47 // management of little pieces of machine code - or stubs -
48 // created on the fly and frequently discarded. In this frame-
49 // work stubs are stored in a queue.
50
51
52 // Stub serves as abstract base class. A concrete stub
53 // implementation is a subclass of Stub, implementing
54 // all (non-virtual!) functions required sketched out
55 // in the Stub class.
56 //
57 // A concrete stub layout may look like this (both data
58 // and code sections could be empty as well):
59 //
60 // ________
61 // stub -->| | <--+
|