Ppc.java
Go to the documentation of this file.
1 // Capstone Java binding
2 // By Nguyen Anh Quynh & Dang Hoang Vu, 2013
3 
4 package capstone;
5 
6 import com.sun.jna.Structure;
7 import com.sun.jna.Union;
8 
9 import java.util.List;
10 import java.util.Arrays;
11 
12 import static capstone.Ppc_const.*;
13 
14 public class Ppc {
15 
16  public static class MemType extends Structure {
17  public int base;
18  public int disp;
19 
20  @Override
21  public List getFieldOrder() {
22  return Arrays.asList("base", "disp");
23  }
24  }
25 
26  public static class CrxType extends Structure {
27  public int scale;
28  public int reg;
29  public int cond;
30 
31  @Override
32  public List getFieldOrder() {
33  return Arrays.asList("scale", "reg", "cond");
34  }
35  }
36 
37  public static class OpValue extends Union {
38  public int reg;
39  public long imm;
40  public MemType mem;
41  public CrxType crx;
42  }
43 
44  public static class Operand extends Structure {
45  public int type;
46  public OpValue value;
47 
48  public void read() {
49  readField("type");
50  if (type == PPC_OP_MEM)
51  value.setType(MemType.class);
52  if (type == PPC_OP_CRX)
53  value.setType(CrxType.class);
54  if (type == PPC_OP_IMM || type == PPC_OP_REG)
55  value.setType(Integer.TYPE);
56  if (type == PPC_OP_INVALID)
57  return;
58  readField("value");
59  }
60 
61  @Override
62  public List getFieldOrder() {
63  return Arrays.asList("type", "value");
64  }
65  }
66 
67  public static class UnionOpInfo extends Capstone.UnionOpInfo {
68  public int bc;
69  public int bh;
70  public byte update_cr0;
71  public byte op_count;
72 
73  public Operand [] op;
74 
75  public UnionOpInfo() {
76  op = new Operand[8];
77  }
78 
79  public void read() {
80  readField("bc");
81  readField("bh");
82  readField("update_cr0");
83  readField("op_count");
84  op = new Operand[op_count];
85  if (op_count != 0)
86  readField("op");
87  }
88 
89  @Override
90  public List getFieldOrder() {
91  return Arrays.asList("bc", "bh", "update_cr0", "op_count", "op");
92  }
93  }
94 
95  public static class OpInfo extends Capstone.OpInfo {
96  public int bc;
97  public int bh;
98  public boolean updateCr0;
99 
100  public Operand [] op;
101 
102  public OpInfo(UnionOpInfo op_info) {
103  bc = op_info.bc;
104  bh = op_info.bh;
105  updateCr0 = (op_info.update_cr0 > 0);
106  op = op_info.op;
107  }
108  }
109 }
capstone.Ppc.UnionOpInfo.bc
int bc
Definition: Ppc.java:68
capstone.Ppc.Operand.type
int type
Definition: Ppc.java:45
capstone.Ppc.MemType.base
int base
Definition: Ppc.java:17
capstone.Ppc
Definition: Ppc.java:14
capstone.Ppc.CrxType.getFieldOrder
List getFieldOrder()
Definition: Ppc.java:32
capstone.Ppc.OpInfo.bc
int bc
Definition: Ppc.java:96
capstone.Ppc.Operand.read
void read()
Definition: Ppc.java:48
PPC_OP_MEM
@ PPC_OP_MEM
= CS_OP_MEM (Memory operand).
Definition: ppc.h:46
capstone.Ppc.UnionOpInfo.read
void read()
Definition: Ppc.java:79
capstone.Ppc.Operand.getFieldOrder
List getFieldOrder()
Definition: Ppc.java:62
capstone.Ppc.OpValue.imm
long imm
Definition: Ppc.java:39
PPC_OP_INVALID
@ PPC_OP_INVALID
= CS_OP_INVALID (Uninitialized).
Definition: ppc.h:43
capstone.Ppc.OpInfo.op
Operand[] op
Definition: Ppc.java:100
capstone.Ppc.CrxType.reg
int reg
Definition: Ppc.java:28
capstone.Ppc.Operand
Definition: Ppc.java:44
capstone.Ppc.OpInfo.updateCr0
boolean updateCr0
Definition: Ppc.java:98
capstone.Ppc.UnionOpInfo.op_count
byte op_count
Definition: Ppc.java:71
capstone.Ppc.OpInfo.OpInfo
OpInfo(UnionOpInfo op_info)
Definition: Ppc.java:102
capstone.Ppc.OpInfo
Definition: Ppc.java:95
capstone.Ppc.MemType
Definition: Ppc.java:16
capstone.Ppc.MemType.getFieldOrder
List getFieldOrder()
Definition: Ppc.java:21
capstone.Ppc.UnionOpInfo.UnionOpInfo
UnionOpInfo()
Definition: Ppc.java:75
capstone.Ppc.CrxType.scale
int scale
Definition: Ppc.java:27
capstone
Definition: Arm.java:4
capstone.Ppc.UnionOpInfo.getFieldOrder
List getFieldOrder()
Definition: Ppc.java:90
capstone.Ppc.UnionOpInfo.update_cr0
byte update_cr0
Definition: Ppc.java:70
capstone.Ppc.OpValue.mem
MemType mem
Definition: Ppc.java:40
capstone.Ppc.OpValue.crx
CrxType crx
Definition: Ppc.java:41
java
capstone.Ppc.UnionOpInfo
Definition: Ppc.java:67
PPC_OP_REG
@ PPC_OP_REG
= CS_OP_REG (Register operand).
Definition: ppc.h:44
capstone.Ppc.CrxType
Definition: Ppc.java:26
capstone.Ppc.MemType.disp
int disp
Definition: Ppc.java:18
capstone.Ppc.OpInfo.bh
int bh
Definition: Ppc.java:97
capstone.Ppc.OpValue.reg
int reg
Definition: Ppc.java:38
capstone.Ppc.UnionOpInfo.op
Operand[] op
Definition: Ppc.java:73
capstone.Ppc.CrxType.cond
int cond
Definition: Ppc.java:29
capstone.Ppc.UnionOpInfo.bh
int bh
Definition: Ppc.java:69
com
capstone.Ppc_const
Definition: Ppc_const.java:4
PPC_OP_IMM
@ PPC_OP_IMM
= CS_OP_IMM (Immediate operand).
Definition: ppc.h:45
capstone.Ppc.Operand.value
OpValue value
Definition: Ppc.java:46
capstone.Ppc.OpValue
Definition: Ppc.java:37
PPC_OP_CRX
@ PPC_OP_CRX
Condition Register field.
Definition: ppc.h:47


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:54