src/cpu/sparc/vm/sparc.ad

Print this page
rev 5188 : 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.

*** 3216,3226 **** // Body of function which returns an OptoRegs array locating // arguments either in registers or in stack slots for callin // C. c_calling_convention %{ // This is obviously always outgoing ! (void) SharedRuntime::c_calling_convention(sig_bt, regs, length); %} // Location of native (C/C++) and interpreter return values. This is specified to // be the same as Java. In the 32-bit VM, long values are actually returned from // native calls in O0:O1 and returned to the interpreter in I0:I1. The copying --- 3216,3226 ---- // Body of function which returns an OptoRegs array locating // arguments either in registers or in stack slots for callin // C. c_calling_convention %{ // This is obviously always outgoing ! (void) SharedRuntime::c_calling_convention(sig_bt, regs, /*regs2=*/NULL, length); %} // Location of native (C/C++) and interpreter return values. This is specified to // be the same as Java. In the 32-bit VM, long values are actually returned from // native calls in O0:O1 and returned to the interpreter in I0:I1. The copying