From bddd21509903e5d8b689d00bb268868309d431e0 Mon Sep 17 00:00:00 2001 From: Nguyen Anh Quynh Date: Mon, 16 Jun 2014 13:02:41 +0800 Subject: [PATCH] systemz: use SStream_concat0() instead of SStream_concat() for simple string processing whenever possible --- arch/SystemZ/SystemZGenAsmWriter.inc | 50 ++++++++++++++-------------- arch/SystemZ/SystemZInstPrinter.c | 8 ++--- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/arch/SystemZ/SystemZGenAsmWriter.inc b/arch/SystemZ/SystemZGenAsmWriter.inc index a9315b40..091363bb 100644 --- a/arch/SystemZ/SystemZGenAsmWriter.inc +++ b/arch/SystemZ/SystemZGenAsmWriter.inc @@ -1542,7 +1542,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) uint32_t Bits = OpInfo[MCInst_getOpcode(MI)]; // assert(Bits != 0 && "Cannot print this instruction."); #ifndef CAPSTONE_DIET - SStream_concat(O, "%s", AsmStrs+(Bits & 4095)-1); + SStream_concat0(O, AsmStrs+(Bits & 4095)-1); #endif @@ -1561,12 +1561,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 2: // AGSI, ASI, CGHSI, CHHSI, CHSI, CLFHSI, CLGHSI, CLHHSI, CLI, CLIY, MVGH... printBDAddrOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 3: // AsmBCR, AsmBRC, AsmBRCL, PFD, PFDRL printU4ImmOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 4: // AsmEJ, AsmEJG, AsmHEJ, AsmHEJG, AsmHJ, AsmHJG, AsmLEJ, AsmLEJG, AsmLHJ... @@ -1576,48 +1576,48 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 5: // BRC, BRCL printCond4Operand(MI, 1, O); - SStream_concat(O, "%s", "\t"); + SStream_concat0(O, "\t"); printPCRelOperand(MI, 2, O); return; break; case 6: // CGIJ, CGRJ, CIJ, CLGIJ, CLGRJ, CLIJ, CLRJ, CRJ printCond4Operand(MI, 2, O); - SStream_concat(O, "%s", "\t"); + SStream_concat0(O, "\t"); printOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 7: // CLC, MVC, NC, OC, XC printBDLAddrOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printBDAddrOperand(MI, 3, O); return; break; case 8: // LOC, LOCG printCond4Operand(MI, 5, O); - SStream_concat(O, "%s", "\t"); + SStream_concat0(O, "\t"); printOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printBDAddrOperand(MI, 2, O); return; break; case 9: // LOCGR, LOCR printCond4Operand(MI, 3, O); - SStream_concat(O, "%s", "\t"); + SStream_concat0(O, "\t"); printOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printOperand(MI, 1, O); return; break; case 10: // STOC, STOCG printCond4Operand(MI, 4, O); - SStream_concat(O, "%s", "\t"); + SStream_concat0(O, "\t"); printOperand(MI, 0, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printBDAddrOperand(MI, 1, O); return; break; @@ -1630,7 +1630,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) default: // unreachable. case 0: // A, ADB, ADBR, AEB, AEBR, AFI, AG, AGF, AGFI, AGFR, AGHI, AGHIK, AGR, A... - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 1: // AGSI, ASI @@ -1658,7 +1658,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 6: // CGIJ, CIJ printS8ImmOperand(MI, 1, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printPCRelOperand(MI, 3, O); return; break; @@ -1670,7 +1670,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 8: // CLGIJ, CLIJ printU8ImmOperand(MI, 1, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printPCRelOperand(MI, 3, O); return; break; @@ -1726,12 +1726,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 7: // AsmCGIJ, AsmCIJ, AsmJEAltCGI, AsmJEAltCI, AsmJECGI, AsmJECI, AsmJHAltC... printS8ImmOperand(MI, 1, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 8: // AsmCLGIJ, AsmCLIJ, AsmJEAltCLGI, AsmJEAltCLI, AsmJECLGI, AsmJECLI, Asm... printU8ImmOperand(MI, 1, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 9: // AsmELOC, AsmELOCG, AsmHELOC, AsmHELOCG, AsmHLOC, AsmHLOCG, AsmLELOC, A... @@ -1759,7 +1759,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 14: // CDLFBR, CDLGBR, CELFBR, CELGBR, CFDBR, CFEBR, CFXBR, CGDBR, CGEBR, CGX... printU4ImmOperand(MI, 1, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printOperand(MI, 2, O); break; case 15: @@ -1774,7 +1774,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) break; case 17: // CGRJ, CLGRJ, CLRJ, CRJ - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printPCRelOperand(MI, 3, O); return; break; @@ -1811,12 +1811,12 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) break; case 1: // AGHIK, AGRK, AHIK, ALGHSIK, ALGRK, ALHSIK, ALRK, ARK, AsmCGRJ, AsmCLGR... - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); break; case 2: // AsmCGIJ, AsmCIJ, AsmCLGIJ, AsmCLIJ printU4ImmOperand(MI, 2, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printPCRelOperand(MI, 3, O); return; break; @@ -1845,7 +1845,7 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 2: // AsmCGRJ, AsmCLGRJ, AsmCLRJ, AsmCRJ printU4ImmOperand(MI, 2, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printPCRelOperand(MI, 3, O); return; break; @@ -1887,9 +1887,9 @@ static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) case 10: // RISBG, RISBG32, RISBHG, RISBLG, RNSBG, ROSBG, RXSBG printU8ImmOperand(MI, 3, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printU8ImmOperand(MI, 4, O); - SStream_concat(O, "%s", ", "); + SStream_concat0(O, ", "); printU6ImmOperand(MI, 5, O); return; break; diff --git a/arch/SystemZ/SystemZInstPrinter.c b/arch/SystemZ/SystemZInstPrinter.c index c053b94c..61648eed 100644 --- a/arch/SystemZ/SystemZInstPrinter.c +++ b/arch/SystemZ/SystemZInstPrinter.c @@ -54,7 +54,7 @@ static void printAddress(MCInst *MI, unsigned Base, int64_t Disp, unsigned Index } if (Base) { - SStream_concat(O, "("); + SStream_concat0(O, "("); if (Index) SStream_concat(O, "%%%s, ", getRegisterName(Index)); SStream_concat(O, "%%%s)", getRegisterName(Base)); @@ -351,7 +351,7 @@ static void printBDLAddrOperand(MCInst *MI, int OpNum, SStream *O) if (Base) SStream_concat(O, ", %%%s", getRegisterName(Base)); - SStream_concat(O, ")"); + SStream_concat0(O, ")"); if (MI->csh->detail) { MI->flat_insn->detail->sysz.operands[MI->flat_insn->detail->sysz.op_count].type = SYSZ_OP_MEM; @@ -364,14 +364,14 @@ static void printBDLAddrOperand(MCInst *MI, int OpNum, SStream *O) static void printCond4Operand(MCInst *MI, int OpNum, SStream *O) { - static const char *const CondNames[] = { + static char *const CondNames[] = { "o", "h", "nle", "l", "nhe", "lh", "ne", "e", "nlh", "he", "nl", "le", "nh", "no" }; uint64_t Imm = MCOperand_getImm(MCInst_getOperand(MI, OpNum)); // assert(Imm > 0 && Imm < 15 && "Invalid condition"); - SStream_concat(O, CondNames[Imm - 1]); + SStream_concat0(O, CondNames[Imm - 1]); if (MI->csh->detail) MI->flat_insn->detail->sysz.cc = (sysz_cc)Imm;