Mercurial > hg > truffle
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 |