diff --git a/ChangeLog b/ChangeLog
index c615d6ae8efef223dac88640188f52ce69806d3e..ea920a4ad41e5e898595f02483054c10d1dabc09 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2012-04-17  Niels Möller  <nisse@lysator.liu.se>
 
+	* x86_64/machine.m4 (WREG): New macro.
+
 	* salsa20.c (salsa20_hash): Deleted function, inlined into
 	salsa20_crypt.
 	(salsa20_set_key, salsa20_set_iv): Moved, to...
diff --git a/x86_64/machine.m4 b/x86_64/machine.m4
index c0de0c8761f2d825a2f26a61313a779ef097e7bc..b6f353c9aa1bebbac28eda0d1a78e4453aee1459 100644
--- a/x86_64/machine.m4
+++ b/x86_64/machine.m4
@@ -26,6 +26,23 @@ define(<HREG>,<ifelse(
 	$1, %rcx, %ch,
 	$1, %rdx, %dh)>)dnl
 
+define(<WREG>,<ifelse(
+	$1, %rax, %ax,
+	$1, %rbx, %bx,
+	$1, %rcx, %cx,
+	$1, %rdx, %dx,
+	$1, %rsi, %si,
+	$1, %rdi, %di,
+	$1, %rbp, %bp,
+	$1, %r8, %r8w,
+	$1, %r9, %r9w,
+	$1, %r10, %r10w,
+	$1, %r11, %r11w,
+	$1, %r12, %r12w,
+	$1, %r13, %r13w,
+	$1, %r14, %r14w,
+	$1, %r15, %r15w)>)dnl
+
 define(<XREG>,<ifelse(
 	$1, %rax, %eax,
 	$1, %rbx, %ebx,