Rizin
unix-like reverse engineering framework and cli tools
PPCPredicates.h
Go to the documentation of this file.
1 //===-- PPCPredicates.h - PPC Branch Predicate Information ------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file describes the PowerPC branch predicates.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 /* Capstone Disassembly Engine */
15 /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
16 
17 #ifndef CS_POWERPC_PPCPREDICATES_H
18 #define CS_POWERPC_PPCPREDICATES_H
19 
20 #include "capstone/ppc.h"
21 
22 // NOTE: duplicate of ppc_bc in ppc.h to maitain code compatibility with LLVM
23 typedef enum ppc_predicate {
24  PPC_PRED_LT = (0 << 5) | 12,
25  PPC_PRED_LE = (1 << 5) | 4,
26  PPC_PRED_EQ = (2 << 5) | 12,
27  PPC_PRED_GE = (0 << 5) | 4,
28  PPC_PRED_GT = (1 << 5) | 12,
29  PPC_PRED_NE = (2 << 5) | 4,
30  PPC_PRED_UN = (3 << 5) | 12,
31  PPC_PRED_NU = (3 << 5) | 4,
32  PPC_PRED_LT_MINUS = (0 << 5) | 14,
33  PPC_PRED_LE_MINUS = (1 << 5) | 6,
34  PPC_PRED_EQ_MINUS = (2 << 5) | 14,
35  PPC_PRED_GE_MINUS = (0 << 5) | 6,
36  PPC_PRED_GT_MINUS = (1 << 5) | 14,
37  PPC_PRED_NE_MINUS = (2 << 5) | 6,
38  PPC_PRED_UN_MINUS = (3 << 5) | 14,
39  PPC_PRED_NU_MINUS = (3 << 5) | 6,
40  PPC_PRED_LT_PLUS = (0 << 5) | 15,
41  PPC_PRED_LE_PLUS = (1 << 5) | 7,
42  PPC_PRED_EQ_PLUS = (2 << 5) | 15,
43  PPC_PRED_GE_PLUS = (0 << 5) | 7,
44  PPC_PRED_GT_PLUS = (1 << 5) | 15,
45  PPC_PRED_NE_PLUS = (2 << 5) | 7,
46  PPC_PRED_UN_PLUS = (3 << 5) | 15,
47  PPC_PRED_NU_PLUS = (3 << 5) | 7,
48 
49  // When dealing with individual condition-register bits, we have simple set
50  // and unset predicates.
52  PPC_PRED_BIT_UNSET = 1025
54 
57 
61 
62 #endif
ppc_predicate InvertPredicate(ppc_predicate Opcode)
Invert the specified predicate. != -> ==, < -> >=.
ppc_predicate getSwappedPredicate(ppc_predicate Opcode)
ppc_predicate
Definition: PPCPredicates.h:23
@ PPC_PRED_BIT_SET
Definition: PPCPredicates.h:51
@ PPC_PRED_UN
Definition: PPCPredicates.h:30
@ PPC_PRED_GE_MINUS
Definition: PPCPredicates.h:35
@ PPC_PRED_LT_PLUS
Definition: PPCPredicates.h:40
@ PPC_PRED_EQ_MINUS
Definition: PPCPredicates.h:34
@ PPC_PRED_NU
Definition: PPCPredicates.h:31
@ PPC_PRED_GE_PLUS
Definition: PPCPredicates.h:43
@ PPC_PRED_UN_MINUS
Definition: PPCPredicates.h:38
@ PPC_PRED_NE_MINUS
Definition: PPCPredicates.h:37
@ PPC_PRED_NU_PLUS
Definition: PPCPredicates.h:47
@ PPC_PRED_EQ
Definition: PPCPredicates.h:26
@ PPC_PRED_GT
Definition: PPCPredicates.h:28
@ PPC_PRED_LT
Definition: PPCPredicates.h:24
@ PPC_PRED_LT_MINUS
Definition: PPCPredicates.h:32
@ PPC_PRED_LE_MINUS
Definition: PPCPredicates.h:33
@ PPC_PRED_NE_PLUS
Definition: PPCPredicates.h:45
@ PPC_PRED_BIT_UNSET
Definition: PPCPredicates.h:52
@ PPC_PRED_LE
Definition: PPCPredicates.h:25
@ PPC_PRED_GT_PLUS
Definition: PPCPredicates.h:44
@ PPC_PRED_GT_MINUS
Definition: PPCPredicates.h:36
@ PPC_PRED_UN_PLUS
Definition: PPCPredicates.h:46
@ PPC_PRED_GE
Definition: PPCPredicates.h:27
@ PPC_PRED_NE
Definition: PPCPredicates.h:29
@ PPC_PRED_LE_PLUS
Definition: PPCPredicates.h:41
@ PPC_PRED_NU_MINUS
Definition: PPCPredicates.h:39
@ PPC_PRED_EQ_PLUS
Definition: PPCPredicates.h:42