comparison src/share/vm/c1x/c1x_Compiler.cpp @ 2055:99ad52189524

Refactorings to get towards less CRI overhead.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Thu, 13 Jan 2011 17:45:17 +0100
parents cf75612bdaa5
children 9569fdf936ff
comparison
equal deleted inserted replaced
2054:3c0a889a176b 2055:99ad52189524
141 if (klass->c1x_mirror() != NULL) { 141 if (klass->c1x_mirror() != NULL) {
142 return klass->c1x_mirror(); 142 return klass->c1x_mirror();
143 } 143 }
144 144
145 instanceKlass::cast(HotSpotTypeResolved::klass())->initialize(CHECK_NULL); 145 instanceKlass::cast(HotSpotTypeResolved::klass())->initialize(CHECK_NULL);
146 oop obj = instanceKlass::cast(HotSpotTypeResolved::klass())->allocate_instance(CHECK_NULL); 146 Handle obj = instanceKlass::cast(HotSpotTypeResolved::klass())->allocate_instance(CHECK_NULL);
147 assert(obj != NULL, "must succeed in allocating instance"); 147 assert(obj() != NULL, "must succeed in allocating instance");
148
149
150 if (klass->oop_is_instance()) {
151 instanceKlass* ik = (instanceKlass*)klass()->klass_part();
152 Handle full_name = java_lang_String::create_from_str(ik->signature_name(), CHECK_NULL);
153 HotSpotType::set_name(obj, full_name());
154 } else {
155 HotSpotType::set_name(obj, name());
156 }
148 157
149 HotSpotTypeResolved::set_javaMirror(obj, klass->java_mirror()); 158 HotSpotTypeResolved::set_javaMirror(obj, klass->java_mirror());
150 HotSpotTypeResolved::set_name(obj, name()); 159 HotSpotTypeResolved::set_simpleName(obj, name());
151 HotSpotTypeResolved::set_accessFlags(obj, klass->access_flags().as_int()); 160 HotSpotTypeResolved::set_accessFlags(obj, klass->access_flags().as_int());
152 HotSpotTypeResolved::set_isInterface(obj, klass->is_interface()); 161 HotSpotTypeResolved::set_isInterface(obj, klass->is_interface());
153 HotSpotTypeResolved::set_isInstanceClass(obj, klass->oop_is_instance()); 162 HotSpotTypeResolved::set_isInstanceClass(obj, klass->oop_is_instance());
154 163
155 if (klass->oop_is_javaArray()) { 164 if (klass->oop_is_javaArray()) {
165 174
166 // TODO replace these with correct values 175 // TODO replace these with correct values
167 HotSpotTypeResolved::set_hasSubclass(obj, false); 176 HotSpotTypeResolved::set_hasSubclass(obj, false);
168 HotSpotTypeResolved::set_hasFinalizableSubclass(obj, false); 177 HotSpotTypeResolved::set_hasFinalizableSubclass(obj, false);
169 178
170 klass->set_c1x_mirror(obj); 179 klass->set_c1x_mirror(obj());
171 180
172 return obj; 181 return obj();
173 } 182 }
174 183
175 BasicType C1XCompiler::kindToBasicType(jchar ch) { 184 BasicType C1XCompiler::kindToBasicType(jchar ch) {
176 switch(ch) { 185 switch(ch) {
177 case 'z': return T_BOOLEAN; 186 case 'z': return T_BOOLEAN;