[llvm-commits] CVS: llvm/lib/Reoptimizer/BinInterface/sparc9.cpp sparcdis.cpp

Joel Stanley jstanley at cs.uiuc.edu
Tue Apr 15 16:30:02 PDT 2003


Changes in directory llvm/lib/Reoptimizer/BinInterface:

sparc9.cpp updated: 1.4 -> 1.5
sparcdis.cpp updated: 1.8 -> 1.9

---
Log message:

Changed print routines, renamed registers properly, etc.


---
Diffs of the changes:

Index: llvm/lib/Reoptimizer/BinInterface/sparc9.cpp
diff -u llvm/lib/Reoptimizer/BinInterface/sparc9.cpp:1.4 llvm/lib/Reoptimizer/BinInterface/sparc9.cpp:1.5
--- llvm/lib/Reoptimizer/BinInterface/sparc9.cpp:1.4	Thu Apr 10 18:12:35 2003
+++ llvm/lib/Reoptimizer/BinInterface/sparc9.cpp	Tue Apr 15 16:32:13 2003
@@ -29,9 +29,9 @@
                         "RGEZ"};
 
 
-char * reg_names[32] = { "G0", "G1", "G2", "G3", "G4", "G5", "G6", "G7",
-                         "O0", "O1", "O2", "O3", "O4", "O5", "O6(SP)", "O7",
-                         "L0", "L1", "L2", "L3", "L4", "L5", "L6", "L7",
-                         "I0", "I1", "I2", "I3", "I4", "I5", "I6(FP)", "I7"};
+char * reg_names[32] = { "g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
+                         "o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
+                         "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
+                         "i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7"};
 
 


Index: llvm/lib/Reoptimizer/BinInterface/sparcdis.cpp
diff -u llvm/lib/Reoptimizer/BinInterface/sparcdis.cpp:1.8 llvm/lib/Reoptimizer/BinInterface/sparcdis.cpp:1.9
--- llvm/lib/Reoptimizer/BinInterface/sparcdis.cpp:1.8	Thu Apr 10 18:12:35 2003
+++ llvm/lib/Reoptimizer/BinInterface/sparcdis.cpp	Tue Apr 15 16:32:13 2003
@@ -11,6 +11,9 @@
 //      labels instead of registers.  And we wish to
 //      ommit RD from the view when we are not explicitly
 //      reading from it)
+//      
+//  * 14 Apr 2003: (jstanley) Parameterized print functions by ostream instance,
+//                 fixed typos, corrected operand ordering issue.
 //
 // Todo:
 //   * On the instructions that don't read from RD
@@ -31,7 +34,7 @@
    if (labelrs1)
       printf("l%d", labelrs1);
    else
-      printf("%s", reg_names[RD_FLD(instr, INSTR_RS1)]);
+      printf("%%%s", reg_names[RD_FLD(instr, INSTR_RS1)]);
 }
 
 void sparc_printop_rs2(unsigned instr, int labelrs2)
@@ -39,7 +42,7 @@
    if (labelrs2)
       printf("l%d", labelrs2);
    else
-      printf("%s", reg_names[RD_FLD(instr, INSTR_RS2)]);
+      printf("%%%s", reg_names[RD_FLD(instr, INSTR_RS2)]);
 }
 
 void sparc_printop_rrd(unsigned instr, int labelrrd)
@@ -47,7 +50,7 @@
    if (labelrrd)
       printf("l%d", labelrrd);
    else
-      printf("%s", reg_names[RD_FLD(instr, INSTR_RD)]);
+      printf("%%%s", reg_names[RD_FLD(instr, INSTR_RD)]);
 }
 
 void sparc_printbr(unsigned instr, bool labels, int labelrs1, int labelrs2, int labelrd, int labelccf)
@@ -58,10 +61,10 @@
    else if (RD_FLD(instr, INSTR_OP2)==OP2_SETHI)
    {
       if (RD_FLD(instr, INSTR_RD) == 0)
-         printf("NOP");
+         printf("nop");
       else
       {
-         printf("SETHI %%hi(%08X), ", RD_FLD(instr, INSTR_IMM22) << 10);
+         printf("sethi %%hi(%08X), ", RD_FLD(instr, INSTR_IMM22) << 10);
          sparc_printop_rrd(instr, labelrd);
       }
    }
@@ -102,19 +105,20 @@
    if (RD_FLD(instr, INSTR_I)==0)
    {
       printf("%s ", basename);
-      if (!labels)
-         printf("%s, ", reg_names[RD_FLD(instr, INSTR_RD)]);
       sparc_printop_rs1(instr, labelrs1);
       printf(" ,");
       sparc_printop_rs2(instr, labelrs2);
+      printf(" ,");
+      if (!labels)
+          printf("%%%s", reg_names[RD_FLD(instr, INSTR_RD)]);
    }
    else
    {
       printf("%s ", basename);
-      if (!labels)
-         printf("%s, ", reg_names[RD_FLD(instr, INSTR_RD)]);
       sparc_printop_rs1(instr, labelrs1);
-      printf(" , %d", SIGN_EXTEND13(RD_FLD(instr, INSTR_SIMM13)));
+      printf(" , %d, ", SIGN_EXTEND13(RD_FLD(instr, INSTR_SIMM13)));
+      if (!labels)
+          printf("%%%s", reg_names[RD_FLD(instr, INSTR_RD)]);
    }
 }
 
@@ -127,12 +131,14 @@
    if (RD_FLD(instr, INSTR_I)==0)
    {
       printf("%s%d ", (RD_FLD(instr, INSTR_X)==0 ? 32 : 64));
-      if (!labels)
-         printf("%s, ", reg_names[RD_FLD(instr, INSTR_RD)]);
 
       sparc_printop_rs1(instr, labelrs1);
       printf(", ");
       sparc_printop_rs2(instr, labelrs2);
+      printf(", ");
+
+      if (!labels)
+          printf("%%%s", reg_names[RD_FLD(instr, INSTR_RD)]);
    }
    else
    {
@@ -144,7 +150,7 @@
                                   ?  RD_FLD(instr, INSTR_SHCNT32) 
                                   :  RD_FLD(instr, INSTR_SHCNT64)));
       if (!labels)
-         printf("%s", reg_names[RD_FLD(instr, INSTR_RD)]);
+         printf("%%%s", reg_names[RD_FLD(instr, INSTR_RD)]);
    }
 
 }
@@ -250,153 +256,154 @@
          printf("mov%s(%s) ", icond_names[RD_FLD(instr, INSTR_COND_L)],
                 cc_names[(RD_FLD(instr, INSTR_CC2) << 2) | (RD_FLD(instr, INSTR_MOV_CC1) << 1) | RD_FLD(instr, INSTR_MOV_CC0)]);
 
-         if (!labels)
-            printf("%s, ", reg_names[RD_FLD(instr, INSTR_RD)]);
-
          if (RD_FLD(instr, INSTR_I)==0)  // RS2
             sparc_printop_rs2(instr, labelrs2);
          else
             printf("%d", SIGN_EXTEND(RD_FLD(instr, INSTR_SIMM11), 11));
 
+         printf(", ");
+         
+         if (!labels)
+            printf("%%%s", reg_names[RD_FLD(instr, INSTR_RD)]);
 
          return;
       }
 
 
    case OP3_ADD:
-      sparc_printalu("ADD", instr, labels, 
+      sparc_printalu("add", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ADDcc:
-      sparc_printalu("ADDcc", instr, labels, 
+      sparc_printalu("addcc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ADDC:
-      sparc_printalu("ADDC", instr, labels, 
+      sparc_printalu("addc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ADDCcc:
-      sparc_printalu("ADDCcc", instr, labels, 
+      sparc_printalu("addccc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_AND:
-      sparc_printalu("AND", instr, labels, 
+      sparc_printalu("and", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ANDcc:
-      sparc_printalu("ANDcc", instr, labels, 
+      sparc_printalu("andcc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_OR:
-      sparc_printalu("OR", instr, labels, 
+      sparc_printalu("or", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ORcc:
-      sparc_printalu("ORcc", instr, labels, 
+      sparc_printalu("orcc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_XOR:
-      sparc_printalu("XOR", instr, labels, 
+      sparc_printalu("xor", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_XORcc:
-      sparc_printalu("XORcc", instr, labels,
+      sparc_printalu("xorcc", instr, labels,
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_SUB:
-      sparc_printalu("SUB", instr, labels, 
+      sparc_printalu("sub", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_SUBcc:
-      sparc_printalu("SUBcc", instr, labels, 
+      sparc_printalu("subcc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ANDN:
-      sparc_printalu("ANDN", instr, labels, 
+      sparc_printalu("andn", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ANDNcc:
-      sparc_printalu("ANDNcc", instr, labels, 
+      sparc_printalu("andncc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ORN:
-      sparc_printalu("ORN", instr, labels, 
+      sparc_printalu("orn", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_ORNcc:
-      sparc_printalu("ORNcc", instr, labels, 
+      sparc_printalu("orncc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_XNOR:
-      sparc_printalu("XNOR", instr, labels, 
+      sparc_printalu("xnor", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_XNORcc:
-      sparc_printalu("XNORcc", instr, labels, 
+      sparc_printalu("xnorcc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_SUBC:
-      sparc_printalu("SUBC", instr, labels, 
+      sparc_printalu("subc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_SUBCcc:
-      sparc_printalu("SUBCcc", instr, labels, 
+      sparc_printalu("subccc", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_MULX:
-      sparc_printalu("MULX", instr, labels, 
+      sparc_printalu("mulx", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_SDIVX:
-      sparc_printalu("SDIVX", instr, labels, 
+      sparc_printalu("sdivx", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_UDIVX:
-      sparc_printalu("UDIVX", instr, labels, 
+      sparc_printalu("udivx", instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_SLL:
-      sparc_printshf("SLL",instr, labels, 
+      sparc_printshf("sll",instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
    case OP3_SRL:
-      sparc_printshf("SRL",instr, labels, 
+      sparc_printshf("srl",instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
    case OP3_SRA:
-      sparc_printshf("SRA",instr, labels, 
+      sparc_printshf("sra",instr, labels, 
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_DONERETRY:
       {
          if (RD_FLD(instr, INSTR_FCN)==FCN_DONE)
-            printf("DONE");
+            printf("done");
          else if (RD_FLD(instr, INSTR_FCN)==FCN_RETRY)
-            printf("RETRY");
+            printf("retry");
          return;
       }
 
@@ -404,9 +411,9 @@
       {
          unsigned fop_n =RD_FLD(instr, INSTR_OPF) &~ OPF_MASK_ON;
          if (fop_n==OPF_FCMPn)
-            printf("FCMP");
+            printf("fcmp");
          else if (fop_n==OPF_FCMPEn)
-            printf("FCMPE");
+            printf("fcmpe");
          return;
       }
 
@@ -441,7 +448,7 @@
       return;
 
    case OP3_POPC:
-      printf("POPC ????");
+      printf("popc ????");
       return;
 
    case OP3_RETURN:
@@ -510,26 +517,26 @@
 {
    if (RD_FLD(instr, INSTR_I)==0)
    {
-      printf("%s ", basename);
-      if (!labels)
-      {
-         sparc_printop_rrd(instr, labelrd);
-         printf(", ");
-      }
+      printf("%s [", basename);
+
       sparc_printop_rs1(instr, labelrs1);
-      printf("+");
+      printf(" + ");
       sparc_printop_rs2(instr, labelrs2);
+      printf("], ");
+
+      if (!labels)
+         sparc_printop_rrd(instr, labelrd);
    }
    else
    {
-      printf("%s ", basename);
+      printf("%s [", basename);
+
+      sparc_printop_rs1(instr, labelrs1);
+      printf(" + %d", SIGN_EXTEND13(RD_FLD(instr, INSTR_SIMM13)));
+      printf("], ");
+
       if (!labels)
-      {
          sparc_printop_rrd(instr, labelrd);
-         printf(", ");
-      }
-      sparc_printop_rs1(instr, labelrs1);
-      printf("+%d", SIGN_EXTEND13(RD_FLD(instr, INSTR_SIMM13)));
    }
 }
 
@@ -540,19 +547,20 @@
    {
       printf("%s ", basename);
       sparc_printop_rrd(instr, labelrd);
-      printf(", ");
+      printf(", [");
       sparc_printop_rs1(instr, labelrs1);
-      printf("+");
+      printf(" + ");
       sparc_printop_rs2(instr, labelrs2);
-
+      printf("]");
    }
    else
    {
       printf("%s ", basename);
       sparc_printop_rrd(instr, labelrd);
-      printf(", ");
+      printf(", [");
       sparc_printop_rs1(instr, labelrs1);
-      printf("+%d", SIGN_EXTEND13(RD_FLD(instr, INSTR_SIMM13)));
+      printf(" + %d", SIGN_EXTEND13(RD_FLD(instr, INSTR_SIMM13)));
+      printf("]");
    }
 }
 void sparc_print3(unsigned instr, bool labels, int labelrs1, int labelrs2,
@@ -569,62 +577,62 @@
    {
       //OP=OP_3 RD, Rs1  {I=0->RS2, I=1->SIMM13}
    case OP3_LDSTUB:
-      sparc_printload("LDSTUB", instr,labels,
+      sparc_printload("ldstub", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_STB:
-      sparc_printstore("STB", instr,labels,
+      sparc_printstore("stb", instr,labels,
                        labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_STH:
-      sparc_printstore("STH", instr,labels,
+      sparc_printstore("sth", instr,labels,
                        labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_STW:
-      sparc_printstore("STW", instr,labels,
+      sparc_printstore("stw", instr,labels,
                        labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_STX:
-      sparc_printstore("STX", instr,labels,
+      sparc_printstore("stx", instr,labels,
                        labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDSB:
-      sparc_printload("LDSB", instr,labels,
+      sparc_printload("ldsb", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDSH:
-      sparc_printload("LDSH", instr,labels,
+      sparc_printload("ldsh", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDSW:
-      sparc_printload("LDSW", instr,labels,
+      sparc_printload("ldsw", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDUB:
-      sparc_printload("LDUB", instr,labels,
+      sparc_printload("ldub", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDUH:
-      sparc_printload("LDUH", instr,labels,
+      sparc_printload("lduh", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDUW:
-      sparc_printload("LDUW", instr,labels,
+      sparc_printload("lduw", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_LDX:
-      sparc_printload("LDX", instr,labels,
+      sparc_printload("ldx", instr,labels,
                       labelrs1, labelrs2, labelrd, labelccf);
       return;
 
@@ -632,14 +640,14 @@
       if (RD_FLD(instr, INSTR_I)==0)
       {
          if (!labels)
-            printf("CASA [r%d] %%%d, r%d, r%d", 
+            printf("casa [r%d] %%%d, r%d, r%d", 
                     RD_FLD(instr, INSTR_RS1),
                     RD_FLD(instr, INSTR_IMMASI), 
                     RD_FLD(instr, INSTR_RS2), 
                     RD_FLD(instr, INSTR_RD));
                     
          else
-            printf("CASA [l%d] %%%d, l%d, l%d", 
+            printf("casa [l%d] %%%d, l%d, l%d", 
                     labelrs1,
                     RD_FLD(instr, INSTR_IMMASI), 
                     labelrs2, 
@@ -648,42 +656,42 @@
       else
       {
          if (!labels)
-            printf("CASA [r%d] , r%d, r%d",
+            printf("casa [r%d] , r%d, r%d",
                      RD_FLD(instr, INSTR_RS1), 
                      RD_FLD(instr, INSTR_RS2), 
                      RD_FLD(instr, INSTR_RD));
          else
-            printf("CASA [l%d] , l%d, l%d", labelrs1, labelrs2, labelrd);
+            printf("casa [l%d] , l%d, l%d", labelrs1, labelrs2, labelrd);
       }
 
-      sparc_printalu("CASA", instr,labels,
+      sparc_printalu("casa", instr,labels,
                      labelrs1, labelrs2, labelrd, labelccf);
 
       return;
 
    case OP3_CASXA:
-      sparc_printalu("CASXA", instr,labels,
+      sparc_printalu("casxa", instr,labels,
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
    case OP3_STFA:
-      sparc_printalu("STFA",instr,labels,
+      sparc_printalu("stfa",instr,labels,
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
    case OP3_STDFA:
-      sparc_printalu("STDFA",instr,labels,
+      sparc_printalu("stdfa",instr,labels,
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
    case OP3_STQFA:
-      sparc_printalu("STQFA",instr,labels,
+      sparc_printalu("stqfa",instr,labels,
                      labelrs1, labelrs2, labelrd, labelccf);
       return;
 
    case OP3_PREFETCH:
-      printf("PREFETCH ??? ");
+      printf("prefetch ??? ");
       return;
 
    case OP3_PREFETCHA:
-      printf("PREFETCHA ??? ");
+      printf("prefetcha ??? ");
       return;
    }
 
@@ -691,8 +699,6 @@
    assert(0);
 }
 
-
-
 void sparc_print_pseudo(unsigned instr,  int labelrs1, int labelrs2, int labelrd, int labelccf)
 {
    if (RD_FLD(instr,INSTR_OP)==OP_CALL)
@@ -708,7 +714,7 @@
 void sparc_print(unsigned instr)
 {
    if (RD_FLD(instr,INSTR_OP)==OP_CALL)
-      printf("CALL disp:+%08X", instr & 0x3FFFFFFF);
+      printf("call disp:+%08X", instr & 0x3FFFFFFF);
    else if (RD_FLD(instr,INSTR_OP)==OP_BRANCH)
       sparc_printbr(instr,false,0, 0, 0, 0);
    else if (RD_FLD(instr,INSTR_OP)==OP_2)
@@ -716,6 +722,3 @@
    else if (RD_FLD(instr,INSTR_OP)==OP_3)
       sparc_print3(instr,false,0, 0, 0, 0 );
 }
-
-
-





More information about the llvm-commits mailing list