18 * |
18 * |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
20 * or visit www.oracle.com if you need additional information or have any |
20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
|
24 |
|
25 /* |
|
26 * This file has been modified by Loongson Technology in 2015. These |
|
27 * modifications are Copyright (c) 2015 Loongson Technology, and are made |
|
28 * available on the same license terms set forth above. |
|
29 */ |
23 */ |
30 |
24 |
31 #ifndef SHARE_VM_OOPS_METHODOOP_HPP |
25 #ifndef SHARE_VM_OOPS_METHODOOP_HPP |
32 #define SHARE_VM_OOPS_METHODOOP_HPP |
26 #define SHARE_VM_OOPS_METHODOOP_HPP |
33 |
27 |
124 : 3; |
118 : 3; |
125 |
119 |
126 #ifndef PRODUCT |
120 #ifndef PRODUCT |
127 int _compiled_invocation_count; // Number of nmethod invocations so far (for perf. debugging) |
121 int _compiled_invocation_count; // Number of nmethod invocations so far (for perf. debugging) |
128 #endif |
122 #endif |
129 #ifdef MIPS64 |
|
130 int _num_of_requests; |
|
131 int _decay_counter; |
|
132 #endif |
|
133 // Entry point for calling both from and to the interpreter. |
123 // Entry point for calling both from and to the interpreter. |
134 address _i2i_entry; // All-args-on-stack calling convention |
124 address _i2i_entry; // All-args-on-stack calling convention |
135 // Adapter blob (i2c/c2i) for this Method*. Set once when method is linked. |
125 // Adapter blob (i2c/c2i) for this Method*. Set once when method is linked. |
136 AdapterHandlerEntry* _adapter; |
126 AdapterHandlerEntry* _adapter; |
137 // Entry point for calling from compiled code, to compiled code if it exists |
127 // Entry point for calling from compiled code, to compiled code if it exists |
170 |
160 |
171 // accessors for instance variables |
161 // accessors for instance variables |
172 |
162 |
173 ConstMethod* constMethod() const { return _constMethod; } |
163 ConstMethod* constMethod() const { return _constMethod; } |
174 void set_constMethod(ConstMethod* xconst) { _constMethod = xconst; } |
164 void set_constMethod(ConstMethod* xconst) { _constMethod = xconst; } |
175 #ifdef MIPS64 |
165 |
176 void incr_num_of_requests(int increment) { _num_of_requests += increment; } |
|
177 void set_num_of_requests(int new_num) { _num_of_requests = new_num; } |
|
178 int get_num_of_requests() const { return _num_of_requests; } |
|
179 |
|
180 void incr_decay_counter(int increment) { _decay_counter += increment; } |
|
181 void set_decay_counter(int new_num) { _decay_counter = new_num; } |
|
182 int get_decay_counter() const { return _decay_counter; } |
|
183 #endif |
|
184 |
166 |
185 static address make_adapters(methodHandle mh, TRAPS); |
167 static address make_adapters(methodHandle mh, TRAPS); |
186 volatile address from_compiled_entry() const { return (address)OrderAccess::load_ptr_acquire(&_from_compiled_entry); } |
168 volatile address from_compiled_entry() const { return (address)OrderAccess::load_ptr_acquire(&_from_compiled_entry); } |
187 volatile address from_interpreted_entry() const{ return (address)OrderAccess::load_ptr_acquire(&_from_interpreted_entry); } |
169 volatile address from_interpreted_entry() const{ return (address)OrderAccess::load_ptr_acquire(&_from_interpreted_entry); } |
188 |
170 |