515 address insts_end() const { return _insts.end(); }
516 void set_insts_end(address end) { _insts.set_end(end); }
517 address insts_limit() const { return _insts.limit(); }
518 address insts_mark() const { return _insts.mark(); }
519 void set_insts_mark() { _insts.set_mark(); }
520 void clear_insts_mark() { _insts.clear_mark(); }
521
522 // is there anything in the buffer other than the current section?
523 bool is_pure() const { return insts_size() == total_content_size(); }
524
525 // size in bytes of output so far in the insts sections
526 csize_t insts_size() const { return _insts.size(); }
527
528 // same as insts_size(), except that it asserts there is no non-code here
529 csize_t pure_insts_size() const { assert(is_pure(), "no non-code");
530 return insts_size(); }
531 // capacity in bytes of the insts sections
532 csize_t insts_capacity() const { return _insts.capacity(); }
533
534 // number of bytes remaining in the insts section
535 csize_t insts_remaining() const { return _insts.remaining(); }
536
537 // is a given address in the insts section? (2nd version is end-inclusive)
538 bool insts_contains(address pc) const { return _insts.contains(pc); }
539 bool insts_contains2(address pc) const { return _insts.contains2(pc); }
540
541 // Record any extra oops required to keep embedded metadata alive
542 void finalize_oop_references(methodHandle method);
543
544 // Allocated size in all sections, when aligned and concatenated
545 // (this is the eventual state of the content in its final
546 // CodeBlob).
547 csize_t total_content_size() const;
548
549 // Combined offset (relative to start of first section) of given
550 // section, as eventually found in the final CodeBlob.
551 csize_t total_offset_of(CodeSection* cs) const;
552
553 // allocated size of all relocation data, including index, rounded up
554 csize_t total_relocation_size() const;
555
|
515 address insts_end() const { return _insts.end(); }
516 void set_insts_end(address end) { _insts.set_end(end); }
517 address insts_limit() const { return _insts.limit(); }
518 address insts_mark() const { return _insts.mark(); }
519 void set_insts_mark() { _insts.set_mark(); }
520 void clear_insts_mark() { _insts.clear_mark(); }
521
522 // is there anything in the buffer other than the current section?
523 bool is_pure() const { return insts_size() == total_content_size(); }
524
525 // size in bytes of output so far in the insts sections
526 csize_t insts_size() const { return _insts.size(); }
527
528 // same as insts_size(), except that it asserts there is no non-code here
529 csize_t pure_insts_size() const { assert(is_pure(), "no non-code");
530 return insts_size(); }
531 // capacity in bytes of the insts sections
532 csize_t insts_capacity() const { return _insts.capacity(); }
533
534 // number of bytes remaining in the insts section
535 void check_code_size() const {
536 // When new stubs added we need to make sure there is some space left
537 // to catch situation when we should increase size again.
538 assert(insts_size() == 0 || _insts.remaining() > 200, "increase code_size1");
539 }
540
541 // is a given address in the insts section? (2nd version is end-inclusive)
542 bool insts_contains(address pc) const { return _insts.contains(pc); }
543 bool insts_contains2(address pc) const { return _insts.contains2(pc); }
544
545 // Record any extra oops required to keep embedded metadata alive
546 void finalize_oop_references(methodHandle method);
547
548 // Allocated size in all sections, when aligned and concatenated
549 // (this is the eventual state of the content in its final
550 // CodeBlob).
551 csize_t total_content_size() const;
552
553 // Combined offset (relative to start of first section) of given
554 // section, as eventually found in the final CodeBlob.
555 csize_t total_offset_of(CodeSection* cs) const;
556
557 // allocated size of all relocation data, including index, rounded up
558 csize_t total_relocation_size() const;
559
|