"li 30, %[" #_asm_symbol_name_immed "];" \
                "li 31, %[" #_asm_symbol_name_immed "];"
 
-#define ASM_LOAD_FPR_SINGLE_PRECISION(_asm_symbol_name_addr) \
-               "lfs 0, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 1, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 2, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 3, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 4, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 5, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 6, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 7, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 8, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 9, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 10, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 11, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 12, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 13, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 14, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 15, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 16, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 17, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 18, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 19, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 20, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 21, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 22, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 23, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 24, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 25, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 26, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 27, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 28, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 29, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 30, 0(%[" #_asm_symbol_name_addr "]);" \
-               "lfs 31, 0(%[" #_asm_symbol_name_addr "]);"
+#define ASM_LOAD_FPR(_asm_symbol_name_addr) \
+               "lfd 0, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 1, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 2, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 3, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 4, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 5, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 6, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 7, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 8, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 9, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 10, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 11, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 12, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 13, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 14, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 15, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 16, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 17, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 18, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 19, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 20, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 21, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 22, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 23, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 24, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 25, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 26, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 27, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 28, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 29, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 30, 0(%[" #_asm_symbol_name_addr "]);" \
+               "lfd 31, 0(%[" #_asm_symbol_name_addr "]);"
 
 #ifndef __ASSEMBLER__
 void store_gpr(unsigned long *addr);
 void load_gpr(unsigned long *addr);
-void store_fpr_single_precision(float *addr);
+void store_fpr(double *addr);
 #endif /* end of __ASSEMBLER__ */
 
 #endif /* _SELFTESTS_POWERPC_REG_H */
 
 #define FPR_3  0.003
 #define FPR_4  0.004
 
-#define FPR_1_REP 0x3f50624de0000000
-#define FPR_2_REP 0x3f60624de0000000
-#define FPR_3_REP 0x3f689374c0000000
-#define FPR_4_REP 0x3f70624de0000000
+#define FPR_1_REP 0x3f50624dd2f1a9fcull
+#define FPR_2_REP 0x3f60624dd2f1a9fcull
+#define FPR_3_REP 0x3f689374bc6a7efaull
+#define FPR_4_REP 0x3f70624dd2f1a9fcull
 
 /* Buffer must have 18 elements */
 int validate_gpr(unsigned long *gpr, unsigned long val)
 }
 
 /* Buffer must have 32 elements */
-int validate_fpr(unsigned long *fpr, unsigned long val)
+int validate_fpr(__u64 *fpr, __u64 val)
 {
        int i, found = 1;
 
        for (i = 0; i < 32; i++) {
                if (fpr[i] != val) {
-                       printf("FPR[%d]: %lx Expected: %lx\n", i, fpr[i], val);
+                       printf("FPR[%d]: %llx Expected: %llx\n", i, fpr[i], val);
                        found = 0;
                }
        }
 }
 
 /* Buffer must have 32 elements */
-int validate_fpr_float(float *fpr, float val)
+int validate_fpr_double(double *fpr, double val)
 {
        int i, found = 1;