• Home
  • Raw
  • Download

Lines Matching refs:ty

297 static IRExpr* loadLE ( IRType ty, IRExpr* addr )  in loadLE()  argument
299 return IRExpr_Load(Iend_LE, ty, addr); in loadLE()
362 static IRTemp newTemp ( IRType ty ) in newTemp() argument
364 vassert(isPlausibleIRType(ty)); in newTemp()
365 return newIRTemp( irsb->tyenv, ty ); in newTemp()
403 static IROp mkAND ( IRType ty ) { in mkAND() argument
404 switch (ty) { in mkAND()
411 static IROp mkOR ( IRType ty ) { in mkOR() argument
412 switch (ty) { in mkOR()
419 static IROp mkXOR ( IRType ty ) { in mkXOR() argument
420 switch (ty) { in mkXOR()
427 static IROp mkSHL ( IRType ty ) { in mkSHL() argument
428 switch (ty) { in mkSHL()
435 static IROp mkSHR ( IRType ty ) { in mkSHR() argument
436 switch (ty) { in mkSHR()
443 static IROp mkSAR ( IRType ty ) { in mkSAR() argument
444 switch (ty) { in mkSAR()
451 static IROp mkNOT ( IRType ty ) { in mkNOT() argument
452 switch (ty) { in mkNOT()
459 static IROp mkADD ( IRType ty ) { in mkADD() argument
460 switch (ty) { in mkADD()
467 static IROp mkSUB ( IRType ty ) { in mkSUB() argument
468 switch (ty) { in mkSUB()
475 static IROp mkADDF ( IRType ty ) { in mkADDF() argument
476 switch (ty) { in mkADDF()
483 static IROp mkSUBF ( IRType ty ) { in mkSUBF() argument
484 switch (ty) { in mkSUBF()
491 static IROp mkMULF ( IRType ty ) { in mkMULF() argument
492 switch (ty) { in mkMULF()
499 static IROp mkDIVF ( IRType ty ) { in mkDIVF() argument
500 switch (ty) { in mkDIVF()
507 static IROp mkNEGF ( IRType ty ) { in mkNEGF() argument
508 switch (ty) { in mkNEGF()
515 static IROp mkABSF ( IRType ty ) { in mkABSF() argument
516 switch (ty) { in mkABSF()
523 static IROp mkSQRTF ( IRType ty ) { in mkSQRTF() argument
524 switch (ty) { in mkSQRTF()
531 static IRExpr* mkU ( IRType ty, ULong imm ) { in mkU() argument
532 switch (ty) { in mkU()
541 static IRTemp mathROR ( IRType ty, IRTemp arg, UInt imm ) in mathROR() argument
544 if (ty == Ity_I64) { in mathROR()
547 vassert(ty == Ity_I32); in mathROR()
555 IRTemp res = newTemp(ty); in mathROR()
556 assign(res, binop(mkOR(ty), in mathROR()
557 binop(mkSHL(ty), mkexpr(arg), mkU8(w - imm)), in mathROR()
558 binop(mkSHR(ty), mkexpr(arg), mkU8(imm)) )); in mathROR()
564 static IRTemp mathREPLICATE ( IRType ty, IRTemp arg, UInt imm ) in mathREPLICATE() argument
567 if (ty == Ity_I64) { in mathREPLICATE()
570 vassert(ty == Ity_I32); in mathREPLICATE()
575 IRTemp res = newTemp(ty); in mathREPLICATE()
576 assign(res, binop(mkSAR(ty), in mathREPLICATE()
577 binop(mkSHL(ty), mkexpr(arg), mkU8(w - 1 - imm)), in mathREPLICATE()
990 IRType ty = typeOfIRExpr(irsb->tyenv, e); in putQRegLO() local
991 Int off = offsetQRegLane(qregNo, ty, 0); in putQRegLO()
992 switch (ty) { in putQRegLO()
1003 static IRExpr* getQRegLO ( UInt qregNo, IRType ty ) in getQRegLO() argument
1005 Int off = offsetQRegLane(qregNo, ty, 0); in getQRegLO()
1006 switch (ty) { in getQRegLO()
1015 return IRExpr_Get(off, ty); in getQRegLO()
1076 IRType ty = typeOfIRExpr(irsb->tyenv, e); in putQRegHI64() local
1078 switch (ty) { in putQRegHI64()
2156 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_immediate() local
2158 IRTemp dst = newTemp(ty); in dis_ARM64_data_processing_immediate()
2159 IRTemp src = newTemp(ty); in dis_ARM64_data_processing_immediate()
2160 IRTemp bot = newTemp(ty); in dis_ARM64_data_processing_immediate()
2161 IRTemp top = newTemp(ty); in dis_ARM64_data_processing_immediate()
2162 IRTemp res = newTemp(ty); in dis_ARM64_data_processing_immediate()
2163 assign(dst, inZero ? mkU(ty,0) : getIRegOrZR(is64, dd)); in dis_ARM64_data_processing_immediate()
2166 assign(bot, binop(mkOR(ty), in dis_ARM64_data_processing_immediate()
2167 binop(mkAND(ty), mkexpr(dst), mkU(ty, ~wmask)), in dis_ARM64_data_processing_immediate()
2168 binop(mkAND(ty), mkexpr(mathROR(ty, src, immR)), in dis_ARM64_data_processing_immediate()
2169 mkU(ty, wmask)))); in dis_ARM64_data_processing_immediate()
2171 assign(top, mkexpr(extend ? mathREPLICATE(ty, src, immS) : dst)); in dis_ARM64_data_processing_immediate()
2173 assign(res, binop(mkOR(ty), in dis_ARM64_data_processing_immediate()
2174 binop(mkAND(ty), mkexpr(top), mkU(ty, ~tmask)), in dis_ARM64_data_processing_immediate()
2175 binop(mkAND(ty), mkexpr(bot), mkU(ty, tmask)))); in dis_ARM64_data_processing_immediate()
2200 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_immediate() local
2201 IRTemp srcHi = newTemp(ty); in dis_ARM64_data_processing_immediate()
2202 IRTemp srcLo = newTemp(ty); in dis_ARM64_data_processing_immediate()
2203 IRTemp res = newTemp(ty); in dis_ARM64_data_processing_immediate()
2209 UInt szBits = 8 * sizeofIRType(ty); in dis_ARM64_data_processing_immediate()
2211 assign(res, binop(mkOR(ty), in dis_ARM64_data_processing_immediate()
2212 binop(mkSHL(ty), mkexpr(srcHi), mkU8(szBits-imm6)), in dis_ARM64_data_processing_immediate()
2213 binop(mkSHR(ty), mkexpr(srcLo), mkU8(imm6)))); in dis_ARM64_data_processing_immediate()
2258 IRType ty = is64 ? Ity_I64 : Ity_I32; in getShiftedIRegOrZR() local
2259 IRTemp t0 = newTemp(ty); in getShiftedIRegOrZR()
2261 IRTemp t1 = newTemp(ty); in getShiftedIRegOrZR()
2264 assign(t1, binop(mkSHL(ty), mkexpr(t0), mkU8(sh_amt))); in getShiftedIRegOrZR()
2267 assign(t1, binop(mkSHR(ty), mkexpr(t0), mkU8(sh_amt))); in getShiftedIRegOrZR()
2270 assign(t1, binop(mkSAR(ty), mkexpr(t0), mkU8(sh_amt))); in getShiftedIRegOrZR()
2273 assign(t1, mkexpr(mathROR(ty, t0, sh_amt))); in getShiftedIRegOrZR()
2279 IRTemp t2 = newTemp(ty); in getShiftedIRegOrZR()
2280 assign(t2, unop(mkNOT(ty), mkexpr(t1))); in getShiftedIRegOrZR()
2316 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2320 IRTemp argL = newTemp(ty); in dis_ARM64_data_processing_register()
2323 IROp op = isSUB ? mkSUB(ty) : mkADD(ty); in dis_ARM64_data_processing_register()
2324 IRTemp res = newTemp(ty); in dis_ARM64_data_processing_register()
2359 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2361 IRTemp oldC = newTemp(ty); in dis_ARM64_data_processing_register()
2366 IRTemp argL = newTemp(ty); in dis_ARM64_data_processing_register()
2368 IRTemp argR = newTemp(ty); in dis_ARM64_data_processing_register()
2371 IROp op = isSUB ? mkSUB(ty) : mkADD(ty); in dis_ARM64_data_processing_register()
2372 IRTemp res = newTemp(ty); in dis_ARM64_data_processing_register()
2425 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2429 IRTemp argL = newTemp(ty); in dis_ARM64_data_processing_register()
2434 case BITS2(0,0): case BITS2(1,1): op = mkAND(ty); break; in dis_ARM64_data_processing_register()
2435 case BITS2(0,1): op = mkOR(ty); break; in dis_ARM64_data_processing_register()
2436 case BITS2(1,0): op = mkXOR(ty); break; in dis_ARM64_data_processing_register()
2439 IRTemp res = newTemp(ty); in dis_ARM64_data_processing_register()
2532 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2539 argR = binop(mkADD(ty), argR, mkU(ty,1)); in dis_ARM64_data_processing_register()
2542 argR = unop(mkNOT(ty), argR); in dis_ARM64_data_processing_register()
2545 argR = binop(mkSUB(ty), mkU(ty,0), argR); in dis_ARM64_data_processing_register()
2703 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2704 IRTemp argL = newTemp(ty); in dis_ARM64_data_processing_register()
2705 IRTemp argR = newTemp(ty); in dis_ARM64_data_processing_register()
2742 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2743 IRTemp argL = newTemp(ty); in dis_ARM64_data_processing_register()
2744 IRTemp argR = newTemp(ty); in dis_ARM64_data_processing_register()
2877 IRType ty = is64 ? Ity_I64 : Ity_I32; in dis_ARM64_data_processing_register() local
2878 IRTemp srcL = newTemp(ty); in dis_ARM64_data_processing_register()
2880 IRTemp res = newTemp(ty); in dis_ARM64_data_processing_register()
2888 case BITS2(0,0): iop = mkSHL(ty); break; in dis_ARM64_data_processing_register()
2889 case BITS2(0,1): iop = mkSHR(ty); break; in dis_ARM64_data_processing_register()
2890 case BITS2(1,0): iop = mkSAR(ty); break; in dis_ARM64_data_processing_register()
3788 IRType ty = Ity_INVALID; in dis_ARM64_load_store() local
3790 case 4: ty = Ity_F32; break; in dis_ARM64_load_store()
3791 case 8: ty = Ity_F64; break; in dis_ARM64_load_store()
3792 case 16: ty = Ity_V128; break; in dis_ARM64_load_store()
3821 loadLE(ty, binop(Iop_Add64, mkexpr(tTA), mkU64(0)))); in dis_ARM64_load_store()
3826 loadLE(ty, binop(Iop_Add64, mkexpr(tTA), mkU64(szB)))); in dis_ARM64_load_store()
3829 getQRegLO(tt1, ty)); in dis_ARM64_load_store()
3831 getQRegLO(tt2, ty)); in dis_ARM64_load_store()
3852 nameQRegLO(tt1, ty), nameQRegLO(tt2, ty), in dis_ARM64_load_store()
4009 IRType ty = preferredVectorSubTypeFromSize(1 << szLg2); in dis_ARM64_load_store() local
4015 putQRegLO(tt, loadLE(ty, mkexpr(tEA))); in dis_ARM64_load_store()
4017 storeLE(mkexpr(tEA), getQRegLO(tt, ty)); in dis_ARM64_load_store()
4021 nameQRegLO(tt, ty), nameIReg64orSP(nn), pimm12); in dis_ARM64_load_store()
4057 IRType ty = preferredVectorSubTypeFromSize(1 << szLg2); in dis_ARM64_load_store() local
4066 putQRegLO(tt, loadLE(ty, mkexpr(tTA))); in dis_ARM64_load_store()
4068 storeLE(mkexpr(tTA), getQRegLO(tt, ty)); in dis_ARM64_load_store()
4073 nameQRegLO(tt, ty), nameIReg64orSP(nn), simm9); in dis_ARM64_load_store()
4101 IRType ty = preferredVectorSubTypeFromSize(1 << szLg2); in dis_ARM64_load_store() local
4107 putQRegLO(tt, loadLE(ty, mkexpr(tEA))); in dis_ARM64_load_store()
4109 storeLE(mkexpr(tEA), getQRegLO(tt, ty)); in dis_ARM64_load_store()
4113 nameQRegLO(tt, ty), nameIReg64orSP(nn), (Long)simm9); in dis_ARM64_load_store()
4128 IRType ty = preferredVectorSubTypeFromSize(szB); in dis_ARM64_load_store() local
4130 putQRegLO(tt, loadLE(ty, mkU64(ea))); in dis_ARM64_load_store()
4131 DIP("ldr %s, 0x%llx (literal)\n", nameQRegLO(tt, ty), ea); in dis_ARM64_load_store()
4460 IRType ty = integerIRTypeOfSize(szB); in dis_ARM64_load_store() local
4468 IRTemp res = newTemp(ty); in dis_ARM64_load_store()
4470 putIReg64orZR(tt, widenUto64(ty, mkexpr(res))); in dis_ARM64_load_store()
4483 IRExpr* data = narrowFrom64(ty, getIReg64orZR(tt)); in dis_ARM64_load_store()
4512 IRType ty = integerIRTypeOfSize(szB); in dis_ARM64_load_store() local
4520 IRTemp res = newTemp(ty); in dis_ARM64_load_store()
4521 assign(res, loadLE(ty, mkexpr(ea))); in dis_ARM64_load_store()
4522 putIReg64orZR(tt, widenUto64(ty, mkexpr(res))); in dis_ARM64_load_store()
4528 IRExpr* data = narrowFrom64(ty, getIReg64orZR(tt)); in dis_ARM64_load_store()
5493 UInt ty = INSN(23,22); // type in dis_ARM64_simd_and_fp() local
5500 if (ty == BITS2(0,0) && rm == BITS2(0,0) && op == BITS3(1,1,1)) in dis_ARM64_simd_and_fp()
5503 if (ty == BITS2(0,0) && rm == BITS2(0,0) && op == BITS3(1,1,0)) in dis_ARM64_simd_and_fp()
5507 if (ty == BITS2(0,1) && rm == BITS2(0,0) && op == BITS3(1,1,1)) in dis_ARM64_simd_and_fp()
5510 if (ty == BITS2(0,1) && rm == BITS2(0,0) && op == BITS3(1,1,0)) in dis_ARM64_simd_and_fp()
5513 if (ty == BITS2(1,0) && rm == BITS2(0,1) && op == BITS3(1,1,1)) in dis_ARM64_simd_and_fp()
5516 if (ty == BITS2(1,0) && rm == BITS2(0,1) && op == BITS3(1,1,0)) in dis_ARM64_simd_and_fp()
5703 IRType ty = isD ? Ity_F64 : Ity_F32; in dis_ARM64_simd_and_fp() local
5707 case BITS4(0,0,0,0): nm = "fmul"; iop = mkMULF(ty); break; in dis_ARM64_simd_and_fp()
5708 case BITS4(0,0,0,1): nm = "fdiv"; iop = mkDIVF(ty); break; in dis_ARM64_simd_and_fp()
5709 case BITS4(0,0,1,0): nm = "fadd"; iop = mkADDF(ty); break; in dis_ARM64_simd_and_fp()
5710 case BITS4(0,0,1,1): nm = "fsub"; iop = mkSUBF(ty); break; in dis_ARM64_simd_and_fp()
5711 case BITS4(1,0,0,0): nm = "fnmul"; iop = mkMULF(ty); in dis_ARM64_simd_and_fp()
5717 getQRegLO(nn, ty), getQRegLO(mm, ty)); in dis_ARM64_simd_and_fp()
5718 IRTemp res = newTemp(ty); in dis_ARM64_simd_and_fp()
5719 assign(res, neg ? unop(mkNEGF(ty),resE) : resE); in dis_ARM64_simd_and_fp()
5723 nm, nameQRegLO(dd, ty), nameQRegLO(nn, ty), nameQRegLO(mm, ty)); in dis_ARM64_simd_and_fp()
5742 IRType ty = isD ? Ity_F64 : Ity_F32; in dis_ARM64_simd_and_fp() local
5743 IRTemp res = newTemp(ty); in dis_ARM64_simd_and_fp()
5745 assign(res, getQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
5749 nameQRegLO(dd, ty), nameQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
5754 IROp op = isAbs ? mkABSF(ty) : mkNEGF(ty); in dis_ARM64_simd_and_fp()
5755 assign(res, unop(op, getQRegLO(nn, ty))); in dis_ARM64_simd_and_fp()
5759 nameQRegLO(dd, ty), nameQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
5764 binop(mkSQRTF(ty), in dis_ARM64_simd_and_fp()
5765 mkexpr(mk_get_IR_rounding_mode()), getQRegLO(nn, ty))); in dis_ARM64_simd_and_fp()
5768 DIP("fsqrt %s, %s\n", nameQRegLO(dd, ty), nameQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
5831 IRType ty = isD ? Ity_F64 : Ity_F32; in dis_ARM64_simd_and_fp() local
5835 IRTemp argL = newTemp(ty); in dis_ARM64_simd_and_fp()
5836 IRTemp argR = newTemp(ty); in dis_ARM64_simd_and_fp()
5838 assign(argL, getQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
5842 : getQRegLO(mm, ty)); in dis_ARM64_simd_and_fp()
5849 DIP("fcmp%s %s, %s\n", isCMPE ? "e" : "", nameQRegLO(nn, ty), in dis_ARM64_simd_and_fp()
5850 cmpZero ? "#0.0" : nameQRegLO(mm, ty)); in dis_ARM64_simd_and_fp()
5876 IRType ty = isD ? Ity_F64 : Ity_F32; in dis_ARM64_simd_and_fp() local
5877 IROp opADD = mkADDF(ty); in dis_ARM64_simd_and_fp()
5878 IROp opSUB = mkSUBF(ty); in dis_ARM64_simd_and_fp()
5879 IROp opMUL = mkMULF(ty); in dis_ARM64_simd_and_fp()
5880 IROp opNEG = mkNEGF(ty); in dis_ARM64_simd_and_fp()
5881 IRTemp res = newTemp(ty); in dis_ARM64_simd_and_fp()
5882 IRExpr* eA = getQRegLO(aa, ty); in dis_ARM64_simd_and_fp()
5883 IRExpr* eN = getQRegLO(nn, ty); in dis_ARM64_simd_and_fp()
5884 IRExpr* eM = getQRegLO(mm, ty); in dis_ARM64_simd_and_fp()
5898 names[ix], nameQRegLO(dd, ty), nameQRegLO(nn, ty), in dis_ARM64_simd_and_fp()
5899 nameQRegLO(mm, ty), nameQRegLO(aa, ty)); in dis_ARM64_simd_and_fp()
6048 IRType ty = isD ? Ity_F64 : Ity_F32; in dis_ARM64_simd_and_fp() local
6060 IRTemp src = newTemp(ty); in dis_ARM64_simd_and_fp()
6061 IRTemp dst = newTemp(ty); in dis_ARM64_simd_and_fp()
6062 assign(src, getQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
6068 ch, nameQRegLO(dd, ty), nameQRegLO(nn, ty)); in dis_ARM64_simd_and_fp()
6126 IRType ty = isD ? Ity_F64 : Ity_F32; in dis_ARM64_simd_and_fp() local
6127 IRTemp res = newTemp(ty); in dis_ARM64_simd_and_fp()
6128 assign(res, unop(mkABSF(ty), in dis_ARM64_simd_and_fp()
6129 triop(mkSUBF(ty), in dis_ARM64_simd_and_fp()
6131 getQRegLO(nn,ty), getQRegLO(mm,ty)))); in dis_ARM64_simd_and_fp()
6135 nameQRegLO(dd, ty), nameQRegLO(nn, ty), nameQRegLO(mm, ty)); in dis_ARM64_simd_and_fp()
7445 IRType ty = Ity_INVALID; in dis_ARM64_simd_and_fp() local
7452 ty = Ity_I8; in dis_ARM64_simd_and_fp()
7457 ty = Ity_I16; in dis_ARM64_simd_and_fp()
7462 ty = Ity_I32; in dis_ARM64_simd_and_fp()
7467 ty = Ity_I64; in dis_ARM64_simd_and_fp()
7471 if (ty != Ity_INVALID) { in dis_ARM64_simd_and_fp()
7474 putQRegLane(dd, dstLaneNo, getQRegLane(nn, srcLaneNo, ty)); in dis_ARM64_simd_and_fp()