RFR/RFC calling convention change for value types in compiled code

Roland Westrelin rwestrel at redhat.com
Thu Nov 24 10:25:20 UTC 2016


This patch implements a new compiled code calling convention for methods
that take value type arguments: instead of passing a reference to the
value type as an argument, the method is passed each field of the value
type in registers/stack slots.

The interpreter continues to use references at calls so when going to
compiled from the interpreter (i2c adapter), value type fields are
loaded from the value type object and the value type object is
discarded. When going from compiled code to the interpreter (c2i
adapter), value type objects for every arguments need to be allocated
and initialized with the field values passed by the compiler.


More information about the valhalla-dev mailing list