void foo(int i1, float f1, double d1, short s1, double d2,
        unsigned char c1, unsigned short s2, float  f2, int i2)
{
   printf("");
}
int main (int argc, const char * argv[]) {
   int i1;
   float  f1;
   double d1;
   short s1;
   double d2;
   unsigned char c1;
   unsigned short s2;
   float f2;
   int i2;
   foo(i1,f1,d1,s1,d2,c1,s2,f2,i2);
   return 0;
}
x86
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	subl	$100, %esp
	movzwl	-18(%ebp), %edx
	movzbl	-19(%ebp), %ecx
	movswl	-34(%ebp),%esi
	movl	-12(%ebp), %eax
	movl	%eax, 40(%esp) >> i2 (on stack)
	movl	-16(%ebp), %eax
	movl	%eax, 36(%esp) >> f2 (on stack)
	movl	%edx, 32(%esp) >> s2 (on stack)
	movl	%ecx, 28(%esp) >> c1 (on stack)
	movsd	-32(%ebp), %xmm0
	movsd	%xmm0, 20(%esp) >> d2 (on stack)
	movl	%esi, 16(%esp) >> s1 (on stack)
	movsd	-48(%ebp), %xmm0
	movsd	%xmm0, 8(%esp) >> d1 (on stack)
	movl	-52(%ebp), %eax
	movl	%eax, 4(%esp) >> f1 (on stack)
	movl	-56(%ebp), %eax
	movl	%eax, (%esp) >> i1 (on stack)
	call	_foo
PowerPC
	mflr r0
	stmw r30,-8(r1)
	stw r0,8(r1)
	stwu r1,-144(r1)
	mr r30,r1
	stw r3,168(r30)
	stw r4,172(r30)
	lhz r0,96(r30)
	extsh r2,r0
	lbz r0,82(r30)
	rlwinm r9,r0,0,0xff
	lhz r0,80(r30)
	rlwinm r0,r0,0,0xffff
	stw r0,56(r1) >> s2 (on stack)
	lwz r0,72(r30)
	stw r0,64(r1) >> i2 (on stack)
	lwz r3,116(r30) >> i1
	lfs f1,112(r30) >> f1
	lfd f2,104(r30) >> d1
	mr r7,r2 >> s1
	lfd f3,88(r30) >> d2
	mr r10,r9 >> c1
	lfs f4,76(r30) >> f2 
	bl _foo
x86-64
	movzwl	-10(%rbp), %ecx >> s2
	movzbl	-11(%rbp), %edx >> c1
	movswl	-26(%rbp),%esi >> s1
	movl	-4(%rbp), %eax
	movss	-8(%rbp), %xmm0
	movsd	-24(%rbp), %xmm1
	movsd	-40(%rbp), %xmm4
	movss	-44(%rbp), %xmm5
	movl	-48(%rbp), %edi >> i1
	movl	%eax, %r8d >> i2 (on stack)
	movaps	%xmm0, %xmm3 >> f2
	movapd	%xmm1, %xmm2 >> d2
	movapd	%xmm4, %xmm1 >> d1
	movaps	%xmm5, %xmm0 >> f1
	call	_foo