diff src/cpu/sparc/vm/sparc.ad @ 14416:6a936747b569

8024344: PPC64 (part 112): C argument in register AND stack slot. Summary: On PPC, the first 13 floating point arguments to C calls are passed in floating point registers. Also, all but the first 8 arguments are passed on the stack. So there can be floating point arguments that are passed on the stack and in a register. We duplicate the regs datastructure in c_calling_convention() to represent this. Reviewed-by: kvn, cjplummer
author goetz
date Thu, 12 Sep 2013 13:51:13 -0700
parents 740e263c80c6
children 2b8e28fdf503
line wrap: on
line diff
--- a/src/cpu/sparc/vm/sparc.ad	Fri Sep 06 20:16:09 2013 +0200
+++ b/src/cpu/sparc/vm/sparc.ad	Thu Sep 12 13:51:13 2013 -0700
@@ -3218,7 +3218,7 @@
   // C.
   c_calling_convention %{
     // This is obviously always outgoing
-    (void) SharedRuntime::c_calling_convention(sig_bt, regs, length);
+    (void) SharedRuntime::c_calling_convention(sig_bt, regs, /*regs2=*/NULL, length);
   %}
 
   // Location of native (C/C++) and interpreter return values.  This is specified to
@@ -9118,7 +9118,7 @@
   size(4);
   ins_cost(BRANCH_COST);
   format %{ "BA     $labl\t! short branch" %}
-  ins_encode %{ 
+  ins_encode %{
     Label* L = $labl$$label;
     assert(__ use_cbcond(*L), "back to back cbcond");
     __ ba_short(*L);