Request for review: 8004076: Move _max_locals and _size_of_parameters to ConstMethod for better sharing

John Rose john.r.rose at
Fri Dec 7 14:40:46 PST 2012

On Dec 7, 2012, at 1:45 PM, Jiangli Zhou wrote:

> Could I have another reviewer for the change? Either official or non-official reviewer is okay.

I have a comment on this one.  (And you can use me as a reviewer.)

In the sparc code, I would prefer to see the Address constants kept around, because they make the code easier to read.

-  const Address size_of_parameters(G5_method, Method::size_of_parameters_offset());
-  const Address size_of_locals    (G5_method, Method::size_of_locals_offset());
+  const Register G3_constMethod = Glocals_size;
+  const Address size_of_parameters(G3_ConstMethod, ConstMethod::size_of_parameters_offset());
+  const Address size_of_locals    (G3_ConstMethod, ConstMethod::size_of_locals_offset());
   const Address constMethod       (G5_method, Method::const_offset());
   int rounded_vm_local_words = round_to( frame::interpreter_frame_vm_local_words, WordsPerLong );
@@ -511,7 +509,8 @@
   // Lscratch can't be used as a temporary because the call_stub uses
   // it to assert that the stack frame was setup correctly.
+  __ ld_ptr( constMethod, G3_constMethod );
-  __ lduh( size_of_parameters, Glocals_size);

Maybe the details make it difficult, but I think it's possible in most places.

As a side effect, using a fixed register (like G3) for the ConstMethod will make debugging easier.

Same comment for x86/64.

This may be more difficult to do on x86/32, since there are fewer temp registers.  But that's an oddball case.

— John
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the hotspot-runtime-dev mailing list