1 //! \file
2 /*
3 **  Copyright (C) - Triton
4 **
5 **  This program is under the terms of the Apache License 2.0.
6 */
7 
8 #ifndef TRITON_X86SEMANTICS_H
9 #define TRITON_X86SEMANTICS_H
10 
11 #include <triton/architecture.hpp>
12 #include <triton/dllexport.hpp>
13 #include <triton/instruction.hpp>
14 #include <triton/modes.hpp>
15 #include <triton/semanticsInterface.hpp>
16 #include <triton/symbolicEngine.hpp>
17 #include <triton/taintEngine.hpp>
18 
19 
20 
21 //! The Triton namespace
22 namespace triton {
23 /*!
24  *  \addtogroup triton
25  *  @{
26  */
27 
28   //! The Architecture namespace
29   namespace arch {
30   /*!
31    *  \ingroup triton
32    *  \addtogroup arch
33    *  @{
34    */
35 
36     //! The x86 namespace
37     namespace x86 {
38     /*!
39      *  \ingroup arch
40      *  \addtogroup x86
41      *  @{
42      */
43 
44       /*! \class x86Semantics
45           \brief The x86 ISA semantics. */
46       class x86Semantics : public SemanticsInterface {
47         private:
48           //! Architecture API
49           triton::arch::Architecture* architecture;
50 
51           //! Symbolic Engine API
52           triton::engines::symbolic::SymbolicEngine* symbolicEngine;
53 
54           //! Taint Engine API
55           triton::engines::taint::TaintEngine* taintEngine;
56 
57           //! The Modes API
58           triton::modes::SharedModes modes;
59 
60           //! The AST Context API
61           triton::ast::SharedAstContext astCtxt;
62 
63         public:
64           //! Constructor.
65           TRITON_EXPORT x86Semantics(triton::arch::Architecture* architecture,
66                                      triton::engines::symbolic::SymbolicEngine* symbolicEngine,
67                                      triton::engines::taint::TaintEngine* taintEngine,
68                                      const triton::modes::SharedModes& modes,
69                                      const triton::ast::SharedAstContext& astCtxt);
70 
71           //! Builds the semantics of the instruction. Returns true if the instruction is supported.
72           TRITON_EXPORT bool buildSemantics(triton::arch::Instruction& inst);
73 
74         private:
75           //! Aligns the stack (add). Returns the new stack value.
76           triton::uint64 alignAddStack_s(triton::arch::Instruction& inst, triton::uint32 delta);
77 
78           //! Aligns the stack (sub). Returns the new stack value.
79           triton::uint64 alignSubStack_s(triton::arch::Instruction& inst, triton::uint32 delta);
80 
81           //! Clears a flag.
82           void clearFlag_s(triton::arch::Instruction& inst, const triton::arch::Register& flag, std::string comment="");
83 
84           //! Sets a flag.
85           void setFlag_s(triton::arch::Instruction& inst, const triton::arch::Register& flag, std::string comment="");
86 
87           //! Sets a register as undefined.
88           void undefined_s(triton::arch::Instruction& inst, const triton::arch::Register& reg);
89 
90           //! Control flow semantics. Used to represent IP.
91           void controlFlow_s(triton::arch::Instruction& inst);
92 
93           //! The AF semantics.
94           void af_s(triton::arch::Instruction& inst,
95                     const triton::engines::symbolic::SharedSymbolicExpression& parent,
96                     triton::arch::OperandWrapper& dst,
97                     const triton::ast::SharedAbstractNode& op1,
98                     const triton::ast::SharedAbstractNode& op2,
99                     bool vol=false);
100 
101           //! The AF semantics.
102           void afAaa_s(triton::arch::Instruction& inst,
103                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
104                        triton::arch::OperandWrapper& dst,
105                        const triton::ast::SharedAbstractNode& op1,
106                        const triton::ast::SharedAbstractNode& op3,
107                        bool vol=false);
108 
109           //! The AF semantics.
110           void afNeg_s(triton::arch::Instruction& inst,
111                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
112                        triton::arch::OperandWrapper& dst,
113                        const triton::ast::SharedAbstractNode& op1,
114                        bool vol=false);
115 
116           //! The CF semantics.
117           void cfAaa_s(triton::arch::Instruction& inst,
118                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
119                        triton::arch::OperandWrapper& dst,
120                        const triton::ast::SharedAbstractNode& op1,
121                        const triton::ast::SharedAbstractNode& op3,
122                        bool vol=false);
123 
124           //! The CF semantics.
125           void cfAdd_s(triton::arch::Instruction& inst,
126                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
127                        triton::arch::OperandWrapper& dst,
128                        const triton::ast::SharedAbstractNode& op1,
129                        const triton::ast::SharedAbstractNode& op2,
130                        bool vol=false);
131 
132           //! The CF semantics.
133           void cfBlsi_s(triton::arch::Instruction& inst,
134                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
135                         triton::arch::OperandWrapper& dst,
136                         const triton::ast::SharedAbstractNode& op1,
137                         bool vol=false);
138 
139           //! The CF semantics.
140           void cfBlsmsk_s(triton::arch::Instruction& inst,
141                           const triton::engines::symbolic::SharedSymbolicExpression& parent,
142                           triton::arch::OperandWrapper& dst,
143                           const triton::ast::SharedAbstractNode& op1,
144                           bool vol=false);
145 
146           //! The CF semantics.
147           void cfBlsr_s(triton::arch::Instruction& inst,
148                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
149                         triton::arch::OperandWrapper& dst,
150                         const triton::ast::SharedAbstractNode& op1,
151                         bool vol=false);
152 
153           //! The CF semantics.
154           void cfImul_s(triton::arch::Instruction& inst,
155                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
156                         triton::arch::OperandWrapper& dst,
157                         const triton::ast::SharedAbstractNode& op1,
158                         const triton::ast::SharedAbstractNode& res,
159                         bool vol=false);
160 
161           //! The CF semantics.
162           void cfLzcnt_s(triton::arch::Instruction& inst,
163                          const triton::engines::symbolic::SharedSymbolicExpression& parent,
164                          triton::arch::OperandWrapper& src,
165                          const triton::ast::SharedAbstractNode& op1,
166                          bool vol=false);
167 
168           //! The CF semantics.
169           void cfMul_s(triton::arch::Instruction& inst,
170                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
171                        triton::arch::OperandWrapper& dst,
172                        const triton::ast::SharedAbstractNode& op1,
173                        bool vol=false);
174 
175           //! The CF semantics.
176           void cfNeg_s(triton::arch::Instruction& inst,
177                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
178                        triton::arch::OperandWrapper& dst,
179                        const triton::ast::SharedAbstractNode& op1,
180                        bool vol=false);
181 
182           //! The CF semantics.
183           void cfPtest_s(triton::arch::Instruction& inst,
184                          const triton::engines::symbolic::SharedSymbolicExpression& parent,
185                          triton::arch::OperandWrapper& dst,
186                          bool vol=false);
187 
188           //! The CF semantics.
189           void cfRcl_s(triton::arch::Instruction& inst,
190                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
191                        const triton::ast::SharedAbstractNode& result,
192                        const triton::ast::SharedAbstractNode& op2,
193                        bool vol=false);
194 
195           //! The CF semantics.
196           void cfRcr_s(triton::arch::Instruction& inst,
197                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
198                        triton::arch::OperandWrapper& dst,
199                        const triton::ast::SharedAbstractNode& result,
200                        const triton::ast::SharedAbstractNode& op2,
201                        bool vol=false);
202 
203           //! The CF semantics.
204           void cfRol_s(triton::arch::Instruction& inst,
205                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
206                        triton::arch::OperandWrapper& dst,
207                        const triton::ast::SharedAbstractNode& op2,
208                        bool vol=false);
209 
210           //! The CF semantics.
211           void cfRor_s(triton::arch::Instruction& inst,
212                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
213                        triton::arch::OperandWrapper& dst,
214                        const triton::ast::SharedAbstractNode& op2,
215                        bool vol=false);
216 
217           //! The CF semantics.
218           void cfSar_s(triton::arch::Instruction& inst,
219                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
220                        triton::arch::OperandWrapper& dst,
221                        const triton::ast::SharedAbstractNode& op1,
222                        const triton::ast::SharedAbstractNode& op2,
223                        bool vol=false);
224 
225           //! The CF semantics.
226           void cfShl_s(triton::arch::Instruction& inst,
227                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
228                        triton::arch::OperandWrapper& dst,
229                        const triton::ast::SharedAbstractNode& op1,
230                        const triton::ast::SharedAbstractNode& op2,
231                        bool vol=false);
232 
233           //! The CF semantics.
234           void cfShld_s(triton::arch::Instruction& inst,
235                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
236                         triton::arch::OperandWrapper& dst,
237                         const triton::ast::SharedAbstractNode& op1,
238                         const triton::ast::SharedAbstractNode& op2,
239                         const triton::ast::SharedAbstractNode& op3,
240                         bool vol=false);
241 
242           //! The CF semantics.
243           void cfShr_s(triton::arch::Instruction& inst,
244                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
245                        triton::arch::OperandWrapper& dst,
246                        const triton::ast::SharedAbstractNode& op1,
247                        const triton::ast::SharedAbstractNode& op2,
248                        bool vol=false);
249 
250           //! The CF semantics.
251           void cfShrd_s(triton::arch::Instruction& inst,
252                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
253                         triton::arch::OperandWrapper& dst,
254                         const triton::ast::SharedAbstractNode& op1,
255                         const triton::ast::SharedAbstractNode& op2,
256                         const triton::ast::SharedAbstractNode& op3,
257                         bool vol=false);
258 
259           //! The CF semantics.
260           void cfSub_s(triton::arch::Instruction& inst,
261                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
262                        triton::arch::OperandWrapper& dst,
263                        const triton::ast::SharedAbstractNode& op1,
264                        const triton::ast::SharedAbstractNode& op2,
265                        bool vol=false);
266 
267           //! The CF semantics.
268           void cfTzcnt_s(triton::arch::Instruction& inst,
269                          const triton::engines::symbolic::SharedSymbolicExpression& parent,
270                          triton::arch::OperandWrapper& src,
271                          const triton::ast::SharedAbstractNode& op1,
272                          bool vol=false);
273 
274           //! The OF semantics.
275           void ofAdd_s(triton::arch::Instruction& inst,
276                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
277                        triton::arch::OperandWrapper& dst,
278                        const triton::ast::SharedAbstractNode& op1,
279                        const triton::ast::SharedAbstractNode& op2,
280                        bool vol=false);
281 
282           //! The OF semantics.
283           void ofImul_s(triton::arch::Instruction& inst,
284                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
285                         triton::arch::OperandWrapper& dst,
286                         const triton::ast::SharedAbstractNode& op1,
287                         const triton::ast::SharedAbstractNode& res,
288                         bool vol=false);
289 
290           //! The OF semantics.
291           void ofMul_s(triton::arch::Instruction& inst,
292                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
293                        triton::arch::OperandWrapper& dst,
294                        const triton::ast::SharedAbstractNode& op1,
295                        bool vol=false);
296 
297           //! The OF semantics.
298           void ofNeg_s(triton::arch::Instruction& inst,
299                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
300                        triton::arch::OperandWrapper& dst,
301                        const triton::ast::SharedAbstractNode& op1,
302                        bool vol=false);
303 
304           //! The OF semantics.
305           void ofRol_s(triton::arch::Instruction& inst,
306                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
307                        triton::arch::OperandWrapper& dst,
308                        const triton::ast::SharedAbstractNode& op2,
309                        bool vol=false);
310 
311           //! The OF semantics.
312           void ofRor_s(triton::arch::Instruction& inst,
313                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
314                        triton::arch::OperandWrapper& dst,
315                        const triton::ast::SharedAbstractNode& op2,
316                        bool vol=false);
317 
318           //! The OF semantics.
319           void ofRcr_s(triton::arch::Instruction& inst,
320                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
321                        triton::arch::OperandWrapper& dst,
322                        const triton::ast::SharedAbstractNode& op1,
323                        const triton::ast::SharedAbstractNode& op2,
324                        bool vol=false);
325 
326           //! The OF semantics.
327           void ofSar_s(triton::arch::Instruction& inst,
328                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
329                        triton::arch::OperandWrapper& dst,
330                        const triton::ast::SharedAbstractNode& op2,
331                        bool vol=false);
332 
333           //! The OF semantics.
334           void ofShl_s(triton::arch::Instruction& inst,
335                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
336                        triton::arch::OperandWrapper& dst,
337                        const triton::ast::SharedAbstractNode& op1,
338                        const triton::ast::SharedAbstractNode& op2,
339                        bool vol=false);
340 
341           //! The OF semantics.
342           void ofShld_s(triton::arch::Instruction& inst,
343                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
344                         triton::arch::OperandWrapper& dst,
345                         const triton::ast::SharedAbstractNode& op1,
346                         const triton::ast::SharedAbstractNode& op2,
347                         const triton::ast::SharedAbstractNode& op3,
348                         bool vol=false);
349 
350           //! The OF semantics.
351           void ofShr_s(triton::arch::Instruction& inst,
352                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
353                        triton::arch::OperandWrapper& dst,
354                        const triton::ast::SharedAbstractNode& op1,
355                        const triton::ast::SharedAbstractNode& op2,
356                        bool vol=false);
357 
358           //! The OF semantics.
359           void ofShrd_s(triton::arch::Instruction& inst,
360                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
361                         triton::arch::OperandWrapper& dst,
362                         const triton::ast::SharedAbstractNode& op1,
363                         const triton::ast::SharedAbstractNode& op2,
364                         const triton::ast::SharedAbstractNode& op3,
365                         bool vol=false);
366 
367           //! The OF semantics.
368           void ofSub_s(triton::arch::Instruction& inst,
369                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
370                        triton::arch::OperandWrapper& dst,
371                        const triton::ast::SharedAbstractNode& op1,
372                        const triton::ast::SharedAbstractNode& op2,
373                        bool vol=false);
374 
375           //! The PF semantics.
376           void pf_s(triton::arch::Instruction& inst,
377                     const triton::engines::symbolic::SharedSymbolicExpression& parent,
378                     triton::arch::OperandWrapper& dst,
379                     bool vol=false);
380 
381           //! The PF semantics.
382           void pfShl_s(triton::arch::Instruction& inst,
383                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
384                        triton::arch::OperandWrapper& dst,
385                        const triton::ast::SharedAbstractNode& op2,
386                        bool vol=false);
387 
388           //! The SF semantics.
389           void sf_s(triton::arch::Instruction& inst,
390                     const triton::engines::symbolic::SharedSymbolicExpression& parent,
391                     triton::arch::OperandWrapper& dst,
392                     bool vol=false);
393 
394           //! The SF semantics.
395           void sfShl_s(triton::arch::Instruction& inst,
396                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
397                        triton::arch::OperandWrapper& dst,
398                        const triton::ast::SharedAbstractNode& op2,
399                        bool vol=false);
400 
401           //! The SF semantics.
402           void sfShld_s(triton::arch::Instruction& inst,
403                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
404                         triton::arch::OperandWrapper& dst,
405                         const triton::ast::SharedAbstractNode& op1,
406                         const triton::ast::SharedAbstractNode& op2,
407                         const triton::ast::SharedAbstractNode& op3,
408                         bool vol=false);
409 
410           //! The SF semantics.
411           void sfShrd_s(triton::arch::Instruction& inst,
412                         const triton::engines::symbolic::SharedSymbolicExpression& parent,
413                         triton::arch::OperandWrapper& dst,
414                         const triton::ast::SharedAbstractNode& op1,
415                         const triton::ast::SharedAbstractNode& op2,
416                         const triton::ast::SharedAbstractNode& op3,
417                         bool vol=false);
418 
419           //! The ZF semantics.
420           void zf_s(triton::arch::Instruction& inst,
421                     const triton::engines::symbolic::SharedSymbolicExpression& parent,
422                     triton::arch::OperandWrapper& dst,
423                     bool vol=false);
424 
425           //! The ZF semantics.
426           void zfBsf_s(triton::arch::Instruction& inst,
427                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
428                        triton::arch::OperandWrapper& src,
429                        const triton::ast::SharedAbstractNode& op2,
430                        bool vol=false);
431 
432           //! The ZF semantics.
433           void zfShl_s(triton::arch::Instruction& inst,
434                        const triton::engines::symbolic::SharedSymbolicExpression& parent,
435                        triton::arch::OperandWrapper& dst,
436                        const triton::ast::SharedAbstractNode& op2,
437                        bool vol=false);
438 
439           //! The AAA semantics.
440           void aaa_s(triton::arch::Instruction& inst);
441 
442           //! The AAD semantics.
443           void aad_s(triton::arch::Instruction& inst);
444 
445           //! The AAM semantics.
446           void aam_s(triton::arch::Instruction& inst);
447 
448           //! The AAS semantics.
449           void aas_s(triton::arch::Instruction& inst);
450 
451           //! The ADC semantics.
452           void adc_s(triton::arch::Instruction& inst);
453 
454           //! The ADCX semantics.
455           void adcx_s(triton::arch::Instruction& inst);
456 
457           //! The ADD semantics.
458           void add_s(triton::arch::Instruction& inst);
459 
460           //! The AND semantics.
461           void and_s(triton::arch::Instruction& inst);
462 
463           //! The ANDN semantics.
464           void andn_s(triton::arch::Instruction& inst);
465 
466           //! The ANDNPD semantics.
467           void andnpd_s(triton::arch::Instruction& inst);
468 
469           //! The ANDNPS semantics.
470           void andnps_s(triton::arch::Instruction& inst);
471 
472           //! The ANDPD semantics.
473           void andpd_s(triton::arch::Instruction& inst);
474 
475           //! The ANDPS semantics.
476           void andps_s(triton::arch::Instruction& inst);
477 
478           //! The BEXTR semantics.
479           void bextr_s(triton::arch::Instruction& inst);
480 
481           //! The BLSI semantics.
482           void blsi_s(triton::arch::Instruction& inst);
483 
484           //! The BLSMSK semantics.
485           void blsmsk_s(triton::arch::Instruction& inst);
486 
487           //! The BLSR semantics.
488           void blsr_s(triton::arch::Instruction& inst);
489 
490           //! The BSF semantics.
491           void bsf_s(triton::arch::Instruction& inst);
492 
493           //! The BSR semantics.
494           void bsr_s(triton::arch::Instruction& inst);
495 
496           //! The BSWAP semantics.
497           void bswap_s(triton::arch::Instruction& inst);
498 
499           //! The BT semantics.
500           void bt_s(triton::arch::Instruction& inst);
501 
502           //! The BTC semantics.
503           void btc_s(triton::arch::Instruction& inst);
504 
505           //! The BTR semantics.
506           void btr_s(triton::arch::Instruction& inst);
507 
508           //! The BTS semantics.
509           void bts_s(triton::arch::Instruction& inst);
510 
511           //! The CALL semantics.
512           void call_s(triton::arch::Instruction& inst);
513 
514           //! The CBW semantics.
515           void cbw_s(triton::arch::Instruction& inst);
516 
517           //! The CDQ semantics.
518           void cdq_s(triton::arch::Instruction& inst);
519 
520           //! The CDQE semantics.
521           void cdqe_s(triton::arch::Instruction& inst);
522 
523           //! The CLC semantics.
524           void clc_s(triton::arch::Instruction& inst);
525 
526           //! The CLD semantics.
527           void cld_s(triton::arch::Instruction& inst);
528 
529           //! The CLFLUSH semantics.
530           void clflush_s(triton::arch::Instruction& inst);
531 
532           //! The CLTS semantics.
533           void clts_s(triton::arch::Instruction& inst);
534 
535           //! The CLI semantics.
536           void cli_s(triton::arch::Instruction& inst);
537 
538           //! The CMC semantics.
539           void cmc_s(triton::arch::Instruction& inst);
540 
541           //! The CMOVA semantics.
542           void cmova_s(triton::arch::Instruction& inst);
543 
544           //! The CMOVAE semantics.
545           void cmovae_s(triton::arch::Instruction& inst);
546 
547           //! The CMOVB semantics.
548           void cmovb_s(triton::arch::Instruction& inst);
549 
550           //! The CMOVBE semantics.
551           void cmovbe_s(triton::arch::Instruction& inst);
552 
553           //! The CMOVE semantics.
554           void cmove_s(triton::arch::Instruction& inst);
555 
556           //! The CMOVG semantics.
557           void cmovg_s(triton::arch::Instruction& inst);
558 
559           //! The CMOVGE semantics.
560           void cmovge_s(triton::arch::Instruction& inst);
561 
562           //! The CMOVL semantics.
563           void cmovl_s(triton::arch::Instruction& inst);
564 
565           //! The CMOVLE semantics.
566           void cmovle_s(triton::arch::Instruction& inst);
567 
568           //! The CMOVNE semantics.
569           void cmovne_s(triton::arch::Instruction& inst);
570 
571           //! The CMOVNO semantics.
572           void cmovno_s(triton::arch::Instruction& inst);
573 
574           //! The CMOVNP semantics.
575           void cmovnp_s(triton::arch::Instruction& inst);
576 
577           //! The CMOVNS semantics.
578           void cmovns_s(triton::arch::Instruction& inst);
579 
580           //! The CMOVO semantics.
581           void cmovo_s(triton::arch::Instruction& inst);
582 
583           //! The CMOVP semantics.
584           void cmovp_s(triton::arch::Instruction& inst);
585 
586           //! The CMOVS semantics.
587           void cmovs_s(triton::arch::Instruction& inst);
588 
589           //! The CMP semantics.
590           void cmp_s(triton::arch::Instruction& inst);
591 
592           //! The CMPSB semantics.
593           void cmpsb_s(triton::arch::Instruction& inst);
594 
595           //! The CMPSD semantics.
596           void cmpsd_s(triton::arch::Instruction& inst);
597 
598           //! The CMPSQ semantics.
599           void cmpsq_s(triton::arch::Instruction& inst);
600 
601           //! The CMPSW semantics.
602           void cmpsw_s(triton::arch::Instruction& inst);
603 
604           //! The CMPXCHG semantics.
605           void cmpxchg_s(triton::arch::Instruction& inst);
606 
607           //! The CMPXCHG16B semantics.
608           void cmpxchg16b_s(triton::arch::Instruction& inst);
609 
610           //! The CMPXCHG8B semantics.
611           void cmpxchg8b_s(triton::arch::Instruction& inst);
612 
613           //! The CPUID semantics.
614           void cpuid_s(triton::arch::Instruction& inst);
615 
616           //! The CQO semantics.
617           void cqo_s(triton::arch::Instruction& inst);
618 
619           //! The CWD semantics.
620           void cwd_s(triton::arch::Instruction& inst);
621 
622           //! The CWDE semantics.
623           void cwde_s(triton::arch::Instruction& inst);
624 
625           //! The DEC semantics.
626           void dec_s(triton::arch::Instruction& inst);
627 
628           //! The DIV semantics.
629           void div_s(triton::arch::Instruction& inst);
630 
631           //! The ENDBR32 semantics.
632           void endbr32_s(triton::arch::Instruction& inst);
633 
634           //! The ENDBR64 semantics.
635           void endbr64_s(triton::arch::Instruction& inst);
636 
637           //! The EXTRACTPS semantics.
638           void extractps_s(triton::arch::Instruction& inst);
639 
640           //! The IDIV semantics.
641           void idiv_s(triton::arch::Instruction& inst);
642 
643           //! The IMUL semantics.
644           void imul_s(triton::arch::Instruction& inst);
645 
646           //! The INC semantics.
647           void inc_s(triton::arch::Instruction& inst);
648 
649           //! The INVD semantics.
650           void invd_s(triton::arch::Instruction& inst);
651 
652           //! The INVLPG semantics.
653           void invlpg_s(triton::arch::Instruction& inst);
654 
655           //! The JA semantics.
656           void ja_s(triton::arch::Instruction& inst);
657 
658           //! The JAE semantics.
659           void jae_s(triton::arch::Instruction& inst);
660 
661           //! The JB semantics.
662           void jb_s(triton::arch::Instruction& inst);
663 
664           //! The JBE semantics.
665           void jbe_s(triton::arch::Instruction& inst);
666 
667           //! The JCXZ semantics.
668           void jcxz_s(triton::arch::Instruction& inst);
669 
670           //! The JE semantics.
671           void je_s(triton::arch::Instruction& inst);
672 
673           //! The JECXZ semantics.
674           void jecxz_s(triton::arch::Instruction& inst);
675 
676           //! The JG semantics.
677           void jg_s(triton::arch::Instruction& inst);
678 
679           //! The JGE semantics.
680           void jge_s(triton::arch::Instruction& inst);
681 
682           //! The JL semantics.
683           void jl_s(triton::arch::Instruction& inst);
684 
685           //! The JLE semantics.
686           void jle_s(triton::arch::Instruction& inst);
687 
688           //! The JMP semantics.
689           void jmp_s(triton::arch::Instruction& inst);
690 
691           //! The JNE semantics.
692           void jne_s(triton::arch::Instruction& inst);
693 
694           //! The JNO semantics.
695           void jno_s(triton::arch::Instruction& inst);
696 
697           //! The JNP semantics.
698           void jnp_s(triton::arch::Instruction& inst);
699 
700           //! The JNS semantics.
701           void jns_s(triton::arch::Instruction& inst);
702 
703           //! The JO semantics.
704           void jo_s(triton::arch::Instruction& inst);
705 
706           //! The JP semantics.
707           void jp_s(triton::arch::Instruction& inst);
708 
709           //! The JRCXZ semantics.
710           void jrcxz_s(triton::arch::Instruction& inst);
711 
712           //! The JS semantics.
713           void js_s(triton::arch::Instruction& inst);
714 
715           //! The LAHF semantics.
716           void lahf_s(triton::arch::Instruction& inst);
717 
718           //! The LDDQU semantics.
719           void lddqu_s(triton::arch::Instruction& inst);
720 
721           //! The LDMXCSR semantics.
722           void ldmxcsr_s(triton::arch::Instruction& inst);
723 
724           //! The LEA semantics.
725           void lea_s(triton::arch::Instruction& inst);
726 
727           //! The LEAVE semantics.
728           void leave_s(triton::arch::Instruction& inst);
729 
730           //! The LFENCE semantics.
731           void lfence_s(triton::arch::Instruction& inst);
732 
733           //! The LODSB semantics.
734           void lodsb_s(triton::arch::Instruction& inst);
735 
736           //! The LODSD semantics.
737           void lodsd_s(triton::arch::Instruction& inst);
738 
739           //! The LODSQ semantics.
740           void lodsq_s(triton::arch::Instruction& inst);
741 
742           //! The LODSW semantics.
743           void lodsw_s(triton::arch::Instruction& inst);
744 
745           //! The LOOP semantics.
746           void loop_s(triton::arch::Instruction& inst);
747 
748           //! The LZCNT semantics.
749           void lzcnt_s(triton::arch::Instruction& inst);
750 
751           //! The MFENCE semantics.
752           void mfence_s(triton::arch::Instruction& inst);
753 
754           //! The MOV semantics.
755           void mov_s(triton::arch::Instruction& inst);
756 
757           //! The MOVABS semantics.
758           void movabs_s(triton::arch::Instruction& inst);
759 
760           //! The MOVAPD semantics.
761           void movapd_s(triton::arch::Instruction& inst);
762 
763           //! The MOVAPS semantics.
764           void movaps_s(triton::arch::Instruction& inst);
765 
766           //! The MOVD semantics.
767           void movd_s(triton::arch::Instruction& inst);
768 
769           //! The MOVDDUP semantics.
770           void movddup_s(triton::arch::Instruction& inst);
771 
772           //! The MOVDQ2Q semantics.
773           void movdq2q_s(triton::arch::Instruction& inst);
774 
775           //! The MOVDQA semantics.
776           void movdqa_s(triton::arch::Instruction& inst);
777 
778           //! The MOVDQU semantics.
779           void movdqu_s(triton::arch::Instruction& inst);
780 
781           //! The MOVHLPS semantics.
782           void movhlps_s(triton::arch::Instruction& inst);
783 
784           //! The MOVHPD semantics.
785           void movhpd_s(triton::arch::Instruction& inst);
786 
787           //! The MOVHPS semantics.
788           void movhps_s(triton::arch::Instruction& inst);
789 
790           //! The MOVLHPS semantics.
791           void movlhps_s(triton::arch::Instruction& inst);
792 
793           //! The MOVLPD semantics.
794           void movlpd_s(triton::arch::Instruction& inst);
795 
796           //! The MOVLPS semantics.
797           void movlps_s(triton::arch::Instruction& inst);
798 
799           //! The MOVMSKPD semantics.
800           void movmskpd_s(triton::arch::Instruction& inst);
801 
802           //! The MOVMSKPS semantics.
803           void movmskps_s(triton::arch::Instruction& inst);
804 
805           //! The MOVNTDQ semantics.
806           void movntdq_s(triton::arch::Instruction& inst);
807 
808           //! The MOVNTI semantics.
809           void movnti_s(triton::arch::Instruction& inst);
810 
811           //! The MOVNTPD semantics.
812           void movntpd_s(triton::arch::Instruction& inst);
813 
814           //! The MOVNTPS semantics.
815           void movntps_s(triton::arch::Instruction& inst);
816 
817           //! The MOVNTQ semantics.
818           void movntq_s(triton::arch::Instruction& inst);
819 
820           //! The MOVSHDUP semantics.
821           void movshdup_s(triton::arch::Instruction& inst);
822 
823           //! The MOVSLDUP semantics.
824           void movsldup_s(triton::arch::Instruction& inst);
825 
826           //! The MOVQ semantics.
827           void movq_s(triton::arch::Instruction& inst);
828 
829           //! The MOVQ2DQ semantics.
830           void movq2dq_s(triton::arch::Instruction& inst);
831 
832           //! The MOVSB semantics.
833           void movsb_s(triton::arch::Instruction& inst);
834 
835           //! The MOVSD semantics.
836           void movsd_s(triton::arch::Instruction& inst);
837 
838           //! The MOVUPD semantics.
839           void movupd_s(triton::arch::Instruction& inst);
840 
841           //! The MOVUPS semantics.
842           void movups_s(triton::arch::Instruction& inst);
843 
844           //! The MOVSQ semantics.
845           void movsq_s(triton::arch::Instruction& inst);
846 
847           //! The MOVSW semantics.
848           void movsw_s(triton::arch::Instruction& inst);
849 
850           //! The MOVSX semantics.
851           void movsx_s(triton::arch::Instruction& inst);
852 
853           //! The MOVSXD semantics.
854           void movsxd_s(triton::arch::Instruction& inst);
855 
856           //! The MOVZX semantics.
857           void movzx_s(triton::arch::Instruction& inst);
858 
859           //! The MUL semantics.
860           void mul_s(triton::arch::Instruction& inst);
861 
862           //! The MULX semantics.
863           void mulx_s(triton::arch::Instruction& inst);
864 
865           //! The NEG semantics.
866           void neg_s(triton::arch::Instruction& inst);
867 
868           //! The NOP semantics.
869           void nop_s(triton::arch::Instruction& inst);
870 
871           //! The NOT semantics.
872           void not_s(triton::arch::Instruction& inst);
873 
874           //! The OR semantics.
875           void or_s(triton::arch::Instruction& inst);
876 
877           //! The ORPD semantics.
878           void orpd_s(triton::arch::Instruction& inst);
879 
880           //! The ORPS semantics.
881           void orps_s(triton::arch::Instruction& inst);
882 
883           //! The PADDB semantics.
884           void paddb_s(triton::arch::Instruction& inst);
885 
886           //! The PADDD semantics.
887           void paddd_s(triton::arch::Instruction& inst);
888 
889           //! The PADDQ semantics.
890           void paddq_s(triton::arch::Instruction& inst);
891 
892           //! The PADDW semantics.
893           void paddw_s(triton::arch::Instruction& inst);
894 
895           //! The PAND semantics.
896           void pand_s(triton::arch::Instruction& inst);
897 
898           //! The PANDN semantics.
899           void pandn_s(triton::arch::Instruction& inst);
900 
901           //! The PAUSE semantics.
902           void pause_s(triton::arch::Instruction& inst);
903 
904           //! The PAVGB semantics.
905           void pavgb_s(triton::arch::Instruction& inst);
906 
907           //! The PAVGW semantics.
908           void pavgw_s(triton::arch::Instruction& inst);
909 
910           //! The PCMPEQB semantics.
911           void pcmpeqb_s(triton::arch::Instruction& inst);
912 
913           //! The PCMPEQD semantics.
914           void pcmpeqd_s(triton::arch::Instruction& inst);
915 
916           //! The PCMPEQW semantics.
917           void pcmpeqw_s(triton::arch::Instruction& inst);
918 
919           //! The PCMPGTB semantics.
920           void pcmpgtb_s(triton::arch::Instruction& inst);
921 
922           //! The PCMPGTD semantics.
923           void pcmpgtd_s(triton::arch::Instruction& inst);
924 
925           //! The PCMPGTW semantics.
926           void pcmpgtw_s(triton::arch::Instruction& inst);
927 
928           //! The PEXTRB semantics.
929           void pextrb_s(triton::arch::Instruction& inst);
930 
931           //! The PEXTRD semantics.
932           void pextrd_s(triton::arch::Instruction& inst);
933 
934           //! The PEXTRQ semantics.
935           void pextrq_s(triton::arch::Instruction& inst);
936 
937           //! The PEXTRW semantics.
938           void pextrw_s(triton::arch::Instruction& inst);
939 
940           //! The PINSRB semantics.
941           void pinsrb_s(triton::arch::Instruction& inst);
942 
943           //! The PINSRD semantics.
944           void pinsrd_s(triton::arch::Instruction& inst);
945 
946           //! The PINSRQ semantics.
947           void pinsrq_s(triton::arch::Instruction& inst);
948 
949           //! The PINSRW semantics.
950           void pinsrw_s(triton::arch::Instruction& inst);
951 
952           //! The PMAXSB semantics.
953           void pmaxsb_s(triton::arch::Instruction& inst);
954 
955           //! The PMAXSD semantics.
956           void pmaxsd_s(triton::arch::Instruction& inst);
957 
958           //! The PMAXSW semantics.
959           void pmaxsw_s(triton::arch::Instruction& inst);
960 
961           //! The PMAXUB semantics.
962           void pmaxub_s(triton::arch::Instruction& inst);
963 
964           //! The PMAXUD semantics.
965           void pmaxud_s(triton::arch::Instruction& inst);
966 
967           //! The PMAXUW semantics.
968           void pmaxuw_s(triton::arch::Instruction& inst);
969 
970           //! The PMINSB semantics.
971           void pminsb_s(triton::arch::Instruction& inst);
972 
973           //! The PMINSD semantics.
974           void pminsd_s(triton::arch::Instruction& inst);
975 
976           //! The PMINSW semantics.
977           void pminsw_s(triton::arch::Instruction& inst);
978 
979           //! The PMINUB semantics.
980           void pminub_s(triton::arch::Instruction& inst);
981 
982           //! The PMINUD semantics.
983           void pminud_s(triton::arch::Instruction& inst);
984 
985           //! The PMINUW semantics.
986           void pminuw_s(triton::arch::Instruction& inst);
987 
988           //! The PMOVMSKB semantics.
989           void pmovmskb_s(triton::arch::Instruction& inst);
990 
991           //! The PMOVSXBD semantics.
992           void pmovsxbd_s(triton::arch::Instruction& inst);
993 
994           //! The PMOVSXBQ semantics.
995           void pmovsxbq_s(triton::arch::Instruction& inst);
996 
997           //! The PMOVSXBW semantics.
998           void pmovsxbw_s(triton::arch::Instruction& inst);
999 
1000           //! The PMOVSXDQ semantics.
1001           void pmovsxdq_s(triton::arch::Instruction& inst);
1002 
1003           //! The PMOVSXWD semantics.
1004           void pmovsxwd_s(triton::arch::Instruction& inst);
1005 
1006           //! The PMOVSXWQ semantics.
1007           void pmovsxwq_s(triton::arch::Instruction& inst);
1008 
1009           //! The PMOVZXBD semantics.
1010           void pmovzxbd_s(triton::arch::Instruction& inst);
1011 
1012           //! The PMOVZXBQ semantics.
1013           void pmovzxbq_s(triton::arch::Instruction& inst);
1014 
1015           //! The PMOVZXBW semantics.
1016           void pmovzxbw_s(triton::arch::Instruction& inst);
1017 
1018           //! The PMOVZXDQ semantics.
1019           void pmovzxdq_s(triton::arch::Instruction& inst);
1020 
1021           //! The PMOVZXWD semantics.
1022           void pmovzxwd_s(triton::arch::Instruction& inst);
1023 
1024           //! The PMOVZXWQ semantics.
1025           void pmovzxwq_s(triton::arch::Instruction& inst);
1026 
1027           //! The POP semantics.
1028           void pop_s(triton::arch::Instruction& inst);
1029 
1030           //! The POPAL semantics.
1031           void popal_s(triton::arch::Instruction& inst);
1032 
1033           //! The POPF semantics.
1034           void popf_s(triton::arch::Instruction& inst);
1035 
1036           //! The POPFD semantics.
1037           void popfd_s(triton::arch::Instruction& inst);
1038 
1039           //! The POPFQ semantics.
1040           void popfq_s(triton::arch::Instruction& inst);
1041 
1042           //! The POR semantics.
1043           void por_s(triton::arch::Instruction& inst);
1044 
1045           //! The PREFETCHx semantics.
1046           void prefetchx_s(triton::arch::Instruction& inst);
1047 
1048           //! The PSHUFD semantics.
1049           void pshufd_s(triton::arch::Instruction& inst);
1050 
1051           //! The PSHUFHW semantics.
1052           void pshufhw_s(triton::arch::Instruction& inst);
1053 
1054           //! The PSHUFLW semantics.
1055           void pshuflw_s(triton::arch::Instruction& inst);
1056 
1057           //! The PSHUFW semantics.
1058           void pshufw_s(triton::arch::Instruction& inst);
1059 
1060           //! The PSLLD semantics.
1061           void pslld_s(triton::arch::Instruction& inst);
1062 
1063           //! The PSLLDQ semantics.
1064           void pslldq_s(triton::arch::Instruction& inst);
1065 
1066           //! The PSLLQ semantics.
1067           void psllq_s(triton::arch::Instruction& inst);
1068 
1069           //! The PSLLW semantics.
1070           void psllw_s(triton::arch::Instruction& inst);
1071 
1072           //! The PSRLDQ semantics.
1073           void psrldq_s(triton::arch::Instruction& inst);
1074 
1075           //! The PSUBB semantics.
1076           void psubb_s(triton::arch::Instruction& inst);
1077 
1078           //! The PSUBD semantics.
1079           void psubd_s(triton::arch::Instruction& inst);
1080 
1081           //! The PSUBQ semantics.
1082           void psubq_s(triton::arch::Instruction& inst);
1083 
1084           //! The PSUBW semantics.
1085           void psubw_s(triton::arch::Instruction& inst);
1086 
1087           //! The PTEST semantics.
1088           void ptest_s(triton::arch::Instruction& inst);
1089 
1090           //! The PUNPCKHBW semantics.
1091           void punpckhbw_s(triton::arch::Instruction& inst);
1092 
1093           //! The PUNPCKHDQ semantics.
1094           void punpckhdq_s(triton::arch::Instruction& inst);
1095 
1096           //! The PUNPCKHQDQ semantics.
1097           void punpckhqdq_s(triton::arch::Instruction& inst);
1098 
1099           //! The PUNPCKHWD semantics.
1100           void punpckhwd_s(triton::arch::Instruction& inst);
1101 
1102           //! The PUNPCKLBW semantics.
1103           void punpcklbw_s(triton::arch::Instruction& inst);
1104 
1105           //! The PUNPCKLDQ semantics.
1106           void punpckldq_s(triton::arch::Instruction& inst);
1107 
1108           //! The PUNPCKLQDQ semantics.
1109           void punpcklqdq_s(triton::arch::Instruction& inst);
1110 
1111           //! The PUNPCKLWD semantics.
1112           void punpcklwd_s(triton::arch::Instruction& inst);
1113 
1114           //! The PUSH semantics.
1115           void push_s(triton::arch::Instruction& inst);
1116 
1117           //! The PUSHAL semantics.
1118           void pushal_s(triton::arch::Instruction& inst);
1119 
1120           //! The PUSHFD semantics.
1121           void pushfd_s(triton::arch::Instruction& inst);
1122 
1123           //! The PUSHFQ semantics.
1124           void pushfq_s(triton::arch::Instruction& inst);
1125 
1126           //! The PXOR semantics.
1127           void pxor_s(triton::arch::Instruction& inst);
1128 
1129           //! The RCL semantics.
1130           void rcl_s(triton::arch::Instruction& inst);
1131 
1132           //! The RCR semantics.
1133           void rcr_s(triton::arch::Instruction& inst);
1134 
1135           //! The RDTSC semantics.
1136           void rdtsc_s(triton::arch::Instruction& inst);
1137 
1138           //! The RET semantics.
1139           void ret_s(triton::arch::Instruction& inst);
1140 
1141           //! The ROL semantics.
1142           void rol_s(triton::arch::Instruction& inst);
1143 
1144           //! The ROR semantics.
1145           void ror_s(triton::arch::Instruction& inst);
1146 
1147           //! The RORX semantics.
1148           void rorx_s(triton::arch::Instruction& inst);
1149 
1150           //! The SAHF semantics.
1151           void sahf_s(triton::arch::Instruction& inst);
1152 
1153           //! The SAR semantics.
1154           void sar_s(triton::arch::Instruction& inst);
1155 
1156           //! The SARX semantics.
1157           void sarx_s(triton::arch::Instruction& inst);
1158 
1159           //! The SBB semantics.
1160           void sbb_s(triton::arch::Instruction& inst);
1161 
1162           //! The SCASB semantics.
1163           void scasb_s(triton::arch::Instruction& inst);
1164 
1165           //! The SCASD semantics.
1166           void scasd_s(triton::arch::Instruction& inst);
1167 
1168           //! The SCASQ semantics.
1169           void scasq_s(triton::arch::Instruction& inst);
1170 
1171           //! The SCASW semantics.
1172           void scasw_s(triton::arch::Instruction& inst);
1173 
1174           //! The SETA semantics.
1175           void seta_s(triton::arch::Instruction& inst);
1176 
1177           //! The SETAE semantics.
1178           void setae_s(triton::arch::Instruction& inst);
1179 
1180           //! The SETB semantics.
1181           void setb_s(triton::arch::Instruction& inst);
1182 
1183           //! The SETBE semantics.
1184           void setbe_s(triton::arch::Instruction& inst);
1185 
1186           //! The SETE semantics.
1187           void sete_s(triton::arch::Instruction& inst);
1188 
1189           //! The SETG: semantics.
1190           void setg_s(triton::arch::Instruction& inst);
1191 
1192           //! The SETGE semantics.
1193           void setge_s(triton::arch::Instruction& inst);
1194 
1195           //! The SETL semantics.
1196           void setl_s(triton::arch::Instruction& inst);
1197 
1198           //! The SETLE semantics.
1199           void setle_s(triton::arch::Instruction& inst);
1200 
1201           //! The SETNE semantics.
1202           void setne_s(triton::arch::Instruction& inst);
1203 
1204           //! The SETNO semantics.
1205           void setno_s(triton::arch::Instruction& inst);
1206 
1207           //! The SETNP semantics.
1208           void setnp_s(triton::arch::Instruction& inst);
1209 
1210           //! The SETNS semantics.
1211           void setns_s(triton::arch::Instruction& inst);
1212 
1213           //! The SETO semantics.
1214           void seto_s(triton::arch::Instruction& inst);
1215 
1216           //! The SETP semantics.
1217           void setp_s(triton::arch::Instruction& inst);
1218 
1219           //! The SETS semantics.
1220           void sets_s(triton::arch::Instruction& inst);
1221 
1222           //! The SFENCE semantics.
1223           void sfence_s(triton::arch::Instruction& inst);
1224 
1225           //! The SHL semantics.
1226           void shl_s(triton::arch::Instruction& inst);
1227 
1228           //! The SHLD semantics.
1229           void shld_s(triton::arch::Instruction& inst);
1230 
1231           //! The SHLX semantics.
1232           void shlx_s(triton::arch::Instruction& inst);
1233 
1234           //! The SHR semantics.
1235           void shr_s(triton::arch::Instruction& inst);
1236 
1237           //! The SHRD semantics.
1238           void shrd_s(triton::arch::Instruction& inst);
1239 
1240           //! The SHRX semantics.
1241           void shrx_s(triton::arch::Instruction& inst);
1242 
1243           //! The STC semantics.
1244           void stc_s(triton::arch::Instruction& inst);
1245 
1246           //! The STD semantics.
1247           void std_s(triton::arch::Instruction& inst);
1248 
1249           //! The STI semantics.
1250           void sti_s(triton::arch::Instruction& inst);
1251 
1252           //! The STMXCSR semantics.
1253           void stmxcsr_s(triton::arch::Instruction& inst);
1254 
1255           //! The STOSB semantics.
1256           void stosb_s(triton::arch::Instruction& inst);
1257 
1258           //! The STOSD semantics.
1259           void stosd_s(triton::arch::Instruction& inst);
1260 
1261           //! The STOSQ semantics.
1262           void stosq_s(triton::arch::Instruction& inst);
1263 
1264           //! The STOSW semantics.
1265           void stosw_s(triton::arch::Instruction& inst);
1266 
1267           //! The SUB semantics.
1268           void sub_s(triton::arch::Instruction& inst);
1269 
1270           //! The SYSCALL semantics.
1271           void syscall_s(triton::arch::Instruction& inst);
1272 
1273           //! The SYSENTER semantics.
1274           void sysenter_s(triton::arch::Instruction& inst);
1275 
1276           //! The TEST semantics.
1277           void test_s(triton::arch::Instruction& inst);
1278 
1279           //! The TZCNT semantics.
1280           void tzcnt_s(triton::arch::Instruction& inst);
1281 
1282           //! The UNPCKHPD semantics.
1283           void unpckhpd_s(triton::arch::Instruction& inst);
1284 
1285           //! The UNPCKHPS semantics.
1286           void unpckhps_s(triton::arch::Instruction& inst);
1287 
1288           //! The UNPCKLPD semantics.
1289           void unpcklpd_s(triton::arch::Instruction& inst);
1290 
1291           //! The UNPCKLPS semantics.
1292           void unpcklps_s(triton::arch::Instruction& inst);
1293 
1294           //! The VMOVDQA semantics.
1295           void vmovdqa_s(triton::arch::Instruction& inst);
1296 
1297           //! The VMOVDQU semantics.
1298           void vmovdqu_s(triton::arch::Instruction& inst);
1299 
1300           //! The VPAND semantics.
1301           void vpand_s(triton::arch::Instruction& inst);
1302 
1303           //! The VPMOVMSKB semantics.
1304           void vpmovmskb_s(triton::arch::Instruction& inst);
1305 
1306           //! The VPANDN semantics.
1307           void vpandn_s(triton::arch::Instruction& inst);
1308 
1309           //! The VPEXTRB semantics.
1310           void vpextrb_s(triton::arch::Instruction& inst);
1311 
1312           //! The VPEXTRD semantics.
1313           void vpextrd_s(triton::arch::Instruction& inst);
1314 
1315           //! The VPEXTRQ semantics.
1316           void vpextrq_s(triton::arch::Instruction& inst);
1317 
1318           //! The VPEXTRW semantics.
1319           void vpextrw_s(triton::arch::Instruction& inst);
1320 
1321           //! The VPOR semantics.
1322           void vpor_s(triton::arch::Instruction& inst);
1323 
1324           //! The VPSHUFD semantics.
1325           void vpshufd_s(triton::arch::Instruction& inst);
1326 
1327           //! The VPTEST semantics.
1328           void vptest_s(triton::arch::Instruction& inst);
1329 
1330           //! The VPXOR semantics.
1331           void vpxor_s(triton::arch::Instruction& inst);
1332 
1333           //! The WAIT semantics.
1334           void wait_s(triton::arch::Instruction& inst);
1335 
1336           //! The WBINVD semantics.
1337           void wbinvd_s(triton::arch::Instruction& inst);
1338 
1339           //! The XADD semantics.
1340           void xadd_s(triton::arch::Instruction& inst);
1341 
1342           //! The XCHG semantics.
1343           void xchg_s(triton::arch::Instruction& inst);
1344 
1345           //! The XOR semantics.
1346           void xor_s(triton::arch::Instruction& inst);
1347 
1348           //! The XORPD semantics.
1349           void xorpd_s(triton::arch::Instruction& inst);
1350 
1351           //! The XORPS semantics.
1352           void xorps_s(triton::arch::Instruction& inst);
1353       };
1354 
1355     /*! @} End of x86 namespace */
1356     };
1357   /*! @} End of arch namespace */
1358   };
1359 /*! @} End of triton namespace */
1360 };
1361 
1362 #endif /* TRITON_X86SEMANTICS_H */
1363