--- a/backends/aarch64_initreg.c
+++ b/backends/aarch64_initreg.c
@@ -82,7 +82,7 @@
 
   Dwarf_Word dwarf_fregs[32];
   for (int r = 0; r < 32; r++)
-    dwarf_fregs[r] = fregs.vregs[r] & 0xFFFFFFFF;
+    dwarf_fregs[r] = (Dwarf_Word)fregs.vregs[r];
 
   if (! setfunc (64, 32, dwarf_fregs, arg))
     return false;
