ROSE  0.11.2.0
x86InstructionProperties.h
1 #ifndef ROSE_BinaryAnalysis_X86InstructionProperties_H
2 #define ROSE_BinaryAnalysis_X86InstructionProperties_H
3 
4 #include <rosePublicConfig.h>
5 #ifdef ROSE_BUILD_BINARY_ANALYSIS_SUPPORT
6 
7 #include <vector>
8 #include <stdint.h>
9 
11 
12 namespace Rose {
13 namespace BinaryAnalysis {
14 
15 // FIXME[Robb Matzke 2019-03-09]: these should have been members of SgAsmX86Instruction
16 bool x86InstructionIsConditionalFlagControlTransfer(SgAsmX86Instruction* inst);
17 bool x86InstructionIsConditionalFlagDataTransfer(SgAsmX86Instruction* inst);
18 bool x86InstructionIsConditionalControlTransfer(SgAsmX86Instruction* inst);
19 bool x86InstructionIsConditionalDataTransfer(SgAsmX86Instruction* inst);
20 bool x86InstructionIsPrivileged(SgAsmX86Instruction*);
21 bool x86InstructionIsFloatingPoint(SgAsmX86Instruction*);
22 
23 bool x86InstructionIsConditionalFlagBitAndByte(SgAsmX86Instruction* inst);
24 
25 bool x86InstructionIsControlTransfer(SgAsmX86Instruction* inst);
26 bool x86InstructionIsUnconditionalBranch(SgAsmX86Instruction* inst);
27 bool x86InstructionIsConditionalBranch(SgAsmX86Instruction* inst);
28 bool x86InstructionIsDataTransfer(SgAsmX86Instruction* inst);
29 
30 const char* gprToString(X86GeneralPurposeRegister n);
31 const char* segregToString(X86SegmentRegister n);
32 const char* flagToString(X86Flag n);
33 
34 } // namespace
35 } // namespace
36 
37 #endif
38 #endif
Main namespace for the ROSE library.
X86GeneralPurposeRegister
Intel x86 general purpose registers.
X86Flag
Intel x86 status flags.
Represents one Intel x86 machine instruction.
X86SegmentRegister
Intel x86 segment registers.