[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