42
43 virtual void call_VM_leaf_base(address entry_point,
44 int number_of_arguments);
45
46 virtual void call_VM_base(Register oop_result,
47 Register java_thread,
48 Register last_java_sp,
49 address entry_point,
50 int number_of_arguments,
51 bool check_exceptions);
52
53 // base routine for all dispatches
54 void dispatch_base(TosState state, address* table, bool verifyoop = true,
55 bool generate_poll = false, Register Rs = t0);
56
57 public:
58 InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
59
60 void load_earlyret_value(TosState state);
61
62 void jump_to_entry(address entry);
63
64 virtual void check_and_handle_popframe(Register java_thread);
65 virtual void check_and_handle_earlyret(Register java_thread);
66
67 // Interpreter-specific registers
68 void save_bcp() {
69 sd(xbcp, Address(fp, frame::interpreter_frame_bcp_offset * wordSize));
70 }
71
72 void restore_bcp() {
73 ld(xbcp, Address(fp, frame::interpreter_frame_bcp_offset * wordSize));
74 }
75
76 void restore_locals() {
77 ld(xlocals, Address(fp, frame::interpreter_frame_locals_offset * wordSize));
78 shadd(xlocals, xlocals, fp, t0, LogBytesPerWord);
79 }
80
81 void restore_constant_pool_cache() {
|
42
43 virtual void call_VM_leaf_base(address entry_point,
44 int number_of_arguments);
45
46 virtual void call_VM_base(Register oop_result,
47 Register java_thread,
48 Register last_java_sp,
49 address entry_point,
50 int number_of_arguments,
51 bool check_exceptions);
52
53 // base routine for all dispatches
54 void dispatch_base(TosState state, address* table, bool verifyoop = true,
55 bool generate_poll = false, Register Rs = t0);
56
57 public:
58 InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {}
59
60 void load_earlyret_value(TosState state);
61
62 void call_VM_preemptable(Register oop_result,
63 address entry_point,
64 Register arg_1);
65 void restore_after_resume(bool is_native);
66
67 void jump_to_entry(address entry);
68
69 virtual void check_and_handle_popframe(Register java_thread);
70 virtual void check_and_handle_earlyret(Register java_thread);
71
72 // Interpreter-specific registers
73 void save_bcp() {
74 sd(xbcp, Address(fp, frame::interpreter_frame_bcp_offset * wordSize));
75 }
76
77 void restore_bcp() {
78 ld(xbcp, Address(fp, frame::interpreter_frame_bcp_offset * wordSize));
79 }
80
81 void restore_locals() {
82 ld(xlocals, Address(fp, frame::interpreter_frame_locals_offset * wordSize));
83 shadd(xlocals, xlocals, fp, t0, LogBytesPerWord);
84 }
85
86 void restore_constant_pool_cache() {
|