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 }
|