crabstone 4.0.3 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +20 -0
  3. data/README.md +25 -8
  4. data/lib/crabstone/arch/3/constants.rb +86 -0
  5. data/lib/crabstone/arch/4/constants.rb +116 -0
  6. data/lib/crabstone/arch/5/arm.rb +111 -0
  7. data/lib/crabstone/arch/5/arm64.rb +131 -0
  8. data/lib/crabstone/arch/5/arm64_const.rb +3015 -0
  9. data/lib/crabstone/arch/5/arm_const.rb +840 -0
  10. data/lib/crabstone/arch/5/bpf.rb +81 -0
  11. data/lib/crabstone/arch/5/bpf_const.rb +124 -0
  12. data/lib/crabstone/arch/5/constants.rb +155 -0
  13. data/lib/crabstone/arch/5/evm.rb +20 -0
  14. data/lib/crabstone/arch/5/evm_const.rb +161 -0
  15. data/lib/crabstone/arch/5/m680x.rb +106 -0
  16. data/lib/crabstone/arch/5/m680x_const.rb +426 -0
  17. data/lib/crabstone/arch/5/m68k.rb +129 -0
  18. data/lib/crabstone/arch/5/m68k_const.rb +496 -0
  19. data/lib/crabstone/arch/5/mips.rb +57 -0
  20. data/lib/crabstone/arch/5/mips_const.rb +869 -0
  21. data/lib/crabstone/arch/5/mos65xx.rb +52 -0
  22. data/lib/crabstone/arch/5/mos65xx_const.rb +162 -0
  23. data/lib/crabstone/arch/5/ppc.rb +69 -0
  24. data/lib/crabstone/arch/5/ppc_const.rb +2024 -0
  25. data/lib/crabstone/arch/5/riscv.rb +58 -0
  26. data/lib/crabstone/arch/5/riscv_const.rb +455 -0
  27. data/lib/crabstone/arch/5/sh.rb +72 -0
  28. data/lib/crabstone/arch/5/sh_const.rb +376 -0
  29. data/lib/crabstone/arch/5/sparc.rb +60 -0
  30. data/lib/crabstone/arch/5/sparc_const.rb +439 -0
  31. data/lib/crabstone/arch/5/sysz.rb +60 -0
  32. data/lib/crabstone/arch/5/sysz_const.rb +2532 -0
  33. data/lib/crabstone/arch/5/tms320c64x.rb +87 -0
  34. data/lib/crabstone/arch/5/tms320c64x_const.rb +287 -0
  35. data/lib/crabstone/arch/5/tricore.rb +59 -0
  36. data/lib/crabstone/arch/5/tricore_const.rb +488 -0
  37. data/lib/crabstone/arch/5/wasm.rb +81 -0
  38. data/lib/crabstone/arch/5/wasm_const.rb +201 -0
  39. data/lib/crabstone/arch/5/x86.rb +98 -0
  40. data/lib/crabstone/arch/5/x86_const.rb +1999 -0
  41. data/lib/crabstone/arch/5/xcore.rb +59 -0
  42. data/lib/crabstone/arch/5/xcore_const.rb +171 -0
  43. data/lib/crabstone/arch/extension.rb +2 -1
  44. data/lib/crabstone/arch/register.rb +1 -1
  45. data/lib/crabstone/arch.rb +6 -0
  46. data/lib/crabstone/binding/5/detail.rb +47 -0
  47. data/lib/crabstone/binding/5/instruction.rb +23 -0
  48. data/lib/crabstone/binding.rb +4 -5
  49. data/lib/crabstone/constants.rb +2 -107
  50. data/lib/crabstone/cs_version.rb +2 -3
  51. data/lib/crabstone/disassembler.rb +2 -3
  52. data/lib/crabstone/instruction.rb +0 -1
  53. data/lib/crabstone/version.rb +1 -1
  54. metadata +51 -4
@@ -0,0 +1,376 @@
1
+ # frozen_string_literal: true
2
+
3
+ # THIS FILE WAS AUTO-GENERATED -- DO NOT EDIT!
4
+
5
+ require 'crabstone/arch/register'
6
+
7
+ module Crabstone
8
+ module SH
9
+ REG_INVALID = 0
10
+ REG_R0 = 1
11
+ REG_R1 = 2
12
+ REG_R2 = 3
13
+ REG_R3 = 4
14
+ REG_R4 = 5
15
+ REG_R5 = 6
16
+ REG_R6 = 7
17
+ REG_R7 = 8
18
+ REG_R8 = 9
19
+ REG_R9 = 10
20
+ REG_R10 = 11
21
+ REG_R11 = 12
22
+ REG_R12 = 13
23
+ REG_R13 = 14
24
+ REG_R14 = 15
25
+ REG_R15 = 16
26
+ REG_R0_BANK = 17
27
+ REG_R1_BANK = 18
28
+ REG_R2_BANK = 19
29
+ REG_R3_BANK = 20
30
+ REG_R4_BANK = 21
31
+ REG_R5_BANK = 22
32
+ REG_R6_BANK = 23
33
+ REG_R7_BANK = 24
34
+ REG_FR0 = 25
35
+ REG_FR1 = 26
36
+ REG_FR2 = 27
37
+ REG_FR3 = 28
38
+ REG_FR4 = 29
39
+ REG_FR5 = 30
40
+ REG_FR6 = 31
41
+ REG_FR7 = 32
42
+ REG_FR8 = 33
43
+ REG_FR9 = 34
44
+ REG_FR10 = 35
45
+ REG_FR11 = 36
46
+ REG_FR12 = 37
47
+ REG_FR13 = 38
48
+ REG_FR14 = 39
49
+ REG_FR15 = 40
50
+ REG_DR0 = 41
51
+ REG_DR2 = 42
52
+ REG_DR4 = 43
53
+ REG_DR6 = 44
54
+ REG_DR8 = 45
55
+ REG_DR10 = 46
56
+ REG_DR12 = 47
57
+ REG_DR14 = 48
58
+ REG_XD0 = 49
59
+ REG_XD2 = 50
60
+ REG_XD4 = 51
61
+ REG_XD6 = 52
62
+ REG_XD8 = 53
63
+ REG_XD10 = 54
64
+ REG_XD12 = 55
65
+ REG_XD14 = 56
66
+ REG_XF0 = 57
67
+ REG_XF1 = 58
68
+ REG_XF2 = 59
69
+ REG_XF3 = 60
70
+ REG_XF4 = 61
71
+ REG_XF5 = 62
72
+ REG_XF6 = 63
73
+ REG_XF7 = 64
74
+ REG_XF8 = 65
75
+ REG_XF9 = 66
76
+ REG_XF10 = 67
77
+ REG_XF11 = 68
78
+ REG_XF12 = 69
79
+ REG_XF13 = 70
80
+ REG_XF14 = 71
81
+ REG_XF15 = 72
82
+ REG_FV0 = 73
83
+ REG_FV4 = 74
84
+ REG_FV8 = 75
85
+ REG_FV12 = 76
86
+ REG_XMATRX = 77
87
+ REG_PC = 78
88
+ REG_PR = 79
89
+ REG_MACH = 80
90
+ REG_MACL = 81
91
+ REG_SR = 82
92
+ REG_GBR = 83
93
+ REG_SSR = 84
94
+ REG_SPC = 85
95
+ REG_SGR = 86
96
+ REG_DBR = 87
97
+ REG_VBR = 88
98
+ REG_TBR = 89
99
+ REG_RS = 90
100
+ REG_RE = 91
101
+ REG_MOD = 92
102
+ REG_FPUL = 93
103
+ REG_FPSCR = 94
104
+ REG_DSP_X0 = 95
105
+ REG_DSP_X1 = 96
106
+ REG_DSP_Y0 = 97
107
+ REG_DSP_Y1 = 98
108
+ REG_DSP_A0 = 99
109
+ REG_DSP_A1 = 100
110
+ REG_DSP_A0G = 101
111
+ REG_DSP_A1G = 102
112
+ REG_DSP_M0 = 103
113
+ REG_DSP_M1 = 104
114
+ REG_DSP_DSR = 105
115
+ REG_DSP_RSV0 = 106
116
+ REG_DSP_RSV1 = 107
117
+ REG_DSP_RSV2 = 108
118
+ REG_DSP_RSV3 = 109
119
+ REG_DSP_RSV4 = 110
120
+ REG_DSP_RSV5 = 111
121
+ REG_DSP_RSV6 = 112
122
+ REG_DSP_RSV7 = 113
123
+ REG_DSP_RSV8 = 114
124
+ REG_DSP_RSV9 = 115
125
+ REG_DSP_RSVA = 116
126
+ REG_DSP_RSVB = 117
127
+ REG_DSP_RSVC = 118
128
+ REG_DSP_RSVD = 119
129
+ REG_DSP_RSVE = 120
130
+ REG_DSP_RSVF = 121
131
+ REG_ENDING = 122
132
+
133
+ OP_INVALID = 0
134
+ OP_REG = 1
135
+ OP_IMM = 2
136
+ OP_MEM = 3
137
+
138
+ OP_MEM_INVALID = 0
139
+ OP_MEM_REG_IND = 1
140
+ OP_MEM_REG_POST = 2
141
+ OP_MEM_REG_PRE = 3
142
+ OP_MEM_REG_DISP = 4
143
+ OP_MEM_REG_R0 = 5
144
+ OP_MEM_GBR_DISP = 6
145
+ OP_MEM_GBR_R0 = 7
146
+ OP_MEM_PCR = 8
147
+ OP_MEM_TBR_DISP = 9
148
+ INS_DSP_INVALID = 10
149
+ INS_DSP_DOUBLE = 11
150
+ INS_DSP_SINGLE = 12
151
+ INS_DSP_PARALLEL = 13
152
+ INS_DSP_NOP = 1
153
+ INS_DSP_MOV = 2
154
+ INS_DSP_PSHL = 3
155
+ INS_DSP_PSHA = 4
156
+ INS_DSP_PMULS = 5
157
+ INS_DSP_PCLR_PMULS = 6
158
+ INS_DSP_PSUB_PMULS = 7
159
+ INS_DSP_PADD_PMULS = 8
160
+ INS_DSP_PSUBC = 9
161
+ INS_DSP_PADDC = 10
162
+ INS_DSP_PCMP = 11
163
+ INS_DSP_PABS = 12
164
+ INS_DSP_PRND = 13
165
+ INS_DSP_PSUB = 14
166
+ INS_DSP_PSUBr = 15
167
+ INS_DSP_PADD = 16
168
+ INS_DSP_PAND = 17
169
+ INS_DSP_PXOR = 18
170
+ INS_DSP_POR = 19
171
+ INS_DSP_PDEC = 20
172
+ INS_DSP_PINC = 21
173
+ INS_DSP_PCLR = 22
174
+ INS_DSP_PDMSB = 23
175
+ INS_DSP_PNEG = 24
176
+ INS_DSP_PCOPY = 25
177
+ INS_DSP_PSTS = 26
178
+ INS_DSP_PLDS = 27
179
+ INS_DSP_PSWAP = 28
180
+ INS_DSP_PWAD = 29
181
+ INS_DSP_PWSB = 30
182
+ OP_DSP_INVALID = 31
183
+ OP_DSP_REG_PRE = 32
184
+ OP_DSP_REG_IND = 33
185
+ OP_DSP_REG_POST = 34
186
+ OP_DSP_REG_INDEX = 35
187
+ OP_DSP_REG = 36
188
+ OP_DSP_IMM = 37
189
+ DSP_CC_INVALID = 38
190
+ DSP_CC_NONE = 39
191
+ DSP_CC_DCT = 40
192
+ DSP_CC_DCF = 41
193
+ INS_INVALID = 42
194
+ INS_ADD_r = 43
195
+ INS_ADD = 44
196
+ INS_ADDC = 45
197
+ INS_ADDV = 46
198
+ INS_AND = 47
199
+ INS_BAND = 48
200
+ INS_BANDNOT = 49
201
+ INS_BCLR = 50
202
+ INS_BF = 51
203
+ INS_BF_S = 52
204
+ INS_BLD = 53
205
+ INS_BLDNOT = 54
206
+ INS_BOR = 55
207
+ INS_BORNOT = 56
208
+ INS_BRA = 57
209
+ INS_BRAF = 58
210
+ INS_BSET = 59
211
+ INS_BSR = 60
212
+ INS_BSRF = 61
213
+ INS_BST = 62
214
+ INS_BT = 63
215
+ INS_BT_S = 64
216
+ INS_BXOR = 65
217
+ INS_CLIPS = 66
218
+ INS_CLIPU = 67
219
+ INS_CLRDMXY = 68
220
+ INS_CLRMAC = 69
221
+ INS_CLRS = 70
222
+ INS_CLRT = 71
223
+ INS_CMP_EQ = 72
224
+ INS_CMP_GE = 73
225
+ INS_CMP_GT = 74
226
+ INS_CMP_HI = 75
227
+ INS_CMP_HS = 76
228
+ INS_CMP_PL = 77
229
+ INS_CMP_PZ = 78
230
+ INS_CMP_STR = 79
231
+ INS_DIV0S = 80
232
+ INS_DIV0U = 81
233
+ INS_DIV1 = 82
234
+ INS_DIVS = 83
235
+ INS_DIVU = 84
236
+ INS_DMULS_L = 85
237
+ INS_DMULU_L = 86
238
+ INS_DT = 87
239
+ INS_EXTS_B = 88
240
+ INS_EXTS_W = 89
241
+ INS_EXTU_B = 90
242
+ INS_EXTU_W = 91
243
+ INS_FABS = 92
244
+ INS_FADD = 93
245
+ INS_FCMP_EQ = 94
246
+ INS_FCMP_GT = 95
247
+ INS_FCNVDS = 96
248
+ INS_FCNVSD = 97
249
+ INS_FDIV = 98
250
+ INS_FIPR = 99
251
+ INS_FLDI0 = 100
252
+ INS_FLDI1 = 101
253
+ INS_FLDS = 102
254
+ INS_FLOAT = 103
255
+ INS_FMAC = 104
256
+ INS_FMOV = 105
257
+ INS_FMUL = 106
258
+ INS_FNEG = 107
259
+ INS_FPCHG = 108
260
+ INS_FRCHG = 109
261
+ INS_FSCA = 110
262
+ INS_FSCHG = 111
263
+ INS_FSQRT = 112
264
+ INS_FSRRA = 113
265
+ INS_FSTS = 114
266
+ INS_FSUB = 115
267
+ INS_FTRC = 116
268
+ INS_FTRV = 117
269
+ INS_ICBI = 118
270
+ INS_JMP = 119
271
+ INS_JSR = 120
272
+ INS_JSR_N = 121
273
+ INS_LDBANK = 122
274
+ INS_LDC = 123
275
+ INS_LDRC = 124
276
+ INS_LDRE = 125
277
+ INS_LDRS = 126
278
+ INS_LDS = 127
279
+ INS_LDTLB = 128
280
+ INS_MAC_L = 129
281
+ INS_MAC_W = 130
282
+ INS_MOV = 131
283
+ INS_MOVA = 132
284
+ INS_MOVCA = 133
285
+ INS_MOVCO = 134
286
+ INS_MOVI20 = 135
287
+ INS_MOVI20S = 136
288
+ INS_MOVLI = 137
289
+ INS_MOVML = 138
290
+ INS_MOVMU = 139
291
+ INS_MOVRT = 140
292
+ INS_MOVT = 141
293
+ INS_MOVU = 142
294
+ INS_MOVUA = 143
295
+ INS_MUL_L = 144
296
+ INS_MULR = 145
297
+ INS_MULS_W = 146
298
+ INS_MULU_W = 147
299
+ INS_NEG = 148
300
+ INS_NEGC = 149
301
+ INS_NOP = 150
302
+ INS_NOT = 151
303
+ INS_NOTT = 152
304
+ INS_OCBI = 153
305
+ INS_OCBP = 154
306
+ INS_OCBWB = 155
307
+ INS_OR = 156
308
+ INS_PREF = 157
309
+ INS_PREFI = 158
310
+ INS_RESBANK = 159
311
+ INS_ROTCL = 160
312
+ INS_ROTCR = 161
313
+ INS_ROTL = 162
314
+ INS_ROTR = 163
315
+ INS_RTE = 164
316
+ INS_RTS = 165
317
+ INS_RTS_N = 166
318
+ INS_RTV_N = 167
319
+ INS_SETDMX = 168
320
+ INS_SETDMY = 169
321
+ INS_SETRC = 170
322
+ INS_SETS = 171
323
+ INS_SETT = 172
324
+ INS_SHAD = 173
325
+ INS_SHAL = 174
326
+ INS_SHAR = 175
327
+ INS_SHLD = 176
328
+ INS_SHLL = 177
329
+ INS_SHLL16 = 178
330
+ INS_SHLL2 = 179
331
+ INS_SHLL8 = 180
332
+ INS_SHLR = 181
333
+ INS_SHLR16 = 182
334
+ INS_SHLR2 = 183
335
+ INS_SHLR8 = 184
336
+ INS_SLEEP = 185
337
+ INS_STBANK = 186
338
+ INS_STC = 187
339
+ INS_STS = 188
340
+ INS_SUB = 189
341
+ INS_SUBC = 190
342
+ INS_SUBV = 191
343
+ INS_SWAP_B = 192
344
+ INS_SWAP_W = 193
345
+ INS_SYNCO = 194
346
+ INS_TAS = 195
347
+ INS_TRAPA = 196
348
+ INS_TST = 197
349
+ INS_XOR = 198
350
+ INS_XTRCT = 199
351
+ INS_DSP = 200
352
+ INS_ENDING = 201
353
+
354
+ GRP_INVALID = 0
355
+ GRP_JUMP = 1
356
+ GRP_CALL = 2
357
+ GRP_INT = 3
358
+ GRP_RET = 4
359
+ GRP_IRET = 5
360
+ GRP_PRIVILEGE = 6
361
+ GRP_BRANCH_RELATIVE = 7
362
+ GRP_SH1 = 8
363
+ GRP_SH2 = 9
364
+ GRP_SH2E = 10
365
+ GRP_SH2DSP = 11
366
+ GRP_SH2A = 12
367
+ GRP_SH2AFPU = 13
368
+ GRP_SH3 = 14
369
+ GRP_SH3DSP = 15
370
+ GRP_SH4 = 16
371
+ GRP_SH4A = 17
372
+ GRP_ENDING = 18
373
+
374
+ extend Register
375
+ end
376
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ # THIS FILE WAS AUTO-GENERATED -- DO NOT EDIT!
4
+
5
+ require 'ffi'
6
+
7
+ require 'crabstone/arch/extension'
8
+ require_relative 'sparc_const'
9
+
10
+ module Crabstone
11
+ module Sparc
12
+ class OperandMemory < FFI::Struct
13
+ layout(
14
+ :base, :uint8,
15
+ :index, :uint8,
16
+ :disp, :int
17
+ )
18
+ end
19
+
20
+ class OperandValue < FFI::Union
21
+ layout(
22
+ :reg, :uint,
23
+ :imm, :long,
24
+ :mem, OperandMemory
25
+ )
26
+ end
27
+
28
+ class Operand < FFI::Struct
29
+ layout(
30
+ :type, :uint,
31
+ :value, OperandValue
32
+ )
33
+
34
+ include Crabstone::Extension::Operand
35
+
36
+ def reg?
37
+ self[:type] == OP_REG
38
+ end
39
+
40
+ def imm?
41
+ self[:type] == OP_IMM
42
+ end
43
+
44
+ def mem?
45
+ self[:type] == OP_MEM
46
+ end
47
+ end
48
+
49
+ class Instruction < FFI::Struct
50
+ layout(
51
+ :cc, :uint,
52
+ :hint, :uint,
53
+ :op_count, :uint8,
54
+ :operands, [Operand, 4]
55
+ )
56
+
57
+ include Crabstone::Extension::Instruction
58
+ end
59
+ end
60
+ end