20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #ifndef _WINDOWS
27 #include "alloca.h"
28 #endif
29 #include "asm/macroAssembler.hpp"
30 #include "asm/macroAssembler.inline.hpp"
31 #include "code/debugInfoRec.hpp"
32 #include "code/icBuffer.hpp"
33 #include "code/vtableStubs.hpp"
34 #include "interpreter/interpreter.hpp"
35 #include "logging/log.hpp"
36 #include "memory/resourceArea.hpp"
37 #include "oops/compiledICHolder.hpp"
38 #include "runtime/sharedRuntime.hpp"
39 #include "runtime/vframeArray.hpp"
40 #include "vmreg_x86.inline.hpp"
41 #ifdef COMPILER1
42 #include "c1/c1_Runtime1.hpp"
43 #endif
44 #ifdef COMPILER2
45 #include "opto/runtime.hpp"
46 #endif
47 #if INCLUDE_JVMCI
48 #include "jvmci/jvmciJavaClasses.hpp"
49 #endif
50 #include "vm_version_x86.hpp"
51
52 #define __ masm->
53
54 const int StackAlignmentInSlots = StackAlignmentInBytes / VMRegImpl::stack_slot_size;
55
56 class SimpleRuntimeFrame {
57
58 public:
59
60 // Most of the runtime stubs have this simple frame layout.
61 // This class exists to make the layout shared in one place.
62 // Offsets are for compiler stack slots, which are jints.
63 enum layout {
64 // The frame sender code expects that rbp will be in the "natural" place and
65 // will override any oopMap setting for it. We must therefore force the layout
66 // so that it agrees with the frame sender code.
67 rbp_off = frame::arg_reg_save_area_bytes/BytesPerInt,
68 rbp_off2,
69 return_off, return_off2,
70 framesize
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #ifndef _WINDOWS
27 #include "alloca.h"
28 #endif
29 #include "asm/macroAssembler.hpp"
30 #include "asm/macroAssembler.inline.hpp"
31 #include "code/debugInfoRec.hpp"
32 #include "code/icBuffer.hpp"
33 #include "code/vtableStubs.hpp"
34 #include "interpreter/interpreter.hpp"
35 #include "logging/log.hpp"
36 #include "memory/resourceArea.hpp"
37 #include "oops/compiledICHolder.hpp"
38 #include "runtime/sharedRuntime.hpp"
39 #include "runtime/vframeArray.hpp"
40 #include "utilities/align.hpp"
41 #include "vm_version_x86.hpp"
42 #include "vmreg_x86.inline.hpp"
43 #ifdef COMPILER1
44 #include "c1/c1_Runtime1.hpp"
45 #endif
46 #ifdef COMPILER2
47 #include "opto/runtime.hpp"
48 #endif
49 #if INCLUDE_JVMCI
50 #include "jvmci/jvmciJavaClasses.hpp"
51 #endif
52
53 #define __ masm->
54
55 const int StackAlignmentInSlots = StackAlignmentInBytes / VMRegImpl::stack_slot_size;
56
57 class SimpleRuntimeFrame {
58
59 public:
60
61 // Most of the runtime stubs have this simple frame layout.
62 // This class exists to make the layout shared in one place.
63 // Offsets are for compiler stack slots, which are jints.
64 enum layout {
65 // The frame sender code expects that rbp will be in the "natural" place and
66 // will override any oopMap setting for it. We must therefore force the layout
67 // so that it agrees with the frame sender code.
68 rbp_off = frame::arg_reg_save_area_bytes/BytesPerInt,
69 rbp_off2,
70 return_off, return_off2,
71 framesize
|