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 #ifdef CC_INTERP
52 void InterpreterMacroAssembler::get_method(Register reg) {
53 movptr(reg, Address(rbp, -(sizeof(BytecodeInterpreter) + 2 * wordSize)));
54 movptr(reg, Address(reg, byte_offset_of(BytecodeInterpreter, _method)));
55 }
56 #endif // CC_INTERP
57
58
59 #ifndef CC_INTERP
60 void InterpreterMacroAssembler::call_VM_leaf_base(
61 address entry_point,
62 int number_of_arguments
63 ) {
64 // interpreter specific
65 //
66 // Note: No need to save/restore bcp & locals (rsi & rdi) pointer
67 // since these are callee saved registers and no blocking/
|
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 #ifdef CC_INTERP
55 void InterpreterMacroAssembler::get_method(Register reg) {
56 movptr(reg, Address(rbp, -(sizeof(BytecodeInterpreter) + 2 * wordSize)));
57 movptr(reg, Address(reg, byte_offset_of(BytecodeInterpreter, _method)));
58 }
59 #endif // CC_INTERP
60
61
62 #ifndef CC_INTERP
63 void InterpreterMacroAssembler::call_VM_leaf_base(
64 address entry_point,
65 int number_of_arguments
66 ) {
67 // interpreter specific
68 //
69 // Note: No need to save/restore bcp & locals (rsi & rdi) pointer
70 // since these are callee saved registers and no blocking/
|