Mercurial > hg > truffle
comparison src/share/vm/code/nmethod.hpp @ 5251:467de393651a
optimization: frame prologue & epilogue ommitted for methods with no spills, no callee-saved registers, no incoming stack args and no debug info
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 18 Apr 2012 23:39:07 +0200 |
parents | ab038e0d6b43 |
children | e72dd6533eb9 |
comparison
equal
deleted
inserted
replaced
5250:0f6f647e8a96 | 5251:467de393651a |
---|---|
338 | 338 |
339 bool is_compiled_by_c1() const; | 339 bool is_compiled_by_c1() const; |
340 bool is_compiled_by_c2() const; | 340 bool is_compiled_by_c2() const; |
341 bool is_compiled_by_shark() const; | 341 bool is_compiled_by_shark() const; |
342 | 342 |
343 | |
344 #define CHECK_POSITIVE(val) assert(val, "should be positive") | |
345 | |
343 // boundaries for different parts | 346 // boundaries for different parts |
344 address consts_begin () const { return header_begin() + _consts_offset ; } | 347 address consts_begin () const { return header_begin() + _consts_offset ; } |
345 address consts_end () const { return header_begin() + code_offset() ; } | 348 address consts_end () const { return header_begin() + code_offset() ; } |
346 address insts_begin () const { return header_begin() + code_offset() ; } | 349 address insts_begin () const { return header_begin() + code_offset() ; } |
347 address insts_end () const { return header_begin() + _stub_offset ; } | 350 address insts_end () const { return header_begin() + _stub_offset ; } |
348 address stub_begin () const { return header_begin() + _stub_offset ; } | 351 address stub_begin () const { return header_begin() + _stub_offset ; } |
349 address stub_end () const { return header_begin() + _oops_offset ; } | 352 address stub_end () const { return header_begin() + _oops_offset ; } |
350 address exception_begin () const { return header_begin() + _exception_offset ; } | 353 address exception_begin () const { assert(_exception_offset >= 0, "no exception handler"); return header_begin() + _exception_offset ; } |
351 address deopt_handler_begin () const { return header_begin() + _deoptimize_offset ; } | 354 address deopt_handler_begin () const { assert(_deoptimize_offset >= 0, "no deopt handler"); return header_begin() + _deoptimize_offset ; } |
352 address deopt_mh_handler_begin() const { return header_begin() + _deoptimize_mh_offset ; } | 355 address deopt_mh_handler_begin() const { return header_begin() + _deoptimize_mh_offset ; } |
353 address unwind_handler_begin () const { return _unwind_handler_offset != -1 ? (header_begin() + _unwind_handler_offset) : NULL; } | 356 address unwind_handler_begin () const { return _unwind_handler_offset != -1 ? (header_begin() + _unwind_handler_offset) : NULL; } |
354 oop* oops_begin () const { return (oop*) (header_begin() + _oops_offset) ; } | 357 oop* oops_begin () const { return (oop*) (header_begin() + _oops_offset) ; } |
355 oop* oops_end () const { return (oop*) (header_begin() + _scopes_data_offset) ; } | 358 oop* oops_end () const { return (oop*) (header_begin() + _scopes_data_offset) ; } |
356 | 359 |