24
25 #include "precompiled.hpp"
26 #include "asm/macroAssembler.inline.hpp"
27 #include "code/debugInfoRec.hpp"
28 #include "code/icBuffer.hpp"
29 #include "code/vtableStubs.hpp"
30 #include "interpreter/interpreter.hpp"
31 #include "logging/log.hpp"
32 #include "memory/resourceArea.hpp"
33 #include "oops/compiledICHolder.hpp"
34 #include "runtime/sharedRuntime.hpp"
35 #include "runtime/vframeArray.hpp"
36 #include "utilities/align.hpp"
37 #include "vmreg_sparc.inline.hpp"
38 #ifdef COMPILER1
39 #include "c1/c1_Runtime1.hpp"
40 #endif
41 #ifdef COMPILER2
42 #include "opto/runtime.hpp"
43 #endif
44 #ifdef SHARK
45 #include "compiler/compileBroker.hpp"
46 #include "shark/sharkCompiler.hpp"
47 #endif
48 #if INCLUDE_JVMCI
49 #include "jvmci/jvmciJavaClasses.hpp"
50 #endif
51
52 #define __ masm->
53
54
55 class RegisterSaver {
56
57 // Used for saving volatile registers. This is Gregs, Fregs, I/L/O.
58 // The Oregs are problematic. In the 32bit build the compiler can
59 // have O registers live with 64 bit quantities. A window save will
60 // cut the heads off of the registers. We have to do a very extensive
61 // stack dance to save and restore these properly.
62
63 // Note that the Oregs problem only exists if we block at either a polling
64 // page exception a compiled code safepoint that was not originally a call
65 // or deoptimize following one of these kinds of safepoints.
66
67 // Lots of registers to save. For all builds, a window save will preserve
|
24
25 #include "precompiled.hpp"
26 #include "asm/macroAssembler.inline.hpp"
27 #include "code/debugInfoRec.hpp"
28 #include "code/icBuffer.hpp"
29 #include "code/vtableStubs.hpp"
30 #include "interpreter/interpreter.hpp"
31 #include "logging/log.hpp"
32 #include "memory/resourceArea.hpp"
33 #include "oops/compiledICHolder.hpp"
34 #include "runtime/sharedRuntime.hpp"
35 #include "runtime/vframeArray.hpp"
36 #include "utilities/align.hpp"
37 #include "vmreg_sparc.inline.hpp"
38 #ifdef COMPILER1
39 #include "c1/c1_Runtime1.hpp"
40 #endif
41 #ifdef COMPILER2
42 #include "opto/runtime.hpp"
43 #endif
44 #if INCLUDE_JVMCI
45 #include "jvmci/jvmciJavaClasses.hpp"
46 #endif
47
48 #define __ masm->
49
50
51 class RegisterSaver {
52
53 // Used for saving volatile registers. This is Gregs, Fregs, I/L/O.
54 // The Oregs are problematic. In the 32bit build the compiler can
55 // have O registers live with 64 bit quantities. A window save will
56 // cut the heads off of the registers. We have to do a very extensive
57 // stack dance to save and restore these properly.
58
59 // Note that the Oregs problem only exists if we block at either a polling
60 // page exception a compiled code safepoint that was not originally a call
61 // or deoptimize following one of these kinds of safepoints.
62
63 // Lots of registers to save. For all builds, a window save will preserve
|