342 *(JVMState**)&_jvms = s; // override const attribute in the accessor |
342 *(JVMState**)&_jvms = s; // override const attribute in the accessor |
343 } |
343 } |
344 OopMap *oop_map() const { return _oop_map; } |
344 OopMap *oop_map() const { return _oop_map; } |
345 void set_oop_map(OopMap *om) { _oop_map = om; } |
345 void set_oop_map(OopMap *om) { _oop_map = om; } |
346 |
346 |
|
347 private: |
|
348 void verify_input(JVMState* jvms, uint idx) const { |
|
349 assert(verify_jvms(jvms), "jvms must match"); |
|
350 Node* n = in(idx); |
|
351 assert((!n->bottom_type()->isa_long() && !n->bottom_type()->isa_double()) || |
|
352 in(idx + 1)->is_top(), "2nd half of long/double"); |
|
353 } |
|
354 |
|
355 public: |
347 // Functionality from old debug nodes which has changed |
356 // Functionality from old debug nodes which has changed |
348 Node *local(JVMState* jvms, uint idx) const { |
357 Node *local(JVMState* jvms, uint idx) const { |
349 assert(verify_jvms(jvms), "jvms must match"); |
358 verify_input(jvms, jvms->locoff() + idx); |
350 return in(jvms->locoff() + idx); |
359 return in(jvms->locoff() + idx); |
351 } |
360 } |
352 Node *stack(JVMState* jvms, uint idx) const { |
361 Node *stack(JVMState* jvms, uint idx) const { |
353 assert(verify_jvms(jvms), "jvms must match"); |
362 verify_input(jvms, jvms->stkoff() + idx); |
354 return in(jvms->stkoff() + idx); |
363 return in(jvms->stkoff() + idx); |
355 } |
364 } |
356 Node *argument(JVMState* jvms, uint idx) const { |
365 Node *argument(JVMState* jvms, uint idx) const { |
357 assert(verify_jvms(jvms), "jvms must match"); |
366 verify_input(jvms, jvms->argoff() + idx); |
358 return in(jvms->argoff() + idx); |
367 return in(jvms->argoff() + idx); |
359 } |
368 } |
360 Node *monitor_box(JVMState* jvms, uint idx) const { |
369 Node *monitor_box(JVMState* jvms, uint idx) const { |
361 assert(verify_jvms(jvms), "jvms must match"); |
370 assert(verify_jvms(jvms), "jvms must match"); |
362 return in(jvms->monitor_box_offset(idx)); |
371 return in(jvms->monitor_box_offset(idx)); |