51
52 class ciBitData : public BitData {
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 }
94
95 #ifndef PRODUCT
96 static void print_ciklass(outputStream* st, intptr_t k);
|
51
52 class ciBitData : public BitData {
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 ciKlass* klass = CURRENT_ENV->get_klass(v);
72 return with_status(klass, k);
73 }
74
75 public:
76 static ciKlass* valid_ciklass(intptr_t k) {
77 if (!TypeEntries::is_type_none(k) &&
78 !TypeEntries::is_type_unknown(k)) {
79 ciKlass* res = (ciKlass*)TypeEntries::klass_part(k);
80 assert(res != NULL, "invalid");
81 return res;
82 } else {
83 return NULL;
84 }
85 }
86
87 static intptr_t with_status(ciKlass* k, intptr_t in) {
88 return TypeEntries::with_status((intptr_t)k, in);
89 }
90
91 #ifndef PRODUCT
92 static void print_ciklass(outputStream* st, intptr_t k);
|