diff --git a/librz/arch/isa/hexagon/hexagon.h b/librz/arch/isa/hexagon/hexagon.h index a3a69e90b6..1e7b48220a 100644 --- a/librz/arch/isa/hexagon/hexagon.h +++ b/librz/arch/isa/hexagon/hexagon.h @@ -12,6 +12,7 @@ #ifndef HEXAGON_H #define HEXAGON_H +#include "rz_il/rz_il_opcodes.h" #include #include #include @@ -243,6 +244,21 @@ typedef struct { typedef struct { const HexInsn *insn; HexPkt *pkt; + + /** + * \brief Every packet has a jump target. + * Either it is the next packet, or one or two jump/call instructions + * set a target. + * + * For our abstract interpretation it is required that every target address + * is written to a local variable before the rest of the packet is executed. + * The different elements for that procedure are below. + * Check out the code to see how they are used. + */ + const char *jmp_targets[2]; ///< The name of the local variables holding the jump/call targets. + const char *jmp_flags[2]; ///< The local flags a jump/call sets if it is taken. + RzILOpEffect *jmp_set_addr[2]; ///< Effects to set the respective target addresses. + size_t jmp_cnt; ///< Number of calls/jumps lifted. } HexInsnPktBundle; typedef struct { diff --git a/librz/arch/isa/hexagon/hexagon_il.c b/librz/arch/isa/hexagon/hexagon_il.c index 47defc91d5..5774179e3f 100644 --- a/librz/arch/isa/hexagon/hexagon_il.c +++ b/librz/arch/isa/hexagon/hexagon_il.c @@ -25,11 +25,21 @@ static HexILOp hex_jump_flag_init_op = { .get_il_op = (HexILOpGetter)hex_il_op_jump_flag_init, }; -static HexILOp hex_next_jump_to_next_pkt = { +static HexILOp hex_jump_to_next_pkt = { .attr = HEX_IL_INSN_ATTR_BRANCH | HEX_IL_INSN_ATTR_COND, .get_il_op = (HexILOpGetter)hex_il_op_next_pkt_jmp, }; +static HexILOp hex_pkt_set_jmp_target_0 = { + .attr = HEX_IL_INSN_ATTR_NONE, + .get_il_op = (HexILOpGetter)hex_il_op_set_jmp_target_0, +}; + +static HexILOp hex_pkt_set_jmp_target_1 = { + .attr = HEX_IL_INSN_ATTR_NONE, + .get_il_op = (HexILOpGetter)hex_il_op_set_jmp_target_1, +}; + static HexILOp hex_pkt_commit = { .attr = HEX_IL_INSN_ATTR_NONE, .get_il_op = (HexILOpGetter)hex_commit_packet, @@ -207,12 +217,23 @@ RZ_IPI bool hex_shuffle_insns(RZ_INOUT HexPkt *p) { return true; } -static RzILOpEffect *hex_il_op_to_effect(const HexILOp *il_op, HexPkt *pkt) { - rz_return_val_if_fail(il_op && il_op->get_il_op, NULL); - HexInsnPktBundle bundle = { 0 }; - bundle.insn = (HexInsn *)il_op->hi; - bundle.pkt = pkt; - return il_op->get_il_op(&bundle); +static inline void bundle_init(HexInsnPktBundle *bundle) { + memset(bundle, 0, sizeof(HexInsnPktBundle)); + bundle->jmp_targets[0] = "jump_target_0"; + bundle->jmp_targets[1] = "jump_target_1"; + bundle->jmp_flags[0] = "jump_flag_0"; + bundle->jmp_flags[1] = "jump_flag_1"; +} + +static inline void bundle_update(HexInsnPktBundle *bundle, HexInsn *insn, HexPkt *pkt) { + bundle->insn = insn; + bundle->pkt = pkt; +} + +static RzILOpEffect *hex_il_op_to_effect(const HexILOp *il_op, HexPkt *pkt, HexInsnPktBundle *bundle) { + rz_return_val_if_fail(bundle && il_op && il_op->get_il_op, NULL); + bundle_update(bundle, il_op->hi, pkt); + return il_op->get_il_op(bundle); } /** @@ -231,9 +252,11 @@ static RZ_OWN RzILOpEffect *hex_pkt_to_il_seq(HexPkt *pkt) { RZ_LOG_WARN("Invalid il ops sequence! There should be at least two il ops per packet.\n"); return NULL; } + HexInsnPktBundle bundle; + bundle_init(&bundle); RzILOpEffect *complete_seq = EMPTY(); for (ut32 i = 0; i < rz_pvector_len(pkt->il_ops); ++i) { - complete_seq = SEQ2(complete_seq, hex_il_op_to_effect((HexILOp *)rz_pvector_at(pkt->il_ops, i), pkt)); + complete_seq = SEQ2(complete_seq, hex_il_op_to_effect((HexILOp *)rz_pvector_at(pkt->il_ops, i), pkt, &bundle)); } return complete_seq; } @@ -336,6 +359,41 @@ static inline bool pkt_at_addr_is_emu_ready(const HexPkt *pkt, const ut32 addr) return addr == pkt->pkt_addr && pkt->is_valid && pkt->last_instr_present; } +/** + * \brief Inserts the `SETL(jmp_target_X, PURE)` effects after the respective + * jump effects. + */ +static bool insert_set_jmp_addr_effects(HexPkt *pkt) { + size_t idx[2] = { 0 }; + size_t c = 0; + size_t i; + void **it; + rz_pvector_enumerate (pkt->il_ops, it, i) { + HexILOp *op = *it; + if (!(op->attr & HEX_IL_INSN_ATTR_BRANCH)) { + continue; + } + if (c >= 2) { + RZ_LOG_ERROR("Packet 0x%" PFMT32x " contains more than two branch instructions.\n", pkt->pkt_addr); + return false; + } + idx[c] = i + c + 1; + c++; + } + for (size_t k = 0; k < c; k++) { + rz_pvector_insert(pkt->il_ops, idx[k], k == 0 ? &hex_pkt_set_jmp_target_0 : &hex_pkt_set_jmp_target_1); + if (rz_pvector_at(pkt->il_ops, idx[k] - 1) == &hex_endloop01_op) { + // Edge case: + // The endloop01 effect has two jumps in it (one for each loop). + // but it is logged only once above. + // So we have to insert the second set_jmp_target_1 effect as well. + rz_pvector_insert(pkt->il_ops, idx[k] + 1, &hex_pkt_set_jmp_target_1); + break; + } + } + return true; +} + /** * \brief Returns the IL operation of the instruction at \p addr. This will always be EMPTY(). * Except for last instructions in a packet. Those will always return the complete IL operation @@ -406,9 +464,14 @@ RZ_IPI RZ_OWN RzILOpEffect *hex_get_il_op(const ut32 addr, bool get_pkt_op, RZ_N rz_pvector_push(p->il_ops, &hex_endloop01_op); } + if (!insert_set_jmp_addr_effects(p)) { + rz_warn_if_reached(); + return NULL; + } + rz_pvector_push(p->il_ops, &hex_pkt_commit); // Add a jump to the next packet. - rz_pvector_push(p->il_ops, &hex_next_jump_to_next_pkt); + rz_pvector_push(p->il_ops, &hex_jump_to_next_pkt); check_for_jumps(p, &state->might_have_jumped); diff --git a/librz/arch/isa/hexagon/hexagon_il.h b/librz/arch/isa/hexagon/hexagon_il.h index 3f28106f5c..2345b74caa 100644 --- a/librz/arch/isa/hexagon/hexagon_il.h +++ b/librz/arch/isa/hexagon/hexagon_il.h @@ -62,6 +62,8 @@ RZ_IPI RZ_OWN RzILOpEffect *hex_get_npc(const HexPkt *pkt); RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_jump_flag_init(HexInsnPktBundle *bundle); RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_next_pkt_jmp(HexInsnPktBundle *bundle); RZ_IPI RZ_OWN RzILOpEffect *hex_commit_packet(HexInsnPktBundle *bundle); +RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_set_jmp_target_0(HexInsnPktBundle *bundle); +RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_set_jmp_target_1(HexInsnPktBundle *bundle); RZ_IPI RZ_OWN RzILOpEffect *hex_write_reg(RZ_BORROW HexInsnPktBundle *bundle, const HexOp *op, RzILOpPure *val); RZ_IPI RZ_OWN RzILOpPure *hex_read_reg(RZ_BORROW HexPkt *pkt, const HexOp *op, bool tmp_reg); RZ_IPI RZ_OWN RzILOpEffect *hex_cancel_slot(RZ_BORROW HexPkt *pkt, ut8 slot); diff --git a/librz/arch/isa/hexagon/il_ops/hexagon_il_A2_ops.c b/librz/arch/isa/hexagon/il_ops/hexagon_il_A2_ops.c index 28f56c2959..5d7e47643d 100644 --- a/librz/arch/isa/hexagon/il_ops/hexagon_il_A2_ops.c +++ b/librz/arch/isa/hexagon/il_ops/hexagon_il_A2_ops.c @@ -9161,4 +9161,4 @@ RzILOpEffect *hex_il_op_a2_zxth(HexInsnPktBundle *bundle) { return instruction_sequence; } -#include \ No newline at end of file +#include diff --git a/librz/arch/isa/hexagon/il_ops/hexagon_il_J2_ops.c b/librz/arch/isa/hexagon/il_ops/hexagon_il_J2_ops.c index 05a1f16f53..aa12a1992f 100644 --- a/librz/arch/isa/hexagon/il_ops/hexagon_il_J2_ops.c +++ b/librz/arch/isa/hexagon/il_ops/hexagon_il_J2_ops.c @@ -3,7 +3,7 @@ // LLVM commit: bc5ac5f3ebb0bc4fc65cef7160c817ca3174a68e // LLVM commit date: 2026-03-15 10:22:07 -0700 (ISO 8601 format) -// Date of code generation: 2026-03-23 17:45:56+01:00 +// Date of code generation: 2026-07-24 15:06:07+02:00 //======================================== // The following code is generated. // Do not edit. Repository of code generator: @@ -48,7 +48,10 @@ RzILOpEffect *hex_il_op_j2_call(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_20 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_20_21 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_20)); + RzILOpEffect *jump_op_ADD_20_21 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_20); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(4, imm_assign_0, op_ASSIGN_7, seq_17, jump_op_ADD_20_21); return instruction_sequence; @@ -90,7 +93,10 @@ RzILOpEffect *hex_il_op_j2_callf(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_26 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_26_27 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_26)); + RzILOpEffect *jump_op_ADD_26_27 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_26); + bundle->jmp_cnt++; // seq(seq(seq(HYB(call_pkt); h_tmp158 = HYB(call_pkt)); lr = (h_tm ...; RzILOpEffect *seq_then_30 = SEQN(2, seq_23, jump_op_ADD_26_27); @@ -130,7 +136,10 @@ RzILOpEffect *hex_il_op_j2_callr(HexInsnPktBundle *bundle) { RzILOpEffect *seq_9 = SEQN(2, seq_4, op_ASSIGN_8); // jump(Rs); - RzILOpEffect *jump_Rs_11 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_11 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(2, seq_9, jump_Rs_11); return instruction_sequence; @@ -164,7 +173,10 @@ RzILOpEffect *hex_il_op_j2_callrf(HexInsnPktBundle *bundle) { RzILOpEffect *seq_15 = SEQN(2, seq_10, op_ASSIGN_14); // jump(Rs); - RzILOpEffect *jump_Rs_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(seq(seq(HYB(call_pkt); h_tmp160 = HYB(call_pkt)); lr = (h_tm ...; RzILOpEffect *seq_then_20 = SEQN(2, seq_15, jump_Rs_17); @@ -204,7 +216,10 @@ RzILOpEffect *hex_il_op_j2_callrh(HexInsnPktBundle *bundle) { RzILOpEffect *seq_9 = SEQN(2, seq_4, op_ASSIGN_8); // jump(Rs); - RzILOpEffect *jump_Rs_11 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_11 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(2, seq_9, jump_Rs_11); return instruction_sequence; @@ -238,7 +253,10 @@ RzILOpEffect *hex_il_op_j2_callrt(HexInsnPktBundle *bundle) { RzILOpEffect *seq_14 = SEQN(2, seq_9, op_ASSIGN_13); // jump(Rs); - RzILOpEffect *jump_Rs_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(seq(seq(HYB(call_pkt); h_tmp162 = HYB(call_pkt)); lr = (h_tm ...; RzILOpEffect *seq_then_19 = SEQN(2, seq_14, jump_Rs_16); @@ -287,7 +305,10 @@ RzILOpEffect *hex_il_op_j2_callt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_25 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_25_26 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_25)); + RzILOpEffect *jump_op_ADD_25_26 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_25); + bundle->jmp_cnt++; // seq(seq(seq(HYB(call_pkt); h_tmp163 = HYB(call_pkt)); lr = (h_tm ...; RzILOpEffect *seq_then_29 = SEQN(2, seq_22, jump_op_ADD_25_26); @@ -317,7 +338,10 @@ RzILOpEffect *hex_il_op_j2_jump(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_10 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_10_11 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_10)); + RzILOpEffect *jump_op_ADD_10_11 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_10); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(3, imm_assign_0, op_ASSIGN_7, jump_op_ADD_10_11); return instruction_sequence; @@ -342,7 +366,10 @@ RzILOpEffect *hex_il_op_j2_jumpf(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -375,7 +402,10 @@ RzILOpEffect *hex_il_op_j2_jumpfnew(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -408,7 +438,10 @@ RzILOpEffect *hex_il_op_j2_jumpfnewpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -441,7 +474,10 @@ RzILOpEffect *hex_il_op_j2_jumpfpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -464,7 +500,10 @@ RzILOpEffect *hex_il_op_j2_jumpr(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_1 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_1 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = jump_Rs_1; return instruction_sequence; @@ -481,7 +520,10 @@ RzILOpEffect *hex_il_op_j2_jumprf(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_7 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_7 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_10 = jump_Rs_7; @@ -506,7 +548,10 @@ RzILOpEffect *hex_il_op_j2_jumprfnew(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_7 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_7 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_10 = jump_Rs_7; @@ -531,7 +576,10 @@ RzILOpEffect *hex_il_op_j2_jumprfnewpt(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_7 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_7 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_10 = jump_Rs_7; @@ -556,7 +604,10 @@ RzILOpEffect *hex_il_op_j2_jumprfpt(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_7 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_7 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_10 = jump_Rs_7; @@ -585,7 +636,10 @@ RzILOpEffect *hex_il_op_j2_jumprgtez(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -613,7 +667,10 @@ RzILOpEffect *hex_il_op_j2_jumprgtezpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -635,7 +692,10 @@ RzILOpEffect *hex_il_op_j2_jumprh(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_1 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_1 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = jump_Rs_1; return instruction_sequence; @@ -656,7 +716,10 @@ RzILOpEffect *hex_il_op_j2_jumprltez(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -684,7 +747,10 @@ RzILOpEffect *hex_il_op_j2_jumprltezpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -712,7 +778,10 @@ RzILOpEffect *hex_il_op_j2_jumprnz(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -740,7 +809,10 @@ RzILOpEffect *hex_il_op_j2_jumprnzpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -764,7 +836,10 @@ RzILOpEffect *hex_il_op_j2_jumprt(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_6 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_6 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_9 = jump_Rs_6; @@ -788,7 +863,10 @@ RzILOpEffect *hex_il_op_j2_jumprtnew(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_6 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_6 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_9 = jump_Rs_6; @@ -812,7 +890,10 @@ RzILOpEffect *hex_il_op_j2_jumprtnewpt(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_6 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_6 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_9 = jump_Rs_6; @@ -836,7 +917,10 @@ RzILOpEffect *hex_il_op_j2_jumprtpt(HexInsnPktBundle *bundle) { RzILOpPure *Rs = READ_REG(pkt, Rs_op, false); // jump(Rs); - RzILOpEffect *jump_Rs_6 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", Rs)); + RzILOpEffect *jump_Rs_6 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], Rs); + bundle->jmp_cnt++; // seq(jump(Rs)); RzILOpEffect *seq_then_9 = jump_Rs_6; @@ -864,7 +948,10 @@ RzILOpEffect *hex_il_op_j2_jumprz(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -892,7 +979,10 @@ RzILOpEffect *hex_il_op_j2_jumprzpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_7 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_7_8 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_7)); + RzILOpEffect *jump_op_ADD_7_8 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_7); + bundle->jmp_cnt++; // seq(jump(pc + ((ut32) r))); RzILOpEffect *seq_then_10 = jump_op_ADD_7_8; @@ -924,7 +1014,10 @@ RzILOpEffect *hex_il_op_j2_jumpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -956,7 +1049,10 @@ RzILOpEffect *hex_il_op_j2_jumptnew(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -988,7 +1084,10 @@ RzILOpEffect *hex_il_op_j2_jumptnewpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1020,7 +1119,10 @@ RzILOpEffect *hex_il_op_j2_jumptpt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); diff --git a/librz/arch/isa/hexagon/il_ops/hexagon_il_J4_ops.c b/librz/arch/isa/hexagon/il_ops/hexagon_il_J4_ops.c index 157bd8f77e..c481aec506 100644 --- a/librz/arch/isa/hexagon/il_ops/hexagon_il_J4_ops.c +++ b/librz/arch/isa/hexagon/il_ops/hexagon_il_J4_ops.c @@ -3,7 +3,7 @@ // LLVM commit: bc5ac5f3ebb0bc4fc65cef7160c817ca3174a68e // LLVM commit date: 2026-03-15 10:22:07 -0700 (ISO 8601 format) -// Date of code generation: 2026-03-23 17:45:56+01:00 +// Date of code generation: 2026-07-24 15:06:07+02:00 //======================================== // The following code is generated. // Do not edit. Repository of code generator: @@ -35,7 +35,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -69,7 +72,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -121,7 +127,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -174,7 +183,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -227,7 +239,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -280,7 +295,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -315,7 +333,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -349,7 +370,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -401,7 +425,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -453,7 +480,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -505,7 +535,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -557,7 +590,10 @@ RzILOpEffect *hex_il_op_j4_cmpeq_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -593,7 +629,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -629,7 +668,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -683,7 +725,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -738,7 +783,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -793,7 +841,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -848,7 +899,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -885,7 +939,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -921,7 +978,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -975,7 +1035,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1029,7 +1092,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1083,7 +1149,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1137,7 +1206,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqi_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1169,7 +1241,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1201,7 +1276,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1251,7 +1329,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1302,7 +1383,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1353,7 +1437,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1404,7 +1491,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1437,7 +1527,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1469,7 +1562,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1519,7 +1615,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1569,7 +1668,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1619,7 +1721,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1669,7 +1774,10 @@ RzILOpEffect *hex_il_op_j4_cmpeqn1_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -1703,7 +1811,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1738,7 +1849,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1791,7 +1905,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1844,7 +1961,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1897,7 +2017,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1950,7 +2073,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -1985,7 +2111,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2019,7 +2148,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2071,7 +2203,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2123,7 +2258,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2175,7 +2313,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2227,7 +2368,10 @@ RzILOpEffect *hex_il_op_j4_cmpgt_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2263,7 +2407,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -2300,7 +2447,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -2355,7 +2505,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -2410,7 +2563,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -2465,7 +2621,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -2520,7 +2679,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -2557,7 +2719,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -2593,7 +2758,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -2647,7 +2815,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2701,7 +2872,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2755,7 +2929,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2809,7 +2986,10 @@ RzILOpEffect *hex_il_op_j4_cmpgti_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -2841,7 +3021,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -2874,7 +3057,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -2925,7 +3111,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -2976,7 +3165,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3027,7 +3219,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3078,7 +3273,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3111,7 +3309,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3143,7 +3344,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3193,7 +3397,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3243,7 +3450,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3293,7 +3503,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3343,7 +3556,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtn1_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3377,7 +3593,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -3412,7 +3631,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -3465,7 +3687,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3518,7 +3743,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3571,7 +3799,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3624,7 +3855,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -3659,7 +3893,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -3693,7 +3930,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -3745,7 +3985,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3797,7 +4040,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3849,7 +4095,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3901,7 +4150,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtu_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -3937,7 +4189,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -3974,7 +4229,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -4029,7 +4287,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4084,7 +4345,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4139,7 +4403,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4194,7 +4461,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4231,7 +4501,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -4267,7 +4540,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -4321,7 +4597,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -4375,7 +4654,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -4429,7 +4711,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -4483,7 +4768,10 @@ RzILOpEffect *hex_il_op_j4_cmpgtui_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -4517,7 +4805,10 @@ RzILOpEffect *hex_il_op_j4_cmplt_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4552,7 +4843,10 @@ RzILOpEffect *hex_il_op_j4_cmplt_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4587,7 +4881,10 @@ RzILOpEffect *hex_il_op_j4_cmplt_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -4621,7 +4918,10 @@ RzILOpEffect *hex_il_op_j4_cmplt_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -4655,7 +4955,10 @@ RzILOpEffect *hex_il_op_j4_cmpltu_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -4690,7 +4993,10 @@ RzILOpEffect *hex_il_op_j4_cmpltu_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_17 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_17_18 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_17)); + RzILOpEffect *jump_op_ADD_17_18 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_17); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_20 = SEQN(2, op_ASSIGN_14, jump_op_ADD_17_18); @@ -4725,7 +5031,10 @@ RzILOpEffect *hex_il_op_j4_cmpltu_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -4759,7 +5068,10 @@ RzILOpEffect *hex_il_op_j4_cmpltu_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_16 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_16_17 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_16)); + RzILOpEffect *jump_op_ADD_16_17 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_16); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_19 = SEQN(2, op_ASSIGN_13, jump_op_ADD_16_17); @@ -4805,7 +5117,10 @@ RzILOpEffect *hex_il_op_j4_jumpseti(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, imm_assign_9, op_ASSIGN_7, op_ASSIGN_12, jump_op_ADD_15_16); return instruction_sequence; @@ -4834,7 +5149,10 @@ RzILOpEffect *hex_il_op_j4_jumpsetr(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_13 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_13_14 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_13)); + RzILOpEffect *jump_op_ADD_13_14 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_13); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(4, imm_assign_0, op_ASSIGN_7, op_ASSIGN_10, jump_op_ADD_13_14); return instruction_sequence; @@ -4859,7 +5177,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_f_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4892,7 +5213,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_f_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4943,7 +5267,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_fp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -4994,7 +5321,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_fp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -5045,7 +5375,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_fp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -5096,7 +5429,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_fp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_15 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_15_16 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_15)); + RzILOpEffect *jump_op_ADD_15_16 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_15); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_18 = SEQN(2, op_ASSIGN_12, jump_op_ADD_15_16); @@ -5129,7 +5465,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_t_jumpnv_nt(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -5161,7 +5500,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_t_jumpnv_t(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -5211,7 +5553,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_tp0_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -5261,7 +5606,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_tp0_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -5311,7 +5659,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_tp1_jump_nt_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); @@ -5361,7 +5712,10 @@ RzILOpEffect *hex_il_op_j4_tstbit0_tp1_jump_t_part1(HexInsnPktBundle *bundle) { // jump(pc + ((ut32) r)); RzILOpPure *op_ADD_14 = ADD(pc, CAST(32, IL_FALSE, VARL("r"))); - RzILOpEffect *jump_op_ADD_14_15 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", op_ADD_14)); + RzILOpEffect *jump_op_ADD_14_15 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], op_ADD_14); + bundle->jmp_cnt++; // seq(r; r = (r & -0x4); jump(pc + ((ut32) r))); RzILOpEffect *seq_then_17 = SEQN(2, op_ASSIGN_11, jump_op_ADD_14_15); diff --git a/librz/arch/isa/hexagon/il_ops/hexagon_il_L4_ops.c b/librz/arch/isa/hexagon/il_ops/hexagon_il_L4_ops.c index d1b40c8fcb..5ff6f59e63 100644 --- a/librz/arch/isa/hexagon/il_ops/hexagon_il_L4_ops.c +++ b/librz/arch/isa/hexagon/il_ops/hexagon_il_L4_ops.c @@ -3,7 +3,7 @@ // LLVM commit: bc5ac5f3ebb0bc4fc65cef7160c817ca3174a68e // LLVM commit date: 2026-03-15 10:22:07 -0700 (ISO 8601 format) -// Date of code generation: 2026-03-23 17:45:56+01:00 +// Date of code generation: 2026-07-24 15:06:07+02:00 //======================================== // The following code is generated. // Do not edit. Repository of code generator: @@ -1027,9 +1027,9 @@ RzILOpEffect *hex_il_op_l4_loadbsw4_ap(HexInsnPktBundle *bundle) { RzILOpEffect *seq_47 = SEQN(2, op_ASSIGN_11, for_46); // Re = ((st32) U); - RzILOpEffect *op_ASSIGN_50 = WRITE_REG(bundle, Re_op, CAST(32, IL_FALSE, VARL("U"))); + RzILOpEffect *op_ASSIGN_51 = WRITE_REG(bundle, Re_op, CAST(32, IL_FALSE, VARL("U"))); - RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, op_ASSIGN_3, op_ASSIGN_9, seq_47, op_ASSIGN_50); + RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, op_ASSIGN_3, op_ASSIGN_9, seq_47, op_ASSIGN_51); return instruction_sequence; } @@ -1167,9 +1167,9 @@ RzILOpEffect *hex_il_op_l4_loadbzw2_ap(HexInsnPktBundle *bundle) { RzILOpEffect *seq_48 = SEQN(2, op_ASSIGN_11, for_47); // Re = ((st32) U); - RzILOpEffect *op_ASSIGN_51 = WRITE_REG(bundle, Re_op, CAST(32, IL_FALSE, VARL("U"))); + RzILOpEffect *op_ASSIGN_52 = WRITE_REG(bundle, Re_op, CAST(32, IL_FALSE, VARL("U"))); - RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, op_ASSIGN_3, op_ASSIGN_9, seq_48, op_ASSIGN_51); + RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, op_ASSIGN_3, op_ASSIGN_9, seq_48, op_ASSIGN_52); return instruction_sequence; } @@ -1307,9 +1307,9 @@ RzILOpEffect *hex_il_op_l4_loadbzw4_ap(HexInsnPktBundle *bundle) { RzILOpEffect *seq_47 = SEQN(2, op_ASSIGN_11, for_46); // Re = ((st32) U); - RzILOpEffect *op_ASSIGN_50 = WRITE_REG(bundle, Re_op, CAST(32, IL_FALSE, VARL("U"))); + RzILOpEffect *op_ASSIGN_51 = WRITE_REG(bundle, Re_op, CAST(32, IL_FALSE, VARL("U"))); - RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, op_ASSIGN_3, op_ASSIGN_9, seq_47, op_ASSIGN_50); + RzILOpEffect *instruction_sequence = SEQN(5, imm_assign_0, op_ASSIGN_3, op_ASSIGN_9, seq_47, op_ASSIGN_51); return instruction_sequence; } @@ -4062,7 +4062,10 @@ RzILOpEffect *hex_il_op_l4_return(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_25 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_27 = LOGAND(op_RSHIFT_25, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_30_31 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_27), DUP(op_AND_27))), CAST(32, MSB(DUP(op_AND_27)), DUP(op_AND_27)))))); + RzILOpEffect *jump_cast_ut32_30_31 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_27), DUP(op_AND_27))), CAST(32, MSB(DUP(op_AND_27)), DUP(op_AND_27))))); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(5, op_ASSIGN_4, op_ASSIGN_8, op_ASSIGN_16, op_ASSIGN_21, jump_cast_ut32_30_31); return instruction_sequence; @@ -4103,7 +4106,10 @@ RzILOpEffect *hex_il_op_l4_return_f(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_31 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_33 = LOGAND(op_RSHIFT_31, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_36_37 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_33), DUP(op_AND_33))), CAST(32, MSB(DUP(op_AND_33)), DUP(op_AND_33)))))); + RzILOpEffect *jump_cast_ut32_36_37 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_33), DUP(op_AND_33))), CAST(32, MSB(DUP(op_AND_33)), DUP(op_AND_33))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_39 = NOP(); @@ -4158,7 +4164,10 @@ RzILOpEffect *hex_il_op_l4_return_fnew_pnt(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_31 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_33 = LOGAND(op_RSHIFT_31, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_36_37 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_33), DUP(op_AND_33))), CAST(32, MSB(DUP(op_AND_33)), DUP(op_AND_33)))))); + RzILOpEffect *jump_cast_ut32_36_37 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_33), DUP(op_AND_33))), CAST(32, MSB(DUP(op_AND_33)), DUP(op_AND_33))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_39 = NOP(); @@ -4213,7 +4222,10 @@ RzILOpEffect *hex_il_op_l4_return_fnew_pt(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_31 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_33 = LOGAND(op_RSHIFT_31, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_36_37 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_33), DUP(op_AND_33))), CAST(32, MSB(DUP(op_AND_33)), DUP(op_AND_33)))))); + RzILOpEffect *jump_cast_ut32_36_37 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_33), DUP(op_AND_33))), CAST(32, MSB(DUP(op_AND_33)), DUP(op_AND_33))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_39 = NOP(); @@ -4268,7 +4280,10 @@ RzILOpEffect *hex_il_op_l4_return_t(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_30 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_32 = LOGAND(op_RSHIFT_30, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_35_36 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_32), DUP(op_AND_32))), CAST(32, MSB(DUP(op_AND_32)), DUP(op_AND_32)))))); + RzILOpEffect *jump_cast_ut32_35_36 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_32), DUP(op_AND_32))), CAST(32, MSB(DUP(op_AND_32)), DUP(op_AND_32))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_38 = NOP(); @@ -4322,7 +4337,10 @@ RzILOpEffect *hex_il_op_l4_return_tnew_pnt(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_30 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_32 = LOGAND(op_RSHIFT_30, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_35_36 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_32), DUP(op_AND_32))), CAST(32, MSB(DUP(op_AND_32)), DUP(op_AND_32)))))); + RzILOpEffect *jump_cast_ut32_35_36 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_32), DUP(op_AND_32))), CAST(32, MSB(DUP(op_AND_32)), DUP(op_AND_32))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_38 = NOP(); @@ -4376,7 +4394,10 @@ RzILOpEffect *hex_il_op_l4_return_tnew_pt(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((Rdd >> 0x20) & 0xffffffff))))); RzILOpPure *op_RSHIFT_30 = SHIFTRA(READ_REG(pkt, Rdd_op, true), SN(32, 0x20)); RzILOpPure *op_AND_32 = LOGAND(op_RSHIFT_30, SN(64, 0xffffffff)); - RzILOpEffect *jump_cast_ut32_35_36 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_32), DUP(op_AND_32))), CAST(32, MSB(DUP(op_AND_32)), DUP(op_AND_32)))))); + RzILOpEffect *jump_cast_ut32_35_36 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, MSB(op_AND_32), DUP(op_AND_32))), CAST(32, MSB(DUP(op_AND_32)), DUP(op_AND_32))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_38 = NOP(); diff --git a/librz/arch/isa/hexagon/il_ops/hexagon_il_SL2_ops.c b/librz/arch/isa/hexagon/il_ops/hexagon_il_SL2_ops.c index 3857524d9d..5debd7c62c 100644 --- a/librz/arch/isa/hexagon/il_ops/hexagon_il_SL2_ops.c +++ b/librz/arch/isa/hexagon/il_ops/hexagon_il_SL2_ops.c @@ -3,7 +3,7 @@ // LLVM commit: bc5ac5f3ebb0bc4fc65cef7160c817ca3174a68e // LLVM commit date: 2026-03-15 10:22:07 -0700 (ISO 8601 format) -// Date of code generation: 2026-03-23 17:45:56+01:00 +// Date of code generation: 2026-07-24 15:06:07+02:00 //======================================== // The following code is generated. // Do not edit. Repository of code generator: @@ -64,7 +64,10 @@ RzILOpEffect *hex_il_op_sl2_jumpr31(HexInsnPktBundle *bundle) { RzILOpPure *lr = READ_REG(pkt, &lr_op, false); // jump(lr); - RzILOpEffect *jump_lr_1 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", lr)); + RzILOpEffect *jump_lr_1 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], lr); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = jump_lr_1; return instruction_sequence; @@ -80,7 +83,10 @@ RzILOpEffect *hex_il_op_sl2_jumpr31_f(HexInsnPktBundle *bundle) { RzILOpPure *lr = READ_REG(pkt, &lr_op, false); // jump(lr); - RzILOpEffect *jump_lr_7 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", lr)); + RzILOpEffect *jump_lr_7 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], lr); + bundle->jmp_cnt++; // seq(jump(lr)); RzILOpEffect *seq_then_9 = jump_lr_7; @@ -104,7 +110,10 @@ RzILOpEffect *hex_il_op_sl2_jumpr31_fnew(HexInsnPktBundle *bundle) { RzILOpPure *lr = READ_REG(pkt, &lr_op, false); // jump(lr); - RzILOpEffect *jump_lr_7 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", lr)); + RzILOpEffect *jump_lr_7 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], lr); + bundle->jmp_cnt++; // seq(jump(lr)); RzILOpEffect *seq_then_9 = jump_lr_7; @@ -128,7 +137,10 @@ RzILOpEffect *hex_il_op_sl2_jumpr31_t(HexInsnPktBundle *bundle) { RzILOpPure *lr = READ_REG(pkt, &lr_op, false); // jump(lr); - RzILOpEffect *jump_lr_6 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", lr)); + RzILOpEffect *jump_lr_6 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], lr); + bundle->jmp_cnt++; // seq(jump(lr)); RzILOpEffect *seq_then_8 = jump_lr_6; @@ -151,7 +163,10 @@ RzILOpEffect *hex_il_op_sl2_jumpr31_tnew(HexInsnPktBundle *bundle) { RzILOpPure *lr = READ_REG(pkt, &lr_op, false); // jump(lr); - RzILOpEffect *jump_lr_6 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", lr)); + RzILOpEffect *jump_lr_6 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], lr); + bundle->jmp_cnt++; // seq(jump(lr)); RzILOpEffect *seq_then_8 = jump_lr_6; @@ -335,7 +350,10 @@ RzILOpEffect *hex_il_op_sl2_return(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((tmp >> 0x20) & ((ut64) 0xffffffff)))))); RzILOpPure *op_RSHIFT_45 = SHIFTR0(VARL("tmp"), SN(32, 0x20)); RzILOpPure *op_AND_48 = LOGAND(op_RSHIFT_45, CAST(64, IL_FALSE, SN(64, 0xffffffff))); - RzILOpEffect *jump_cast_ut32_51_52 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_48)), CAST(32, IL_FALSE, DUP(op_AND_48)))))); + RzILOpEffect *jump_cast_ut32_51_52 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_48)), CAST(32, IL_FALSE, DUP(op_AND_48))))); + bundle->jmp_cnt++; RzILOpEffect *instruction_sequence = SEQN(7, op_ASSIGN_3, op_ASSIGN_7, op_ASSIGN_13, op_ASSIGN_25, op_ASSIGN_36, op_ASSIGN_41, jump_cast_ut32_51_52); return instruction_sequence; @@ -384,7 +402,10 @@ RzILOpEffect *hex_il_op_sl2_return_f(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((tmp >> 0x20) & ((ut64) 0xffffffff)))))); RzILOpPure *op_RSHIFT_52 = SHIFTR0(VARL("tmp"), SN(32, 0x20)); RzILOpPure *op_AND_55 = LOGAND(op_RSHIFT_52, CAST(64, IL_FALSE, SN(64, 0xffffffff))); - RzILOpEffect *jump_cast_ut32_58_59 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_55)), CAST(32, IL_FALSE, DUP(op_AND_55)))))); + RzILOpEffect *jump_cast_ut32_58_59 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_55)), CAST(32, IL_FALSE, DUP(op_AND_55))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_61 = NOP(); @@ -447,7 +468,10 @@ RzILOpEffect *hex_il_op_sl2_return_fnew(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((tmp >> 0x20) & ((ut64) 0xffffffff)))))); RzILOpPure *op_RSHIFT_51 = SHIFTR0(VARL("tmp"), SN(32, 0x20)); RzILOpPure *op_AND_54 = LOGAND(op_RSHIFT_51, CAST(64, IL_FALSE, SN(64, 0xffffffff))); - RzILOpEffect *jump_cast_ut32_57_58 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_54)), CAST(32, IL_FALSE, DUP(op_AND_54)))))); + RzILOpEffect *jump_cast_ut32_57_58 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_54)), CAST(32, IL_FALSE, DUP(op_AND_54))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_60 = NOP(); @@ -510,7 +534,10 @@ RzILOpEffect *hex_il_op_sl2_return_t(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((tmp >> 0x20) & ((ut64) 0xffffffff)))))); RzILOpPure *op_RSHIFT_51 = SHIFTR0(VARL("tmp"), SN(32, 0x20)); RzILOpPure *op_AND_54 = LOGAND(op_RSHIFT_51, CAST(64, IL_FALSE, SN(64, 0xffffffff))); - RzILOpEffect *jump_cast_ut32_57_58 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_54)), CAST(32, IL_FALSE, DUP(op_AND_54)))))); + RzILOpEffect *jump_cast_ut32_57_58 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_54)), CAST(32, IL_FALSE, DUP(op_AND_54))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_60 = NOP(); @@ -572,7 +599,10 @@ RzILOpEffect *hex_il_op_sl2_return_tnew(HexInsnPktBundle *bundle) { // jump(((ut32) ((st64) ((st32) ((tmp >> 0x20) & ((ut64) 0xffffffff)))))); RzILOpPure *op_RSHIFT_50 = SHIFTR0(VARL("tmp"), SN(32, 0x20)); RzILOpPure *op_AND_53 = LOGAND(op_RSHIFT_50, CAST(64, IL_FALSE, SN(64, 0xffffffff))); - RzILOpEffect *jump_cast_ut32_56_57 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_53)), CAST(32, IL_FALSE, DUP(op_AND_53)))))); + RzILOpEffect *jump_cast_ut32_56_57 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], CAST(32, IL_FALSE, CAST(64, MSB(CAST(32, IL_FALSE, op_AND_53)), CAST(32, IL_FALSE, DUP(op_AND_53))))); + bundle->jmp_cnt++; // nop; RzILOpEffect *nop_59 = NOP(); diff --git a/librz/arch/isa/hexagon/il_ops/hexagon_il_non_insn_ops.c b/librz/arch/isa/hexagon/il_ops/hexagon_il_non_insn_ops.c index 6be741bc08..5bdad404c8 100644 --- a/librz/arch/isa/hexagon/il_ops/hexagon_il_non_insn_ops.c +++ b/librz/arch/isa/hexagon/il_ops/hexagon_il_non_insn_ops.c @@ -3,7 +3,7 @@ // LLVM commit: bc5ac5f3ebb0bc4fc65cef7160c817ca3174a68e // LLVM commit date: 2026-03-15 10:22:07 -0700 (ISO 8601 format) -// Date of code generation: 2026-03-23 17:45:56+01:00 +// Date of code generation: 2026-07-24 15:06:07+02:00 //======================================== // The following code is generated. // Do not edit. Repository of code generator: @@ -105,14 +105,20 @@ RzILOpEffect *hex_il_op_j2_endloop01(HexInsnPktBundle *bundle) { RzILOpEffect *seq_42 = SEQN(2, seq_3, branch_41); // jump(sa0); - RzILOpEffect *jump_sa0_48 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", sa0)); + RzILOpEffect *jump_sa0_48 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], sa0); + bundle->jmp_cnt++; // lc0 = lc0 - ((ut32) 0x1); RzILOpPure *op_SUB_52 = SUB(READ_REG(pkt, &lc0_op, true), CAST(32, IL_FALSE, SN(32, 1))); RzILOpEffect *op_ASSIGN_53 = WRITE_REG(bundle, &lc0_op, op_SUB_52); // jump(sa1); - RzILOpEffect *jump_sa1_59 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", sa1)); + RzILOpEffect *jump_sa1_59 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], sa1); + bundle->jmp_cnt++; // lc1 = lc1 - ((ut32) 0x1); RzILOpPure *op_SUB_63 = SUB(READ_REG(pkt, &lc1_op, true), CAST(32, IL_FALSE, SN(32, 1))); @@ -148,7 +154,10 @@ RzILOpEffect *hex_il_op_j2_endloop1(HexInsnPktBundle *bundle) { RzILOpPure *sa1 = READ_REG(pkt, &sa1_op, false); // jump(sa1); - RzILOpEffect *jump_sa1_5 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", sa1)); + RzILOpEffect *jump_sa1_5 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], sa1); + bundle->jmp_cnt++; // lc1 = lc1 - ((ut32) 0x1); RzILOpPure *op_SUB_9 = SUB(READ_REG(pkt, &lc1_op, true), CAST(32, IL_FALSE, SN(32, 1))); @@ -253,7 +262,10 @@ RzILOpEffect *hex_il_op_j2_endloop0(HexInsnPktBundle *bundle) { RzILOpEffect *seq_42 = SEQN(2, seq_3, branch_41); // jump(sa0); - RzILOpEffect *jump_sa0_48 = SEQ2(SETL("jump_flag", IL_TRUE), SETL("jump_target", sa0)); + RzILOpEffect *jump_sa0_48 = SETL(bundle->jmp_flags[bundle->jmp_cnt], IL_TRUE); + rz_return_val_if_fail(bundle->jmp_cnt < 2, NULL); + bundle->jmp_set_addr[bundle->jmp_cnt] = SETL(bundle->jmp_targets[bundle->jmp_cnt], sa0); + bundle->jmp_cnt++; // lc0 = lc0 - ((ut32) 0x1); RzILOpPure *op_SUB_52 = SUB(READ_REG(pkt, &lc0_op, true), CAST(32, IL_FALSE, SN(32, 1))); @@ -950,11 +962,49 @@ RZ_IPI RZ_OWN RzILOpEffect *hex_commit_packet(HexInsnPktBundle *bundle) { } RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_jump_flag_init(HexInsnPktBundle *bundle) { - return SEQ2(SETL("jump_flag", IL_FALSE), SETL("jump_target", U32(0xffffffff))); + return SEQ2(SETL(bundle->jmp_flags[0], IL_FALSE), + SETL(bundle->jmp_flags[1], IL_FALSE)); +} + +RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_set_jmp_target_0(HexInsnPktBundle *bundle) { + if (bundle->jmp_cnt < 1) { + rz_warn_if_reached(); + return NULL; + } + return bundle->jmp_set_addr[0]; +} + +RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_set_jmp_target_1(HexInsnPktBundle *bundle) { + if (bundle->jmp_cnt != 2) { + rz_warn_if_reached(); + return NULL; + } + return bundle->jmp_set_addr[1]; } RZ_IPI RZ_OWN RzILOpEffect *hex_il_op_next_pkt_jmp(HexInsnPktBundle *bundle) { - return BRANCH(VARL("jump_flag"), JMP(VARL("jump_target")), JMP(U32(bundle->pkt->pkt_addr + (HEX_INSN_SIZE * rz_list_length(bundle->pkt->bin))))); + RzILOpPure *next_pkt_addr = U32(bundle->pkt->pkt_addr + (HEX_INSN_SIZE * rz_list_length(bundle->pkt->bin))); + switch (bundle->jmp_cnt) { + case 0: + // No jump/call was lifted. + return JMP(next_pkt_addr); + case 1: + // One jump/call was lifted. + return BRANCH(VARL(bundle->jmp_flags[0]), + JMP(VARL(bundle->jmp_targets[0])), + JMP(next_pkt_addr)); + case 2: + // Two jumps/calls were lifted. + return BRANCH(VARL(bundle->jmp_flags[0]), + JMP(VARL(bundle->jmp_targets[0])), + BRANCH(VARL(bundle->jmp_flags[1]), + JMP(VARL(bundle->jmp_targets[1])), + JMP(next_pkt_addr))); + default: + break; + } + rz_warn_if_reached(); + return NULL; } -#include +#include \ No newline at end of file diff --git a/librz/arch/p/analysis/analysis_alpha_cs.c b/librz/arch/p/analysis/analysis_alpha_cs.c index b2b565f741..b479385d45 100644 --- a/librz/arch/p/analysis/analysis_alpha_cs.c +++ b/librz/arch/p/analysis/analysis_alpha_cs.c @@ -11,11 +11,7 @@ #include -#ifdef RZ_CAPSTONE_ALPHA_INSNS_UPPERCASE #define RZ_ALPHA_INS(name) ALPHA_INS_##name -#else -#define RZ_ALPHA_INS(name) Alpha_INS_##name -#endif static char *get_reg_profile(RzAnalysis *_) { const char *p = diff --git a/test/db/analysis/hexagon b/test/db/analysis/hexagon index 46688c34ab..5a358de379 100644 --- a/test/db/analysis/hexagon +++ b/test/db/analysis/hexagon @@ -1518,7 +1518,7 @@ EXPECT=< 0x00000018 / if (P0) jump:nt 0x18 + ,=< 0x0000001c \ if (P0) jump:nt 0x1128 +0x18 +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set r + (bv 32 0x0)) + (branch + (! + (is_zero + (& + (cast 32 + (msb + (var P0)) + (var P0)) + (bv 32 0x1)))) + (seq + (set r + (& + (var r) + (bv 32 0xfffffffc))) + (set jump_flag_0 + true)) + empty) + (set jump_target_0 + (+ + (bv 32 0x18) + (cast 32 + false + (var r)))) + (set r + (bv 32 0x1110)) + (branch + (! + (is_zero + (& + (cast 32 + (msb + (var P0)) + (var P0)) + (bv 32 0x1)))) + (seq + (set r + (& + (var r) + (bv 32 0xfffffffc))) + (set jump_flag_1 + true)) + empty) + (set jump_target_1 + (+ + (bv 32 0x18) + (cast 32 + false + (var r)))) + empty + (branch + (var jump_flag_0) + (jmp + (var jump_target_0)) + (branch + (var jump_flag_1) + (jmp + (var jump_target_1)) + (jmp + (bv 32 0x20))))) + +Semantic of single jumps +--------- + 0x00000020 [ R0 = R1 +0x20 +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set R0_tmp + (cast 32 + false + (cast 32 + false + (var R1)))) + empty + (set R0 + (var R0_tmp)) + (jmp + (bv 32 0x24))) +--------- + ,=< 0x00000024 [ jump 0x2244 +0x24 +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set r + (bv 32 0x2220)) + (set r + (& + (var r) + (bv 32 0xfffffffc))) + (set jump_flag_0 + true) + (set jump_target_0 + (+ + (bv 32 0x24) + (cast 32 + false + (var r)))) + empty + (branch + (var jump_flag_0) + (jmp + (var jump_target_0)) + (jmp + (bv 32 0x28)))) +--------- + ,=< 0x00000028 [ if (P0) jump:nt 0x3358 +0x28 +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set r + (bv 32 0x3330)) + (branch + (! + (is_zero + (& + (cast 32 + (msb + (var P0)) + (var P0)) + (bv 32 0x1)))) + (seq + (set r + (& + (var r) + (bv 32 0xfffffffc))) + (set jump_flag_0 + true)) + empty) + (set jump_target_0 + (+ + (bv 32 0x28) + (cast 32 + false + (var r)))) + empty + (branch + (var jump_flag_0) + (jmp + (var jump_target_0)) + (jmp + (bv 32 0x2c)))) + +Semantic of endloop jumps +--------- + 0x0000002c / R1 = R2 + 0x00000030 \ nop < endloop0 +0x2c +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set R1_tmp + (cast 32 + false + (cast 32 + false + (var R2)))) + empty + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp624 + (cast 32 + false + (var ret_val))) + (branch + (! + (is_zero + (var h_tmp624))) + (seq + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp627 + (cast 32 + false + (var ret_val))) + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp625 + (cast 32 + false + (var ret_val))) + (branch + (|| + (! + (ule + (var h_tmp625) + (cast 32 + false + (bv 32 0x2)))) + (== + (var h_tmp625) + (cast 32 + false + (bv 32 0x2)))) + empty + (seq + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp626 + (cast 32 + false + (var ret_val))) + (branch + (== + (var h_tmp626) + (cast 32 + false + (bv 32 0x1))) + (set P3_tmp + (cast 8 + false + (cast 8 + (msb + (bv 32 0xff)) + (bv 32 0xff)))) + empty))) + (set C8_tmp + (cast 32 + false + (| + (& + (var C8_tmp) + (bv 32 0xc13000c0)) + (& + (cast 32 + false + (cast 32 + false + (ite + (! + (is_zero + (bv 32 0x2))) + (| + (& + (cast 64 + false + (var C8_tmp)) + (~ + (<< + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false) + (cast 32 + false + (bv 32 0x8)) + false))) + (& + (<< + (cast 64 + false + (- + (var h_tmp627) + (cast 32 + false + (bv 32 0x1)))) + (cast 32 + false + (bv 32 0x8)) + false) + (<< + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false) + (cast 32 + false + (bv 32 0x8)) + false))) + (cast 64 + false + (var C8_tmp))))) + (~ + (bv 32 0xc13000c0))))))) + empty) + (branch + (! + (ule + (var C1_tmp) + (cast 32 + false + (bv 32 0x1)))) + (seq + (set jump_flag_0 + true) + (set C1_tmp + (cast 32 + false + (cast 32 + false + (- + (var C1_tmp) + (cast 32 + false + (bv 32 0x1))))))) + empty) + (set jump_target_0 + (var C0)) + empty + (set C1 + (var C1_tmp)) + (set C8 + (var C8_tmp)) + (set R1 + (var R1_tmp)) + (set P3 + (var P3_tmp)) + (branch + (var jump_flag_0) + (jmp + (var jump_target_0)) + (jmp + (bv 32 0x34)))) +--------- + 0x00000034 / R1 = R2 + 0x00000038 | nop + 0x0000003c \ nop < endloop1 +0x34 +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set R1_tmp + (cast 32 + false + (cast 32 + false + (var R2)))) + empty + empty + (branch + (! + (ule + (var C3_tmp) + (cast 32 + false + (bv 32 0x1)))) + (seq + (set jump_flag_0 + true) + (set C3_tmp + (cast 32 + false + (cast 32 + false + (- + (var C3_tmp) + (cast 32 + false + (bv 32 0x1))))))) + empty) + (set jump_target_0 + (var C2)) + empty + (set C3 + (var C3_tmp)) + (set R1 + (var R1_tmp)) + (branch + (var jump_flag_0) + (jmp + (var jump_target_0)) + (jmp + (bv 32 0x40)))) +--------- + 0x00000040 / R1 = R2 + 0x00000044 | nop + 0x00000048 \ nop < endloop01 +0x40 +(seq + empty + (set jump_flag_0 + false) + (set jump_flag_1 + false) + (set R1_tmp + (cast 32 + false + (cast 32 + false + (var R2)))) + empty + empty + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp620 + (cast 32 + false + (var ret_val))) + (branch + (! + (is_zero + (var h_tmp620))) + (seq + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp623 + (cast 32 + false + (var ret_val))) + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp621 + (cast 32 + false + (var ret_val))) + (branch + (|| + (! + (ule + (var h_tmp621) + (cast 32 + false + (bv 32 0x2)))) + (== + (var h_tmp621) + (cast 32 + false + (bv 32 0x2)))) + empty + (seq + (set ret_val + (ite + (! + (is_zero + (bv 32 0x2))) + (& + (>> + (cast 64 + false + (var C8)) + (cast 32 + false + (bv 32 0x8)) + false) + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false)) + (cast 64 + false + (bv 64 0x0)))) + (set h_tmp622 + (cast 32 + false + (var ret_val))) + (branch + (== + (var h_tmp622) + (cast 32 + false + (bv 32 0x1))) + (set P3_tmp + (cast 8 + false + (cast 8 + (msb + (bv 32 0xff)) + (bv 32 0xff)))) + empty))) + (set C8_tmp + (cast 32 + false + (| + (& + (var C8_tmp) + (bv 32 0xc13000c0)) + (& + (cast 32 + false + (cast 32 + false + (ite + (! + (is_zero + (bv 32 0x2))) + (| + (& + (cast 64 + false + (var C8_tmp)) + (~ + (<< + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false) + (cast 32 + false + (bv 32 0x8)) + false))) + (& + (<< + (cast 64 + false + (- + (var h_tmp623) + (cast 32 + false + (bv 32 0x1)))) + (cast 32 + false + (bv 32 0x8)) + false) + (<< + (>> + (bv 64 0xffffffffffffffff) + (- + (bv 32 0x40) + (cast 32 + false + (bv 32 0x2))) + false) + (cast 32 + false + (bv 32 0x8)) + false))) + (cast 64 + false + (var C8_tmp))))) + (~ + (bv 32 0xc13000c0))))))) + empty) + (branch + (! + (ule + (var C1_tmp) + (cast 32 + false + (bv 32 0x1)))) + (seq + (set jump_flag_0 + true) + (set C1_tmp + (cast 32 + false + (cast 32 + false + (- + (var C1_tmp) + (cast 32 + false + (bv 32 0x1))))))) + (branch + (! + (ule + (var C3_tmp) + (cast 32 + false + (bv 32 0x1)))) + (seq + (set jump_flag_1 + true) + (set C3_tmp + (cast 32 + false + (cast 32 + false + (- + (var C3_tmp) + (cast 32 + false + (bv 32 0x1))))))) + empty)) + (set jump_target_0 + (var C0)) + (set jump_target_1 + (var C2)) + empty + (set C1 + (var C1_tmp)) + (set C3 + (var C3_tmp)) + (set C8 + (var C8_tmp)) + (set R1 + (var R1_tmp)) + (set P3 + (var P3_tmp)) + (branch + (var jump_flag_0) + (jmp + (var jump_target_0)) + (branch + (var jump_flag_1) + (jmp + (var jump_target_1)) + (jmp + (bv 32 0x4c))))) +EOF +EXPECT_ERR= +RUN