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