RFR 8227568 [lworld][c1] oopmap missing for calls to store_value_type_fields_to_buf

Ioi Lam ioi.lam at oracle.com
Wed Jul 17 03:34:43 UTC 2019


https://bugs.openjdk.java.net/browse/JDK-8227568
http://cr.openjdk.java.net/~iklam/valhalla/8227568-oompap-for-returned-fields.v01/

The main change is here in c1_LIRAssembler.cpp:

   if (op->maybe_return_as_fields(&vk)) {
     int offset = store_value_type_fields_to_buf(vk);
     add_call_info(offset, op->info(), true);
   }

With the oopmap, a GC can happen inside 
SharedRuntime::store_value_type_fields_to_buf
when called by C1.

I also reverted the changes in JDK-8226284 (which disabled VerifyStack 
checks for
store_value_type_fields_to_buf), because now we can walk the stack due 
to the addition
of the oopmaps. (codeBlob.cpp/hpp, interfaceSupport.cpp, 
stubGenerator_x86_64.cpp).

Thanks
- Ioi





More information about the valhalla-dev mailing list