Lines Matching full:dres
1346 static void jmp_lit( /*MOD*/DisResult* dres,
1349 vassert(dres->whatNext == Dis_Continue);
1350 vassert(dres->len == 0);
1351 vassert(dres->continueAt == 0);
1352 vassert(dres->jk_StopHere == Ijk_INVALID);
1353 dres->whatNext = Dis_StopHere;
1354 dres->jk_StopHere = kind;
1358 static void jmp_treg( /*MOD*/DisResult* dres,
1361 vassert(dres->whatNext == Dis_Continue);
1362 vassert(dres->len == 0);
1363 vassert(dres->continueAt == 0);
1364 vassert(dres->jk_StopHere == Ijk_INVALID);
1365 dres->whatNext = Dis_StopHere;
1366 dres->jk_StopHere = kind;
1371 void jcc_01( /*MOD*/DisResult* dres,
1376 vassert(dres->whatNext == Dis_Continue);
1377 vassert(dres->len == 0);
1378 vassert(dres->continueAt == 0);
1379 vassert(dres->jk_StopHere == Ijk_INVALID);
1380 dres->whatNext = Dis_StopHere;
1381 dres->jk_StopHere = Ijk_Boring;
3039 /*MOD*/DisResult* dres, /*OUT*/Bool* decode_OK )
3084 jmp_treg(dres, Ijk_Call, t1);
3085 vassert(dres->whatNext == Dis_StopHere);
3089 jmp_treg(dres, Ijk_Boring, t1);
3090 vassert(dres->whatNext == Dis_StopHere);
3140 jmp_treg(dres, Ijk_Call, t1);
3141 vassert(dres->whatNext == Dis_StopHere);
3145 jmp_treg(dres, Ijk_Boring, t1);
3146 vassert(dres->whatNext == Dis_StopHere);
3283 void dis_REP_op ( /*MOD*/DisResult* dres,
3303 jmp_lit(dres, Ijk_Boring, eip);
3304 vassert(dres->whatNext == Dis_StopHere);
3309 jmp_lit(dres, Ijk_Boring, eip_next);
3310 vassert(dres->whatNext == Dis_StopHere);
6952 void dis_ret ( /*MOD*/DisResult* dres, UInt d32 )
6959 jmp_treg(dres, Ijk_Ret, t2);
6960 vassert(dres->whatNext == Dis_StopHere);
8089 DisResult dres;
8112 dres.whatNext = Dis_Continue;
8113 dres.len = 0;
8114 dres.continueAt = 0;
8115 dres.jk_StopHere = Ijk_INVALID;
8142 jmp_lit(&dres, Ijk_ClientReq, guest_EIP_bbstart+delta);
8143 vassert(dres.whatNext == Dis_StopHere);
8165 jmp_treg(&dres, Ijk_NoRedir, t1);
8166 vassert(dres.whatNext == Dis_StopHere);
8185 dres.whatNext = Dis_StopHere;
8186 dres.jk_StopHere = Ijk_InvalICache;
11773 jmp_lit(&dres, Ijk_InvalICache, (Addr32)(guest_EIP_bbstart+delta));
13034 dis_ret(&dres, d32);
13038 dis_ret(&dres, 0);
13062 jmp_treg(&dres, Ijk_Ret, t2);
13063 vassert(dres.whatNext == Dis_StopHere);
13092 dres.whatNext = Dis_ResteerU;
13093 dres.continueAt = (Addr32)d32;
13095 jmp_lit(&dres, Ijk_Call, d32);
13096 vassert(dres.whatNext == Dis_StopHere);
13340 jmp_lit(&dres, Ijk_SigTRAP, ((Addr32)guest_EIP_bbstart)+delta);
13341 vassert(dres
13362 jmp_lit(&dres, Ijk_SigSEGV, ((Addr32)guest_EIP_bbstart)+delta-2);
13363 vassert(dres.whatNext == Dis_StopHere);
13397 jmp_lit(&dres, jump_kind, ((Addr32)guest_EIP_bbstart)+delta);
13398 vassert(dres.whatNext == Dis_StopHere);
13408 dres.whatNext = Dis_ResteerU;
13409 dres.continueAt = (Addr32)d32;
13411 jmp_lit(&dres, Ijk_Boring, d32);
13412 vassert(dres.whatNext == Dis_StopHere);
13422 dres.whatNext = Dis_ResteerU;
13423 dres.continueAt = (Addr32)d32;
13425 jmp_lit(&dres, Ijk_Boring, d32);
13426 vassert(dres.whatNext == Dis_StopHere);
13469 dres.whatNext = Dis_ResteerC;
13470 dres.continueAt = (Addr32)d32;
13489 dres.whatNext = Dis_ResteerC;
13490 dres.continueAt = guest_EIP_bbstart + delta;
13496 jcc_01( &dres, (X86Condcode)(opc - 0x70),
13498 vassert(dres.whatNext == Dis_StopHere);
14242 dis_REP_op ( &dres, X86CondNZ, dis_MOVS, sz, eip_orig,
14248 dis_REP_op ( &dres, X86CondNZ, dis_CMPS, sz, eip_orig,
14254 dis_REP_op ( &dres, X86CondNZ, dis_STOS, sz, eip_orig,
14260 dis_REP_op ( &dres, X86CondNZ, dis_SCAS, sz, eip_orig,
14298 dis_REP_op ( &dres, X86CondAlways, dis_MOVS, sz, eip_orig,
14304 dis_REP_op ( &dres, X86CondZ, dis_CMPS, sz, eip_orig,
14310 dis_REP_op ( &dres, X86CondAlways, dis_STOS, sz, eip_orig,
14316 dis_REP_op ( &dres, X86CondAlways, dis_LODS, sz, eip_orig,
14322 dis_REP_op ( &dres, X86CondZ, dis_SCAS, sz, eip_orig,
14331 jmp_lit(&dres, Ijk_Yield, ((Addr32)guest_EIP_bbstart)+delta);
14332 vassert(dres.whatNext == Dis_StopHere);
14336 dis_ret(&dres, 0);
14644 delta = dis_Grp5 ( sorb, pfx_lock, sz, delta, &dres, &decode_OK );
15039 dres.whatNext = Dis_ResteerC;
15040 dres.continueAt = (Addr32)d32;
15059 dres.whatNext = Dis_ResteerC;
15060 dres.continueAt = guest_EIP_bbstart + delta;
15066 jcc_01( &dres, (X86Condcode)(opc - 0x80),
15068 vassert(dres.whatNext == Dis_StopHere);
15194 jmp_lit(&dres, Ijk_Sys_sysenter, 0/*bogus next EIP value*/);
15195 vassert(dres.whatNext == Dis_StopHere);
15348 jmp_lit(&dres, Ijk_Sys_syscall, ((Addr32)guest_EIP_bbstart)+delta);
15349 vassert(dres.whatNext == Dis_StopHere);
15381 jmp_lit(&dres, Ijk_NoDecode, guest_EIP_curr_instr);
15382 vassert(dres.whatNext == Dis_StopHere);
15383 dres.len = 0;
15390 return dres;
15396 switch (dres.whatNext) {
15402 stmt( IRStmt_Put( OFFB_EIP, mkU32(dres.continueAt) ) );
15411 dres.len = delta - delta_start;
15412 return dres;
15441 DisResult dres;
15453 dres = disInstr_X86_WRK ( &expect_CAS, resteerOkFn,
15473 dres = disInstr_X86_WRK ( &expect_CAS, resteerOkFn,
15487 return dres;