< prev index next >

src/hotspot/share/aot/aotCompiledMethod.hpp

Print this page




  34 
  35 class aot_metadata {
  36 private:
  37   int _size;
  38   int _code_size;
  39   int _entry;
  40   int _verified_entry;
  41   int _exception_handler_offset;
  42   int _deopt_handler_offset;
  43   int _stubs_offset;
  44   int _frame_size;
  45   // location in frame (offset for sp) that deopt can store the original
  46   // pc during a deopt.
  47   int _orig_pc_offset;
  48   int _unsafe_access;
  49 
  50   int _pc_desc_begin;
  51   int _scopes_begin;
  52   int _reloc_begin;
  53   int _exception_table_begin;
  54   int _nul_chk_table_begin;
  55   int _oopmap_begin;
  56   address at_offset(size_t offset) const { return ((address) this) + offset; }
  57 public:
  58   int code_size() const { return _code_size; }
  59   int frame_size() const { return _frame_size / HeapWordSize; }
  60   PcDesc *scopes_pcs_begin() const { return (PcDesc *) at_offset(_pc_desc_begin); }
  61   PcDesc *scopes_pcs_end() const { return (PcDesc *) at_offset(_scopes_begin); }
  62   address scopes_data_begin() const { return at_offset(_scopes_begin); }
  63   address scopes_data_end() const { return at_offset(_reloc_begin); }
  64   relocInfo* relocation_begin() const { return (relocInfo*) at_offset(_reloc_begin); }
  65   relocInfo* relocation_end() const { return (relocInfo*) at_offset(_exception_table_begin); }
  66   address handler_table_begin   () const { return at_offset(_exception_table_begin); }
  67   address handler_table_end() const { return at_offset(_nul_chk_table_begin); }
  68 
  69   address nul_chk_table_begin() const { return at_offset(_nul_chk_table_begin); }
  70   address nul_chk_table_end() const { return at_offset(_oopmap_begin); }
  71 
  72   ImmutableOopMapSet* oopmap_set() const { return (ImmutableOopMapSet*) at_offset(_oopmap_begin); }
  73 
  74   address consts_begin() const { return at_offset(_size); }
  75   address consts_end() const { return at_offset(_size); }
  76   int stub_offset() const { return _stubs_offset; }
  77   int entry_offset() const { return _entry; }
  78   int verified_entry_offset() const { return _verified_entry; }
  79   int exception_handler_offset() const { return _exception_handler_offset; }
  80   int deopt_handler_offset() const { return _deopt_handler_offset; }
  81   int orig_pc_offset() const { return _orig_pc_offset; }
  82 
  83   int handler_table_size() const { return handler_table_end() - handler_table_begin(); }
  84   int nul_chk_table_size() const { return nul_chk_table_end() - nul_chk_table_begin(); }
  85   bool has_unsafe_access() const { return _unsafe_access != 0; }
  86 
  87 };
  88 
  89 /*




  34 
  35 class aot_metadata {
  36 private:
  37   int _size;
  38   int _code_size;
  39   int _entry;
  40   int _verified_entry;
  41   int _exception_handler_offset;
  42   int _deopt_handler_offset;
  43   int _stubs_offset;
  44   int _frame_size;
  45   // location in frame (offset for sp) that deopt can store the original
  46   // pc during a deopt.
  47   int _orig_pc_offset;
  48   int _unsafe_access;
  49 
  50   int _pc_desc_begin;
  51   int _scopes_begin;
  52   int _reloc_begin;
  53   int _exception_table_begin;

  54   int _oopmap_begin;
  55   address at_offset(size_t offset) const { return ((address) this) + offset; }
  56 public:
  57   int code_size() const { return _code_size; }
  58   int frame_size() const { return _frame_size / HeapWordSize; }
  59   PcDesc *scopes_pcs_begin() const { return (PcDesc *) at_offset(_pc_desc_begin); }
  60   PcDesc *scopes_pcs_end() const { return (PcDesc *) at_offset(_scopes_begin); }
  61   address scopes_data_begin() const { return at_offset(_scopes_begin); }
  62   address scopes_data_end() const { return at_offset(_reloc_begin); }
  63   relocInfo* relocation_begin() const { return (relocInfo*) at_offset(_reloc_begin); }
  64   relocInfo* relocation_end() const { return (relocInfo*) at_offset(_exception_table_begin); }
  65   address handler_table_begin   () const { return at_offset(_exception_table_begin); }
  66   address handler_table_end() const { return at_offset(_oopmap_begin); }
  67 
  68   address nul_chk_table_begin() const { return at_offset(_oopmap_begin); }
  69   address nul_chk_table_end() const { return at_offset(_oopmap_begin); }
  70 
  71   ImmutableOopMapSet* oopmap_set() const { return (ImmutableOopMapSet*) at_offset(_oopmap_begin); }
  72 
  73   address consts_begin() const { return at_offset(_size); }
  74   address consts_end() const { return at_offset(_size); }
  75   int stub_offset() const { return _stubs_offset; }
  76   int entry_offset() const { return _entry; }
  77   int verified_entry_offset() const { return _verified_entry; }
  78   int exception_handler_offset() const { return _exception_handler_offset; }
  79   int deopt_handler_offset() const { return _deopt_handler_offset; }
  80   int orig_pc_offset() const { return _orig_pc_offset; }
  81 
  82   int handler_table_size() const { return handler_table_end() - handler_table_begin(); }
  83   int nul_chk_table_size() const { return nul_chk_table_end() - nul_chk_table_begin(); }
  84   bool has_unsafe_access() const { return _unsafe_access != 0; }
  85 
  86 };
  87 
  88 /*


< prev index next >