664 if (execCallbacks && this->callbacks)
667 switch (reg.
getId()) {
755 case triton::arch::ID_REG_X86_ST0: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st0)); }
756 case triton::arch::ID_REG_X86_ST1: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st1)); }
757 case triton::arch::ID_REG_X86_ST2: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st2)); }
758 case triton::arch::ID_REG_X86_ST3: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st3)); }
759 case triton::arch::ID_REG_X86_ST4: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st4)); }
760 case triton::arch::ID_REG_X86_ST5: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st5)); }
761 case triton::arch::ID_REG_X86_ST6: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st6)); }
762 case triton::arch::ID_REG_X86_ST7: {
return triton::utils::cast<triton::uint512>(triton::utils::cast<triton::uint80>(this->
st7)); }
764 case triton::arch::ID_REG_X86_XMM0: {
return triton::utils::cast<triton::uint128>(this->
zmm0); }
765 case triton::arch::ID_REG_X86_XMM1: {
return triton::utils::cast<triton::uint128>(this->
zmm1); }
766 case triton::arch::ID_REG_X86_XMM2: {
return triton::utils::cast<triton::uint128>(this->
zmm2); }
767 case triton::arch::ID_REG_X86_XMM3: {
return triton::utils::cast<triton::uint128>(this->
zmm3); }
768 case triton::arch::ID_REG_X86_XMM4: {
return triton::utils::cast<triton::uint128>(this->
zmm4); }
769 case triton::arch::ID_REG_X86_XMM5: {
return triton::utils::cast<triton::uint128>(this->
zmm5); }
770 case triton::arch::ID_REG_X86_XMM6: {
return triton::utils::cast<triton::uint128>(this->
zmm6); }
771 case triton::arch::ID_REG_X86_XMM7: {
return triton::utils::cast<triton::uint128>(this->
zmm7); }
772 case triton::arch::ID_REG_X86_XMM8: {
return triton::utils::cast<triton::uint128>(this->
zmm8); }
773 case triton::arch::ID_REG_X86_XMM9: {
return triton::utils::cast<triton::uint128>(this->
zmm9); }
774 case triton::arch::ID_REG_X86_XMM10: {
return triton::utils::cast<triton::uint128>(this->
zmm10); }
775 case triton::arch::ID_REG_X86_XMM11: {
return triton::utils::cast<triton::uint128>(this->
zmm11); }
776 case triton::arch::ID_REG_X86_XMM12: {
return triton::utils::cast<triton::uint128>(this->
zmm12); }
777 case triton::arch::ID_REG_X86_XMM13: {
return triton::utils::cast<triton::uint128>(this->
zmm13); }
778 case triton::arch::ID_REG_X86_XMM14: {
return triton::utils::cast<triton::uint128>(this->
zmm14); }
779 case triton::arch::ID_REG_X86_XMM15: {
return triton::utils::cast<triton::uint128>(this->
zmm15); }
781 case triton::arch::ID_REG_X86_YMM0: {
return triton::utils::cast<triton::uint256>(this->
zmm0); }
782 case triton::arch::ID_REG_X86_YMM1: {
return triton::utils::cast<triton::uint256>(this->
zmm1); }
783 case triton::arch::ID_REG_X86_YMM2: {
return triton::utils::cast<triton::uint256>(this->
zmm2); }
784 case triton::arch::ID_REG_X86_YMM3: {
return triton::utils::cast<triton::uint256>(this->
zmm3); }
785 case triton::arch::ID_REG_X86_YMM4: {
return triton::utils::cast<triton::uint256>(this->
zmm4); }
786 case triton::arch::ID_REG_X86_YMM5: {
return triton::utils::cast<triton::uint256>(this->
zmm5); }
787 case triton::arch::ID_REG_X86_YMM6: {
return triton::utils::cast<triton::uint256>(this->
zmm6); }
788 case triton::arch::ID_REG_X86_YMM7: {
return triton::utils::cast<triton::uint256>(this->
zmm7); }
789 case triton::arch::ID_REG_X86_YMM8: {
return triton::utils::cast<triton::uint256>(this->
zmm8); }
790 case triton::arch::ID_REG_X86_YMM9: {
return triton::utils::cast<triton::uint256>(this->
zmm9); }
791 case triton::arch::ID_REG_X86_YMM10: {
return triton::utils::cast<triton::uint256>(this->
zmm10); }
792 case triton::arch::ID_REG_X86_YMM11: {
return triton::utils::cast<triton::uint256>(this->
zmm11); }
793 case triton::arch::ID_REG_X86_YMM12: {
return triton::utils::cast<triton::uint256>(this->
zmm12); }
794 case triton::arch::ID_REG_X86_YMM13: {
return triton::utils::cast<triton::uint256>(this->
zmm13); }
795 case triton::arch::ID_REG_X86_YMM14: {
return triton::utils::cast<triton::uint256>(this->
zmm14); }
796 case triton::arch::ID_REG_X86_YMM15: {
return triton::utils::cast<triton::uint256>(this->
zmm15); }
798 case triton::arch::ID_REG_X86_ZMM0: {
return triton::utils::cast<triton::uint512>(this->
zmm0); }
799 case triton::arch::ID_REG_X86_ZMM1: {
return triton::utils::cast<triton::uint512>(this->
zmm1); }
800 case triton::arch::ID_REG_X86_ZMM2: {
return triton::utils::cast<triton::uint512>(this->
zmm2); }
801 case triton::arch::ID_REG_X86_ZMM3: {
return triton::utils::cast<triton::uint512>(this->
zmm3); }
802 case triton::arch::ID_REG_X86_ZMM4: {
return triton::utils::cast<triton::uint512>(this->
zmm4); }
803 case triton::arch::ID_REG_X86_ZMM5: {
return triton::utils::cast<triton::uint512>(this->
zmm5); }
804 case triton::arch::ID_REG_X86_ZMM6: {
return triton::utils::cast<triton::uint512>(this->
zmm6); }
805 case triton::arch::ID_REG_X86_ZMM7: {
return triton::utils::cast<triton::uint512>(this->
zmm7); }
806 case triton::arch::ID_REG_X86_ZMM8: {
return triton::utils::cast<triton::uint512>(this->
zmm8); }
807 case triton::arch::ID_REG_X86_ZMM9: {
return triton::utils::cast<triton::uint512>(this->
zmm9); }
808 case triton::arch::ID_REG_X86_ZMM10: {
return triton::utils::cast<triton::uint512>(this->
zmm10); }
809 case triton::arch::ID_REG_X86_ZMM11: {
return triton::utils::cast<triton::uint512>(this->
zmm11); }
810 case triton::arch::ID_REG_X86_ZMM12: {
return triton::utils::cast<triton::uint512>(this->
zmm12); }
811 case triton::arch::ID_REG_X86_ZMM13: {
return triton::utils::cast<triton::uint512>(this->
zmm13); }
812 case triton::arch::ID_REG_X86_ZMM14: {
return triton::utils::cast<triton::uint512>(this->
zmm14); }
813 case triton::arch::ID_REG_X86_ZMM15: {
return triton::utils::cast<triton::uint512>(this->
zmm15); }
814 case triton::arch::ID_REG_X86_ZMM16: {
return triton::utils::cast<triton::uint512>(this->
zmm16); }
815 case triton::arch::ID_REG_X86_ZMM17: {
return triton::utils::cast<triton::uint512>(this->
zmm17); }
816 case triton::arch::ID_REG_X86_ZMM18: {
return triton::utils::cast<triton::uint512>(this->
zmm18); }
817 case triton::arch::ID_REG_X86_ZMM19: {
return triton::utils::cast<triton::uint512>(this->
zmm19); }
818 case triton::arch::ID_REG_X86_ZMM20: {
return triton::utils::cast<triton::uint512>(this->
zmm20); }
819 case triton::arch::ID_REG_X86_ZMM21: {
return triton::utils::cast<triton::uint512>(this->
zmm21); }
820 case triton::arch::ID_REG_X86_ZMM22: {
return triton::utils::cast<triton::uint512>(this->
zmm22); }
821 case triton::arch::ID_REG_X86_ZMM23: {
return triton::utils::cast<triton::uint512>(this->
zmm23); }
822 case triton::arch::ID_REG_X86_ZMM24: {
return triton::utils::cast<triton::uint512>(this->
zmm24); }
823 case triton::arch::ID_REG_X86_ZMM25: {
return triton::utils::cast<triton::uint512>(this->
zmm25); }
824 case triton::arch::ID_REG_X86_ZMM26: {
return triton::utils::cast<triton::uint512>(this->
zmm26); }
825 case triton::arch::ID_REG_X86_ZMM27: {
return triton::utils::cast<triton::uint512>(this->
zmm27); }
826 case triton::arch::ID_REG_X86_ZMM28: {
return triton::utils::cast<triton::uint512>(this->
zmm28); }
827 case triton::arch::ID_REG_X86_ZMM29: {
return triton::utils::cast<triton::uint512>(this->
zmm29); }
828 case triton::arch::ID_REG_X86_ZMM30: {
return triton::utils::cast<triton::uint512>(this->
zmm30); }
829 case triton::arch::ID_REG_X86_ZMM31: {
return triton::utils::cast<triton::uint512>(this->
zmm31); }
1001 throw triton::exceptions::Register(
"x8664Cpu::setConcreteRegisterValue(): You cannot set this concrete value (too big) to this register.");
1003 if (execCallbacks && this->callbacks)
1006 switch (reg.
getId()) {
1050 case triton::arch::ID_REG_X86_EFLAGS: {
1056 case triton::arch::ID_REG_X86_CF: {
1059 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1064 case triton::arch::ID_REG_X86_PF: {
1067 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1072 case triton::arch::ID_REG_X86_AF: {
1075 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1080 case triton::arch::ID_REG_X86_ZF: {
1083 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1088 case triton::arch::ID_REG_X86_SF: {
1091 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1096 case triton::arch::ID_REG_X86_TF: {
1099 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1104 case triton::arch::ID_REG_X86_IF: {
1107 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1112 case triton::arch::ID_REG_X86_DF: {
1115 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1120 case triton::arch::ID_REG_X86_OF: {
1123 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1128 case triton::arch::ID_REG_X86_NT: {
1131 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1136 case triton::arch::ID_REG_X86_RF: {
1139 flag = !value.is_zero() ? (flag | (1 << 16)) : (flag & ~(1 << 16));
1144 case triton::arch::ID_REG_X86_VM: {
1147 flag = !value.is_zero() ? (flag | (1 << 17)) : (flag & ~(1 << 17));
1152 case triton::arch::ID_REG_X86_AC: {
1155 flag = !value.is_zero() ? (flag | (1 << 18)) : (flag & ~(1 << 18));
1160 case triton::arch::ID_REG_X86_VIF: {
1163 flag = !value.is_zero() ? (flag | (1 << 19)) : (flag & ~(1 << 19));
1168 case triton::arch::ID_REG_X86_VIP: {
1171 flag = !value.is_zero() ? (flag | (1 << 20)) : (flag & ~(1 << 20));
1176 case triton::arch::ID_REG_X86_ID: {
1179 flag = !value.is_zero() ? (flag | (1 << 21)) : (flag & ~(1 << 21));
1302 case triton::arch::ID_REG_X86_MXCSR: {
1308 case triton::arch::ID_REG_X86_MXCSR_MASK: {
1314 case triton::arch::ID_REG_X86_SSE_IE: {
1317 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1322 case triton::arch::ID_REG_X86_SSE_DE: {
1325 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1330 case triton::arch::ID_REG_X86_SSE_ZE: {
1333 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1338 case triton::arch::ID_REG_X86_SSE_OE: {
1341 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1346 case triton::arch::ID_REG_X86_SSE_UE: {
1349 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1354 case triton::arch::ID_REG_X86_SSE_PE: {
1357 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1362 case triton::arch::ID_REG_X86_SSE_DAZ: {
1365 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1370 case triton::arch::ID_REG_X86_SSE_IM: {
1373 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1378 case triton::arch::ID_REG_X86_SSE_DM: {
1381 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1386 case triton::arch::ID_REG_X86_SSE_ZM: {
1389 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1394 case triton::arch::ID_REG_X86_SSE_OM: {
1397 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1402 case triton::arch::ID_REG_X86_SSE_UM: {
1405 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1410 case triton::arch::ID_REG_X86_SSE_PM: {
1413 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1418 case triton::arch::ID_REG_X86_SSE_RL: {
1421 flag = !value.is_zero() ? (flag | (1 << 13)) : (flag & ~(1 << 13));
1426 case triton::arch::ID_REG_X86_SSE_RH: {
1429 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1434 case triton::arch::ID_REG_X86_SSE_FZ: {
1437 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1442 case triton::arch::ID_REG_X86_FIP: {
1448 case triton::arch::ID_REG_X86_FDP: {
1454 case triton::arch::ID_REG_X86_FCW: {
1460 case triton::arch::ID_REG_X86_FSW: {
1466 case triton::arch::ID_REG_X86_FOP: {
1472 case triton::arch::ID_REG_X86_FCS: {
1478 case triton::arch::ID_REG_X86_FDS: {
1484 case triton::arch::ID_REG_X86_FTW: {
1490 case triton::arch::ID_REG_X86_FCW_IM: {
1493 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1498 case triton::arch::ID_REG_X86_FCW_DM: {
1501 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1506 case triton::arch::ID_REG_X86_FCW_ZM: {
1509 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1514 case triton::arch::ID_REG_X86_FCW_OM: {
1517 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1522 case triton::arch::ID_REG_X86_FCW_UM: {
1525 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1530 case triton::arch::ID_REG_X86_FCW_PM: {
1533 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1538 case triton::arch::ID_REG_X86_FCW_PC: {
1541 flag = (flag & 0xFCFF) | (
static_cast<triton::uint16>(value) << 8);
1546 case triton::arch::ID_REG_X86_FCW_RC: {
1549 flag = (flag & 0xF3FF) | (
static_cast<triton::uint16>(value) << 10);
1554 case triton::arch::ID_REG_X86_FCW_X: {
1557 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1562 case triton::arch::ID_REG_X86_FSW_IE: {
1565 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1570 case triton::arch::ID_REG_X86_FSW_DE: {
1573 flag = !value.is_zero() ? (flag | (1 << 1)) : (flag & ~(1 << 1));
1578 case triton::arch::ID_REG_X86_FSW_ZE: {
1581 flag = !value.is_zero() ? (flag | (1 << 2)) : (flag & ~(1 << 2));
1586 case triton::arch::ID_REG_X86_FSW_OE: {
1589 flag = !value.is_zero() ? (flag | (1 << 3)) : (flag & ~(1 << 3));
1594 case triton::arch::ID_REG_X86_FSW_UE: {
1597 flag = !value.is_zero() ? (flag | (1 << 4)) : (flag & ~(1 << 4));
1602 case triton::arch::ID_REG_X86_FSW_PE: {
1605 flag = !value.is_zero() ? (flag | (1 << 5)) : (flag & ~(1 << 5));
1610 case triton::arch::ID_REG_X86_FSW_SF: {
1613 flag = !value.is_zero() ? (flag | (1 << 6)) : (flag & ~(1 << 6));
1618 case triton::arch::ID_REG_X86_FSW_ES: {
1621 flag = !value.is_zero() ? (flag | (1 << 7)) : (flag & ~(1 << 7));
1626 case triton::arch::ID_REG_X86_FSW_C0: {
1629 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1634 case triton::arch::ID_REG_X86_FSW_C1: {
1637 flag = !value.is_zero() ? (flag | (1 << 9)) : (flag & ~(1 << 9));
1642 case triton::arch::ID_REG_X86_FSW_C2: {
1645 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1650 case triton::arch::ID_REG_X86_FSW_TOP: {
1653 flag = (flag & 0xC7FF) | (
static_cast<triton::uint16>(value) << 11);
1658 case triton::arch::ID_REG_X86_FSW_C3: {
1661 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1666 case triton::arch::ID_REG_X86_FSW_B: {
1669 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));
1674 case triton::arch::ID_REG_X86_EFER: {
1680 case triton::arch::ID_REG_X86_EFER_SCE: {
1683 flag = !value.is_zero() ? (flag | (1 << 0)) : (flag & ~(1 << 0));
1688 case triton::arch::ID_REG_X86_EFER_LME: {
1691 flag = !value.is_zero() ? (flag | (1 << 8)) : (flag & ~(1 << 8));
1696 case triton::arch::ID_REG_X86_EFER_LMA: {
1699 flag = !value.is_zero() ? (flag | (1 << 10)) : (flag & ~(1 << 10));
1704 case triton::arch::ID_REG_X86_EFER_NXE: {
1707 flag = !value.is_zero() ? (flag | (1 << 11)) : (flag & ~(1 << 11));
1712 case triton::arch::ID_REG_X86_EFER_SVME: {
1715 flag = !value.is_zero() ? (flag | (1 << 12)) : (flag & ~(1 << 12));
1720 case triton::arch::ID_REG_X86_EFER_LMSLE: {
1723 flag = !value.is_zero() ? (flag | (1 << 13)) : (flag & ~(1 << 13));
1728 case triton::arch::ID_REG_X86_EFER_FFXSR: {
1731 flag = !value.is_zero() ? (flag | (1 << 14)) : (flag & ~(1 << 14));
1736 case triton::arch::ID_REG_X86_EFER_TCE: {
1739 flag = !value.is_zero() ? (flag | (1 << 15)) : (flag & ~(1 << 15));