69 #define thread_(field_name) Address(Z_thread, JavaThread::field_name ## _offset())
70 #define method_(field_name) Address(Z_method, Method::field_name ## _offset())
71 #define method2_(Rmethod, field_name) Address(Rmethod, Method::field_name ## _offset())
72
73 // Helper routine for frame allocation/deallocation.
74 // Compute the delta by which the caller's SP has to
75 // be adjusted to accomodate for the non-argument locals.
76 void compute_extra_locals_size_in_bytes(Register args_size, Register locals_size, Register delta);
77
78 // dispatch routines
79 void dispatch_prolog(TosState state, int step = 0);
80 void dispatch_epilog(TosState state, int step = 0);
81 void dispatch_only(TosState state);
82 // Dispatch normal table via Z_bytecode (assume Z_bytecode is loaded already).
83 void dispatch_only_normal(TosState state);
84 void dispatch_normal(TosState state);
85 void dispatch_next(TosState state, int step = 0);
86 void dispatch_next_noverify_oop(TosState state, int step = 0);
87 void dispatch_via(TosState state, address* table);
88
89 // Jump to an invoked target.
90 void prepare_to_jump_from_interpreted(Register method);
91 void jump_from_interpreted(Register method, Register temp);
92
93 // Removes the current activation (incl. unlocking of monitors).
94 // Additionally this code is used for earlyReturn in which case we
95 // want to skip throwing an exception and installing an exception.
96 void remove_activation(TosState state,
97 Register return_pc,
98 bool throw_monitor_exception = true,
99 bool install_monitor_exception = true,
100 bool notify_jvmti = true);
101
102 public:
103 // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls.
104 void super_call_VM_leaf(address entry_point, Register arg_1, Register arg_2);
105 void super_call_VM(Register thread_cache, Register oop_result, Register last_java_sp,
106 address entry_point, Register arg_1, Register arg_2, bool check_exception = true);
107
108 // Generate a subtype check: branch to ok_is_subtype if sub_klass is
|
69 #define thread_(field_name) Address(Z_thread, JavaThread::field_name ## _offset())
70 #define method_(field_name) Address(Z_method, Method::field_name ## _offset())
71 #define method2_(Rmethod, field_name) Address(Rmethod, Method::field_name ## _offset())
72
73 // Helper routine for frame allocation/deallocation.
74 // Compute the delta by which the caller's SP has to
75 // be adjusted to accomodate for the non-argument locals.
76 void compute_extra_locals_size_in_bytes(Register args_size, Register locals_size, Register delta);
77
78 // dispatch routines
79 void dispatch_prolog(TosState state, int step = 0);
80 void dispatch_epilog(TosState state, int step = 0);
81 void dispatch_only(TosState state);
82 // Dispatch normal table via Z_bytecode (assume Z_bytecode is loaded already).
83 void dispatch_only_normal(TosState state);
84 void dispatch_normal(TosState state);
85 void dispatch_next(TosState state, int step = 0);
86 void dispatch_next_noverify_oop(TosState state, int step = 0);
87 void dispatch_via(TosState state, address* table);
88
89 void narrow(Register result, Register ret_type);
90
91 // Jump to an invoked target.
92 void prepare_to_jump_from_interpreted(Register method);
93 void jump_from_interpreted(Register method, Register temp);
94
95 // Removes the current activation (incl. unlocking of monitors).
96 // Additionally this code is used for earlyReturn in which case we
97 // want to skip throwing an exception and installing an exception.
98 void remove_activation(TosState state,
99 Register return_pc,
100 bool throw_monitor_exception = true,
101 bool install_monitor_exception = true,
102 bool notify_jvmti = true);
103
104 public:
105 // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls.
106 void super_call_VM_leaf(address entry_point, Register arg_1, Register arg_2);
107 void super_call_VM(Register thread_cache, Register oop_result, Register last_java_sp,
108 address entry_point, Register arg_1, Register arg_2, bool check_exception = true);
109
110 // Generate a subtype check: branch to ok_is_subtype if sub_klass is
|