diff --git a/ChangeLog b/ChangeLog
index 38f85c1611e69950175d2910cd123c746a535b71..30791c07b97b2cf96e5f8f6cadce59396245e41b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-10  Niels M�ller  <nisse@lysator.liu.se>
+
+	* x86_64/sha1-compress.asm: Avoid using registers %rbx and %rbp,
+	which must be preserved.
+
 2008-09-08  Niels M�ller  <nisse@lysator.liu.se>
 
 	* Makefile.in (stamp-h.in): Use $(AUTOHEADER).
diff --git a/x86_64/README b/x86_64/README
new file mode 100644
index 0000000000000000000000000000000000000000..95db7feeee335d0dd4a00dfb46e034141ea7ec76
--- /dev/null
+++ b/x86_64/README
@@ -0,0 +1,25 @@
+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-%r12 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