Lines Matching full:arg2
511 static sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 dst, sljit_uw arg1, sljit_uw arg2)
515 arg2 must be register, TMP_REG2, imm */
527 reg = (flags & ARG2_IMM) ? arg1 : arg2;
528 imm = (flags & ARG2_IMM) ? arg2 : arg1;
668 FAIL_IF(load_immediate(compiler, TMP_REG2, arg2));
669 arg2 = TMP_REG2;
688 if (dst == arg2)
690 return push_inst16(compiler, MOV | SET_REGS44(dst, arg2));
694 if (IS_2_LO_REGS(dst, arg2))
695 return push_inst16(compiler, UXTB | RD3(dst) | RN3(arg2));
696 return push_inst32(compiler, UXTB_W | RD4(dst) | RM4(arg2));
700 if (IS_2_LO_REGS(dst, arg2))
701 return push_inst16(compiler, SXTB | RD3(dst) | RN3(arg2));
702 return push_inst32(compiler, SXTB_W | RD4(dst) | RM4(arg2));
706 if (IS_2_LO_REGS(dst, arg2))
707 return push_inst16(compiler, UXTH | RD3(dst) | RN3(arg2));
708 return push_inst32(compiler, UXTH_W | RD4(dst) | RM4(arg2));
712 if (IS_2_LO_REGS(dst, arg2))
713 return push_inst16(compiler, SXTH | RD3(dst) | RN3(arg2));
714 return push_inst32(compiler, SXTH_W | RD4(dst) | RM4(arg2));
717 if (!(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
718 return push_inst16(compiler, MVNS | RD3(dst) | RN3(arg2));
719 return push_inst32(compiler, MVN_W | (flags & SET_FLAGS) | RD4(dst) | RM4(arg2));
722 FAIL_IF(push_inst32(compiler, CLZ | RN4(arg2) | RD4(dst) | RM4(arg2)));
730 if (!(flags & KEEP_FLAGS) && IS_3_LO_REGS(dst, arg1, arg2))
731 return push_inst16(compiler, ADDS | RD3(dst) | RN3(arg1) | RM3(arg2));
733 return push_inst16(compiler, ADD | SET_REGS44(dst, arg2));
734 return push_inst32(compiler, ADD_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
736 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
737 return push_inst16(compiler, ADCS | RD3(dst) | RN3(arg2));
738 return push_inst32(compiler, ADC_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
740 if (!(flags & KEEP_FLAGS) && IS_3_LO_REGS(dst, arg1, arg2))
741 return push_inst16(compiler, SUBS | RD3(dst) | RN3(arg1) | RM3(arg2));
742 return push_inst32(compiler, SUB_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
744 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
745 return push_inst16(compiler, SBCS | RD3(dst) | RN3(arg2));
746 return push_inst32(compiler, SBC_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
749 return push_inst32(compiler, MUL | RD4(dst) | RN4(arg1) | RM4(arg2));
751 FAIL_IF(push_inst32(compiler, SMULL | RT4(dst) | RD4(TMP_REG2) | RN4(arg1) | RM4(arg2)));
756 if (dst == arg1 && IS_2_LO_REGS(dst, arg2))
757 return push_inst16(compiler, ANDS | RD3(dst) | RN3(arg2));
758 if ((flags & UNUSED_RETURN) && IS_2_LO_REGS(arg1, arg2))
759 return push_inst16(compiler, TST | RD3(arg1) | RN3(arg2));
761 return push_inst32(compiler, AND_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
763 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
764 return push_inst16(compiler, ORRS | RD3(dst) | RN3(arg2));
765 return push_inst32(compiler, ORR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
767 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
768 return push_inst16(compiler, EORS | RD3(dst) | RN3(arg2));
769 return push_inst32(compiler, EOR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
771 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
772 return push_inst16(compiler, LSLS | RD3(dst) | RN3(arg2));
773 return push_inst32(compiler, LSL_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
775 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
776 return push_inst16(compiler, LSRS | RD3(dst) | RN3(arg2));
777 return push_inst32(compiler, LSR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
779 if (dst == arg1 && !(flags & KEEP_FLAGS) && IS_2_LO_REGS(dst, arg2))
780 return push_inst16(compiler, ASRS | RD3(dst) | RN3(arg2));
781 return push_inst32(compiler, ASR_W | (flags & SET_FLAGS) | RD4(dst) | RN4(arg1) | RM4(arg2));
1119 static SLJIT_INLINE sljit_s32 emit_op_mem2(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 reg, sljit_s32 arg1, sljit_sw arg1w, sljit_s32 arg2, sljit_sw arg2w)
1123 return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w);