Index: /trunk/include/iprt/asm.h
===================================================================
--- /trunk/include/iprt/asm.h	(revision 9182)
+++ /trunk/include/iprt/asm.h	(revision 9183)
@@ -3910,5 +3910,10 @@
 {
 # if RT_INLINE_ASM_USES_INTRIN
-    __stosd((unsigned long *)pv, 0, cb >> 2);
+#  ifdef RT_ARCH_AMD64
+    if (!(cb & 7))
+        __stosq((unsigned __int64 *)pv, 0, cb / 8);
+    else
+#  endif
+        __stosd((unsigned long *)pv, 0, cb / 4);
 
 # elif RT_INLINE_ASM_GNU_STYLE
@@ -3953,5 +3958,10 @@
 {
 # if RT_INLINE_ASM_USES_INTRIN
-    __stosd((unsigned long *)pv, 0, cb >> 2);
+#  ifdef RT_ARCH_AMD64
+    if (!(cb & 7))
+        __stosq((unsigned __int64 *)pv, RT_MAKE_U64(u32, u32), cb / 8);
+    else
+#  endif
+        __stosd((unsigned long *)pv, u32, cb / 4);
 
 # elif RT_INLINE_ASM_GNU_STYLE
