src/share/vm/ci/ciMethodData.hpp

Print this page




  53 public:
  54   ciBitData(DataLayout* layout) : BitData(layout) {};
  55 };
  56 
  57 class ciCounterData : public CounterData {
  58 public:
  59   ciCounterData(DataLayout* layout) : CounterData(layout) {};
  60 };
  61 
  62 class ciJumpData : public JumpData {
  63 public:
  64   ciJumpData(DataLayout* layout) : JumpData(layout) {};
  65 };
  66 
  67 class ciTypeEntries {
  68 protected:
  69   static intptr_t translate_klass(intptr_t k) {
  70     Klass* v = TypeEntries::valid_klass(k);
  71     if (v != NULL) {
  72       ciKlass* klass = CURRENT_ENV->get_klass(v);

  73       return with_status(klass, k);
  74     }
  75     return with_status(NULL, k);
  76   }
  77 
  78 public:
  79   static ciKlass* valid_ciklass(intptr_t k) {
  80     if (!TypeEntries::is_type_none(k) &&
  81         !TypeEntries::is_type_unknown(k)) {
  82       ciKlass* res = (ciKlass*)TypeEntries::klass_part(k);
  83       assert(res != NULL, "invalid");
  84       return res;
  85     } else {
  86       return NULL;
  87     }
  88   }
  89 
  90   static intptr_t with_status(ciKlass* k, intptr_t in) {
  91     return TypeEntries::with_status((intptr_t)k, in);
  92   }




  53 public:
  54   ciBitData(DataLayout* layout) : BitData(layout) {};
  55 };
  56 
  57 class ciCounterData : public CounterData {
  58 public:
  59   ciCounterData(DataLayout* layout) : CounterData(layout) {};
  60 };
  61 
  62 class ciJumpData : public JumpData {
  63 public:
  64   ciJumpData(DataLayout* layout) : JumpData(layout) {};
  65 };
  66 
  67 class ciTypeEntries {
  68 protected:
  69   static intptr_t translate_klass(intptr_t k) {
  70     Klass* v = TypeEntries::valid_klass(k);
  71     if (v != NULL) {
  72       ciKlass* klass = CURRENT_ENV->get_klass(v);
  73       CURRENT_ENV->ensure_metadata_alive(klass);
  74       return with_status(klass, k);
  75     }
  76     return with_status(NULL, k);
  77   }
  78 
  79 public:
  80   static ciKlass* valid_ciklass(intptr_t k) {
  81     if (!TypeEntries::is_type_none(k) &&
  82         !TypeEntries::is_type_unknown(k)) {
  83       ciKlass* res = (ciKlass*)TypeEntries::klass_part(k);
  84       assert(res != NULL, "invalid");
  85       return res;
  86     } else {
  87       return NULL;
  88     }
  89   }
  90 
  91   static intptr_t with_status(ciKlass* k, intptr_t in) {
  92     return TypeEntries::with_status((intptr_t)k, in);
  93   }