#include <stdio.h>
#include "const.h"

const float reg_val_f[] = {
   -347856.475, 356047.56,   -1.0,       23.04,
   1752,        0.0024575,   0.00000001, -248562.76,
   1384.6,      -7.2945676,  1000000000, -5786.47,
   -347856.475, 356047.56,   -1.0,       23.04,
   0,           456.2489562, 3,          -1,
   -45786.476,  456.2489562, 34.00046,   45786.476,
   0,           456.2489562, 3,          -1,
   1384.6,      -7.2945676,  1000000000, -5786.47,
   1752,        0.0024575,   0.00000001, -248562.76,
   -45786.476,  456.2489562, 34.00046,   45786.476,
   1752065,     107,         -45667.24,  -7.2945676,
   -347856.475, 356047.56,   -1.0,       23.04,
   -347856.475, 356047.56,   -1.0,       23.04,
   1752,        0.0024575,   0.00000001, -248562.76,
   1384.6,      -7.2945676,  1000000000, -5786.47,
   -347856.475, 356047.56,   -1.0,       23.04,
   0,           456.2489562, 3,          -1,
   -45786.476,  456.2489562, 34.00046,   45786.476,
   0,           456.2489562, 3,          -1,
   1384.6,      -7.2945676,  1000000000, -5786.47,
   1752,        0.0024575,   0.00000001, -248562.76,
   -45786.476,  456.2489562, 34.00046,   45786.476,
   1752065,     107,         -45667.24,  -7.2945676,
   -347856.475, 356047.56,   -1.0,       23.04
};

const float fs1_f[] = {
   0,           456.2489562, 3,          -1,
   1384.6,      -7.2945676,  1000000000, -5786.47,
   1752,        0.0024575,   0.00000001, -248562.76,
   -45786.476,  456.2489562, 34.00046,   45786.476,
   1752065,     107,         -45667.24,  -7.2945676,
   -347856.475, 356047.56,   -1.0,       23.04
};

const double fs2_f[] = {
   0,           456.2489562, 3,           -1,
   -7.2945676,  1384.6,      1000000000,  -5786.47,
   1752,        0.0024575,   -248562.76,  0.00000001,
   -45786.476,  45786.476,   456.2489562, 34.00046,
   1752065,     107,         -45667.24,   -7.2945676,
   -347856.475, 23.04        -1.0,        356047.56
};

#if defined(__mips_hard_float)
#define TEST1(mem)                                           \
{                                                            \
   unsigned long long out;                                   \
   __asm__ __volatile__(                                     \
      ".set  noreorder"  "\n\t"                              \
      ".set  nomacro"    "\n\t"                              \
      "move  $t0, %1"    "\n\t"                              \
      "mtc1  $t0, $f0"   "\n\t"                              \
      "mov.s $f1, $f0"   "\n\t"                              \
      "mfc1  $t1, $f1"   "\n\t"                              \
      "move  %0,  $t1"   "\n\t"                              \
      ".set  reorder"    "\n\t"                              \
      ".set  macro"      "\n\t"                              \
      : "=r" (out)                                           \
      : "r" (mem)                                            \
      : "t0", "t1", "$f0", "$f1"                             \
   );                                                        \
   printf("mtc1, mov.s, mfc1 :: mem: 0x%llx out: 0x%llx\n",  \
          (long long)mem, out);                              \
}

#define TEST2(mem)                                             \
{                                                              \
   unsigned long long out;                                     \
   __asm__ __volatile__(                                       \
      ".set  noreorder"  "\n\t"                                \
      ".set  nomacro"    "\n\t"                                \
      "move  $t0, %1"    "\n\t"                                \
      "dmtc1 $t0, $f2"   "\n\t"                                \
      "mov.d $f0, $f2"   "\n\t"                                \
      "dmfc1 $t1, $f0"   "\n\t"                                \
      "move  %0,  $t1"   "\n\t"                                \
      ".set  reorder"  "\n\t"                                  \
      ".set  macro"    "\n\t"                                  \
      : "=r" (out)                                             \
      : "r" (mem)                                              \
      : "t0", "t1", "$f0", "$f2"                               \
   );                                                          \
   printf("dmtc1, mov.d, dmfc1 :: mem: 0x%llx out: 0x%llx\n",  \
          (long long)mem, out);                                \
}

/* movX.s fd, fs */
#define TEST3(instruction, FD, FS, cc, offset)    \
{                                                 \
   unsigned int out;                              \
   __asm__ __volatile__(                          \
      "li     $t0,    1"               "\n\t"     \
      "move   $t1,    %1"              "\n\t"     \
      "mtc1   $t0,    $f0"             "\n\t"     \
      "mtc1   $t1,    $f2"             "\n\t"     \
      "dmtc1  $zero,  $"#FD            "\n\t"     \
      "dmtc1  $zero,  $"#FS            "\n\t"     \
      "c.eq.s $f0,    $f2"             "\n\t"     \
      "move   $t0,    %2"              "\n\t"     \
      "lwc1   $"#FS", "#offset"($t0)"  "\n\t"     \
      instruction                      "\n\t"     \
      "mfc1   %0,     $"#FD            "\n\t"     \
      : "=r" (out)                                \
      : "r" (cc), "r" (reg_val_f)                 \
      : "t0", "t1", "$"#FD, "$"#FS, "$f0", "$f2"  \
   );                                             \
   printf("%s :: out: 0x%x, cc: %d\n",            \
          instruction, out, cc);                  \
}

/* movX.d fd, fs */
#define TEST3d(instruction, FD, FS, cc, offset)   \
{                                                 \
   unsigned long long out;                        \
   __asm__ __volatile__(                          \
      "li     $t0,    1"               "\n\t"     \
      "move   $t1,    %1"              "\n\t"     \
      "mtc1   $t0,    $f0"             "\n\t"     \
      "mtc1   $t1,    $f2"             "\n\t"     \
      "dmtc1  $zero,  $"#FD            "\n\t"     \
      "c.eq.s $f0,    $f2"             "\n\t"     \
      "move   $t0,    %2"              "\n\t"     \
      "ldc1   $"#FS", "#offset"($t0)"  "\n\t"     \
      instruction                      "\n\t"     \
      "dmfc1  %0,     $"#FD            "\n\t"     \
      : "=r" (out)                                \
      : "r" (cc), "r" (reg_val_f)                 \
      : "t0", "t1", "$"#FD, "$"#FS, "$f0", "$f2"  \
   );                                             \
   printf("%s :: out: 0x%llx, cc: %d\n",          \
          instruction, out, cc);                  \
}

/* movX.s fd, fs, rt */
#define TEST4(instruction, offset, RTval, FD, FS, RT)  \
{                                                      \
   unsigned int out;                                   \
   __asm__ __volatile__(                               \
      "move  $"#RT", %2"              "\n\t"           \
      "dmtc1 $zero,  $"#FD            "\n\t"           \
      "dmtc1 $zero,  $"#FS            "\n\t"           \
      "move  $t0,    %1"              "\n\t"           \
      "lwc1  $"#FS", "#offset"($t0)"  "\n\t"           \
      instruction                     "\n\t"           \
      "mfc1 %0,     $"#FD"\n\t"                        \
      : "=r" (out)                                     \
      : "r" (reg_val_f), "r" (RTval)                   \
      : "t0", #RT, "$"#FD, "$"#FS                      \
   );                                                  \
   printf("%s :: out: 0x%x\n", instruction, out);      \
}

/* movX.d fd, fs, rt */
#define TEST4d(instruction, offset, RTval, FD, FS, RT)  \
{                                                       \
   unsigned long long out;                              \
   __asm__ __volatile__(                                \
      "move  $"#RT", %2"              "\n\t"            \
      "dmtc1 $zero,  $"#FD            "\n\t"            \
      "dmtc1 $zero,  $"#FS            "\n\t"            \
      "move  $t0,    %1"              "\n\t"            \
      "ldc1  $"#FS", "#offset"($t0)"  "\n\t"            \
      instruction                     "\n\t"            \
      "dmfc1 %0,     $"#FD            "\n\t"            \
      : "=r" (out)                                      \
      : "r" (reg_val_f), "r" (RTval)                    \
      : #RT, "t0", "$"#FD, "$"#FS                       \
   );                                                   \
   printf("%s :: out: 0x%llx\n", instruction, out);     \
}

/* movf, movt */
#define TEST5(instruction, RDval, RSval, RD, RS)                  \
{                                                                 \
   unsigned long out;                                             \
   __asm__ __volatile__(                                          \
      "c.eq.s      %3,     %4"             "\n\t"                 \
      "move        $"#RD", %1"             "\n\t"                 \
      "move        $"#RS", %2"             "\n\t"                 \
      instruction" $"#RD", $"#RS", $fcc0"  "\n\t"                 \
      "move        %0,     $"#RD           "\n\t"                 \
      : "=r" (out)                                                \
      : "r" (RDval), "r" (RSval), "f" (fs1_f[i]), "f" (fs2_f[i])  \
      : #RD, #RS                                                  \
   );                                                             \
   printf("%s ::  RDval: 0x%x, RSval: 0x%x, out: 0x%lx\n",        \
          instruction, RDval, RSval, out);                        \
}
#endif

int main()
{
#if defined(__mips_hard_float)
   int i;
   init_reg_val2();

   for (i = 0; i < N; i++) {
      TEST1(reg_val1[i]);
      TEST2(reg_val1[i]);
      TEST1(reg_val2[i]);
      TEST2(reg_val2[i]);
   }

   printf("--- MOVF.S ---\n");
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 0);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 8);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 16);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 24);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 32)
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 40)
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 48)
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 1, 56)
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 0);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 8);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 16);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 24);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 32);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 40);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 48);
   TEST3("movf.s  $f4, $f6, $fcc0", f4, f6, 0, 56);

   printf("--- MOVF.D ---\n");
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 0);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 8);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 16);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 24);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 32);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 40)
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 48)
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 1, 56)
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 0);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 8);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 16);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 24);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 32);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 40);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 48);
   TEST3d("movf.d  $f4, $f6, $fcc0", f4, f6, 0, 56);

   printf("--- MOVN.S ---\n");
   TEST4("movn.s  $f0, $f2, $11", 0,  0,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 0,  1,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 8,  0xffff,     f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 16, -1,         f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 16, 5,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 32, 5,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 32, 125487,     f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 40, 68,         f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 40, -122544,    f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 56, 0xffffffff, f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 56, 0x80000000, f0, f2, 11);
   TEST4("movn.s  $f0, $f2, $11", 64, 0x7fffffff, f0, f2, 11);

   printf("--- MOVN.D ---\n");
   TEST4d("movn.d $f0, $f2, $11", 0,  0,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 0,  1,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 8,  0xffff,     f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 8,  -1,         f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 16, 5,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 32, 5,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 32, 125487,     f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 40, 68,         f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 40, -122544,    f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 56, 0xffffffff, f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 56, 0x80000000, f0, f2, 11);
   TEST4d("movn.d $f0, $f2, $11", 64, 0x7fffffff, f0, f2, 11);

   printf("--- MOVT.S ---\n");
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 0);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 0);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 8);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 16);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 24);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 32);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 40)
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 48)
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 1, 56)
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 0);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 8);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 16);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 24);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 32);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 40);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 48);
   TEST3("movt.s  $f4, $f6, $fcc0", f4, f6, 0, 56);

   printf("--- MOVT.D ---\n");
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 0);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 0);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 8);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 16);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 24);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 32);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 40)
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 48)
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 1, 56)
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 0);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 8);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 16);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 24);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 32);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 40);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 48);
   TEST3d("movt.d  $f4, $f6, $fcc0", f4, f6, 0, 56);

   printf("--- MOVZ.S ---\n");
   TEST4("movz.s $f0, $f2, $11", 0,  0,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 8,  1,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 8,  0xffff,     f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 16, -1,         f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 16, 5,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 32, 5,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 32, 125487,     f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 40, 68,         f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 40, -122544,    f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 56, 0xffffffff, f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 56, 0x80000000, f0, f2, 11);
   TEST4("movz.s $f0, $f2, $11", 64, 0x7fffffff, f0, f2, 11);

   printf("--- MOVZ.D ---\n");
   TEST4d("movz.d $f0, $f2, $11", 0,  0,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 0,  1,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 8,  0xffff,     f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 16, -1,         f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 16, 5,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 24, 0,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 32, 5,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 32, 125487,     f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 40, 68,         f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 40, -122544,    f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 48, 0,          f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 56, 0xffffffff, f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 56, 0x80000000, f0, f2, 11);
   TEST4d("movz.d $f0, $f2, $11", 64, 0x7fffffff, f0, f2, 11);

   printf("--- MOVF --- if FPConditionalCode(cc) == 0 then "
          "out = RSval else out = RDval\n");
   for (i = 0; i < 24; i++) {
      TEST5("movf", 0xaaaaaaaa, 0x80000000, t0, t1);
      TEST5("movf", 0xccccffff, 0xffffffff, t1, t2);
      TEST5("movf", 0xffffaaaa, 0xaaaaffff, t3, t1);
      TEST5("movf", 0x0,        0xffffffff, t3, t0);
   }

   printf("--- MOVT --- if FPConditionalCode(cc) == 1 then "
          "out = RSval else out = RDval\n");
   for (i = 0; i < 24; i++) {
      TEST5("movt", 0x0,        0xffffffff, t0, t1);
      TEST5("movt", 0x11111111, 0xeeeeffff, t1, t2);
      TEST5("movt", 0x5555ffff, 0xffffffff, t3, t1);
      TEST5("movt", 0xeeeeeeee, 0xffffeeee, t3, t0);
   }
#endif
   return 0;
}
