592 if (execCallbacks && this->callbacks)
595 switch (reg.
getId()) {
647 case triton::arch::ID_REG_X86_ST2: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st2)); }
648 case triton::arch::ID_REG_X86_ST1: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st1)); }
649 case triton::arch::ID_REG_X86_ST3: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st3)); }
650 case triton::arch::ID_REG_X86_ST0: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st0)); }
651 case triton::arch::ID_REG_X86_ST4: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st4)); }
652 case triton::arch::ID_REG_X86_ST5: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st5)); }
653 case triton::arch::ID_REG_X86_ST6: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st6)); }
654 case triton::arch::ID_REG_X86_ST7: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st7)); }
656 case triton::arch::ID_REG_X86_XMM0: {
return triton::utils::cast<triton::uint128>(this->
ymm0); }
657 case triton::arch::ID_REG_X86_XMM1: {
return triton::utils::cast<triton::uint128>(this->
ymm1); }
658 case triton::arch::ID_REG_X86_XMM2: {
return triton::utils::cast<triton::uint128>(this->
ymm2); }
659 case triton::arch::ID_REG_X86_XMM3: {
return triton::utils::cast<triton::uint128>(this->
ymm3); }
660 case triton::arch::ID_REG_X86_XMM4: {
return triton::utils::cast<triton::uint128>(this->
ymm4); }
661 case triton::arch::ID_REG_X86_XMM5: {
return triton::utils::cast<triton::uint128>(this->
ymm5); }
662 case triton::arch::ID_REG_X86_XMM6: {
return triton::utils::cast<triton::uint128>(this->
ymm6); }
663 case triton::arch::ID_REG_X86_XMM7: {
return triton::utils::cast<triton::uint128>(this->
ymm7); }
665 case triton::arch::ID_REG_X86_YMM0: {
return triton::utils::cast<triton::uint256>(this->
ymm0); }
666 case triton::arch::ID_REG_X86_YMM1: {
return triton::utils::cast<triton::uint256>(this->
ymm1); }
667 case triton::arch::ID_REG_X86_YMM2: {
return triton::utils::cast<triton::uint256>(this->
ymm2); }
668 case triton::arch::ID_REG_X86_YMM3: {
return triton::utils::cast<triton::uint256>(this->
ymm3); }
669 case triton::arch::ID_REG_X86_YMM4: {
return triton::utils::cast<triton::uint256>(this->
ymm4); }
670 case triton::arch::ID_REG_X86_YMM5: {
return triton::utils::cast<triton::uint256>(this->
ymm5); }
671 case triton::arch::ID_REG_X86_YMM6: {
return triton::utils::cast<triton::uint256>(this->
ymm6); }
672 case triton::arch::ID_REG_X86_YMM7: {
return triton::utils::cast<triton::uint256>(this->
ymm7); }
842 throw triton::exceptions::Register(
"x86Cpu::setConcreteRegisterValue(): You cannot set this concrete value (too big) to this register.");
844 if (execCallbacks && this->callbacks)
847 switch (reg.
getId()) {
953 case triton::arch::ID_REG_X86_SSE_IE: {
956 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
961 case triton::arch::ID_REG_X86_SSE_DE: {
964 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
969 case triton::arch::ID_REG_X86_SSE_ZE: {
972 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
977 case triton::arch::ID_REG_X86_SSE_OE: {
980 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
985 case triton::arch::ID_REG_X86_SSE_UE: {
988 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
993 case triton::arch::ID_REG_X86_SSE_PE: {
996 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1001 case triton::arch::ID_REG_X86_SSE_DAZ: {
1004 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1009 case triton::arch::ID_REG_X86_SSE_IM: {
1012 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1017 case triton::arch::ID_REG_X86_SSE_DM: {
1020 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1025 case triton::arch::ID_REG_X86_SSE_ZM: {
1028 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1033 case triton::arch::ID_REG_X86_SSE_OM: {
1036 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1041 case triton::arch::ID_REG_X86_SSE_UM: {
1044 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1049 case triton::arch::ID_REG_X86_SSE_PM: {
1052 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1057 case triton::arch::ID_REG_X86_SSE_RL: {
1060 flag = !value.is_zero() ? (flag | (1 << 13)) : (flag & ~(1 << 13));
1065 case triton::arch::ID_REG_X86_SSE_RH: {
1068 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1073 case triton::arch::ID_REG_X86_SSE_FZ: {
1076 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1081 case triton::arch::ID_REG_X86_CF: {
1084 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1089 case triton::arch::ID_REG_X86_PF: {
1092 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1097 case triton::arch::ID_REG_X86_AF: {
1100 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1105 case triton::arch::ID_REG_X86_ZF: {
1108 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1113 case triton::arch::ID_REG_X86_SF: {
1116 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1121 case triton::arch::ID_REG_X86_TF: {
1124 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1129 case triton::arch::ID_REG_X86_IF: {
1132 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1137 case triton::arch::ID_REG_X86_DF: {
1140 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1145 case triton::arch::ID_REG_X86_OF: {
1148 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1153 case triton::arch::ID_REG_X86_NT: {
1156 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1161 case triton::arch::ID_REG_X86_RF: {
1164 flag = !value.is_zero() ? (flag | (1 << 16)) : (flag & ~(1 << 16));
1169 case triton::arch::ID_REG_X86_VM: {
1172 flag = !value.is_zero() ? (flag | (1 << 17)) : (flag & ~(1 << 17));
1177 case triton::arch::ID_REG_X86_AC: {
1180 flag = !value.is_zero() ? (flag | (1 << 18)) : (flag & ~(1 << 18));
1185 case triton::arch::ID_REG_X86_VIF: {
1188 flag = !value.is_zero() ? (flag | (1 << 19)) : (flag & ~(1 << 19));
1193 case triton::arch::ID_REG_X86_VIP: {
1196 flag = !value.is_zero() ? (flag | (1 << 20)) : (flag & ~(1 << 20));
1201 case triton::arch::ID_REG_X86_ID: {
1204 flag = !value.is_zero() ? (flag | (1 << 21)) : (flag & ~(1 << 21));
1227 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1234 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1241 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1248 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1255 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1262 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1269 flag = (flag & 0xFCFF) | (
static_cast<triton::uint16>(value) << 8);
1276 flag = (flag & 0xF3FF) | (
static_cast<triton::uint16>(value) << 10);
1283 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1288 case triton::arch::ID_REG_X86_FSW_IE: {
1291 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1296 case triton::arch::ID_REG_X86_FSW_DE: {
1299 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1304 case triton::arch::ID_REG_X86_FSW_ZE: {
1307 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1312 case triton::arch::ID_REG_X86_FSW_OE: {
1315 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1320 case triton::arch::ID_REG_X86_FSW_UE: {
1323 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1328 case triton::arch::ID_REG_X86_FSW_PE: {
1331 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1336 case triton::arch::ID_REG_X86_FSW_SF: {
1339 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1344 case triton::arch::ID_REG_X86_FSW_ES: {
1347 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1352 case triton::arch::ID_REG_X86_FSW_C0: {
1355 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1360 case triton::arch::ID_REG_X86_FSW_C1: {
1363 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1368 case triton::arch::ID_REG_X86_FSW_C2: {
1371 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1376 case triton::arch::ID_REG_X86_FSW_TOP: {
1379 flag = (flag & 0xC7FF) | (
static_cast<triton::uint16>(value) << 11);
1384 case triton::arch::ID_REG_X86_FSW_C3: {
1387 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1392 case triton::arch::ID_REG_X86_FSW_B: {
1395 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1400 case triton::arch::ID_REG_X86_EFER_SCE: {
triton::uint64 flag = 0;
1402 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1407 case triton::arch::ID_REG_X86_EFER_LME: {
triton::uint64 flag = 0;
1409 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1414 case triton::arch::ID_REG_X86_EFER_LMA: {
triton::uint64 flag = 0;
1416 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1421 case triton::arch::ID_REG_X86_EFER_NXE: {
triton::uint64 flag = 0;
1423 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1428 case triton::arch::ID_REG_X86_EFER_SVME: {
triton::uint64 flag = 0;
1430 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1435 case triton::arch::ID_REG_X86_EFER_LMSLE: {
triton::uint64 flag = 0;
1437 flag = !value.is_zero() ? (flag | (1 << 13)) : (flag & ~(1 << 13));
1442 case triton::arch::ID_REG_X86_EFER_FFXSR: {
triton::uint64 flag = 0;
1444 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1449 case triton::arch::ID_REG_X86_EFER_TCE: {
triton::uint64 flag = 0;
1451 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1456 case triton::arch::ID_REG_X86_EFER: {