8024344: PPC64 (part 112): C argument in register AND stack slot

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
This commit is contained in:
Goetz Lindenmaier 2013-09-12 13:51:13 -07:00
parent 2af861eed1
commit 081d2454fb
11 changed files with 28 additions and 13 deletions

View file

@ -133,7 +133,7 @@ CallingConvention* FrameMap::c_calling_convention(const BasicTypeArray* signatur
}
}
intptr_t out_preserve = SharedRuntime::c_calling_convention(sig_bt, regs, sizeargs);
intptr_t out_preserve = SharedRuntime::c_calling_convention(sig_bt, regs, NULL, sizeargs);
LIR_OprList* args = new LIR_OprList(signature->length());
for (i = 0; i < sizeargs;) {
BasicType t = sig_bt[i];