26 default:
return "<err>";
28 return get_alias ?
"LC0" :
"C1";
30 return get_alias ?
"SA0" :
"C0";
32 return get_alias ?
"LC1" :
"C3";
34 return get_alias ?
"SA1" :
"C2";
36 return get_alias ?
"P3:0" :
"C4";
38 return get_alias ?
"C5" :
"C5";
40 return get_alias ?
"PC" :
"C9";
42 return get_alias ?
"UGP" :
"C10";
44 return get_alias ?
"GP" :
"C11";
46 return get_alias ?
"CS0" :
"C12";
48 return get_alias ?
"CS1" :
"C13";
50 return get_alias ?
"UPCYCLELO" :
"C14";
52 return get_alias ?
"UPCYCLEHI" :
"C15";
54 return get_alias ?
"FRAMELIMIT" :
"C16";
56 return get_alias ?
"FRAMEKEY" :
"C17";
58 return get_alias ?
"PKTCOUNTLO" :
"C18";
60 return get_alias ?
"PKTCOUNTHI" :
"C19";
62 return get_alias ?
"UTIMERLO" :
"C30";
64 return get_alias ?
"UTIMERHI" :
"C31";
66 return get_alias ?
"M0" :
"C6";
68 return get_alias ?
"M1" :
"C7";
70 return get_alias ?
"USR" :
"C8";
76 default:
return "<err>";
78 return get_alias ?
"LC0:SA0" :
"C1:0";
80 return get_alias ?
"LC1:SA1" :
"C3:2";
84 return get_alias ?
"M1:0" :
"C7:6";
90 return get_alias ?
"CS1:0" :
"C13:12";
92 return get_alias ?
"UPCYCLE" :
"C15:14";
96 return get_alias ?
"PKTCOUNT" :
"C19:18";
98 return get_alias ?
"UTIMER" :
"C31:30";
103 switch (opcode_reg) {
104 default:
return "<err>";
136 return get_alias ?
"LR:FP" :
"R31:30";
141 opcode_reg = opcode_reg << 1;
142 if (opcode_reg > 6) {
143 opcode_reg = (opcode_reg & 0x7) | 0x10;
145 switch (opcode_reg) {
146 default:
return "<err>";
167 if (opcode_reg > 7) {
168 opcode_reg = (opcode_reg & 0x7) | 0x10;
170 switch (opcode_reg) {
171 default:
return "<err>";
208 switch (opcode_reg) {
209 default:
return "<err>";
211 return get_alias ?
"GELR" :
"G0";
213 return get_alias ?
"GSR" :
"G1";
215 return get_alias ?
"GOSP" :
"G2";
217 return get_alias ?
"GBADVA" :
"G3";
243 return get_alias ?
"GPMUCNT4" :
"G16";
245 return get_alias ?
"GPMUCNT5" :
"G17";
247 return get_alias ?
"GPMUCNT6" :
"G18";
249 return get_alias ?
"GPMUCNT7" :
"G19";
259 return get_alias ?
"GPCYCLELO" :
"G24";
261 return get_alias ?
"GPCYCLEHI" :
"G25";
263 return get_alias ?
"GPMUCNT0" :
"G26";
265 return get_alias ?
"GPMUCNT1" :
"G27";
267 return get_alias ?
"GPMUCNT2" :
"G28";
269 return get_alias ?
"GPMUCNT3" :
"G29";
278 switch (opcode_reg) {
279 default:
return "<err>";
316 switch (opcode_reg) {
317 default:
return "<err>";
330 switch (opcode_reg) {
331 default:
return "<err>";
352 switch (opcode_reg) {
353 default:
return "<err>";
422 switch (opcode_reg) {
423 default:
return "<err>";
460 switch (opcode_reg) {
461 default:
return "<err>";
521 return get_alias ?
"SP" :
"R29";
523 return get_alias ?
"FP" :
"R30";
525 return get_alias ?
"LR" :
"R31";
530 switch (opcode_reg) {
531 default:
return "<err>";
553 switch (opcode_reg) {
554 default:
return "<err>";
556 return get_alias ?
"M0" :
"C6";
558 return get_alias ?
"M1" :
"C7";
563 switch (opcode_reg) {
564 default:
return "<err>";
577 switch (opcode_reg) {
578 default:
return "<err>";
580 return get_alias ?
"SGP0" :
"S0";
582 return get_alias ?
"SGP1" :
"S1";
584 return get_alias ?
"STID" :
"S2";
586 return get_alias ?
"ELR" :
"S3";
588 return get_alias ?
"BADVA0" :
"S4";
590 return get_alias ?
"BADVA1" :
"S5";
592 return get_alias ?
"SSR" :
"S6";
594 return get_alias ?
"CCR" :
"S7";
596 return get_alias ?
"HTID" :
"S8";
598 return get_alias ?
"BADVA" :
"S9";
600 return get_alias ?
"IMASK" :
"S10";
612 return get_alias ?
"S19" :
"S19";
618 return get_alias ?
"EVB" :
"S16";
620 return get_alias ?
"MODECTL" :
"S17";
622 return get_alias ?
"SYSCFG" :
"S18";
624 return get_alias ?
"S20" :
"S20";
626 return get_alias ?
"VID" :
"S21";
628 return get_alias ?
"S22" :
"S22";
634 return get_alias ?
"CFGBASE" :
"S27";
636 return get_alias ?
"DIAG" :
"S28";
638 return get_alias ?
"REV" :
"S29";
640 return get_alias ?
"PCYCLEHI" :
"S31";
642 return get_alias ?
"PCYCLELO" :
"S30";
644 return get_alias ?
"ISDBST" :
"S32";
646 return get_alias ?
"ISDBCFG0" :
"S33";
648 return get_alias ?
"ISDBCFG1" :
"S34";
652 return get_alias ?
"BRKPTPC0" :
"S36";
654 return get_alias ?
"BRKPTCFG0" :
"S37";
656 return get_alias ?
"BRKPTPC1" :
"S38";
658 return get_alias ?
"BRKPTCFG1" :
"S39";
660 return get_alias ?
"ISDBMBXIN" :
"S40";
662 return get_alias ?
"ISDBMBXOUT" :
"S41";
664 return get_alias ?
"ISDBEN" :
"S42";
666 return get_alias ?
"ISDBGPR" :
"S43";
676 return get_alias ?
"PMUCNT0" :
"S48";
678 return get_alias ?
"PMUCNT1" :
"S49";
680 return get_alias ?
"PMUCNT2" :
"S50";
682 return get_alias ?
"PMUCNT3" :
"S51";
684 return get_alias ?
"PMUEVTCFG" :
"S52";
686 return get_alias ?
"PMUCFG" :
"S53";
745 switch (opcode_reg) {
746 default:
return "<err>";
748 return get_alias ?
"SGP1:0" :
"S1:0";
752 return get_alias ?
"BADVA1:0" :
"S5:4";
754 return get_alias ?
"CCR:SSR" :
"S7:6";
778 return get_alias ?
"PCYCLE" :
"S31:30";
880 if (reg_num <= 1 || reg_num >= 8) {
884 ut8 ahead = (reg_num >> 1);
893 rz_list_foreach_prev(
p->insn, it,
hi) {
916 for (
ut8 i = 0;
i < 6; ++
i) {
918 return hi->ops[
i].op.reg;
static RzILOpEffect * cls(cs_insn *insn)
char * hex_get_double_regs(int opcode_reg, bool get_alias)
char * hex_get_reg_in_class(HexRegClass cls, int opcode_reg, bool get_alias)
char * hex_get_int_regs(int opcode_reg, bool get_alias)
char * hex_get_ctr_regs(int opcode_reg, bool get_alias)
char * hex_get_hvx_vr(int opcode_reg, bool get_alias)
char * hex_get_ctr_regs64(int opcode_reg, bool get_alias)
char * hex_get_pred_regs(int opcode_reg, bool get_alias)
char * hex_get_int_regs_low8(int opcode_reg, bool get_alias)
char * hex_get_hvx_qr(int opcode_reg, bool get_alias)
char * hex_get_hvx_vqr(int opcode_reg, bool get_alias)
char * hex_get_mod_regs(int opcode_reg, bool get_alias)
char * hex_get_guest_regs64(int opcode_reg, bool get_alias)
char * hex_get_sys_regs(int opcode_reg, bool get_alias)
int resolve_n_register(const int reg_num, const ut32 addr, const HexPkt *p)
Resolves the 3 bit value of an Nt.new reg to the general register of the producer.
char * hex_get_general_double_low8_regs(int opcode_reg, bool get_alias)
char * hex_get_guest_regs(int opcode_reg, bool get_alias)
char * hex_get_sys_regs64(int opcode_reg, bool get_alias)
char * hex_get_hvx_wr(int opcode_reg, bool get_alias)
char * hex_get_general_sub_regs(int opcode_reg, bool get_alias)
@ HEX_REG_CTR_REGS64_C19_18
@ HEX_REG_CTR_REGS64_C7_6
@ HEX_REG_CTR_REGS64_C9_8
@ HEX_REG_CTR_REGS64_C15_14
@ HEX_REG_CTR_REGS64_C31_30
@ HEX_REG_CTR_REGS64_C1_0
@ HEX_REG_CTR_REGS64_C5_4
@ HEX_REG_CTR_REGS64_C3_2
@ HEX_REG_CTR_REGS64_C11_10
@ HEX_REG_CTR_REGS64_C13_12
@ HEX_REG_CTR_REGS64_C17_16
@ HEX_REG_DOUBLE_REGS_R13_12
@ HEX_REG_DOUBLE_REGS_R11_10
@ HEX_REG_DOUBLE_REGS_R27_26
@ HEX_REG_DOUBLE_REGS_R15_14
@ HEX_REG_DOUBLE_REGS_R7_6
@ HEX_REG_DOUBLE_REGS_R31_30
@ HEX_REG_DOUBLE_REGS_R29_28
@ HEX_REG_DOUBLE_REGS_R25_24
@ HEX_REG_DOUBLE_REGS_R3_2
@ HEX_REG_DOUBLE_REGS_R21_20
@ HEX_REG_DOUBLE_REGS_R19_18
@ HEX_REG_DOUBLE_REGS_R17_16
@ HEX_REG_DOUBLE_REGS_R23_22
@ HEX_REG_DOUBLE_REGS_R9_8
@ HEX_REG_DOUBLE_REGS_R5_4
@ HEX_REG_DOUBLE_REGS_R1_0
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R1_0
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R7_6
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R17_16
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R19_18
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R23_22
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R5_4
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R21_20
@ HEX_REG_GENERAL_DOUBLE_LOW8_REGS_R3_2
@ HEX_REG_GUEST_REGS64_G27_26
@ HEX_REG_GUEST_REGS64_G1_0
@ HEX_REG_GUEST_REGS64_G3_2
@ HEX_REG_GUEST_REGS64_G23_22
@ HEX_REG_GUEST_REGS64_G31_30
@ HEX_REG_GUEST_REGS64_G13_12
@ HEX_REG_GUEST_REGS64_G25_24
@ HEX_REG_GUEST_REGS64_G29_28
@ HEX_REG_GUEST_REGS64_G21_20
@ HEX_REG_GUEST_REGS64_G15_14
@ HEX_REG_GUEST_REGS64_G7_6
@ HEX_REG_GUEST_REGS64_G19_18
@ HEX_REG_GUEST_REGS64_G17_16
@ HEX_REG_GUEST_REGS64_G9_8
@ HEX_REG_GUEST_REGS64_G5_4
@ HEX_REG_GUEST_REGS64_G11_10
@ HEX_REG_CLASS_INT_REGS_LOW8
@ HEX_REG_CLASS_GUEST_REGS
@ HEX_REG_CLASS_GUEST_REGS64
@ HEX_REG_CLASS_DOUBLE_REGS
@ HEX_REG_CLASS_SYS_REGS64
@ HEX_REG_CLASS_CTR_REGS64
@ HEX_REG_CLASS_PRED_REGS
@ HEX_REG_CLASS_GENERAL_DOUBLE_LOW8_REGS
@ HEX_REG_CLASS_GENERAL_SUB_REGS
@ HEX_REG_GENERAL_SUB_REGS_R22
@ HEX_REG_GENERAL_SUB_REGS_R1
@ HEX_REG_GENERAL_SUB_REGS_R7
@ HEX_REG_GENERAL_SUB_REGS_R0
@ HEX_REG_GENERAL_SUB_REGS_R16
@ HEX_REG_GENERAL_SUB_REGS_R20
@ HEX_REG_GENERAL_SUB_REGS_R6
@ HEX_REG_GENERAL_SUB_REGS_R23
@ HEX_REG_GENERAL_SUB_REGS_R5
@ HEX_REG_GENERAL_SUB_REGS_R18
@ HEX_REG_GENERAL_SUB_REGS_R4
@ HEX_REG_GENERAL_SUB_REGS_R21
@ HEX_REG_GENERAL_SUB_REGS_R19
@ HEX_REG_GENERAL_SUB_REGS_R2
@ HEX_REG_GENERAL_SUB_REGS_R3
@ HEX_REG_GENERAL_SUB_REGS_R17
@ HEX_REG_INT_REGS_LOW8_R7
@ HEX_REG_INT_REGS_LOW8_R3
@ HEX_REG_INT_REGS_LOW8_R0
@ HEX_REG_INT_REGS_LOW8_R5
@ HEX_REG_INT_REGS_LOW8_R2
@ HEX_REG_INT_REGS_LOW8_R1
@ HEX_REG_INT_REGS_LOW8_R4
@ HEX_REG_INT_REGS_LOW8_R6
@ HEX_REG_SYS_REGS64_S1_0
@ HEX_REG_SYS_REGS64_S73_72
@ HEX_REG_SYS_REGS64_S21_20
@ HEX_REG_SYS_REGS64_S37_36
@ HEX_REG_SYS_REGS64_S47_46
@ HEX_REG_SYS_REGS64_S45_44
@ HEX_REG_SYS_REGS64_S63_62
@ HEX_REG_SYS_REGS64_S59_58
@ HEX_REG_SYS_REGS64_S57_56
@ HEX_REG_SYS_REGS64_S61_60
@ HEX_REG_SYS_REGS64_S71_70
@ HEX_REG_SYS_REGS64_S29_28
@ HEX_REG_SYS_REGS64_S15_14
@ HEX_REG_SYS_REGS64_S3_2
@ HEX_REG_SYS_REGS64_S17_16
@ HEX_REG_SYS_REGS64_S39_38
@ HEX_REG_SYS_REGS64_S35_34
@ HEX_REG_SYS_REGS64_S67_66
@ HEX_REG_SYS_REGS64_S77_76
@ HEX_REG_SYS_REGS64_S11_10
@ HEX_REG_SYS_REGS64_S27_26
@ HEX_REG_SYS_REGS64_S19_18
@ HEX_REG_SYS_REGS64_S79_78
@ HEX_REG_SYS_REGS64_S43_42
@ HEX_REG_SYS_REGS64_S75_74
@ HEX_REG_SYS_REGS64_S33_32
@ HEX_REG_SYS_REGS64_S23_22
@ HEX_REG_SYS_REGS64_S53_52
@ HEX_REG_SYS_REGS64_S41_40
@ HEX_REG_SYS_REGS64_S31_30
@ HEX_REG_SYS_REGS64_S49_48
@ HEX_REG_SYS_REGS64_S69_68
@ HEX_REG_SYS_REGS64_S5_4
@ HEX_REG_SYS_REGS64_S51_50
@ HEX_REG_SYS_REGS64_S13_12
@ HEX_REG_SYS_REGS64_S25_24
@ HEX_REG_SYS_REGS64_S7_6
@ HEX_REG_SYS_REGS64_S9_8
@ HEX_REG_SYS_REGS64_S55_54
@ HEX_REG_SYS_REGS64_S65_64
RZ_API ut8 hexagon_get_pkt_index_of_addr(const ut32 addr, const HexPkt *p)
Returns the index of an addr in a given packet.
RZ_API RZ_BORROW void * rz_list_get_n(RZ_NONNULL const RzList *list, ut32 n)
Returns the N-th element of the list.