diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c
index 079ae93..8446d48 100644
--- a/hw/timer/mc146818rtc.c
+++ b/hw/timer/mc146818rtc.c
@@ -730,11 +730,11 @@ static const VMStateDescription vmstate_rtc = {
         VMSTATE_UNUSED(3*8),
         VMSTATE_UINT32_TEST(irq_coalesced, RTCState, vmstate_2_plus),
         VMSTATE_UINT32_TEST(period, RTCState, vmstate_2_plus),
-        VMSTATE_UINT64_V(base_rtc, RTCState, 3),
-        VMSTATE_UINT64_V(last_update, RTCState, 3),
+        VMSTATE_UINT64_TEST(base_rtc, RTCState, vmstate_3_plus),
+        VMSTATE_UINT64_TEST(last_update, RTCState, vmstate_3_plus),
         VMSTATE_INT64_TEST(offset, RTCState, vmstate_3_plus),
         VMSTATE_TIMER_V(update_timer, RTCState, 3),
-        VMSTATE_UINT64_V(next_alarm_time, RTCState, 3),
+        VMSTATE_UINT64_TEST(next_alarm_time, RTCState, vmstate_3_plus),
         VMSTATE_END_OF_LIST()
     }
 };
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index aa99102..25032ef 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -544,8 +544,8 @@ extern const VMStateInfo vmstate_info_bitmap;
     VMSTATE_SINGLE_TEST(_f, _s, _t, 0, vmstate_info_uint16, uint16_t)
 #define VMSTATE_UINT32_TEST(_f, _s, _t)                               \
     VMSTATE_SINGLE_TEST(_f, _s, _t, 0, vmstate_info_uint32, uint32_t)
-#define VMSTATE_UINT64_V(_f, _s, _v)                                  \
-    VMSTATE_SINGLE(_f, _s, _v, vmstate_info_uint64, uint64_t)
+#define VMSTATE_UINT64_TEST(_f, _s, _t)                               \
+    VMSTATE_SINGLE_TEST(_f, _s, _t, 0, vmstate_info_uint64, uint64_t)

 #define VMSTATE_BOOL(_f, _s)                                          \
     VMSTATE_BOOL_TEST(_f, _s, NULL)
@@ -566,7 +566,7 @@ extern const VMStateInfo vmstate_info_bitmap;
 #define VMSTATE_UINT32(_f, _s)                                        \
     VMSTATE_UINT32_TEST(_f, _s, NULL)
 #define VMSTATE_UINT64(_f, _s)                                        \
-    VMSTATE_UINT64_V(_f, _s, 0)
+    VMSTATE_UINT64_TEST(_f, _s, NULL)

 #define VMSTATE_UINT8_EQUAL(_f, _s)                                   \
     VMSTATE_SINGLE(_f, _s, 0, vmstate_info_uint8_equal, uint8_t)
@@ -595,9 +595,6 @@ extern const VMStateInfo vmstate_info_bitmap;
 #define VMSTATE_INT32_LE(_f, _s)                                   \
     VMSTATE_SINGLE(_f, _s, 0, vmstate_info_int32_le, int32_t)

-#define VMSTATE_UINT64_TEST(_f, _s, _t)                                  \
-    VMSTATE_SINGLE_TEST(_f, _s, _t, 0, vmstate_info_uint64, uint64_t)
-

 #define VMSTATE_FLOAT64_V(_f, _s, _v)                                 \
     VMSTATE_SINGLE(_f, _s, _v, vmstate_info_float64, float64)
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 42c9de0..d4ffe8e 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -652,14 +652,14 @@ const VMStateDescription vmstate_x86_cpu = {
 #endif
         VMSTATE_UINT32_TEST(env.smbase, X86CPU, vmstate_4_plus),

-        VMSTATE_UINT64_V(env.pat, X86CPU, 5),
+        VMSTATE_UINT64_TEST(env.pat, X86CPU, vmstate_5_plus),
         VMSTATE_UINT32_TEST(env.hflags2, X86CPU, vmstate_5_plus),

         VMSTATE_UINT32_TEST(parent_obj.halted, X86CPU, version_is_5),
-        VMSTATE_UINT64_V(env.vm_hsave, X86CPU, 5),
-        VMSTATE_UINT64_V(env.vm_vmcb, X86CPU, 5),
-        VMSTATE_UINT64_V(env.tsc_offset, X86CPU, 5),
-        VMSTATE_UINT64_V(env.intercept, X86CPU, 5),
+        VMSTATE_UINT64_TEST(env.vm_hsave, X86CPU, vmstate_5_plus),
+        VMSTATE_UINT64_TEST(env.vm_vmcb, X86CPU, vmstate_5_plus),
+        VMSTATE_UINT64_TEST(env.tsc_offset, X86CPU, vmstate_5_plus),
+        VMSTATE_UINT64_TEST(env.intercept, X86CPU, vmstate_5_plus),
         VMSTATE_UINT16_TEST(env.intercept_cr_read, X86CPU, vmstate_5_plus),
         VMSTATE_UINT16_TEST(env.intercept_cr_write, X86CPU, vmstate_5_plus),
         VMSTATE_UINT16_TEST(env.intercept_dr_read, X86CPU, vmstate_5_plus),
@@ -668,12 +668,12 @@ const VMStateDescription vmstate_x86_cpu = {
         VMSTATE_UINT8_TEST(env.v_tpr, X86CPU, vmstate_5_plus),
         /* MTRRs */
         VMSTATE_UINT64_ARRAY_V(env.mtrr_fixed, X86CPU, 11, 8),
-        VMSTATE_UINT64_V(env.mtrr_deftype, X86CPU, 8),
+        VMSTATE_UINT64_TEST(env.mtrr_deftype, X86CPU, vmstate_8_plus),
         VMSTATE_MTRR_VARS(env.mtrr_var, X86CPU, 8, 8),
         /* KVM-related states */
         VMSTATE_INT32_TEST(env.interrupt_injected, X86CPU, vmstate_9_plus),
         VMSTATE_UINT32_TEST(env.mp_state, X86CPU, vmstate_9_plus),
-        VMSTATE_UINT64_V(env.tsc, X86CPU, 9),
+        VMSTATE_UINT64_TEST(env.tsc, X86CPU, vmstate_9_plus),
         VMSTATE_INT32_TEST(env.exception_injected, X86CPU, vmstate_11_plus),
         VMSTATE_UINT8_TEST(env.soft_interrupt, X86CPU, vmstate_11_plus),
         VMSTATE_UINT8_TEST(env.nmi_injected, X86CPU, vmstate_11_plus),
@@ -681,18 +681,18 @@ const VMStateDescription vmstate_x86_cpu = {
         VMSTATE_UINT8_TEST(env.has_error_code, X86CPU, vmstate_11_plus),
         VMSTATE_UINT32_TEST(env.sipi_vector, X86CPU, vmstate_11_plus),
         /* MCE */
-        VMSTATE_UINT64_V(env.mcg_cap, X86CPU, 10),
-        VMSTATE_UINT64_V(env.mcg_status, X86CPU, 10),
-        VMSTATE_UINT64_V(env.mcg_ctl, X86CPU, 10),
+        VMSTATE_UINT64_TEST(env.mcg_cap, X86CPU, vmstate_10_plus),
+        VMSTATE_UINT64_TEST(env.mcg_status, X86CPU, vmstate_10_plus),
+        VMSTATE_UINT64_TEST(env.mcg_ctl, X86CPU, vmstate_10_plus),
         VMSTATE_UINT64_ARRAY_V(env.mce_banks, X86CPU, MCE_BANKS_DEF * 4, 10),
         /* rdtscp */
-        VMSTATE_UINT64_V(env.tsc_aux, X86CPU, 11),
+        VMSTATE_UINT64_TEST(env.tsc_aux, X86CPU, vmstate_11_plus),
         /* KVM pvclock msr */
-        VMSTATE_UINT64_V(env.system_time_msr, X86CPU, 11),
-        VMSTATE_UINT64_V(env.wall_clock_msr, X86CPU, 11),
+        VMSTATE_UINT64_TEST(env.system_time_msr, X86CPU, vmstate_11_plus),
+        VMSTATE_UINT64_TEST(env.wall_clock_msr, X86CPU, vmstate_11_plus),
         /* XSAVE related fields */
-        VMSTATE_UINT64_V(env.xcr0, X86CPU, 12),
-        VMSTATE_UINT64_V(env.xstate_bv, X86CPU, 12),
+        VMSTATE_UINT64_TEST(env.xcr0, X86CPU, vmstate_12_plus),
+        VMSTATE_UINT64_TEST(env.xstate_bv, X86CPU, vmstate_12_plus),
         VMSTATE_YMMH_REGS_VARS(env.ymmh_regs, X86CPU, CPU_NB_REGS, 12),
         VMSTATE_END_OF_LIST()
         /* The above list is not sorted /wrt version numbers, watch out! */
diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c
index d1f45f8..632c7a7 100644
--- a/tests/test-vmstate.c
+++ b/tests/test-vmstate.c
@@ -257,6 +257,8 @@ static const VMStateDescription vmstate_simple_test = {
         VMSTATE_UINT16_TEST(u16_2, TestSimple, test_false),
         VMSTATE_UINT32_TEST(u32_1, TestSimple, test_true),
         VMSTATE_UINT32_TEST(u32_2, TestSimple, test_false),
+        VMSTATE_UINT64_TEST(u64_1, TestSimple, test_true),
+        VMSTATE_UINT64_TEST(u64_2, TestSimple, test_false),
         VMSTATE_END_OF_LIST()
     }
 };
@@ -270,6 +272,7 @@ uint8_t wire_simple_test[] = {
     /* u8_1 */  0x82,
     /* u16_1 */ 0x02, 0x00,
     /* u32_1 */ 0x00, 0x01, 0x11, 0x70,
+    /* u64_1 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf4, 0x7c,
     QEMU_VM_EOF, /* just to ensure we won't get EOF reported prematurely */
 };

@@ -321,6 +324,7 @@ static void test_simple_test(void)
     FIELD_ASSERT(u8_1);
     FIELD_ASSERT(u16_1);
     FIELD_ASSERT(u32_1);
+    FIELD_ASSERT(u64_1);

     qemu_fclose(loading);
 }
@@ -344,7 +348,7 @@ static const VMStateDescription vmstate_versioned = {
         VMSTATE_UINT32(c, TestStruct),
         VMSTATE_UINT64(d, TestStruct),
         VMSTATE_UINT32_TEST(e, TestStruct, vmstate_2_plus),
-        VMSTATE_UINT64_V(f, TestStruct, 2),
+        VMSTATE_UINT64_TEST(f, TestStruct, vmstate_2_plus),
         VMSTATE_END_OF_LIST()
     }
 };
@@ -417,7 +421,7 @@ static const VMStateDescription vmstate_skipping = {
         VMSTATE_UINT32_TEST(c, TestStruct, test_skip),
         VMSTATE_UINT64(d, TestStruct),
         VMSTATE_UINT32_TEST(e, TestStruct, test_skip),
-        VMSTATE_UINT64_V(f, TestStruct, 2),
+        VMSTATE_UINT64_TEST(f, TestStruct, vmstate_2_plus),
         VMSTATE_END_OF_LIST()
     }
 };
