60 class ciJumpData : public JumpData {
61 public:
62 ciJumpData(DataLayout* layout) : JumpData(layout) {};
63 };
64
65 class ciTypeEntries {
66 protected:
67 static intptr_t translate_klass(intptr_t k) {
68 Klass* v = TypeEntries::valid_klass(k);
69 if (v != NULL) {
70 ciKlass* klass = CURRENT_ENV->get_klass(v);
71 return with_status(klass, k);
72 }
73 return with_status(NULL, k);
74 }
75
76 public:
77 static ciKlass* valid_ciklass(intptr_t k) {
78 if (!TypeEntries::is_type_none(k) &&
79 !TypeEntries::is_type_unknown(k)) {
80 return (ciKlass*)TypeEntries::klass_part(k);
81 } else {
82 return NULL;
83 }
84 }
85
86 static intptr_t with_status(ciKlass* k, intptr_t in) {
87 return TypeEntries::with_status((intptr_t)k, in);
88 }
89
90 #ifndef PRODUCT
91 static void print_ciklass(outputStream* st, intptr_t k);
92 #endif
93 };
94
95 class ciTypeStackSlotEntries : public TypeStackSlotEntries, ciTypeEntries {
96 public:
97 void translate_type_data_from(const TypeStackSlotEntries* args);
98
99 ciKlass* valid_type(int i) const {
100 return valid_ciklass(type(i));
|
60 class ciJumpData : public JumpData {
61 public:
62 ciJumpData(DataLayout* layout) : JumpData(layout) {};
63 };
64
65 class ciTypeEntries {
66 protected:
67 static intptr_t translate_klass(intptr_t k) {
68 Klass* v = TypeEntries::valid_klass(k);
69 if (v != NULL) {
70 ciKlass* klass = CURRENT_ENV->get_klass(v);
71 return with_status(klass, k);
72 }
73 return with_status(NULL, k);
74 }
75
76 public:
77 static ciKlass* valid_ciklass(intptr_t k) {
78 if (!TypeEntries::is_type_none(k) &&
79 !TypeEntries::is_type_unknown(k)) {
80 ciKlass* res = (ciKlass*)TypeEntries::klass_part(k);
81 assert(res != NULL, "invalid");
82 return res;
83 } else {
84 return NULL;
85 }
86 }
87
88 static intptr_t with_status(ciKlass* k, intptr_t in) {
89 return TypeEntries::with_status((intptr_t)k, in);
90 }
91
92 #ifndef PRODUCT
93 static void print_ciklass(outputStream* st, intptr_t k);
94 #endif
95 };
96
97 class ciTypeStackSlotEntries : public TypeStackSlotEntries, ciTypeEntries {
98 public:
99 void translate_type_data_from(const TypeStackSlotEntries* args);
100
101 ciKlass* valid_type(int i) const {
102 return valid_ciklass(type(i));
|