Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_FrameMap.cpp @ 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 | 3c9db54c2660 |
children | abec000618bf |
comparison
equal
deleted
inserted
replaced
14415:666e6ce3976c | 14416:6a936747b569 |
---|---|
131 sig_bt[i + 1] = T_VOID; | 131 sig_bt[i + 1] = T_VOID; |
132 i++; | 132 i++; |
133 } | 133 } |
134 } | 134 } |
135 | 135 |
136 intptr_t out_preserve = SharedRuntime::c_calling_convention(sig_bt, regs, sizeargs); | 136 intptr_t out_preserve = SharedRuntime::c_calling_convention(sig_bt, regs, NULL, sizeargs); |
137 LIR_OprList* args = new LIR_OprList(signature->length()); | 137 LIR_OprList* args = new LIR_OprList(signature->length()); |
138 for (i = 0; i < sizeargs;) { | 138 for (i = 0; i < sizeargs;) { |
139 BasicType t = sig_bt[i]; | 139 BasicType t = sig_bt[i]; |
140 assert(t != T_VOID, "should be skipping these"); | 140 assert(t != T_VOID, "should be skipping these"); |
141 | 141 |