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

#define TEST1(RSval, RD)                   \
{                                          \
   unsigned long long out = 0;             \
   __asm__ __volatile__(                   \
      ".set  noreorder"          "\n\t"    \
      "move  $"#RD", %1"         "\n\t"    \
      "b end"#RD                 "\n\t"    \
      "nop"                      "\n\t"    \
      "daddi $"#RD", $"#RD", 5"  "\n\t"    \
      "end"#RD":"                "\n\t"    \
      "daddi $"#RD", $"#RD", 1"  "\n\t"    \
      "move  %0,     $"#RD       "\n\t"    \
      ".set  reorder"            "\n\t"    \
      : "=r" (out)                         \
      : "r" (RSval)                        \
      : #RD                                \
   );                                      \
   printf("B :: 0x%llx, RSval: 0x%llx\n",  \
          out, (long long) RSval);         \
}

#define TEST2(RSval, RD)                          \
{                                                 \
   unsigned long long out = 0;                    \
   __asm__ __volatile__(                          \
      ".set  noreorder"          "\n\t"           \
      "move  $"#RD", %1"         "\n\t"           \
      "bal   end1"#RD            "\n\t"           \
      "nop"                      "\n\t"           \
      "daddi $"#RD", $"#RD", 5"  "\n\t"           \
      "b     r_end"#RD           "\n\t"           \
      "nop"                      "\n\t"           \
      "end1"#RD":"               "\n\t"           \
      "daddi $"#RD", $"#RD", 1"  "\n\t"           \
      "jr    $ra"                "\n\t"           \
      "nop"                      "\n\t"           \
      "r_end"#RD":"              "\n\t"           \
      "move  %0,     $"#RD       "\n\t"           \
      ".set  reorder"            "\n\t"           \
      : "=r" (out)                                \
      : "r" (RSval)                               \
      : #RD, "ra"                                 \
   );                                             \
   printf("B BAL JR :: 0x%llx, RSval: 0x%llx\n",  \
          out, (long long) RSval);                \
}

#define TEST2a(RSval, RD)                           \
{                                                   \
   unsigned long long out = 0;                      \
   __asm__ __volatile__(                            \
      ".set  noreorder"          "\n\t"             \
      "move  $"#RD", %1"         "\n\t"             \
      "bal   end12"#RD           "\n\t"             \
      "nop"                      "\n\t"             \
      "daddi $"#RD", $"#RD", 5"  "\n\t"             \
      "move  $t9, $ra"           "\n\t"             \
      "jr    $t9"                "\n\t"             \
      "nop"                      "\n\t"             \
      "daddi $"#RD", $"#RD", 1"  "\n\t"             \
      "end12"#RD":"              "\n\t"             \
      "daddi $"#RD", $"#RD", 1"  "\n\t"             \
      "move  $t9, $ra"           "\n\t"             \
      "jal   $t9"                "\n\t"             \
      "nop"                      "\n\t"             \
      "move  %0,     $"#RD       "\n\t"             \
      ".set  reorder"            "\n\t"             \
      : "=r" (out)                                  \
      : "r" (RSval)                                 \
      : #RD, "t9", "ra"                             \
   );                                               \
   printf("BAL JR JAL :: 0x%llx, RSval: 0x%llx\n",  \
          out, (long long) RSval);                  \
}

#define TEST2b(RSval, RD)                           \
{                                                   \
   unsigned long long out = 0;                      \
   __asm__ __volatile__(                            \
      ".set  noreorder"          "\n\t"             \
      "move  $"#RD", %1"         "\n\t"             \
      "bal   end13"#RD           "\n\t"             \
      "nop"                      "\n\t"             \
      "daddi $"#RD", $"#RD", 5"  "\n\t"             \
      "move  $t9,    $t0"        "\n\t"             \
      "j     $t9"                "\n\t"             \
      "nop"                      "\n\t"             \
      "daddi $"#RD", $"#RD", 1"  "\n\t"             \
      "end13"#RD":"              "\n\t"             \
      "daddi $"#RD", $"#RD", 1"  "\n\t"             \
      "move  $t9,    $ra"        "\n\t"             \
      "jalr  $t0,    $t9"        "\n\t"             \
      "nop"                      "\n\t"             \
      "move  %0,     $"#RD       "\n\t"             \
      ".set  reorder"            "\n\t"             \
      : "=r" (out)                                  \
      : "r" (RSval)                                 \
      : #RD, "t0", "t9", "ra"                       \
   );                                               \
   printf("BAL JR JAL :: 0x%llx, RSval: 0x%llx\n",  \
          out, (long long) RSval);                  \
}

#define TEST3(instruction, RDval, RSval, RTval, RD, RS, RT)              \
{                                                                        \
   unsigned long long out = 0;                                           \
   __asm__ __volatile__(                                                 \
      ".set        noreorder"                             "\n\t"         \
      "move        $"#RS", %1"                            "\n\t"         \
      "move        $"#RT", %2"                            "\n\t"         \
      "move        $"#RD", %3"                            "\n\t"         \
      instruction" $"#RS", $"#RT", end"instruction#RDval  "\n\t"         \
      "nop"                                               "\n\t"         \
      "daddi       $"#RD", $"#RD", 5"                     "\n\t"         \
      "end"instruction#RDval":"                           "\n\t"         \
      "daddi       $"#RD", $"#RD", 1"                     "\n\t"         \
      "move        %0,     $"#RD                          "\n\t"         \
      ".set        reorder"                               "\n\t"         \
      : "=r" (out)                                                       \
      : "r" (RSval), "r" (RTval), "r" (RDval)                            \
      : #RD, #RS, #RT                                                    \
   );                                                                    \
   printf(instruction" :: out: 0x%llx, RSval: 0x%llx, RTval: 0x%llx\n",  \
          out, (long long) RSval, (long long) RTval);                    \
}

#define TEST4(instruction, RDval, RSval, RD, RS)          \
{                                                         \
   unsigned long long out = 0;                            \
   __asm__ __volatile__(                                  \
      ".set        noreorder"                     "\n\t"  \
      "move        $"#RS", %1"                    "\n\t"  \
      "move        $"#RD", %2"                    "\n\t"  \
      instruction" $"#RS", end"instruction#RDval  "\n\t"  \
      "nop"                                       "\n\t"  \
      "daddi       $"#RD", $"#RD", 8"             "\n\t"  \
      "end"instruction#RDval":"                   "\n\t"  \
      "daddi       $"#RD", $"#RD", 1"             "\n\t"  \
      "move        %0,     $"#RD                  "\n\t"  \
      ".set        reorder"                       "\n\t"  \
      : "=r" (out)                                        \
      : "r" (RSval), "r" (RDval)                          \
      : #RD, #RS                                          \
   );                                                     \
   printf(instruction" :: out: 0x%llx, RSval: 0x%llx\n",  \
          out, (long long) RSval);                        \
}

#define TEST5(instruction, RDval, RSval, RD, RS)            \
{                                                           \
   unsigned long long out = 0;                              \
   __asm__ __volatile__(                                    \
      ".set        noreorder"                       "\n\t"  \
      "move        $"#RD", %2"                      "\n\t"  \
      "move        $"#RS", %1"                      "\n\t"  \
      instruction" $"#RS", end21"instruction#RDval  "\n\t"  \
      "nop"                                         "\n\t"  \
      "daddi       $"#RD", $"#RD", 5"               "\n\t"  \
      "b           r_end"instruction#RDval          "\n\t"  \
      "nop"                                         "\n\t"  \
      "end21"instruction#RDval":"                   "\n\t"  \
      "daddi       $"#RD", $"#RD", 1"               "\n\t"  \
      "jr          $ra"                             "\n\t"  \
      "r_end"instruction#RDval":"                   "\n\t"  \
      "move        %0,     $"#RD                    "\n\t"  \
      ".set        reorder"                         "\n\t"  \
      : "=r" (out)                                          \
      : "r" (RSval), "r" (RDval)                            \
      : #RD, #RS, "ra"                                      \
   );                                                       \
   printf(instruction" :: out: 0x%llx, RSval: 0x%llx\n",    \
          out, (long long) RSval);                          \
}

int main()
{
   int i;
   init_reg_val2();

   printf("B \n");
   for (i = 0; i < N; i++)
      TEST1(reg_val1[i], t0);

   printf("BAL \n");
   for (i = 0; i < N; i++)
      TEST2(reg_val1[i], t0);

   printf("--- BEQ ---  if RSval == RTval then " \
          "out = RDval + 1 else out = RDval + 6\n");
   TEST3("beq", 0,  0,          1,          2,  3,  4);
   TEST3("beq", 1,  1,          1,          3,  4,  5);
   TEST3("beq", 2,  0xffffffff, 0xffffffff, 4,  5,  6);
   TEST3("beq", 3,  0xffffffff, 0xfffffffe, 5,  6,  7);
   TEST3("beq", 4,  0xfffffffe, 0xffffffff, 6,  7,  8);
   TEST3("beq", 5,  0xffffffff, 0xffffffff, 7,  8,  9);
   TEST3("beq", 6,  0x5,        0x5,        8,  9,  10);
   TEST3("beq", 7,  -3,         -4,         9,  10, 11);
   TEST3("beq", 8,  125,        125,        10, 11, 12);
   TEST3("beq", 9,  0x80000000, 0x80000000, 11, 12, 15);
   TEST3("beq", 10, 0xffffffff, 0x80000000, 12, 13, 14);
   TEST3("beq", 11, 0x256,      0x256,      13, 14, 15);
   TEST3("beq", 12, 0x55,       0x55,       14, 15, 16);
   TEST3("beq", 13, 0xfff,      0xdd,       15, 16, 17);
   TEST3("beq", 14, -1,         0x5,        16, 17, 18);
   TEST3("beq", 15, -1,         -1,         17, 18, 19);

   printf("--- BGEZ ---  if RSval >= 0 then " \
          "out = RDval + 1 else out = RDval + 9\n");
   TEST4("bgez", 0,  0,          2,  3);
   TEST4("bgez", 1,  1,          3,  4);
   TEST4("bgez", 2,  0xffffffff, 4,  5);
   TEST4("bgez", 3,  0xffffffff, 5,  6);
   TEST4("bgez", 4,  0xfffffffe, 6,  7);
   TEST4("bgez", 5,  0xffffffff, 7,  8);
   TEST4("bgez", 6,  0x5,        8,  9);
   TEST4("bgez", 7,  -3,         9,  10);
   TEST4("bgez", 8,  125,        10, 11);
   TEST4("bgez", 9,  0x80000000, 11, 12);
   TEST4("bgez", 10, 0xffffffff, 12, 13);
   TEST4("bgez", 11, 0x256,      13, 14);
   TEST4("bgez", 12, 0x55,       14, 15);
   TEST4("bgez", 13, 0xfff,      15, 16);
   TEST4("bgez", 14, -1,         16, 17);
   TEST4("bgez", 15, -1,         17, 18);

   printf("--- BGEZAL ---  if RSval >= 0 then " \
          "out = RDval + 1 else out = RDval + 6\n");
   TEST5("bgezal", 0,  0,          2,  3);
   TEST5("bgezal", 1,  1,          3,  4);
   TEST5("bgezal", 2,  0xffffffff, 4,  5);
   TEST5("bgezal", 3,  0xffffffff, 5,  6);
   TEST5("bgezal", 4,  0xfffffffe, 6,  7);
   TEST5("bgezal", 5,  0xffffffff, 7,  8);
   TEST5("bgezal", 6,  0x5,        8,  9);
   TEST5("bgezal", 7,  -3,         9,  10);
   TEST5("bgezal", 8,  125,        10, 11);
   TEST5("bgezal", 9,  0x80000000, 11, 12);
   TEST5("bgezal", 10, 0xffffffff, 12, 13);
   TEST5("bgezal", 11, 0x256,      13, 14);
   TEST5("bgezal", 12, 0x55,       14, 15);
   TEST5("bgezal", 13, 0xfff,      15, 16);
   TEST5("bgezal", 14, -1,         16, 17);
   TEST5("bgezal", 15, -1,         17, 18);

   printf("--- BGTZ ---  if RSval > 0 then " \
          "out = RDval + 1 else out = RDval + 9\n");
   TEST4("bgtz", 0,  0,          2,  3);
   TEST4("bgtz", 1,  1,          3,  4);
   TEST4("bgtz", 2,  0xffffffff, 4,  5);
   TEST4("bgtz", 3,  0xffffffff, 5,  6);
   TEST4("bgtz", 4,  0xfffffffe, 6,  7);
   TEST4("bgtz", 5,  0xffffffff, 7,  8);
   TEST4("bgtz", 6,  0x5,        8,  9);
   TEST4("bgtz", 7,  -3,         9,  10);
   TEST4("bgtz", 8,  125,        10, 11);
   TEST4("bgtz", 9,  0x80000000, 11, 12);
   TEST4("bgtz", 10, 0xffffffff, 12, 13);
   TEST4("bgtz", 11, 0x256,      13, 14);
   TEST4("bgtz", 12, 0x55,       14, 15);
   TEST4("bgtz", 13, 0xfff,      15, 16);
   TEST4("bgtz", 14, -1,         16, 17);
   TEST4("bgtz", 15, -1,         17, 18);

   printf("--- BLEZ ---  if RSval <= 0 then " \
          "out = RDval + 1 else out = RDval + 9\n");
   TEST4("blez", 0,  0,          2,  3);
   TEST4("blez", 1,  1,          3,  4);
   TEST4("blez", 2,  0xffffffff, 4,  5);
   TEST4("blez", 3,  0xffffffff, 5,  6);
   TEST4("blez", 4,  0xfffffffe, 6,  7);
   TEST4("blez", 5,  0xffffffff, 7,  8);
   TEST4("blez", 6,  0x5,        8,  9);
   TEST4("blez", 7,  -3,         9,  10);
   TEST4("blez", 8,  125,        10, 11);
   TEST4("blez", 9,  0x80000000, 11, 12);
   TEST4("blez", 10, 0xffffffff, 12, 13);
   TEST4("blez", 11, 0x256,      13, 14);
   TEST4("blez", 12, 0x55,       14, 15);
   TEST4("blez", 13, 0xfff,      15, 16);
   TEST4("blez", 14, -1,         16, 17);
   TEST4("blez", 15, -1,         17, 18);

   printf("--- BLTZ ---  if RSval < 0 then " \
          "out = RDval + 1 else out = RDval + 9\n");
   TEST4("bltz", 0,  0,          2,  3);
   TEST4("bltz", 1,  1,          3,  4);
   TEST4("bltz", 2,  0xffffffff, 4,  5);
   TEST4("bltz", 3,  0xffffffff, 5,  6);
   TEST4("bltz", 4,  0xfffffffe, 6,  7);
   TEST4("bltz", 5,  0xffffffff, 7,  8);
   TEST4("bltz", 6,  0x5,        8,  9);
   TEST4("bltz", 7,  -3,         9,  10);
   TEST4("bltz", 8,  125,        10, 11);
   TEST4("bltz", 9,  0x80000000, 11, 12);
   TEST4("bltz", 10, 0xffffffff, 12, 13);
   TEST4("bltz", 11, 0x256,      13, 14);
   TEST4("bltz", 12, 0x55,       14, 15);
   TEST4("bltz", 13, 0xfff,      15, 16);
   TEST4("bltz", 14, -1,         16, 17);
   TEST4("bltz", 15, -1,         17, 18);

   printf("--- BLTZAL ---  if RSval < 0 then " \
          "out = RDval + 1 else out = RDval + 6\n");
   TEST5("bltzal", 0, 0,           2,  3);
   TEST5("bltzal", 1, 1,           3,  4);
   TEST5("bltzal", 2, 0xffffffff,  4,  5);
   TEST5("bltzal", 3, 0xffffffff,  5,  6);
   TEST5("bltzal", 4, 0xfffffffe,  6,  7);
   TEST5("bltzal", 5, 0xffffffff,  7,  8);
   TEST5("bltzal", 6, 0x5,         8,  9);
   TEST5("bltzal", 7, -3,          9,  10);
   TEST5("bltzal", 8, 125,         10, 11);
   TEST5("bltzal", 9, 0x80000000,  11, 12);
   TEST5("bltzal", 10, 0xffffffff, 12, 13);
   TEST5("bltzal", 11, 0x256,      13, 14);
   TEST5("bltzal", 12, 0x55,       14, 15);
   TEST5("bltzal", 13, 0xfff,      15, 16);
   TEST5("bltzal", 14, -1,         16, 17);
   TEST5("bltzal", 15, -1,         17, 18);

   printf("--- BNE ---  if RSval != RTval then " \
          "out = RDval + 1 else out = RDval + 6\n");
   TEST3("bne", 0,  0,          1,          2,  3,  4);
   TEST3("bne", 1,  1,          1,          3,  4,  5);
   TEST3("bne", 2,  0xffffffff, 0xffffffff, 4,  5,  6);
   TEST3("bne", 3,  0xffffffff, 0xfffffffe, 5,  6,  7);
   TEST3("bne", 4,  0xfffffffe, 0xffffffff, 6,  7,  8);
   TEST3("bne", 5,  0xffffffff, 0xffffffff, 7,  8,  9);
   TEST3("bne", 6,  0x5,        0x5,        8,  9,  10);
   TEST3("bne", 7,  -3,         -4,         9,  10, 11);
   TEST3("bne", 8,  125,        125,        10, 11, 12);
   TEST3("bne", 9,  0x80000000, 0x80000000, 11, 12, 15);
   TEST3("bne", 10, 0xffffffff, 0x80000000, 12, 13, 14);
   TEST3("bne", 11, 0x256,      0x256,      13, 14, 15);
   TEST3("bne", 12, 0x55,       0x55,       14, 15, 16);
   TEST3("bne", 13, 0xfff,      0xdd,       15, 16, 17);
   TEST3("bne", 14, -1,         0x5,        16, 17, 18);
   TEST3("bne", 15, -1,         -1,         17, 18, 19);

   printf("JAL, JR \n");
   for (i = 0; i < N; i++)
      TEST2a(reg_val1[i], t0);

   printf("J, JALR \n");
   for (i = 0; i < N; i++)
      TEST2b(reg_val1[i], t1);

   return 0;
}
