Mercurial > hg > truffle
comparison src/share/vm/c1/c1_IR.cpp @ 1579:e9ff18c4ace7
Merge
author | jrose |
---|---|
date | Wed, 02 Jun 2010 22:45:42 -0700 |
parents | c18cbe5936b8 61b2245abf36 |
children | b812ff5abc73 |
comparison
equal
deleted
inserted
replaced
1562:dfe27f03244a | 1579:e9ff18c4ace7 |
---|---|
228 , _scope_debug_info(NULL) | 228 , _scope_debug_info(NULL) |
229 , _oop_map(NULL) | 229 , _oop_map(NULL) |
230 , _stack(stack) | 230 , _stack(stack) |
231 , _exception_handlers(exception_handlers) | 231 , _exception_handlers(exception_handlers) |
232 , _next(NULL) | 232 , _next(NULL) |
233 , _id(-1) { | 233 , _id(-1) |
234 , _is_method_handle_invoke(false) { | |
234 assert(_stack != NULL, "must be non null"); | 235 assert(_stack != NULL, "must be non null"); |
235 assert(_bci == SynchronizationEntryBCI || Bytecodes::is_defined(scope()->method()->java_code_at_bci(_bci)), "make sure bci points at a real bytecode"); | 236 assert(_bci == SynchronizationEntryBCI || Bytecodes::is_defined(scope()->method()->java_code_at_bci(_bci)), "make sure bci points at a real bytecode"); |
236 } | 237 } |
237 | 238 |
238 | 239 |
239 CodeEmitInfo::CodeEmitInfo(CodeEmitInfo* info, bool lock_stack_only) | 240 CodeEmitInfo::CodeEmitInfo(CodeEmitInfo* info, bool lock_stack_only) |
240 : _scope(info->_scope) | 241 : _scope(info->_scope) |
241 , _exception_handlers(NULL) | 242 , _exception_handlers(NULL) |
242 , _bci(info->_bci) | 243 , _bci(info->_bci) |
243 , _scope_debug_info(NULL) | 244 , _scope_debug_info(NULL) |
244 , _oop_map(NULL) { | 245 , _oop_map(NULL) |
246 , _is_method_handle_invoke(info->_is_method_handle_invoke) { | |
245 if (lock_stack_only) { | 247 if (lock_stack_only) { |
246 if (info->_stack != NULL) { | 248 if (info->_stack != NULL) { |
247 _stack = info->_stack->copy_locks(); | 249 _stack = info->_stack->copy_locks(); |
248 } else { | 250 } else { |
249 _stack = NULL; | 251 _stack = NULL; |
257 _exception_handlers = new XHandlers(info->_exception_handlers); | 259 _exception_handlers = new XHandlers(info->_exception_handlers); |
258 } | 260 } |
259 } | 261 } |
260 | 262 |
261 | 263 |
262 void CodeEmitInfo::record_debug_info(DebugInformationRecorder* recorder, int pc_offset, bool is_method_handle_invoke) { | 264 void CodeEmitInfo::record_debug_info(DebugInformationRecorder* recorder, int pc_offset) { |
263 // record the safepoint before recording the debug info for enclosing scopes | 265 // record the safepoint before recording the debug info for enclosing scopes |
264 recorder->add_safepoint(pc_offset, _oop_map->deep_copy()); | 266 recorder->add_safepoint(pc_offset, _oop_map->deep_copy()); |
265 _scope_debug_info->record_debug_info(recorder, pc_offset, true/*topmost*/, is_method_handle_invoke); | 267 _scope_debug_info->record_debug_info(recorder, pc_offset, true/*topmost*/, _is_method_handle_invoke); |
266 recorder->end_safepoint(pc_offset); | 268 recorder->end_safepoint(pc_offset); |
267 } | 269 } |
268 | 270 |
269 | 271 |
270 void CodeEmitInfo::add_register_oop(LIR_Opr opr) { | 272 void CodeEmitInfo::add_register_oop(LIR_Opr opr) { |