395 CSTRING_TO_JSTRING(name, name_buf);
396 CSTRING_TO_JSTRING(type, vmField.typeString);
397 VMField::set_name(vmFieldObj, name());
398 VMField::set_type(vmFieldObj, type());
399 VMField::set_offset(vmFieldObj, vmField.offset);
400 VMField::set_address(vmFieldObj, (jlong) vmField.address);
401 if (vmField.isStatic && vmField.typeString != NULL) {
402 if (strcmp(vmField.typeString, "bool") == 0) {
403 BOXED_BOOLEAN(box, *(jbyte*) vmField.address);
404 VMField::set_value(vmFieldObj, box);
405 } else if (strcmp(vmField.typeString, "int") == 0 ||
406 strcmp(vmField.typeString, "jint") == 0) {
407 BOXED_LONG(box, *(jint*) vmField.address);
408 VMField::set_value(vmFieldObj, box);
409 } else if (strcmp(vmField.typeString, "uint64_t") == 0) {
410 BOXED_LONG(box, *(uint64_t*) vmField.address);
411 VMField::set_value(vmFieldObj, box);
412 } else if (strcmp(vmField.typeString, "address") == 0 ||
413 strcmp(vmField.typeString, "intptr_t") == 0 ||
414 strcmp(vmField.typeString, "uintptr_t") == 0 ||
415 strcmp(vmField.typeString, "size_t") == 0 ||
416 // All foo* types are addresses.
417 vmField.typeString[strlen(vmField.typeString) - 1] == '*') {
418 BOXED_LONG(box, *((address*) vmField.address));
419 VMField::set_value(vmFieldObj, box);
420 } else {
421 JVMCI_ERROR_NULL("VM field %s has unsupported type %s", name_buf, vmField.typeString);
422 }
423 }
424 vmFields->obj_at_put(i, vmFieldObj());
425 }
426
427 int ints_len = JVMCIVMStructs::localHotSpotVMIntConstants_count();
428 int longs_len = JVMCIVMStructs::localHotSpotVMLongConstants_count();
429 len = ints_len + longs_len;
430 objArrayHandle vmConstants = oopFactory::new_objArray_handle(SystemDictionary::Object_klass(), len * 2, CHECK_NULL);
431 int insert = 0;
432 for (int i = 0; i < ints_len ; i++) {
433 VMIntConstantEntry c = JVMCIVMStructs::localHotSpotVMIntConstants[i];
434 CSTRING_TO_JSTRING(name, c.name);
|
395 CSTRING_TO_JSTRING(name, name_buf);
396 CSTRING_TO_JSTRING(type, vmField.typeString);
397 VMField::set_name(vmFieldObj, name());
398 VMField::set_type(vmFieldObj, type());
399 VMField::set_offset(vmFieldObj, vmField.offset);
400 VMField::set_address(vmFieldObj, (jlong) vmField.address);
401 if (vmField.isStatic && vmField.typeString != NULL) {
402 if (strcmp(vmField.typeString, "bool") == 0) {
403 BOXED_BOOLEAN(box, *(jbyte*) vmField.address);
404 VMField::set_value(vmFieldObj, box);
405 } else if (strcmp(vmField.typeString, "int") == 0 ||
406 strcmp(vmField.typeString, "jint") == 0) {
407 BOXED_LONG(box, *(jint*) vmField.address);
408 VMField::set_value(vmFieldObj, box);
409 } else if (strcmp(vmField.typeString, "uint64_t") == 0) {
410 BOXED_LONG(box, *(uint64_t*) vmField.address);
411 VMField::set_value(vmFieldObj, box);
412 } else if (strcmp(vmField.typeString, "address") == 0 ||
413 strcmp(vmField.typeString, "intptr_t") == 0 ||
414 strcmp(vmField.typeString, "uintptr_t") == 0 ||
415 strcmp(vmField.typeString, "OopHandle") == 0 ||
416 strcmp(vmField.typeString, "size_t") == 0 ||
417 // All foo* types are addresses.
418 vmField.typeString[strlen(vmField.typeString) - 1] == '*') {
419 BOXED_LONG(box, *((address*) vmField.address));
420 VMField::set_value(vmFieldObj, box);
421 } else {
422 JVMCI_ERROR_NULL("VM field %s has unsupported type %s", name_buf, vmField.typeString);
423 }
424 }
425 vmFields->obj_at_put(i, vmFieldObj());
426 }
427
428 int ints_len = JVMCIVMStructs::localHotSpotVMIntConstants_count();
429 int longs_len = JVMCIVMStructs::localHotSpotVMLongConstants_count();
430 len = ints_len + longs_len;
431 objArrayHandle vmConstants = oopFactory::new_objArray_handle(SystemDictionary::Object_klass(), len * 2, CHECK_NULL);
432 int insert = 0;
433 for (int i = 0; i < ints_len ; i++) {
434 VMIntConstantEntry c = JVMCIVMStructs::localHotSpotVMIntConstants[i];
435 CSTRING_TO_JSTRING(name, c.name);
|