Home | History | Annotate | Download | only in sljit

Lines Matching full:arg1

511 static sljit_s32 emit_op_imm(struct sljit_compiler *compiler, sljit_s32 flags, sljit_s32 dst, sljit_uw arg1, sljit_uw arg2)
514 arg1 must be register, TMP_REG1, imm
522 FAIL_IF(load_immediate(compiler, TMP_REG1, arg1));
523 arg1 = TMP_REG1;
527 reg = (flags & ARG2_IMM) ? arg1 : arg2;
528 imm = (flags & ARG2_IMM) ? arg2 : arg1;
536 SLJIT_ASSERT(!(flags & SET_FLAGS) && (flags & ARG2_IMM) && arg1 == TMP_REG1);
672 FAIL_IF(load_immediate(compiler, TMP_REG1, arg1));
673 arg1 = TMP_REG1;
687 SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1);
693 SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1);
699 SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1);
705 SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1);
711 SLJIT_ASSERT(!(flags & SET_FLAGS) && arg1 == TMP_REG1);
716 SLJIT_ASSERT(arg1 == TMP_REG1);
721 SLJIT_ASSERT(arg1 == TMP_REG1);
730 if (!(flags & KEEP_FLAGS) && IS_3_LO_REGS(dst, arg1, arg2))
731 return push_inst16(compiler, ADDS | RD3(dst) | RN3(arg1) | RM3(arg2));
732 if (dst == arg1 && !(flags & SET_FLAGS))
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))
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))
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))
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))
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))
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))
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))
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))
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)
1121 if (getput_arg_fast(compiler, flags, reg, arg1, arg1w))
1123 return getput_arg(compiler, flags, reg, arg1, arg1w, arg2, arg2w);