comparison src/share/vm/runtime/sharedRuntime.hpp @ 1764:14197af1010e

Merge
author never
date Fri, 27 Aug 2010 17:35:08 -0700
parents 3e8fbc61cee8
children 3dc12ef8735e
comparison
equal deleted inserted replaced
1763:d6f45b55c972 1764:14197af1010e
171 // Shared stub locations 171 // Shared stub locations
172 static address get_poll_stub(address pc); 172 static address get_poll_stub(address pc);
173 173
174 static address get_ic_miss_stub() { 174 static address get_ic_miss_stub() {
175 assert(_ic_miss_blob!= NULL, "oops"); 175 assert(_ic_miss_blob!= NULL, "oops");
176 return _ic_miss_blob->instructions_begin(); 176 return _ic_miss_blob->entry_point();
177 } 177 }
178 178
179 static address get_handle_wrong_method_stub() { 179 static address get_handle_wrong_method_stub() {
180 assert(_wrong_method_blob!= NULL, "oops"); 180 assert(_wrong_method_blob!= NULL, "oops");
181 return _wrong_method_blob->instructions_begin(); 181 return _wrong_method_blob->entry_point();
182 } 182 }
183 183
184 #ifdef COMPILER2 184 #ifdef COMPILER2
185 static void generate_uncommon_trap_blob(void); 185 static void generate_uncommon_trap_blob(void);
186 static UncommonTrapBlob* uncommon_trap_blob() { return _uncommon_trap_blob; } 186 static UncommonTrapBlob* uncommon_trap_blob() { return _uncommon_trap_blob; }
187 #endif // COMPILER2 187 #endif // COMPILER2
188 188
189 static address get_resolve_opt_virtual_call_stub(){ 189 static address get_resolve_opt_virtual_call_stub(){
190 assert(_resolve_opt_virtual_call_blob != NULL, "oops"); 190 assert(_resolve_opt_virtual_call_blob != NULL, "oops");
191 return _resolve_opt_virtual_call_blob->instructions_begin(); 191 return _resolve_opt_virtual_call_blob->entry_point();
192 } 192 }
193 static address get_resolve_virtual_call_stub() { 193 static address get_resolve_virtual_call_stub() {
194 assert(_resolve_virtual_call_blob != NULL, "oops"); 194 assert(_resolve_virtual_call_blob != NULL, "oops");
195 return _resolve_virtual_call_blob->instructions_begin(); 195 return _resolve_virtual_call_blob->entry_point();
196 } 196 }
197 static address get_resolve_static_call_stub() { 197 static address get_resolve_static_call_stub() {
198 assert(_resolve_static_call_blob != NULL, "oops"); 198 assert(_resolve_static_call_blob != NULL, "oops");
199 return _resolve_static_call_blob->instructions_begin(); 199 return _resolve_static_call_blob->entry_point();
200 } 200 }
201 201
202 static SafepointBlob* polling_page_return_handler_blob() { return _polling_page_return_handler_blob; } 202 static SafepointBlob* polling_page_return_handler_blob() { return _polling_page_return_handler_blob; }
203 static SafepointBlob* polling_page_safepoint_handler_blob() { return _polling_page_safepoint_handler_blob; } 203 static SafepointBlob* polling_page_safepoint_handler_blob() { return _polling_page_safepoint_handler_blob; }
204 204
546 // Implementation of AdapterHandlerLibrary 546 // Implementation of AdapterHandlerLibrary
547 // 547 //
548 // This library manages argument marshaling adapters and native wrappers. 548 // This library manages argument marshaling adapters and native wrappers.
549 // There are 2 flavors of adapters: I2C and C2I. 549 // There are 2 flavors of adapters: I2C and C2I.
550 // 550 //
551 // The I2C flavor takes a stock interpreted call setup, marshals the arguments 551 // The I2C flavor takes a stock interpreted call setup, marshals the
552 // for a Java-compiled call, and jumps to Rmethod-> code()-> 552 // arguments for a Java-compiled call, and jumps to Rmethod-> code()->
553 // instructions_begin(). It is broken to call it without an nmethod assigned. 553 // code_begin(). It is broken to call it without an nmethod assigned.
554 // The usual behavior is to lift any register arguments up out of the stack 554 // The usual behavior is to lift any register arguments up out of the
555 // and possibly re-pack the extra arguments to be contigious. I2C adapters 555 // stack and possibly re-pack the extra arguments to be contigious.
556 // will save what the interpreter's stack pointer will be after arguments are 556 // I2C adapters will save what the interpreter's stack pointer will be
557 // popped, then adjust the interpreter's frame size to force alignment and 557 // after arguments are popped, then adjust the interpreter's frame
558 // possibly to repack the arguments. After re-packing, it jumps to the 558 // size to force alignment and possibly to repack the arguments.
559 // compiled code start. There are no safepoints in this adapter code and a GC 559 // After re-packing, it jumps to the compiled code start. There are
560 // cannot happen while marshaling is in progress. 560 // no safepoints in this adapter code and a GC cannot happen while
561 // marshaling is in progress.
561 // 562 //
562 // The C2I flavor takes a stock compiled call setup plus the target method in 563 // The C2I flavor takes a stock compiled call setup plus the target method in
563 // Rmethod, marshals the arguments for an interpreted call and jumps to 564 // Rmethod, marshals the arguments for an interpreted call and jumps to
564 // Rmethod->_i2i_entry. On entry, the interpreted frame has not yet been 565 // Rmethod->_i2i_entry. On entry, the interpreted frame has not yet been
565 // setup. Compiled frames are fixed-size and the args are likely not in the 566 // setup. Compiled frames are fixed-size and the args are likely not in the