src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File webrev Sdiff src/hotspot/share/jvmci

src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp

Print this page




 360     CSTRING_TO_JSTRING(name, c.name);
 361     BOXED_LONG(value, c.value);
 362     vmConstants->obj_at_put(insert++, name());
 363     vmConstants->obj_at_put(insert++, value);
 364   }
 365   assert(insert == len * 2, "must be");
 366 
 367   len = JVMCIVMStructs::localHotSpotVMAddresses_count();
 368   objArrayHandle vmAddresses = oopFactory::new_objArray_handle(SystemDictionary::Object_klass(), len * 2, CHECK_NULL);
 369   for (int i = 0; i < len ; i++) {
 370     VMAddressEntry a = JVMCIVMStructs::localHotSpotVMAddresses[i];
 371     CSTRING_TO_JSTRING(name, a.name);
 372     BOXED_LONG(value, a.value);
 373     vmAddresses->obj_at_put(i * 2, name());
 374     vmAddresses->obj_at_put(i * 2 + 1, value);
 375   }
 376 
 377 #define COUNT_FLAG(ignore) +1
 378 #ifdef ASSERT
 379 #define CHECK_FLAG(type, name) { \
 380   Flag* flag = Flag::find_flag(#name, strlen(#name), /*allow_locked*/ true, /* return_flag */ true); \
 381   assert(flag != NULL, "No such flag named " #name); \
 382   assert(flag->is_##type(), "Flag " #name " is not of type " #type); \
 383 }
 384 #else
 385 #define CHECK_FLAG(type, name)
 386 #endif
 387 
 388 #define ADD_FLAG(type, name, convert) { \
 389   CHECK_FLAG(type, name) \
 390   instanceHandle vmFlagObj = InstanceKlass::cast(VMFlag::klass())->allocate_instance_handle(CHECK_NULL); \
 391   CSTRING_TO_JSTRING(fname, #name); \
 392   CSTRING_TO_JSTRING(ftype, #type); \
 393   VMFlag::set_name(vmFlagObj, fname()); \
 394   VMFlag::set_type(vmFlagObj, ftype()); \
 395   convert(value, name); \
 396   VMFlag::set_value(vmFlagObj, value); \
 397   vmFlags->obj_at_put(i++, vmFlagObj()); \
 398 }
 399 #define ADD_BOOL_FLAG(name)  ADD_FLAG(bool, name, BOXED_BOOLEAN)
 400 #define ADD_INTX_FLAG(name)  ADD_FLAG(intx, name, BOXED_LONG)
 401 #define ADD_UINTX_FLAG(name) ADD_FLAG(uintx, name, BOXED_LONG)
 402 




 360     CSTRING_TO_JSTRING(name, c.name);
 361     BOXED_LONG(value, c.value);
 362     vmConstants->obj_at_put(insert++, name());
 363     vmConstants->obj_at_put(insert++, value);
 364   }
 365   assert(insert == len * 2, "must be");
 366 
 367   len = JVMCIVMStructs::localHotSpotVMAddresses_count();
 368   objArrayHandle vmAddresses = oopFactory::new_objArray_handle(SystemDictionary::Object_klass(), len * 2, CHECK_NULL);
 369   for (int i = 0; i < len ; i++) {
 370     VMAddressEntry a = JVMCIVMStructs::localHotSpotVMAddresses[i];
 371     CSTRING_TO_JSTRING(name, a.name);
 372     BOXED_LONG(value, a.value);
 373     vmAddresses->obj_at_put(i * 2, name());
 374     vmAddresses->obj_at_put(i * 2 + 1, value);
 375   }
 376 
 377 #define COUNT_FLAG(ignore) +1
 378 #ifdef ASSERT
 379 #define CHECK_FLAG(type, name) { \
 380   JVMFlag* flag = JVMFlag::find_flag(#name, strlen(#name), /*allow_locked*/ true, /* return_flag */ true); \
 381   assert(flag != NULL, "No such flag named " #name); \
 382   assert(flag->is_##type(), "JVMFlag " #name " is not of type " #type); \
 383 }
 384 #else
 385 #define CHECK_FLAG(type, name)
 386 #endif
 387 
 388 #define ADD_FLAG(type, name, convert) { \
 389   CHECK_FLAG(type, name) \
 390   instanceHandle vmFlagObj = InstanceKlass::cast(VMFlag::klass())->allocate_instance_handle(CHECK_NULL); \
 391   CSTRING_TO_JSTRING(fname, #name); \
 392   CSTRING_TO_JSTRING(ftype, #type); \
 393   VMFlag::set_name(vmFlagObj, fname()); \
 394   VMFlag::set_type(vmFlagObj, ftype()); \
 395   convert(value, name); \
 396   VMFlag::set_value(vmFlagObj, value); \
 397   vmFlags->obj_at_put(i++, vmFlagObj()); \
 398 }
 399 #define ADD_BOOL_FLAG(name)  ADD_FLAG(bool, name, BOXED_BOOLEAN)
 400 #define ADD_INTX_FLAG(name)  ADD_FLAG(intx, name, BOXED_LONG)
 401 #define ADD_UINTX_FLAG(name) ADD_FLAG(uintx, name, BOXED_LONG)
 402 


src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File