AMD64: scratch: rax (1st return) rcx (4th arg) rdx (3rd arg, 2nd return) rsi (2nd arg) rdi (1st arg) r8 (5th arg) r9 (6th arg) r10 (temp, static chain?) r11 (temp) preserved: rbx (base pointer) rsp (stack) rbp (frame) r12-r15 (general) calls: rdi 1 rsi 2 rdx 3 rcx 4 r8 5 r9 6 return: rax 1 rdx 2 I386: scratch: eax ecx edx preserved: rbx (pic base register, preserve for call) rsp rbp esi edi return: rax 1 rdx 2