@@ -310,7 +310,7 @@ int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
310
310
311
311
uint int_args = 0 ;
312
312
uint fp_args = 0 ;
313
- uint stk_args = 0 ; // inc by 2 each time
313
+ uint stk_args = 0 ;
314
314
315
315
for (int i = 0 ; i < total_args_passed; i++) {
316
316
switch (sig_bt[i]) {
@@ -322,8 +322,9 @@ int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
322
322
if (int_args < Argument::n_int_register_parameters_j) {
323
323
regs[i].set1 (INT_ArgReg[int_args++]->as_VMReg ());
324
324
} else {
325
+ stk_args = align_up (stk_args, 2 );
325
326
regs[i].set1 (VMRegImpl::stack2reg (stk_args));
326
- stk_args += 2 ;
327
+ stk_args += 1 ;
327
328
}
328
329
break ;
329
330
case T_VOID:
@@ -340,6 +341,7 @@ int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
340
341
if (int_args < Argument::n_int_register_parameters_j) {
341
342
regs[i].set2 (INT_ArgReg[int_args++]->as_VMReg ());
342
343
} else {
344
+ stk_args = align_up (stk_args, 2 );
343
345
regs[i].set2 (VMRegImpl::stack2reg (stk_args));
344
346
stk_args += 2 ;
345
347
}
@@ -348,15 +350,17 @@ int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
348
350
if (fp_args < Argument::n_float_register_parameters_j) {
349
351
regs[i].set1 (FP_ArgReg[fp_args++]->as_VMReg ());
350
352
} else {
353
+ stk_args = align_up (stk_args, 2 );
351
354
regs[i].set1 (VMRegImpl::stack2reg (stk_args));
352
- stk_args += 2 ;
355
+ stk_args += 1 ;
353
356
}
354
357
break ;
355
358
case T_DOUBLE:
356
359
assert ((i + 1 ) < total_args_passed && sig_bt[i + 1 ] == T_VOID, " expecting half" );
357
360
if (fp_args < Argument::n_float_register_parameters_j) {
358
361
regs[i].set2 (FP_ArgReg[fp_args++]->as_VMReg ());
359
362
} else {
363
+ stk_args = align_up (stk_args, 2 );
360
364
regs[i].set2 (VMRegImpl::stack2reg (stk_args));
361
365
stk_args += 2 ;
362
366
}
@@ -367,7 +371,7 @@ int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
367
371
}
368
372
}
369
373
370
- return align_up ( stk_args, 2 ) ;
374
+ return stk_args;
371
375
}
372
376
373
377
// Patch the callers callsite with entry to compiled code if it exists.
0 commit comments