comparison src/share/vm/graal/graalCodeInstaller.cpp @ 18186:ef357effbda7

Backout of changeset 9a804ec7f707 (converted Constant and Value to be interfaces).
author Roland Schatz <roland.schatz@oracle.com>
date Thu, 30 Oct 2014 11:18:48 +0100
parents 37be28df9dd7
children 9619ba4daf4c
comparison
equal deleted inserted replaced
18185:a88d819ba6a1 18186:ef357effbda7
189 // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedObjectType.klass()). 189 // Records any Metadata values embedded in a Constant (e.g., the value returned by HotSpotResolvedObjectType.klass()).
190 static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) { 190 static void record_metadata_in_constant(oop constant, OopRecorder* oop_recorder) {
191 if (constant->is_a(HotSpotMetaspaceConstant::klass())) { 191 if (constant->is_a(HotSpotMetaspaceConstant::klass())) {
192 oop obj = HotSpotMetaspaceConstant::metaspaceObject(constant); 192 oop obj = HotSpotMetaspaceConstant::metaspaceObject(constant);
193 jlong prim = HotSpotMetaspaceConstant::primitive(constant); 193 jlong prim = HotSpotMetaspaceConstant::primitive(constant);
194 assert(Kind::typeChar(AbstractConstant::kind(constant)) == 'j', "must have word kind"); 194 assert(Kind::typeChar(Constant::kind(constant)) == 'j', "must have word kind");
195 assert(obj != NULL, "must have an object"); 195 assert(obj != NULL, "must have an object");
196 assert(prim != 0, "must have a primitive value"); 196 assert(prim != 0, "must have a primitive value");
197 197
198 record_metadata_reference(obj, prim, false, oop_recorder); 198 record_metadata_reference(obj, prim, false, oop_recorder);
199 } 199 }
207 second = NULL; 207 second = NULL;
208 if (value == Value::ILLEGAL()) { 208 if (value == Value::ILLEGAL()) {
209 return _illegal_value; 209 return _illegal_value;
210 } 210 }
211 211
212 oop lirKind = AbstractValue::lirKind(value); 212 oop lirKind = Value::lirKind(value);
213 oop platformKind = LIRKind::platformKind(lirKind); 213 oop platformKind = LIRKind::platformKind(lirKind);
214 jint referenceMask = LIRKind::referenceMask(lirKind); 214 jint referenceMask = LIRKind::referenceMask(lirKind);
215 assert(referenceMask == 0 || referenceMask == 1, "unexpected referenceMask"); 215 assert(referenceMask == 0 || referenceMask == 1, "unexpected referenceMask");
216 bool reference = referenceMask == 1; 216 bool reference = referenceMask == 1;
217 217
286 ScopeValue* value = new LocationValue(Location::new_stk_loc(locationType, offset)); 286 ScopeValue* value = new LocationValue(Location::new_stk_loc(locationType, offset));
287 if (type == T_DOUBLE || (type == T_LONG && !reference)) { 287 if (type == T_DOUBLE || (type == T_LONG && !reference)) {
288 second = value; 288 second = value;
289 } 289 }
290 return value; 290 return value;
291 } else if (value->is_a(AbstractConstant::klass())){ 291 } else if (value->is_a(Constant::klass())){
292 record_metadata_in_constant(value, oop_recorder); 292 record_metadata_in_constant(value, oop_recorder);
293 if (value->is_a(PrimitiveConstant::klass())) { 293 if (value->is_a(PrimitiveConstant::klass())) {
294 assert(!reference, "unexpected primitive constant type"); 294 assert(!reference, "unexpected primitive constant type");
295 if(value->is_a(RawConstant::klass())) { 295 if(value->is_a(RawConstant::klass())) {
296 jlong prim = PrimitiveConstant::primitive(value); 296 jlong prim = PrimitiveConstant::primitive(value);