28 #include "interpreter/interpreterRuntime.hpp"
29 #include "oops/arrayOop.hpp"
30 #include "oops/markOop.hpp"
31 #include "oops/methodDataOop.hpp"
32 #include "oops/methodOop.hpp"
33 #include "prims/jvmtiExport.hpp"
34 #include "prims/jvmtiRedefineClassesTrace.hpp"
35 #include "prims/jvmtiThreadState.hpp"
36 #include "runtime/basicLock.hpp"
37 #include "runtime/biasedLocking.hpp"
38 #include "runtime/sharedRuntime.hpp"
39 #ifdef TARGET_OS_FAMILY_linux
40 # include "thread_linux.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_solaris
43 # include "thread_solaris.inline.hpp"
44 #endif
45 #ifdef TARGET_OS_FAMILY_windows
46 # include "thread_windows.inline.hpp"
47 #endif
48
49
50 // Implementation of InterpreterMacroAssembler
51
52 #ifdef CC_INTERP
53 void InterpreterMacroAssembler::get_method(Register reg) {
54 movptr(reg, Address(rbp, -((int)sizeof(BytecodeInterpreter) + 2 * wordSize)));
55 movptr(reg, Address(reg, byte_offset_of(BytecodeInterpreter, _method)));
56 }
57 #endif // CC_INTERP
58
59 #ifndef CC_INTERP
60
61 void InterpreterMacroAssembler::call_VM_leaf_base(address entry_point,
62 int number_of_arguments) {
63 // interpreter specific
64 //
65 // Note: No need to save/restore bcp & locals (r13 & r14) pointer
66 // since these are callee saved registers and no blocking/
67 // GC can happen in leaf calls.
|
28 #include "interpreter/interpreterRuntime.hpp"
29 #include "oops/arrayOop.hpp"
30 #include "oops/markOop.hpp"
31 #include "oops/methodDataOop.hpp"
32 #include "oops/methodOop.hpp"
33 #include "prims/jvmtiExport.hpp"
34 #include "prims/jvmtiRedefineClassesTrace.hpp"
35 #include "prims/jvmtiThreadState.hpp"
36 #include "runtime/basicLock.hpp"
37 #include "runtime/biasedLocking.hpp"
38 #include "runtime/sharedRuntime.hpp"
39 #ifdef TARGET_OS_FAMILY_linux
40 # include "thread_linux.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_solaris
43 # include "thread_solaris.inline.hpp"
44 #endif
45 #ifdef TARGET_OS_FAMILY_windows
46 # include "thread_windows.inline.hpp"
47 #endif
48 #ifdef TARGET_OS_FAMILY_bsd
49 # include "thread_bsd.inline.hpp"
50 #endif
51
52
53 // Implementation of InterpreterMacroAssembler
54
55 #ifdef CC_INTERP
56 void InterpreterMacroAssembler::get_method(Register reg) {
57 movptr(reg, Address(rbp, -((int)sizeof(BytecodeInterpreter) + 2 * wordSize)));
58 movptr(reg, Address(reg, byte_offset_of(BytecodeInterpreter, _method)));
59 }
60 #endif // CC_INTERP
61
62 #ifndef CC_INTERP
63
64 void InterpreterMacroAssembler::call_VM_leaf_base(address entry_point,
65 int number_of_arguments) {
66 // interpreter specific
67 //
68 // Note: No need to save/restore bcp & locals (r13 & r14) pointer
69 // since these are callee saved registers and no blocking/
70 // GC can happen in leaf calls.
|