Rizin
unix-like reverse engineering framework and cli tools
cr16_disas.h File Reference

Go to the source code of this file.

Classes

struct  cr16_cmd
 

Macros

#define CR16_INSTR_MAXLEN   24
 
#define STOR_LOAD_MASK   0x181F
 

Enumerations

enum  cr16_cmd_types {
  CR16_TYPE_MOV , CR16_TYPE_ADD , CR16_TYPE_MUL , CR16_TYPE_SUB ,
  CR16_TYPE_CMP , CR16_TYPE_BE , CR16_TYPE_BNE , CR16_TYPE_AND ,
  CR16_TYPE_OR , CR16_TYPE_SCOND , CR16_TYPE_XOR , CR16_TYPE_SHIFT ,
  CR16_TYPE_BIT , CR16_TYPE_SLPR , CR16_TYPE_BCOND , CR16_TYPE_BAL ,
  CR16_TYPE_BR , CR16_TYPE_EXCP , CR16_TYPE_JCOND , CR16_TYPE_JAL ,
  CR16_TYPE_JUMP , CR16_TYPE_JUMP_UNK , CR16_TYPE_RETX , CR16_TYPE_PUSH ,
  CR16_TYPE_POP , CR16_TYPE_LOAD , CR16_TYPE_STOR , CR16_TYPE_DI ,
  CR16_TYPE_EI , CR16_TYPE_NOP , CR16_TYPE_WAIT , CR16_TYPE_EWAIT
}
 
enum  cr16_opcodes {
  CR16_ADD = 0x0 , CR16_ADDU = 0x1 , CR16_BITI = 0x2 , CR16_MUL = 0x3 ,
  CR16_ASHU = 0x4 , CR16_LSH = 0x5 , CR16_XOR = 0x6 , CR16_CMP = 0x7 ,
  CR16_AND = 0x8 , CR16_ADDC = 0x9 , CR16_BCOND01 = 0xA , CR16_TBIT = 0xB ,
  CR16_MOV = 0xC , CR16_SUB = 0xF , CR16_SUBC = 0xD , CR16_OR = 0xE ,
  CR16_MOVD = 0x19 , CR16_MULSB = 0x30 , CR16_MULSW = 0x31 , CR16_MULUW = 0x3F ,
  CR16_MOVXB = 0x34 , CR16_MOVZB = 0x35 , CR16_SCOND = 0x37 , CR16_TBIT_R_R = 0x3B ,
  CR16_TBIT_I_R = 0x1B , CR16_JUMP = 0x2A , CR16_JAL = 0x3A , CR16_BAL = 0x1A ,
  CR16_LPR = 0x38 , CR16_SPR = 0x39 , CR16_BCOND_2 = 0x0A , CR16_PUSH = 0xD8 ,
  CR16_POP = 0xD9 , CR16_POPRET_1 = 0xDA , CR16_POPRET_2 = 0xDB , CR16_LOADM = 0xFC ,
  CR16_STORM = 0xFD
}
 
enum  cr16_opcodes_long {
  CR16_RETX = 0x79FE , CR16_DI = 0x7DDE , CR16_EI = 0x7DFE , CR16_NOP = 0x0200 ,
  CR16_WAIT = 0x7FFE , CR16_EWAIT = 0x7FD6
}
 
enum  cr16_cmd_forms { CR16_I_R = 0x0 , CR16_R_R = 0x1 }
 
enum  cr16_regs {
  CR16_R0 = 0 , CR16_R1 , CR16_R2 , CR16_R3 ,
  CR16_R4 , CR16_R5 , CR16_R6 , CR16_R7 ,
  CR16_R8 , CR16_R9 , CR16_R10 , CR16_R11 ,
  CR16_R12 , CR16_R13 , CR16_RA , CR16_SP ,
  CR16_LAST
}
 
enum  cr16_dedic_regs { CR16_PSR = 0x1 , CR16_INTBASE = 0x3 , CR16_ISP = 0xB }
 
enum  cr16_conds {
  CR16_COND_EQ = 0x0 , CR16_COND_NE , CR16_COND_CS , CR16_COND_CC ,
  CR16_COND_HI , CR16_COND_LS , CR16_COND_GT , CR16_COND_LE ,
  CR16_COND_FS , CR16_COND_FC , CR16_COND_LO , CR16_COND_HS ,
  CR16_COND_LT , CR16_COND_GE
}
 

Functions

int cr16_decode_command (const ut8 *instr, struct cr16_cmd *cmd, int len)
 

Macro Definition Documentation

◆ CR16_INSTR_MAXLEN

#define CR16_INSTR_MAXLEN   24

Definition at line 7 of file cr16_disas.h.

◆ STOR_LOAD_MASK

#define STOR_LOAD_MASK   0x181F

Definition at line 8 of file cr16_disas.h.

Enumeration Type Documentation

◆ cr16_cmd_forms

Enumerator
CR16_I_R 
CR16_R_R 

Definition at line 103 of file cr16_disas.h.

103  {
104  CR16_I_R = 0x0,
105  CR16_R_R = 0x1,
106 };
@ CR16_R_R
Definition: cr16_disas.h:105
@ CR16_I_R
Definition: cr16_disas.h:104

◆ cr16_cmd_types

Enumerator
CR16_TYPE_MOV 
CR16_TYPE_ADD 
CR16_TYPE_MUL 
CR16_TYPE_SUB 
CR16_TYPE_CMP 
CR16_TYPE_BE 
CR16_TYPE_BNE 
CR16_TYPE_AND 
CR16_TYPE_OR 
CR16_TYPE_SCOND 
CR16_TYPE_XOR 
CR16_TYPE_SHIFT 
CR16_TYPE_BIT 
CR16_TYPE_SLPR 
CR16_TYPE_BCOND 
CR16_TYPE_BAL 
CR16_TYPE_BR 
CR16_TYPE_EXCP 
CR16_TYPE_JCOND 
CR16_TYPE_JAL 
CR16_TYPE_JUMP 
CR16_TYPE_JUMP_UNK 
CR16_TYPE_RETX 
CR16_TYPE_PUSH 
CR16_TYPE_POP 
CR16_TYPE_LOAD 
CR16_TYPE_STOR 
CR16_TYPE_DI 
CR16_TYPE_EI 
CR16_TYPE_NOP 
CR16_TYPE_WAIT 
CR16_TYPE_EWAIT 

Definition at line 10 of file cr16_disas.h.

10  {
43 };
@ CR16_TYPE_EI
Definition: cr16_disas.h:39
@ CR16_TYPE_DI
Definition: cr16_disas.h:38
@ CR16_TYPE_JAL
Definition: cr16_disas.h:30
@ CR16_TYPE_BE
Definition: cr16_disas.h:16
@ CR16_TYPE_EXCP
Definition: cr16_disas.h:28
@ CR16_TYPE_BNE
Definition: cr16_disas.h:17
@ CR16_TYPE_JUMP
Definition: cr16_disas.h:31
@ CR16_TYPE_STOR
Definition: cr16_disas.h:37
@ CR16_TYPE_BIT
Definition: cr16_disas.h:23
@ CR16_TYPE_RETX
Definition: cr16_disas.h:33
@ CR16_TYPE_BR
Definition: cr16_disas.h:27
@ CR16_TYPE_MOV
Definition: cr16_disas.h:11
@ CR16_TYPE_SLPR
Definition: cr16_disas.h:24
@ CR16_TYPE_MUL
Definition: cr16_disas.h:13
@ CR16_TYPE_SUB
Definition: cr16_disas.h:14
@ CR16_TYPE_PUSH
Definition: cr16_disas.h:34
@ CR16_TYPE_WAIT
Definition: cr16_disas.h:41
@ CR16_TYPE_POP
Definition: cr16_disas.h:35
@ CR16_TYPE_BAL
Definition: cr16_disas.h:26
@ CR16_TYPE_JUMP_UNK
Definition: cr16_disas.h:32
@ CR16_TYPE_SCOND
Definition: cr16_disas.h:20
@ CR16_TYPE_LOAD
Definition: cr16_disas.h:36
@ CR16_TYPE_OR
Definition: cr16_disas.h:19
@ CR16_TYPE_XOR
Definition: cr16_disas.h:21
@ CR16_TYPE_SHIFT
Definition: cr16_disas.h:22
@ CR16_TYPE_ADD
Definition: cr16_disas.h:12
@ CR16_TYPE_CMP
Definition: cr16_disas.h:15
@ CR16_TYPE_NOP
Definition: cr16_disas.h:40
@ CR16_TYPE_EWAIT
Definition: cr16_disas.h:42
@ CR16_TYPE_BCOND
Definition: cr16_disas.h:25
@ CR16_TYPE_AND
Definition: cr16_disas.h:18
@ CR16_TYPE_JCOND
Definition: cr16_disas.h:29

◆ cr16_conds

enum cr16_conds
Enumerator
CR16_COND_EQ 
CR16_COND_NE 
CR16_COND_CS 
CR16_COND_CC 
CR16_COND_HI 
CR16_COND_LS 
CR16_COND_GT 
CR16_COND_LE 
CR16_COND_FS 
CR16_COND_FC 
CR16_COND_LO 
CR16_COND_HS 
CR16_COND_LT 
CR16_COND_GE 

Definition at line 134 of file cr16_disas.h.

134  {
135  CR16_COND_EQ = 0x0,
136  CR16_COND_NE,
137  CR16_COND_CS,
138  CR16_COND_CC,
139  CR16_COND_HI,
140  CR16_COND_LS,
141  CR16_COND_GT,
142  CR16_COND_LE,
143  CR16_COND_FS,
144  CR16_COND_FC,
145  CR16_COND_LO,
146  CR16_COND_HS,
147  CR16_COND_LT,
148  CR16_COND_GE,
149 };
@ CR16_COND_EQ
Definition: cr16_disas.h:135
@ CR16_COND_HI
Definition: cr16_disas.h:139
@ CR16_COND_CC
Definition: cr16_disas.h:138
@ CR16_COND_LE
Definition: cr16_disas.h:142
@ CR16_COND_GT
Definition: cr16_disas.h:141
@ CR16_COND_LT
Definition: cr16_disas.h:147
@ CR16_COND_GE
Definition: cr16_disas.h:148
@ CR16_COND_HS
Definition: cr16_disas.h:146
@ CR16_COND_FC
Definition: cr16_disas.h:144
@ CR16_COND_FS
Definition: cr16_disas.h:143
@ CR16_COND_LO
Definition: cr16_disas.h:145
@ CR16_COND_LS
Definition: cr16_disas.h:140
@ CR16_COND_CS
Definition: cr16_disas.h:137
@ CR16_COND_NE
Definition: cr16_disas.h:136

◆ cr16_dedic_regs

Enumerator
CR16_PSR 
CR16_INTBASE 
CR16_ISP 

Definition at line 128 of file cr16_disas.h.

128  {
129  CR16_PSR = 0x1,
130  CR16_INTBASE = 0x3,
131  CR16_ISP = 0xB,
132 };
@ CR16_ISP
Definition: cr16_disas.h:131
@ CR16_INTBASE
Definition: cr16_disas.h:130
@ CR16_PSR
Definition: cr16_disas.h:129

◆ cr16_opcodes

Enumerator
CR16_ADD 
CR16_ADDU 
CR16_BITI 
CR16_MUL 
CR16_ASHU 
CR16_LSH 
CR16_XOR 
CR16_CMP 
CR16_AND 
CR16_ADDC 
CR16_BCOND01 
CR16_TBIT 
CR16_MOV 
CR16_SUB 
CR16_SUBC 
CR16_OR 
CR16_MOVD 
CR16_MULSB 
CR16_MULSW 
CR16_MULUW 
CR16_MOVXB 
CR16_MOVZB 
CR16_SCOND 
CR16_TBIT_R_R 
CR16_TBIT_I_R 
CR16_JUMP 
CR16_JAL 
CR16_BAL 
CR16_LPR 
CR16_SPR 
CR16_BCOND_2 
CR16_PUSH 
CR16_POP 
CR16_POPRET_1 
CR16_POPRET_2 
CR16_LOADM 
CR16_STORM 

Definition at line 54 of file cr16_disas.h.

54  {
55  CR16_ADD = 0x0,
56  CR16_ADDU = 0x1,
57  CR16_BITI = 0x2,
58  CR16_MUL = 0x3,
59  CR16_ASHU = 0x4,
60  CR16_LSH = 0x5,
61  CR16_XOR = 0x6,
62  CR16_CMP = 0x7,
63  CR16_AND = 0x8,
64  CR16_ADDC = 0x9,
65  CR16_BCOND01 = 0xA,
66  CR16_TBIT = 0xB,
67  CR16_MOV = 0xC,
68  CR16_SUB = 0xF,
69  CR16_SUBC = 0xD,
70  CR16_OR = 0xE,
71  CR16_MOVD = 0x19,
72  CR16_MULSB = 0x30,
73  CR16_MULSW = 0x31,
74  CR16_MULUW = 0x3F,
75  CR16_MOVXB = 0x34,
76  CR16_MOVZB = 0x35,
77  CR16_SCOND = 0x37,
78  CR16_TBIT_R_R = 0x3B,
79  CR16_TBIT_I_R = 0x1B,
80  CR16_JUMP = 0x2A,
81  CR16_JAL = 0x3A,
82  CR16_BAL = 0x1A,
83  CR16_LPR = 0x38,
84  CR16_SPR = 0x39,
85  CR16_BCOND_2 = 0x0A,
86  CR16_PUSH = 0xD8,
87  CR16_POP = 0xD9,
88  CR16_POPRET_1 = 0xDA,
89  CR16_POPRET_2 = 0xDB,
90  CR16_LOADM = 0xFC,
91  CR16_STORM = 0xFD,
92 };
@ CR16_CMP
Definition: cr16_disas.h:62
@ CR16_ASHU
Definition: cr16_disas.h:59
@ CR16_SUB
Definition: cr16_disas.h:68
@ CR16_JUMP
Definition: cr16_disas.h:80
@ CR16_MULUW
Definition: cr16_disas.h:74
@ CR16_BCOND01
Definition: cr16_disas.h:65
@ CR16_MOVD
Definition: cr16_disas.h:71
@ CR16_PUSH
Definition: cr16_disas.h:86
@ CR16_BCOND_2
Definition: cr16_disas.h:85
@ CR16_SUBC
Definition: cr16_disas.h:69
@ CR16_LSH
Definition: cr16_disas.h:60
@ CR16_XOR
Definition: cr16_disas.h:61
@ CR16_LOADM
Definition: cr16_disas.h:90
@ CR16_SCOND
Definition: cr16_disas.h:77
@ CR16_OR
Definition: cr16_disas.h:70
@ CR16_MOV
Definition: cr16_disas.h:67
@ CR16_BAL
Definition: cr16_disas.h:82
@ CR16_AND
Definition: cr16_disas.h:63
@ CR16_BITI
Definition: cr16_disas.h:57
@ CR16_ADDU
Definition: cr16_disas.h:56
@ CR16_ADD
Definition: cr16_disas.h:55
@ CR16_MOVXB
Definition: cr16_disas.h:75
@ CR16_POPRET_2
Definition: cr16_disas.h:89
@ CR16_TBIT_R_R
Definition: cr16_disas.h:78
@ CR16_MOVZB
Definition: cr16_disas.h:76
@ CR16_POP
Definition: cr16_disas.h:87
@ CR16_MUL
Definition: cr16_disas.h:58
@ CR16_SPR
Definition: cr16_disas.h:84
@ CR16_TBIT_I_R
Definition: cr16_disas.h:79
@ CR16_LPR
Definition: cr16_disas.h:83
@ CR16_ADDC
Definition: cr16_disas.h:64
@ CR16_MULSB
Definition: cr16_disas.h:72
@ CR16_STORM
Definition: cr16_disas.h:91
@ CR16_MULSW
Definition: cr16_disas.h:73
@ CR16_POPRET_1
Definition: cr16_disas.h:88
@ CR16_TBIT
Definition: cr16_disas.h:66
@ CR16_JAL
Definition: cr16_disas.h:81

◆ cr16_opcodes_long

Enumerator
CR16_RETX 
CR16_DI 
CR16_EI 
CR16_NOP 
CR16_WAIT 
CR16_EWAIT 

Definition at line 94 of file cr16_disas.h.

94  {
95  CR16_RETX = 0x79FE,
96  CR16_DI = 0x7DDE,
97  CR16_EI = 0x7DFE,
98  CR16_NOP = 0x0200,
99  CR16_WAIT = 0x7FFE,
100  CR16_EWAIT = 0x7FD6,
101 };
@ CR16_WAIT
Definition: cr16_disas.h:99
@ CR16_EWAIT
Definition: cr16_disas.h:100
@ CR16_DI
Definition: cr16_disas.h:96
@ CR16_NOP
Definition: cr16_disas.h:98
@ CR16_EI
Definition: cr16_disas.h:97
@ CR16_RETX
Definition: cr16_disas.h:95

◆ cr16_regs

enum cr16_regs
Enumerator
CR16_R0 
CR16_R1 
CR16_R2 
CR16_R3 
CR16_R4 
CR16_R5 
CR16_R6 
CR16_R7 
CR16_R8 
CR16_R9 
CR16_R10 
CR16_R11 
CR16_R12 
CR16_R13 
CR16_RA 
CR16_SP 
CR16_LAST 

Definition at line 108 of file cr16_disas.h.

108  {
109  CR16_R0 = 0,
110  CR16_R1,
111  CR16_R2,
112  CR16_R3,
113  CR16_R4,
114  CR16_R5,
115  CR16_R6,
116  CR16_R7,
117  CR16_R8,
118  CR16_R9,
119  CR16_R10,
120  CR16_R11,
121  CR16_R12,
122  CR16_R13,
123  CR16_RA,
124  CR16_SP,
125  CR16_LAST,
126 };
@ CR16_RA
Definition: cr16_disas.h:123
@ CR16_LAST
Definition: cr16_disas.h:125
@ CR16_R4
Definition: cr16_disas.h:113
@ CR16_R0
Definition: cr16_disas.h:109
@ CR16_R1
Definition: cr16_disas.h:110
@ CR16_R8
Definition: cr16_disas.h:117
@ CR16_R12
Definition: cr16_disas.h:121
@ CR16_R2
Definition: cr16_disas.h:111
@ CR16_R7
Definition: cr16_disas.h:116
@ CR16_R6
Definition: cr16_disas.h:115
@ CR16_R9
Definition: cr16_disas.h:118
@ CR16_R5
Definition: cr16_disas.h:114
@ CR16_SP
Definition: cr16_disas.h:124
@ CR16_R10
Definition: cr16_disas.h:119
@ CR16_R11
Definition: cr16_disas.h:120
@ CR16_R13
Definition: cr16_disas.h:122
@ CR16_R3
Definition: cr16_disas.h:112

Function Documentation

◆ cr16_decode_command()

int cr16_decode_command ( const ut8 instr,
struct cr16_cmd cmd,
int  len 
)

Definition at line 1184 of file cr16_disas.c.

1184  {
1185  int ret;
1186  ut16 in;
1187  if (len < 2) {
1188  return -1;
1189  }
1190  in = rz_read_le16(instr);
1191 
1192  switch (cr16_get_opcode_low(in)) {
1193  case CR16_MOV:
1194  case CR16_ADD:
1195  case CR16_ADDU:
1196  case CR16_ADDC:
1197  case CR16_MUL:
1198  case CR16_SUB:
1199  case CR16_SUBC:
1200  case CR16_CMP:
1201  case CR16_AND:
1202  case CR16_OR:
1203  case CR16_XOR:
1204  case CR16_ASHU:
1205  case CR16_LSH:
1206  switch (cr16_get_opcode_hi(in)) {
1207  case CR16_I_R:
1208  ret = cr16_decode_i_r(instr, cmd, len);
1209  break;
1210  case CR16_R_R:
1211  ret = cr16_decode_r_r(instr, cmd, len);
1212  break;
1213  default:
1214  ret = -1;
1215  }
1216  if (ret == -1 && cr16_get_opcode_low(in) == CR16_CMP) {
1217  ret = cr16_decode_scond(instr, cmd, len);
1218  }
1219  break;
1220  case CR16_BCOND01:
1221  ret = cr16_decode_bcond01i(instr, cmd, len);
1222  break;
1223  case CR16_BITI:
1224  ret = cr16_decode_biti(instr, cmd, len);
1225  break;
1226  default:
1227  ret = -1;
1228  }
1229 
1230  if (ret != -1) {
1231  return ret;
1232  }
1233 
1234  switch ((in >> 13)) {
1235  case 0x2:
1236  case 0x0:
1237  ret = cr16_decode_bcond_br(instr, cmd, len);
1238  break;
1239  }
1240 
1241  if (ret != -1) {
1242  return ret;
1243  }
1244 
1245  switch (in >> 9) {
1246  case CR16_LPR:
1247  case CR16_SPR:
1248  ret = cr16_decode_slpr(instr, cmd, len);
1249  break;
1250  case CR16_TBIT_R_R:
1251  ret = cr16_decode_r_r(instr, cmd, len);
1252  if (ret == -1) {
1253  ret = cr16_decode_bal(instr, cmd, len);
1254  }
1255  break;
1256  case CR16_TBIT_I_R:
1257  ret = cr16_decode_i_r(instr, cmd, len);
1258  break;
1259  case CR16_BAL:
1260  ret = cr16_decode_bal(instr, cmd, len);
1261  break;
1262  case CR16_JUMP:
1263  case CR16_JAL:
1264  case 0x0B:
1265  ret = cr16_decode_jmp(instr, cmd, len);
1266  if (ret == -1) {
1267  ret = cr16_decode_bcond_br(instr, cmd, len);
1268  }
1269  break;
1270  case CR16_MOVXB:
1271  case CR16_MOVZB:
1272  ret = cr16_decode_movz(instr, cmd, len);
1273  break;
1274  case CR16_MULSB:
1275  case CR16_MULSW:
1276  case CR16_MULUW:
1277  ret = cr16_decode_muls(instr, cmd, len);
1278  break;
1279  }
1280 
1281  if (ret != -1) {
1282  return ret;
1283  }
1284 
1285  switch (in >> 7) {
1286  case CR16_PUSH:
1287  case CR16_POP:
1288  case CR16_POPRET_1:
1289  case CR16_POPRET_2:
1290  ret = cr16_decode_push_pop(instr, cmd, len);
1291  break;
1292  case CR16_LOADM:
1293  case CR16_STORM:
1294  ret = cr16_decode_loadm_storm(instr, cmd, len);
1295  break;
1296  }
1297 
1298  if (ret != -1) {
1299  return ret;
1300  }
1301 
1302  switch (in >> 10) {
1303  case CR16_MOVD:
1304  ret = cr16_decode_movd(instr, cmd, len);
1305  break;
1306  }
1307 
1308  if (ret != -1) {
1309  return ret;
1310  }
1311 
1312  ret = cr16_decode_misc(instr, cmd, len);
1313 
1314  if (ret != -1) {
1315  return ret;
1316  }
1317 
1318  switch (cr16_get_opcode_hi(in)) {
1319  case 0x2:
1320  case 0x3:
1321  case 0x1:
1322  case 0x0:
1323  ret = cr16_decode_ld_st(instr, cmd, len);
1324  break;
1325  }
1326 
1327  if (ret != -1) {
1328  return ret;
1329  }
1330  return ret;
1331 }
size_t len
Definition: 6502dis.c:15
const lzma_allocator const uint8_t * in
Definition: block.h:527
static int cr16_decode_push_pop(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:651
static ut8 cr16_get_opcode_low(const ut16 instr)
Definition: cr16_disas.c:96
static int cr16_decode_bal(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:945
int cr16_decode_loadm_storm(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:976
static int cr16_decode_r_r(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:616
static int cr16_decode_bcond01i(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:849
static ut8 cr16_get_opcode_hi(const ut16 instr)
Definition: cr16_disas.c:100
int cr16_decode_movd(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:1030
static int cr16_decode_misc(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:894
int cr16_decode_movz(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:999
int cr16_decode_scond(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:1095
static int cr16_decode_ld_st(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:437
static int cr16_decode_i_r(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:367
static int cr16_decode_jmp(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:684
static int cr16_decode_bcond_br(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:742
int cr16_decode_muls(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:1056
int cr16_decode_biti(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:1118
static int cr16_decode_slpr(const ut8 *instr, struct cr16_cmd *cmd, int len)
Definition: cr16_disas.c:583
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags cmd
Definition: sflib.h:79
uint16_t ut16
static ut16 rz_read_le16(const void *src)
Definition: rz_endian.h:206

References cmd, CR16_ADD, CR16_ADDC, CR16_ADDU, CR16_AND, CR16_ASHU, CR16_BAL, CR16_BCOND01, CR16_BITI, CR16_CMP, cr16_decode_bal(), cr16_decode_bcond01i(), cr16_decode_bcond_br(), cr16_decode_biti(), cr16_decode_i_r(), cr16_decode_jmp(), cr16_decode_ld_st(), cr16_decode_loadm_storm(), cr16_decode_misc(), cr16_decode_movd(), cr16_decode_movz(), cr16_decode_muls(), cr16_decode_push_pop(), cr16_decode_r_r(), cr16_decode_scond(), cr16_decode_slpr(), cr16_get_opcode_hi(), cr16_get_opcode_low(), CR16_I_R, CR16_JAL, CR16_JUMP, CR16_LOADM, CR16_LPR, CR16_LSH, CR16_MOV, CR16_MOVD, CR16_MOVXB, CR16_MOVZB, CR16_MUL, CR16_MULSB, CR16_MULSW, CR16_MULUW, CR16_OR, CR16_POP, CR16_POPRET_1, CR16_POPRET_2, CR16_PUSH, CR16_R_R, CR16_SPR, CR16_STORM, CR16_SUB, CR16_SUBC, CR16_TBIT_I_R, CR16_TBIT_R_R, CR16_XOR, in, len, and rz_read_le16().

Referenced by cr16_op(), and disassemble().