ABI, according to http://www.x86-64.org/documentation/abi-0.99.pdf:

Up to 6 integer and pointer arguments are passed in registers. Nine
registers, %rax, %rcx, %rdx, %rsi, %rdi and %r8-%r11 can be used
freely. Integers and pointers are returned in %rax.

Registers	May be		Argument
		clobbered	number

%rax 		Y
%rbx		
%rcx		Y		4
%rdx		Y		3
%rbp		
%rsi		Y		2
%rdi		Y		1 
%rsp		(SP)
%r8		Y		5
%r9		Y		6
%r10		Y
%r11		Y
%r12		
%r13		
%r14		
%r15		

w64 ABI, according to
http://msdn.microsoft.com/en-us/library/9z1stfyw.aspx:

Registers	May be		Argument
		clobbered	number

%rax 		Y
%rbx		
%rcx		Y		1
%rdx		Y		2
%rbp		
%rsi
%rdi
%rsp		(SP)
%r8		Y		3
%r9		Y		4
%r10		Y
%r11		Y
%r12		
%r13		
%r14		
%r15		

Additional arguments are passed on the stack. "backing store" on the
stack for the four register arguments is also required. %xmm6 and
%xmm7 are callee-saved. The "long" type is just 32 bits. Nettle
currently does *NOT* support this ABI.