movel %sp@(12*4+6*8+2*4),%a2 /* arg array */
movel %sp@(12*4+6*8+3*4),%d2 /* arg count */
- movel %a3, %sp@(12*4+6*8) /* copy method address to stackslot */
- leal %sp@(12*4+6*8), %a3 /* and store that address in %a3 */
+ movel %a3, %sp@(11*4+6*8) /* copy method address to stackslot */
+ leal %sp@(11*4+6*8), %a3 /* and store that address in %a3 */
#endif
moveal %sp, %a5 /* memorize stack */
/* copy from original argument stack */
M_ILD(REG_ITMP1, REG_SP, disp);
- M_IPUSH(REG_ITMP1);
- M_ILD(REG_ITMP1, REG_SP, disp);
+ M_ILD(REG_ITMP2, REG_SP, disp-4);
+ M_IPUSH(REG_ITMP2);
M_IPUSH(REG_ITMP1);
} else {
/* function has no arg here, push nothing and adapt displacement */
#if !defined(ENABLE_SOFTFLOAT)
M_AADD_IMM(-8, REG_SP);
- M_FSTORE(REG_F1, REG_SP, 0);
+ M_FSTORE(REG_D1, REG_SP, 0);
#endif
M_IPUSH_IMM(m); /* push methodinfo */
M_AADD_IMM(3*4 + 4, REG_SP);
#if !defined(ENABLE_SOFTFLOAT)
- M_FLOAD(REG_F1, REG_SP, 0)
+ M_FLOAD(REG_D1, REG_SP, 0)
M_AADD_IMM(8, REG_SP);
#endif