⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 irdefs.c

📁 The Valgrind distribution has multiple tools. The most popular is the memory checking tool (called M
💻 C
📖 第 1 页 / 共 5 页
字号:
      case Iop_Div32F0x4: vex_printf("Div32F0x4"); return;      case Iop_Div64Fx2:  vex_printf("Div64Fx2"); return;      case Iop_Div64F0x2: vex_printf("Div64F0x2"); return;      case Iop_Max32Fx4:  vex_printf("Max32Fx4"); return;      case Iop_Max32F0x4: vex_printf("Max32F0x4"); return;      case Iop_Max64Fx2:  vex_printf("Max64Fx2"); return;      case Iop_Max64F0x2: vex_printf("Max64F0x2"); return;      case Iop_Min32Fx4:  vex_printf("Min32Fx4"); return;      case Iop_Min32F0x4: vex_printf("Min32F0x4"); return;      case Iop_Min64Fx2:  vex_printf("Min64Fx2"); return;      case Iop_Min64F0x2: vex_printf("Min64F0x2"); return;      case Iop_Mul32Fx4:  vex_printf("Mul32Fx4"); return;      case Iop_Mul32F0x4: vex_printf("Mul32F0x4"); return;      case Iop_Mul64Fx2:  vex_printf("Mul64Fx2"); return;      case Iop_Mul64F0x2: vex_printf("Mul64F0x2"); return;      case Iop_Recip32Fx4:  vex_printf("Recip32Fx4"); return;      case Iop_Recip32F0x4: vex_printf("Recip32F0x4"); return;      case Iop_Recip64Fx2:  vex_printf("Recip64Fx2"); return;      case Iop_Recip64F0x2: vex_printf("Recip64F0x2"); return;      case Iop_RSqrt32Fx4:  vex_printf("RSqrt32Fx4"); return;      case Iop_RSqrt32F0x4: vex_printf("RSqrt32F0x4"); return;      case Iop_RSqrt64Fx2:  vex_printf("RSqrt64Fx2"); return;      case Iop_RSqrt64F0x2: vex_printf("RSqrt64F0x2"); return;      case Iop_Sqrt32Fx4:  vex_printf("Sqrt32Fx4"); return;      case Iop_Sqrt32F0x4: vex_printf("Sqrt32F0x4"); return;      case Iop_Sqrt64Fx2:  vex_printf("Sqrt64Fx2"); return;      case Iop_Sqrt64F0x2: vex_printf("Sqrt64F0x2"); return;      case Iop_Sub32Fx4:  vex_printf("Sub32Fx4"); return;      case Iop_Sub32F0x4: vex_printf("Sub32F0x4"); return;      case Iop_Sub64Fx2:  vex_printf("Sub64Fx2"); return;      case Iop_Sub64F0x2: vex_printf("Sub64F0x2"); return;      case Iop_CmpEQ32Fx4: vex_printf("CmpEQ32Fx4"); return;      case Iop_CmpLT32Fx4: vex_printf("CmpLT32Fx4"); return;      case Iop_CmpLE32Fx4: vex_printf("CmpLE32Fx4"); return;      case Iop_CmpGT32Fx4: vex_printf("CmpGT32Fx4"); return;      case Iop_CmpGE32Fx4: vex_printf("CmpGE32Fx4"); return;      case Iop_CmpUN32Fx4: vex_printf("CmpUN32Fx4"); return;      case Iop_CmpEQ64Fx2: vex_printf("CmpEQ64Fx2"); return;      case Iop_CmpLT64Fx2: vex_printf("CmpLT64Fx2"); return;      case Iop_CmpLE64Fx2: vex_printf("CmpLE64Fx2"); return;      case Iop_CmpUN64Fx2: vex_printf("CmpUN64Fx2"); return;      case Iop_CmpEQ32F0x4: vex_printf("CmpEQ32F0x4"); return;      case Iop_CmpLT32F0x4: vex_printf("CmpLT32F0x4"); return;      case Iop_CmpLE32F0x4: vex_printf("CmpLE32F0x4"); return;      case Iop_CmpUN32F0x4: vex_printf("CmpUN32F0x4"); return;      case Iop_CmpEQ64F0x2: vex_printf("CmpEQ64F0x2"); return;      case Iop_CmpLT64F0x2: vex_printf("CmpLT64F0x2"); return;      case Iop_CmpLE64F0x2: vex_printf("CmpLE64F0x2"); return;      case Iop_CmpUN64F0x2: vex_printf("CmpUN64F0x2"); return;      case Iop_V128to64:   vex_printf("V128to64");   return;      case Iop_V128HIto64: vex_printf("V128HIto64"); return;      case Iop_64HLtoV128: vex_printf("64HLtoV128"); return;      case Iop_64UtoV128:   vex_printf("64UtoV128"); return;      case Iop_SetV128lo64: vex_printf("SetV128lo64"); return;      case Iop_32UtoV128:   vex_printf("32UtoV128"); return;      case Iop_V128to32:    vex_printf("V128to32"); return;      case Iop_SetV128lo32: vex_printf("SetV128lo32"); return;      case Iop_Dup8x16: vex_printf("Dup8x16"); return;      case Iop_Dup16x8: vex_printf("Dup16x8"); return;      case Iop_Dup32x4: vex_printf("Dup32x4"); return;      case Iop_NotV128:    vex_printf("NotV128"); return;      case Iop_AndV128:    vex_printf("AndV128"); return;      case Iop_OrV128:     vex_printf("OrV128");  return;      case Iop_XorV128:    vex_printf("XorV128"); return;      case Iop_CmpNEZ8x16: vex_printf("CmpNEZ8x16"); return;      case Iop_CmpNEZ16x8: vex_printf("CmpNEZ16x8"); return;      case Iop_CmpNEZ32x4: vex_printf("CmpNEZ32x4"); return;      case Iop_CmpNEZ64x2: vex_printf("CmpNEZ64x2"); return;      case Iop_Add8x16:   vex_printf("Add8x16"); return;      case Iop_Add16x8:   vex_printf("Add16x8"); return;      case Iop_Add32x4:   vex_printf("Add32x4"); return;      case Iop_Add64x2:   vex_printf("Add64x2"); return;      case Iop_QAdd8Ux16: vex_printf("QAdd8Ux16"); return;      case Iop_QAdd16Ux8: vex_printf("QAdd16Ux8"); return;      case Iop_QAdd32Ux4: vex_printf("QAdd32Ux4"); return;      case Iop_QAdd8Sx16: vex_printf("QAdd8Sx16"); return;      case Iop_QAdd16Sx8: vex_printf("QAdd16Sx8"); return;      case Iop_QAdd32Sx4: vex_printf("QAdd32Sx4"); return;      case Iop_Sub8x16:   vex_printf("Sub8x16"); return;      case Iop_Sub16x8:   vex_printf("Sub16x8"); return;      case Iop_Sub32x4:   vex_printf("Sub32x4"); return;      case Iop_Sub64x2:   vex_printf("Sub64x2"); return;      case Iop_QSub8Ux16: vex_printf("QSub8Ux16"); return;      case Iop_QSub16Ux8: vex_printf("QSub16Ux8"); return;      case Iop_QSub32Ux4: vex_printf("QSub32Ux4"); return;      case Iop_QSub8Sx16: vex_printf("QSub8Sx16"); return;      case Iop_QSub16Sx8: vex_printf("QSub16Sx8"); return;      case Iop_QSub32Sx4: vex_printf("QSub32Sx4"); return;      case Iop_Mul16x8:    vex_printf("Mul16x8"); return;      case Iop_MulHi16Ux8: vex_printf("MulHi16Ux8"); return;      case Iop_MulHi32Ux4: vex_printf("MulHi32Ux4"); return;      case Iop_MulHi16Sx8: vex_printf("MulHi16Sx8"); return;      case Iop_MulHi32Sx4: vex_printf("MulHi32Sx4"); return;      case Iop_MullEven8Ux16: vex_printf("MullEven8Ux16"); return;      case Iop_MullEven16Ux8: vex_printf("MullEven16Ux8"); return;      case Iop_MullEven8Sx16: vex_printf("MullEven8Sx16"); return;      case Iop_MullEven16Sx8: vex_printf("MullEven16Sx8"); return;      case Iop_Avg8Ux16: vex_printf("Avg8Ux16"); return;      case Iop_Avg16Ux8: vex_printf("Avg16Ux8"); return;      case Iop_Avg32Ux4: vex_printf("Avg32Ux4"); return;      case Iop_Avg8Sx16: vex_printf("Avg8Sx16"); return;      case Iop_Avg16Sx8: vex_printf("Avg16Sx8"); return;      case Iop_Avg32Sx4: vex_printf("Avg32Sx4"); return;      case Iop_Max8Sx16: vex_printf("Max8Sx16"); return;      case Iop_Max16Sx8: vex_printf("Max16Sx8"); return;      case Iop_Max32Sx4: vex_printf("Max32Sx4"); return;      case Iop_Max8Ux16: vex_printf("Max8Ux16"); return;      case Iop_Max16Ux8: vex_printf("Max16Ux8"); return;      case Iop_Max32Ux4: vex_printf("Max32Ux4"); return;      case Iop_Min8Sx16: vex_printf("Min8Sx16"); return;      case Iop_Min16Sx8: vex_printf("Min16Sx8"); return;      case Iop_Min32Sx4: vex_printf("Min32Sx4"); return;      case Iop_Min8Ux16: vex_printf("Min8Ux16"); return;      case Iop_Min16Ux8: vex_printf("Min16Ux8"); return;      case Iop_Min32Ux4: vex_printf("Min32Ux4"); return;      case Iop_CmpEQ8x16:  vex_printf("CmpEQ8x16"); return;      case Iop_CmpEQ16x8:  vex_printf("CmpEQ16x8"); return;      case Iop_CmpEQ32x4:  vex_printf("CmpEQ32x4"); return;      case Iop_CmpGT8Sx16: vex_printf("CmpGT8Sx16"); return;      case Iop_CmpGT16Sx8: vex_printf("CmpGT16Sx8"); return;      case Iop_CmpGT32Sx4: vex_printf("CmpGT32Sx4"); return;      case Iop_CmpGT8Ux16: vex_printf("CmpGT8Ux16"); return;      case Iop_CmpGT16Ux8: vex_printf("CmpGT16Ux8"); return;      case Iop_CmpGT32Ux4: vex_printf("CmpGT32Ux4"); return;      case Iop_ShlV128: vex_printf("ShlV128"); return;      case Iop_ShrV128: vex_printf("ShrV128"); return;      case Iop_ShlN8x16: vex_printf("ShlN8x16"); return;      case Iop_ShlN16x8: vex_printf("ShlN16x8"); return;      case Iop_ShlN32x4: vex_printf("ShlN32x4"); return;      case Iop_ShlN64x2: vex_printf("ShlN64x2"); return;      case Iop_ShrN8x16: vex_printf("ShrN8x16"); return;      case Iop_ShrN16x8: vex_printf("ShrN16x8"); return;      case Iop_ShrN32x4: vex_printf("ShrN32x4"); return;      case Iop_ShrN64x2: vex_printf("ShrN64x2"); return;      case Iop_SarN8x16: vex_printf("SarN8x16"); return;      case Iop_SarN16x8: vex_printf("SarN16x8"); return;      case Iop_SarN32x4: vex_printf("SarN32x4"); return;      case Iop_Shl8x16: vex_printf("Shl8x16"); return;      case Iop_Shl16x8: vex_printf("Shl16x8"); return;      case Iop_Shl32x4: vex_printf("Shl32x4"); return;      case Iop_Shr8x16: vex_printf("Shr8x16"); return;      case Iop_Shr16x8: vex_printf("Shr16x8"); return;      case Iop_Shr32x4: vex_printf("Shr32x4"); return;      case Iop_Sar8x16: vex_printf("Sar8x16"); return;      case Iop_Sar16x8: vex_printf("Sar16x8"); return;      case Iop_Sar32x4: vex_printf("Sar32x4"); return;      case Iop_Rol8x16: vex_printf("Rol8x16"); return;      case Iop_Rol16x8: vex_printf("Rol16x8"); return;      case Iop_Rol32x4: vex_printf("Rol32x4"); return;      case Iop_Narrow16x8:   vex_printf("Narrow16x8"); return;      case Iop_Narrow32x4:   vex_printf("Narrow32x4"); return;      case Iop_QNarrow16Ux8: vex_printf("QNarrow16Ux8"); return;      case Iop_QNarrow32Ux4: vex_printf("QNarrow32Ux4"); return;      case Iop_QNarrow16Sx8: vex_printf("QNarrow16Sx8"); return;      case Iop_QNarrow32Sx4: vex_printf("QNarrow32Sx4"); return;      case Iop_InterleaveHI8x16: vex_printf("InterleaveHI8x16"); return;      case Iop_InterleaveHI16x8: vex_printf("InterleaveHI16x8"); return;      case Iop_InterleaveHI32x4: vex_printf("InterleaveHI32x4"); return;      case Iop_InterleaveHI64x2: vex_printf("InterleaveHI64x2"); return;      case Iop_InterleaveLO8x16: vex_printf("InterleaveLO8x16"); return;      case Iop_InterleaveLO16x8: vex_printf("InterleaveLO16x8"); return;      case Iop_InterleaveLO32x4: vex_printf("InterleaveLO32x4"); return;      case Iop_InterleaveLO64x2: vex_printf("InterleaveLO64x2"); return;      case Iop_Perm8x16: vex_printf("Perm8x16"); return;      default: vpanic("ppIROp(1)");   }     switch (op - base) {      case 0: vex_printf(str); vex_printf("8"); break;      case 1: vex_printf(str); vex_printf("16"); break;      case 2: vex_printf(str); vex_printf("32"); break;      case 3: vex_printf(str); vex_printf("64"); break;      default: vpanic("ppIROp(2)");   }}void ppIRExpr ( IRExpr* e ){  Int i;  switch (e->tag) {    case Iex_Binder:      vex_printf("BIND-%d", e->Iex.Binder.binder);      break;    case Iex_Get:      vex_printf( "GET:" );      ppIRType(e->Iex.Get.ty);      vex_printf("(%d)", e->Iex.Get.offset);      break;    case Iex_GetI:      vex_printf( "GETI" );      ppIRArray(e->Iex.GetI.descr);      vex_printf("[");      ppIRExpr(e->Iex.GetI.ix);      vex_printf(",%d]", e->Iex.GetI.bias);      break;    case Iex_Tmp:      ppIRTemp(e->Iex.Tmp.tmp);      break;    case Iex_Qop:      ppIROp(e->Iex.Qop.op);      vex_printf( "(" );      ppIRExpr(e->Iex.Qop.arg1);      vex_printf( "," );      ppIRExpr(e->Iex.Qop.arg2);      vex_printf( "," );      ppIRExpr(e->Iex.Qop.arg3);      vex_printf( "," );      ppIRExpr(e->Iex.Qop.arg4);      vex_printf( ")" );      break;    case Iex_Triop:      ppIROp(e->Iex.Triop.op);      vex_printf( "(" );      ppIRExpr(e->Iex.Triop.arg1);      vex_printf( "," );      ppIRExpr(e->Iex.Triop.arg2);      vex_printf( "," );      ppIRExpr(e->Iex.Triop.arg3);      vex_printf( ")" );      break;    case Iex_Binop:      ppIROp(e->Iex.Binop.op);      vex_printf( "(" );      ppIRExpr(e->Iex.Binop.arg1);      vex_printf( "," );      ppIRExpr(e->Iex.Binop.arg2);      vex_printf( ")" );      break;    case Iex_Unop:      ppIROp(e->Iex.Unop.op);      vex_printf( "(" );      ppIRExpr(e->Iex.Unop.arg);      vex_printf( ")" );      break;    case Iex_Load:      vex_printf( "LD%s:", e->Iex.Load.end==Iend_LE ? "le" : "be" );      ppIRType(e->Iex.Load.ty);      vex_printf( "(" );      ppIRExpr(e->Iex.Load.addr);      vex_printf( ")" );      break;    case Iex_Const:      ppIRConst(e->Iex.Const.con);      break;    case Iex_CCall:      ppIRCallee(e->Iex.CCall.cee);      vex_printf("(");      for (i = 0; e->Iex.CCall.args[i] != NULL; i++) {        ppIRExpr(e->Iex.CCall.args[i]);        if (e->Iex.CCall.args[i+1] != NULL)          vex_printf(",");      }      vex_printf("):");      ppIRType(e->Iex.CCall.retty);      break;    case Iex_Mux0X:      vex_printf("Mux0X(");      ppIRExpr(e->Iex.Mux0X.cond);      vex_printf(",");      ppIRExpr(e->Iex.Mux0X.expr0);      vex_printf(",");      ppIRExpr(e->Iex.Mux0X.exprX);      vex_printf(")");      break;    default:      vpanic("ppIRExpr");  }}void ppIREffect ( IREffect fx ){   switch (fx) {      case Ifx_None:   vex_printf("noFX"); return;      case Ifx_Read:   vex_printf("RdFX"); return;      case Ifx_Write:  vex_printf("WrFX"); return;      case Ifx_Modify: vex_printf("MoFX"); return;      default: vpanic("ppIREffect");   }}void ppIRDirty ( IRDirty* d ){   Int i;   if (d->tmp != IRTemp_INVALID) {      ppIRTemp(d->tmp);      vex_printf(" = ");   }   vex_printf("DIRTY ");   ppIRExpr(d->guard);   if (d->needsBBP)      vex_printf(" NeedsBBP");   if (d->mFx != Ifx_None) {      vex_printf(" ");      ppIREffect(d->mFx);      vex_printf("-mem(");      ppIRExpr(d->mAddr);      vex_printf(",%d)", d->mSize);   }   for (i = 0; i < d->nFxState; i++) {      vex_printf(" ");      ppIREffect(d->fxState[i].fx);      vex_printf("-gst(%d,%d)", d->fxState[i].offset, d->fxState[i].size);   }   vex_printf(" ::: ");   ppIRCallee(d->cee);   vex_printf("(");   for (i = 0; d->args[i] != NULL; i++) {      ppIRExpr(d->args[i]);      if (d->args[i+1] != NULL) {         vex_printf(",");      }   }   vex_printf(")");}void ppIRJumpKind ( IRJumpKind kind ){   switch (kind) {      case Ijk_Boring:       vex_printf("Boring"); break;      case Ijk_Call:         vex_printf("Call"); break;      case Ijk_Ret:          vex_printf("Return"); break;      case Ijk_ClientReq:    vex_printf("ClientReq"); break;      case Ijk_Yield:        vex_printf("Yield"); break;      case Ijk_EmWarn:       vex_printf("EmWarn"); break;      case Ijk_EmFail:       vex_printf("EmFail"); break;      case Ijk_NoDecode:     vex_printf("NoDecode"); break;      case Ijk_MapFail:      vex_printf("MapFail"); break;      case Ijk_TInval:       vex_printf("Invalidate"); break;      case Ijk_NoRedir:      vex_printf("NoRedir"); break;      case Ijk_Trap:         vex_printf("Trap"); break;      case Ijk_Sys_syscall:  vex_printf("Sys_syscall"); break;      case Ijk_Sys_int32:    vex_printf("Sys_int32"); break;      case Ijk_Sys_int128:   vex_printf("Sys_int128"); break;      case Ijk_Sys_sysenter: vex_printf("Sys_sysenter"); break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -