libTriton version 1.0 build 1588
Loading...
Searching...
No Matches
x86Specifications.hpp
Go to the documentation of this file.
1
2/*
3** Copyright (C) - Triton
4**
5** This program is under the terms of the Apache License 2.0.
6*/
7
8#ifndef TRITON_X86SPECIFICATIONS_H
9#define TRITON_X86SPECIFICATIONS_H
10
11#include <unordered_map>
12#include <string>
13
14#include <triton/archEnums.hpp>
16#include <triton/dllexport.hpp>
17#include <triton/register.hpp>
18
19
20
22namespace triton {
29 namespace arch {
37 namespace x86 {
45
47 protected:
49 std::unordered_map<triton::arch::register_e, const triton::arch::Register> id2reg;
50 std::unordered_map<std::string, triton::arch::register_e> name2id;
51
52 public:
55
58
61
64 };
65
68
72
1369
1370 /* Must be the last item */
1373
1375 };
1377 };
1379};
1380
1381#endif /* TRITON_X86SPECIFICATIONS_H */
This class is used to represent an instruction.
Definition: instruction.hpp:48
The x86Specifications class defines specifications about the x86 and x86_64 CPU.
TRITON_EXPORT triton::arch::register_e capstoneRegisterToTritonRegister(triton::uint32 id) const
Converts a capstone's register id to a triton's register id.
std::unordered_map< triton::arch::register_e, const triton::arch::Register > id2reg
List of registers specification available for this architecture.
TRITON_EXPORT triton::arch::x86::prefix_e capstonePrefixToTritonPrefix(triton::uint32 id) const
Converts a capstone's prefix id to a triton's prefix id.
TRITON_EXPORT triton::uint32 capstoneInstructionToTritonInstruction(triton::uint32 id) const
Converts a capstone's instruction id to a triton's instruction id.
register_e
Types of register.
Definition: archEnums.hpp:64
std::uint32_t uint32
unisgned 32-bits
Definition: tritonTypes.hpp:39
instruction_e
The list of opcodes.
const triton::arch::Instruction nop
x86 NOP instruction
prefix_e
Types of prefix.
Definition: archEnums.hpp:101
@ ID_INS_AESDECLAST
AESDECLAST.
@ ID_INS_VFNMADD231PD
VFNMADD231PD.
@ ID_INS_VGATHERPF1DPD
VGATHERPF1DPD.
@ ID_INS_VBLENDMPD
VBLENDMPD.
@ ID_INS_VPERM2F128
VPERM2F128.
@ ID_INS_VCVTPD2UDQ
VCVTPD2UDQ.
@ ID_INS_VRNDSCALEPD
VRNDSCALEPD.
@ ID_INS_VFMSUB231SD
VFMSUB231SD.
@ ID_INS_VMOVSLDUP
VMOVSLDUP.
@ ID_INS_VFNMADDSS
VFNMADDSS.
@ ID_INS_VPMACSSDQL
VPMACSSDQL.
@ ID_INS_VFNMADD132SD
VFNMADD132SD.
@ ID_INS_EXTRACTPS
EXTRACTPS.
@ ID_INS_VFNMADD213PD
VFNMADD213PD.
@ ID_INS_VFNMSUB231PS
VFNMSUB231PS.
@ ID_INS_VGATHERPF0QPD
VGATHERPF0QPD.
@ ID_INS_VMOVDQA64
VMOVDQA64.
@ ID_INS_VPHMINPOSUW
VPHMINPOSUW.
@ ID_INS_VFNMADD132SS
VFNMADD132SS.
@ ID_INS_CVTTPS2PI
CVTTPS2PI.
@ ID_INS_VFMSUBADD231PS
VFMSUBADD231PS.
@ ID_INS_VFNMADD213PS
VFNMADD213PS.
@ ID_INS_VSCATTERDPS
VSCATTERDPS.
@ ID_INS_VPBROADCASTB
VPBROADCASTB.
@ ID_INS_VMOVSHDUP
VMOVSHDUP.
@ ID_INS_VSCATTERQPD
VSCATTERQPD.
@ ID_INS_VPSCATTERQQ
VPSCATTERQQ.
@ ID_INS_VEXTRACTI32X4
VEXTRACTI32X4.
@ ID_INS_VFNMSUBSD
VFNMSUBSD.
@ ID_INS_VGATHERQPS
VGATHERQPS.
@ ID_INS_VPCMPESTRI
VPCMPESTRI.
@ ID_INS_VCVTTPS2UDQ
VCVTTPS2UDQ.
@ ID_INS_VFMSUBADD213PD
VFMSUBADD213PD.
@ ID_INS_VPMASKMOVD
VPMASKMOVD.
@ ID_INS_VGATHERPF0DPD
VGATHERPF0DPD.
@ ID_INS_VPMASKMOVQ
VPMASKMOVQ.
@ ID_INS_VFNMSUB231SS
VFNMSUB231SS.
@ ID_INS_VRNDSCALEPS
VRNDSCALEPS.
@ ID_INS_SHA1NEXTE
SHA1NEXTE.
@ ID_INS_VPBROADCASTD
VPBROADCASTD.
@ ID_INS_VFNMSUB231PD
VFNMSUB231PD.
@ ID_INS_VFMSUB213PS
VFMSUB213PS.
@ ID_INS_VFMADDSUBPD
VFMADDSUBPD.
@ ID_INS_VFNMADDSD
VFNMADDSD.
@ ID_INS_VRSQRT14SS
VRSQRT14SS.
@ ID_INS_VPERMIL2PD
VPERMIL2PD.
@ ID_INS_PUNPCKHWD
PUNPCKHWD.
@ ID_INS_VFMSUB213PD
VFMSUB213PD.
@ ID_INS_VFMADDSUBPS
VFMADDSUBPS.
@ ID_INS_VPUNPCKHQDQ
VPUNPCKHQDQ.
@ ID_INS_PCMPESTRM
PCMPESTRM.
@ ID_INS_VCVTTPD2DQX
VCVTTPD2DQX.
@ ID_INS_VCVTPD2DQ
VCVTPD2DQ.
@ ID_INS_VFNMADD213SD
VFNMADD213SD.
@ ID_INS_VCVTTSD2SI
VCVTTSD2SI.
@ ID_INS_VRSQRT14PS
VRSQRT14PS.
@ ID_INS_VRSQRT14SD
VRSQRT14SD.
@ ID_INS_VPUNPCKHWD
VPUNPCKHWD.
@ ID_INS_SHA256MSG1
SHA256MSG1.
@ ID_INS_VFMADDSUB213PS
VFMADDSUB213PS.
@ ID_INS_VFNMADDPD
VFNMADDPD.
@ ID_INS_VMASKMOVPS
VMASKMOVPS.
@ ID_INS_VMOVNTDQA
VMOVNTDQA.
@ ID_INS_VPMACSSDQH
VPMACSSDQH.
@ ID_INS_VCVTUDQ2PD
VCVTUDQ2PD.
@ ID_INS_VFMADD132SS
VFMADD132SS.
@ ID_INS_VFMSUBADD231PD
VFMSUBADD231PD.
@ ID_INS_VAESKEYGENASSIST
VAESKEYGENASSIST.
@ ID_INS_VINSERTF32X4
VINSERTF32X4.
@ ID_INS_PMADDUBSW
PMADDUBSW.
@ ID_INS_VBROADCASTSS
VBROADCASTSS.
@ ID_INS_VFNMADDPS
VFNMADDPS.
@ ID_INS_VPSCATTERDD
VPSCATTERDD.
@ ID_INS_VFMSUB132PD
VFMSUB132PD.
@ ID_INS_SHA1RNDS4
SHA1RNDS4.
@ ID_INS_VZEROUPPER
VZEROUPPER.
@ ID_INS_VPCONFLICTD
VPCONFLICTD.
@ ID_INS_VMASKMOVPD
VMASKMOVPD.
@ ID_INS_PUNPCKLBW
PUNPCKLBW.
@ ID_INS_VSCATTERQPS
VSCATTERQPS.
@ ID_INS_VRSQRT28SD
VRSQRT28SD.
@ ID_INS_VRNDSCALESS
VRNDSCALESS.
@ ID_INS_PREFETCHW
PREFETCHW.
@ ID_INS_VPCMPESTRM
VPCMPESTRM.
@ ID_INS_VRSQRT28PS
VRSQRT28PS.
@ ID_INS_VFNMSUB213SS
VFNMSUB213SS.
@ ID_INS_VCVTPS2PD
VCVTPS2PD.
@ ID_INS_VCVTTSS2SI
VCVTTSS2SI.
@ ID_INS_VFMSUB231SS
VFMSUB231SS.
@ ID_INS_VCVTSS2SD
VCVTSS2SD.
@ ID_INS_PCMPISTRI
PCMPISTRI.
@ ID_INS_VBROADCASTI128
VBROADCASTI128.
@ ID_INS_VSCATTERPF0QPS
VSCATTERPF0QPS.
@ ID_INS_VCVTSS2SI
VCVTSS2SI.
@ ID_INS_VGATHERPF1DPS
VGATHERPF1DPS.
@ ID_INS_VPCONFLICTQ
VPCONFLICTQ.
@ ID_INS_VCVTUSI2SD
VCVTUSI2SD.
@ ID_INS_VPBROADCASTMW2D
VPBROADCASTMW2D.
@ ID_INS_VGATHERPF1QPS
VGATHERPF1QPS.
@ ID_INS_PUNPCKHBW
PUNPCKHBW.
@ ID_INS_VFMSUBADDPD
VFMSUBADDPD.
@ ID_INS_VMOVMSKPD
VMOVMSKPD.
@ ID_INS_VFMSUB132SS
VFMSUB132SS.
@ ID_INS_VINSERTF128
VINSERTF128.
@ ID_INS_VFMADD213SS
VFMADD213SS.
@ ID_INS_VCVTPD2PSX
VCVTPD2PSX.
@ ID_INS_VFNMSUBSS
VFNMSUBSS.
@ ID_INS_VFNMSUB132SD
VFNMSUB132SD.
@ ID_INS_PREFETCHT2
PREFETCHT2.
@ ID_INS_VRNDSCALESD
VRNDSCALESD.
@ ID_INS_AESKEYGENASSIST
AESKEYGENASSIST.
@ ID_INS_VGATHERQPD
VGATHERQPD.
@ ID_INS_VGATHERDPD
VGATHERDPD.
@ ID_INS_VADDSUBPS
VADDSUBPS.
@ ID_INS_VPUNPCKLBW
VPUNPCKLBW.
@ ID_INS_VBLENDVPD
VBLENDVPD.
@ ID_INS_VFMADDSUB231PD
VFMADDSUB231PD.
@ ID_INS_VPGATHERDD
VPGATHERDD.
@ ID_INS_VPSCATTERQD
VPSCATTERQD.
@ ID_INS_VFNMADD231SD
VFNMADD231SD.
@ ID_INS_PUNPCKLWD
PUNPCKLWD.
@ ID_INS_VFMADD132PD
VFMADD132PD.
@ ID_INS_VFNMSUB231SD
VFNMSUB231SD.
@ ID_INS_VMOVDQU64
VMOVDQU64.
@ ID_INS_SHA256RNDS2
SHA256RNDS2.
@ ID_INS_VPMADDUBSW
VPMADDUBSW.
@ ID_INS_VSCATTERPF1DPS
VSCATTERPF1DPS.
@ ID_INS_VFMADD231PS
VFMADD231PS.
@ ID_INS_VFMADDSUB132PS
VFMADDSUB132PS.
@ ID_INS_VCVTTPD2UDQ
VCVTTPD2UDQ.
@ ID_INS_VMOVDQU16
VMOVDQU16.
@ ID_INS_VFMSUB213SS
VFMSUB213SS.
@ ID_INS_VBLENDVPS
VBLENDVPS.
@ ID_INS_VFNMADD132PS
VFNMADD132PS.
@ ID_INS_VMOVMSKPS
VMOVMSKPS.
@ ID_INS_VFNMSUB132PD
VFNMSUB132PD.
@ ID_INS_VFNMSUB213PD
VFNMSUB213PD.
@ ID_INS_CMPXCHG8B
CMPXCHG8B.
@ ID_INS_VAESENCLAST
VAESENCLAST.
@ ID_INS_VSCATTERDPD
VSCATTERDPD.
@ ID_INS_PREFETCHNTA
PREFETCHNTA.
@ ID_INS_VPBROADCASTMB2Q
VPBROADCASTMB2Q.
@ ID_INS_VCVTPS2DQ
VCVTPS2DQ.
@ ID_INS_VMOVDQA32
VMOVDQA32.
@ ID_INS_VCVTSI2SS
VCVTSI2SS.
@ ID_INS_VEXTRACTPS
VEXTRACTPS.
@ ID_INS_AESENCLAST
AESENCLAST.
@ ID_INS_PHMINPOSUW
PHMINPOSUW.
@ ID_INS_VFNMADD231SS
VFNMADD231SS.
@ ID_INS_PUNPCKLQDQ
PUNPCKLQDQ.
@ ID_INS_VFNMSUB213SD
VFNMSUB213SD.
@ ID_INS_VPCLMULQDQ
VPCLMULQDQ.
@ ID_INS_VRSQRT14PD
VRSQRT14PD.
@ ID_INS_VRSQRT28SS
VRSQRT28SS.
@ ID_INS_VCVTUSI2SS
VCVTUSI2SS.
@ ID_INS_VFMSUB231PS
VFMSUB231PS.
@ ID_INS_VADDSUBPD
VADDSUBPD.
@ ID_INS_VBROADCASTI64X4
VBROADCASTI64X4.
@ ID_INS_VFMSUB132SD
VFMSUB132SD.
@ ID_INS_VBROADCASTSD
VBROADCASTSD.
@ ID_INS_VSCATTERPF0DPD
VSCATTERPF0DPD.
@ ID_INS_VFMADD132PS
VFMADD132PS.
@ ID_INS_VPUNPCKHBW
VPUNPCKHBW.
@ ID_INS_VBROADCASTF128
VBROADCASTF128.
@ ID_INS_PCLMULQDQ
PCLMULQDQ.
@ ID_INS_VBLENDMPS
VBLENDMPS.
@ ID_INS_VFMADD213PD
VFMADD213PD.
@ ID_INS_XSAVEOPT64
XSAVEOPT64.
@ ID_INS_VSCATTERPF1DPD
VSCATTERPF1DPD.
@ ID_INS_CVTTSD2SI
CVTTSD2SI.
@ ID_INS_VFMSUB132PS
VFMSUB132PS.
@ ID_INS_VMASKMOVDQU
VMASKMOVDQU.
@ ID_INS_VPERM2I128
VPERM2I128.
@ ID_INS_PREFETCHT0
PREFETCHT0.
@ ID_INS_VINSERTI128
VINSERTI128.
@ ID_INS_VPGATHERDQ
VPGATHERDQ.
@ ID_INS_CVTTPD2DQ
CVTTPD2DQ.
@ ID_INS_VPMADCSSWD
VPMADCSSWD.
@ ID_INS_VCVTPS2PH
VCVTPS2PH.
@ ID_INS_VFNMSUBPD
VFNMSUBPD.
@ ID_INS_VFNMSUBPS
VFNMSUBPS.
@ ID_INS_VFMADD231SD
VFMADD231SD.
@ ID_INS_CMPXCHG16B
CMPXCHG16B.
@ ID_INS_VCVTPD2PS
VCVTPD2PS.
@ ID_INS_VEXTRACTF64X4
VEXTRACTF64X4.
@ ID_INS_VPCMPISTRI
VPCMPISTRI.
@ ID_INS_CVTTSS2SI
CVTTSS2SI.
@ ID_INS_VGATHERPF1QPD
VGATHERPF1QPD.
@ ID_INS_VPERMIL2PS
VPERMIL2PS.
@ ID_INS_VCVTUDQ2PS
VCVTUDQ2PS.
@ ID_INS_VCVTPH2PS
VCVTPH2PS.
@ ID_INS_VPBROADCASTW
VPBROADCASTW.
@ ID_INS_VINSERTPS
VINSERTPS.
@ ID_INS_VINSERTF64X4
VINSERTF64X4.
@ ID_INS_VCVTPS2UDQ
VCVTPS2UDQ.
@ ID_INS_VCVTSI2SD
VCVTSI2SD.
@ ID_INS_VFNMSUB132PS
VFNMSUB132PS.
@ ID_INS_PUNPCKHDQ
PUNPCKHDQ.
@ ID_INS_VBROADCASTI32X4
VBROADCASTI32X4.
@ ID_INS_VMOVDQU32
VMOVDQU32.
@ ID_INS_SHA256MSG2
SHA256MSG2.
@ ID_INS_VCVTSD2USI
VCVTSD2USI.
@ ID_INS_VPUNPCKLDQ
VPUNPCKLDQ.
@ ID_INS_VFMSUBADDPS
VFMSUBADDPS.
@ ID_INS_VPBROADCASTQ
VPBROADCASTQ.
@ ID_INS_VFNMSUB213PS
VFNMSUB213PS.
@ ID_INS_VCVTTPD2DQ
VCVTTPD2DQ.
@ ID_INS_VFMADD213PS
VFMADD213PS.
@ ID_INS_VFNMADD213SS
VFNMADD213SS.
@ ID_INS_VSCATTERPF1QPS
VSCATTERPF1QPS.
@ ID_INS_VCVTDQ2PS
VCVTDQ2PS.
@ ID_INS_VCVTTSS2USI
VCVTTSS2USI.
@ ID_INS_VRSQRT28PD
VRSQRT28PD.
@ ID_INS_VFNMADD132PD
VFNMADD132PD.
@ ID_INS_VSCATTERPF0DPS
VSCATTERPF0DPS.
@ ID_INS_VFMADDSUB231PS
VFMADDSUB231PS.
@ ID_INS_VCVTDQ2PD
VCVTDQ2PD.
@ ID_INS_VPGATHERQQ
VPGATHERQQ.
@ ID_INS_VPSCATTERDQ
VPSCATTERDQ.
@ ID_INS_VFMSUBADD132PD
VFMSUBADD132PD.
@ ID_INS_VCVTPD2DQX
VCVTPD2DQX.
@ ID_INS_VCVTSD2SI
VCVTSD2SI.
@ ID_INS_VGATHERPF0QPS
VGATHERPF0QPS.
@ ID_INS_VGATHERDPS
VGATHERDPS.
@ ID_INS_VAESDECLAST
VAESDECLAST.
@ ID_INS_VFMADD132SD
VFMADD132SD.
@ ID_INS_VPCMPISTRM
VPCMPISTRM.
@ ID_INS_VSCATTERPF0QPD
VSCATTERPF0QPD.
@ ID_INS_VPUNPCKLWD
VPUNPCKLWD.
@ ID_INS_PCMPISTRM
PCMPISTRM.
@ ID_INS_VEXTRACTF128
VEXTRACTF128.
@ ID_INS_VFMADDSUB213PD
VFMADDSUB213PD.
@ ID_INS_VFNMSUB132SS
VFNMSUB132SS.
@ ID_INS_PUNPCKLDQ
PUNPCKLDQ.
@ ID_INS_VCVTSD2SS
VCVTSD2SS.
@ ID_INS_VFMADDSUB132PD
VFMADDSUB132PD.
@ ID_INS_LAST_ITEM
must be the last item
@ ID_INS_VFNMADD231PS
VFNMADD231PS.
@ ID_INS_MASKMOVDQU
MASKMOVDQU.
@ ID_INS_VFMSUBADD132PS
VFMSUBADD132PS.
@ ID_INS_VFMADD231SS
VFMADD231SS.
@ ID_INS_VINSERTI32X4
VINSERTI32X4.
@ ID_INS_CVTTPS2DQ
CVTTPS2DQ.
@ ID_INS_VFMADD213SD
VFMADD213SD.
@ ID_INS_PCMPESTRI
PCMPESTRI.
@ ID_INS_VEXTRACTI128
VEXTRACTI128.
@ ID_INS_VEXTRACTI64X4
VEXTRACTI64X4.
@ ID_INS_VINSERTI64X4
VINSERTI64X4.
@ ID_INS_VCVTSS2USI
VCVTSS2USI.
@ ID_INS_VGATHERPF0DPS
VGATHERPF0DPS.
@ ID_INS_CVTTPD2PI
CVTTPD2PI.
@ ID_INS_VFMADD231PD
VFMADD231PD.
@ ID_INS_VPUNPCKLQDQ
VPUNPCKLQDQ.
@ ID_INS_FXRSTOR64
FXRSTOR64.