587 if (execCallbacks && this->callbacks)
590 switch (reg.
getId()) {
642 case triton::arch::ID_REG_X86_ST2: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st2)); }
643 case triton::arch::ID_REG_X86_ST1: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st1)); }
644 case triton::arch::ID_REG_X86_ST3: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st3)); }
645 case triton::arch::ID_REG_X86_ST0: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st0)); }
646 case triton::arch::ID_REG_X86_ST4: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st4)); }
647 case triton::arch::ID_REG_X86_ST5: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st5)); }
648 case triton::arch::ID_REG_X86_ST6: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st6)); }
649 case triton::arch::ID_REG_X86_ST7: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st7)); }
651 case triton::arch::ID_REG_X86_XMM0: {
return triton::utils::cast<triton::uint128>(this->
ymm0); }
652 case triton::arch::ID_REG_X86_XMM1: {
return triton::utils::cast<triton::uint128>(this->
ymm1); }
653 case triton::arch::ID_REG_X86_XMM2: {
return triton::utils::cast<triton::uint128>(this->
ymm2); }
654 case triton::arch::ID_REG_X86_XMM3: {
return triton::utils::cast<triton::uint128>(this->
ymm3); }
655 case triton::arch::ID_REG_X86_XMM4: {
return triton::utils::cast<triton::uint128>(this->
ymm4); }
656 case triton::arch::ID_REG_X86_XMM5: {
return triton::utils::cast<triton::uint128>(this->
ymm5); }
657 case triton::arch::ID_REG_X86_XMM6: {
return triton::utils::cast<triton::uint128>(this->
ymm6); }
658 case triton::arch::ID_REG_X86_XMM7: {
return triton::utils::cast<triton::uint128>(this->
ymm7); }
660 case triton::arch::ID_REG_X86_YMM0: {
return triton::utils::cast<triton::uint256>(this->
ymm0); }
661 case triton::arch::ID_REG_X86_YMM1: {
return triton::utils::cast<triton::uint256>(this->
ymm1); }
662 case triton::arch::ID_REG_X86_YMM2: {
return triton::utils::cast<triton::uint256>(this->
ymm2); }
663 case triton::arch::ID_REG_X86_YMM3: {
return triton::utils::cast<triton::uint256>(this->
ymm3); }
664 case triton::arch::ID_REG_X86_YMM4: {
return triton::utils::cast<triton::uint256>(this->
ymm4); }
665 case triton::arch::ID_REG_X86_YMM5: {
return triton::utils::cast<triton::uint256>(this->
ymm5); }
666 case triton::arch::ID_REG_X86_YMM6: {
return triton::utils::cast<triton::uint256>(this->
ymm6); }
667 case triton::arch::ID_REG_X86_YMM7: {
return triton::utils::cast<triton::uint256>(this->
ymm7); }
837 throw triton::exceptions::Register(
"x86Cpu::setConcreteRegisterValue(): You cannot set this concrete value (too big) to this register.");
839 if (execCallbacks && this->callbacks)
842 switch (reg.
getId()) {
948 case triton::arch::ID_REG_X86_SSE_IE: {
951 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
956 case triton::arch::ID_REG_X86_SSE_DE: {
959 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
964 case triton::arch::ID_REG_X86_SSE_ZE: {
967 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
972 case triton::arch::ID_REG_X86_SSE_OE: {
975 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
980 case triton::arch::ID_REG_X86_SSE_UE: {
983 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
988 case triton::arch::ID_REG_X86_SSE_PE: {
991 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
996 case triton::arch::ID_REG_X86_SSE_DAZ: {
999 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1004 case triton::arch::ID_REG_X86_SSE_IM: {
1007 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1012 case triton::arch::ID_REG_X86_SSE_DM: {
1015 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1020 case triton::arch::ID_REG_X86_SSE_ZM: {
1023 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1028 case triton::arch::ID_REG_X86_SSE_OM: {
1031 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1036 case triton::arch::ID_REG_X86_SSE_UM: {
1039 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1044 case triton::arch::ID_REG_X86_SSE_PM: {
1047 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1052 case triton::arch::ID_REG_X86_SSE_RL: {
1055 flag = !value.is_zero() ? (flag | (1 << 13)) : (flag & ~(1 << 13));
1060 case triton::arch::ID_REG_X86_SSE_RH: {
1063 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1068 case triton::arch::ID_REG_X86_SSE_FZ: {
1071 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1076 case triton::arch::ID_REG_X86_CF: {
1079 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1084 case triton::arch::ID_REG_X86_PF: {
1087 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1092 case triton::arch::ID_REG_X86_AF: {
1095 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1100 case triton::arch::ID_REG_X86_ZF: {
1103 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1108 case triton::arch::ID_REG_X86_SF: {
1111 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1116 case triton::arch::ID_REG_X86_TF: {
1119 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1124 case triton::arch::ID_REG_X86_IF: {
1127 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1132 case triton::arch::ID_REG_X86_DF: {
1135 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1140 case triton::arch::ID_REG_X86_OF: {
1143 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1148 case triton::arch::ID_REG_X86_NT: {
1151 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1156 case triton::arch::ID_REG_X86_RF: {
1159 flag = !value.is_zero() ? (flag | (1 << 16)) : (flag & ~(1 << 16));
1164 case triton::arch::ID_REG_X86_VM: {
1167 flag = !value.is_zero() ? (flag | (1 << 17)) : (flag & ~(1 << 17));
1172 case triton::arch::ID_REG_X86_AC: {
1175 flag = !value.is_zero() ? (flag | (1 << 18)) : (flag & ~(1 << 18));
1180 case triton::arch::ID_REG_X86_VIF: {
1183 flag = !value.is_zero() ? (flag | (1 << 19)) : (flag & ~(1 << 19));
1188 case triton::arch::ID_REG_X86_VIP: {
1191 flag = !value.is_zero() ? (flag | (1 << 20)) : (flag & ~(1 << 20));
1196 case triton::arch::ID_REG_X86_ID: {
1199 flag = !value.is_zero() ? (flag | (1 << 21)) : (flag & ~(1 << 21));
1222 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1229 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1236 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1243 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1250 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1257 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1264 flag = (flag & 0xFCFF) | (
static_cast<triton::uint16>(value) << 8);
1271 flag = (flag & 0xF3FF) | (
static_cast<triton::uint16>(value) << 10);
1278 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1283 case triton::arch::ID_REG_X86_FSW_IE: {
1286 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1291 case triton::arch::ID_REG_X86_FSW_DE: {
1294 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1299 case triton::arch::ID_REG_X86_FSW_ZE: {
1302 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1307 case triton::arch::ID_REG_X86_FSW_OE: {
1310 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1315 case triton::arch::ID_REG_X86_FSW_UE: {
1318 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1323 case triton::arch::ID_REG_X86_FSW_PE: {
1326 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1331 case triton::arch::ID_REG_X86_FSW_SF: {
1334 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1339 case triton::arch::ID_REG_X86_FSW_ES: {
1342 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1347 case triton::arch::ID_REG_X86_FSW_C0: {
1350 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1355 case triton::arch::ID_REG_X86_FSW_C1: {
1358 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1363 case triton::arch::ID_REG_X86_FSW_C2: {
1366 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1371 case triton::arch::ID_REG_X86_FSW_TOP: {
1374 flag = (flag & 0xC7FF) | (
static_cast<triton::uint16>(value) << 11);
1379 case triton::arch::ID_REG_X86_FSW_C3: {
1382 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1387 case triton::arch::ID_REG_X86_FSW_B: {
1390 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1395 case triton::arch::ID_REG_X86_EFER_SCE: {
triton::uint64 flag = 0;
1397 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1402 case triton::arch::ID_REG_X86_EFER_LME: {
triton::uint64 flag = 0;
1404 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1409 case triton::arch::ID_REG_X86_EFER_LMA: {
triton::uint64 flag = 0;
1411 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1416 case triton::arch::ID_REG_X86_EFER_NXE: {
triton::uint64 flag = 0;
1418 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1423 case triton::arch::ID_REG_X86_EFER_SVME: {
triton::uint64 flag = 0;
1425 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1430 case triton::arch::ID_REG_X86_EFER_LMSLE: {
triton::uint64 flag = 0;
1432 flag = !value.is_zero() ? (flag | (1 << 13)) : (flag & ~(1 << 13));
1437 case triton::arch::ID_REG_X86_EFER_FFXSR: {
triton::uint64 flag = 0;
1439 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1444 case triton::arch::ID_REG_X86_EFER_TCE: {
triton::uint64 flag = 0;
1446 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1451 case triton::arch::ID_REG_X86_EFER: {