Lines Matching refs:def_reg

1138 	constraints->def_reg = IR_REG_NONE;
1176 constraints->def_reg = IR_REG_RAX;
1186 constraints->def_reg = IR_REG_RAX;
1195 constraints->def_reg = IR_REG_RDX;
1360 constraints->def_reg = IR_REG_INT_RET1;
1363 constraints->def_reg = IR_REG_FP_RET1;
1464 constraints->def_reg = ir_get_param_reg(ctx, ref);
1472 constraints->def_reg = ctx->ir_base[ref].op2;
1477 constraints->def_reg = IR_REG_INT_RET1;
3755 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
3759 IR_ASSERT(def_reg != IR_REG_NONE);
3765 if (def_reg != op1_reg) {
3767 ir_emit_mov(ctx, type, def_reg, op1_reg);
3769 ir_emit_load(ctx, type, def_reg, op1);
3772 op2_reg = def_reg;
3788 | ASM_REG_REG_OP add, type, def_reg, op2_reg
3792 | ASM_REG_REG_OP sub, type, def_reg, op2_reg
3796 | ASM_REG_REG_MUL imul, type, def_reg, op2_reg
3799 | ASM_REG_REG_OP or, type, def_reg, op2_reg
3802 | ASM_REG_REG_OP and, type, def_reg, op2_reg
3805 | ASM_REG_REG_OP xor, type, def_reg, op2_reg
3816 | ASM_REG_IMM_OP add, type, def_reg, val
3820 | ASM_REG_IMM_OP sub, type, def_reg, val
3824 | ASM_REG_IMM_MUL imul, type, def_reg, val
3827 | ASM_REG_IMM_OP or, type, def_reg, val
3830 | ASM_REG_IMM_OP and, type, def_reg, val
3833 | ASM_REG_IMM_OP xor, type, def_reg, val
3849 | ASM_REG_MEM_OP add, type, def_reg, mem
3853 | ASM_REG_MEM_OP sub, type, def_reg, mem
3857 | ASM_REG_MEM_MUL imul, type, def_reg, mem
3860 | ASM_REG_MEM_OP or, type, def_reg, mem
3863 | ASM_REG_MEM_OP and, type, def_reg, mem
3866 | ASM_REG_MEM_OP xor, type, def_reg, mem
3871 ir_emit_store(ctx, type, def, def_reg);
3882 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
3886 IR_ASSERT(def_reg != IR_REG_NONE);
3898 | imul Rw(def_reg), Rw(op1_reg), val
3901 | imul Rd(def_reg), Rd(op1_reg), val
3905 | imul Rq(def_reg), Rq(op1_reg), val
3917 | ASM_REG_MEM_TXT_MUL imul, type, def_reg, mem, val
3920 ir_emit_store(ctx, type, def, def_reg);
3931 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
3935 IR_ASSERT(def_reg != IR_REG_NONE && op2_reg != IR_REG_NONE);
3941 if (def_reg != op1_reg) {
3943 ir_emit_mov(ctx, type, def_reg, op1_reg);
3945 ir_emit_load(ctx, type, def_reg, op1);
3960 | ASM_REG_REG_OP cmp, type, def_reg, op2_reg
3963 | ASM_REG_REG_OP2 cmovg, type, def_reg, op2_reg
3965 | ASM_REG_REG_OP2 cmova, type, def_reg, op2_reg
3970 | ASM_REG_REG_OP2 cmovl, type, def_reg, op2_reg
3972 | ASM_REG_REG_OP2 cmovb, type, def_reg, op2_reg
3977 ir_emit_store(ctx, type, def, def_reg);
3985 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
3988 IR_ASSERT(def_reg != IR_REG_NONE);
3991 | seto Rb(def_reg)
3993 | setc Rb(def_reg)
3996 ir_emit_store(ctx, insn->type, def, def_reg);
4174 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4179 IR_ASSERT(def_reg != IR_REG_NONE);
4185 if (def_reg != op1_reg) {
4187 ir_emit_mov(ctx, type, def_reg, op1_reg);
4189 ir_emit_load(ctx, type, def_reg, op1);
4196 | ASM_REG_REG_OP add, type, def_reg, def_reg
4198 | ASM_REG_IMM_OP shl, type, def_reg, shift
4203 | ASM_REG_IMM_OP shr, type, def_reg, shift
4214 | ASM_REG_REG_OP and, type, def_reg, op2_reg
4217 | ASM_REG_IMM_OP and, type, def_reg, mask
4223 ir_emit_store(ctx, type, def, def_reg);
4233 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4241 IR_ASSERT(op1_reg != IR_REG_NONE && def_reg != IR_REG_NONE && op1_reg != def_reg);
4251 | mov Rq(def_reg), Rq(op1_reg)
4252 | ASM_REG_IMM_OP shr, type, def_reg, 63
4253 | add Rq(def_reg), Rq(op1_reg)
4256 | mov Rd(def_reg), Rd(op1_reg)
4257 | ASM_REG_IMM_OP shr, type, def_reg, (ir_type_size[type]*8-1)
4258 | add Rd(def_reg), Rd(op1_reg)
4270 | lea Rq(def_reg), [Rq(op1_reg)+Rq(op2_reg)]
4272 | lea Rq(def_reg), [Rq(op1_reg)+(int32_t)offset]
4276 | lea Rd(def_reg), [Rd(op1_reg)+(int32_t)offset]
4281 | ASM_REG_REG_OP2 cmovns, type, def_reg, op1_reg
4283 | ASM_REG_IMM_OP sar, type, def_reg, shift
4286 ir_emit_store(ctx, type, def, def_reg);
4296 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4305 IR_ASSERT(def_reg != IR_REG_NONE && tmp_reg != IR_REG_NONE && def_reg != tmp_reg);
4311 if (def_reg != op1_reg) {
4313 ir_emit_mov(ctx, type, def_reg, op1_reg);
4315 ir_emit_load(ctx, type, def_reg, op1);
4319 ir_emit_mov(ctx, type, tmp_reg, def_reg);
4329 | ASM_REG_REG_OP add, type, def_reg, tmp_reg
4337 | ASM_REG_REG_OP and, type, def_reg, op2_reg
4340 | ASM_REG_IMM_OP and, type, def_reg, mask
4345 | ASM_REG_REG_OP sub, type, def_reg, tmp_reg
4348 ir_emit_store(ctx, type, def, def_reg);
4389 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4393 IR_ASSERT(def_reg != IR_REG_NONE && def_reg != IR_REG_RCX);
4404 ir_emit_mov(ctx, type, def_reg, op1_reg);
4405 op1_reg = def_reg;
4413 if (def_reg != op1_reg) {
4415 ir_emit_mov(ctx, type, def_reg, op1_reg);
4417 ir_emit_load(ctx, type, def_reg, insn->op1);
4424 | ASM_REG_TXT_OP shl, insn->type, def_reg, cl
4427 | ASM_REG_TXT_OP shr, insn->type, def_reg, cl
4430 | ASM_REG_TXT_OP sar, insn->type, def_reg, cl
4433 | ASM_REG_TXT_OP rol, insn->type, def_reg, cl
4436 | ASM_REG_TXT_OP ror, insn->type, def_reg, cl
4440 ir_emit_store(ctx, type, def, def_reg);
4500 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4506 IR_ASSERT(def_reg != IR_REG_NONE);
4512 if (def_reg != op1_reg) {
4514 ir_emit_mov(ctx, type, def_reg, op1_reg);
4516 ir_emit_load(ctx, type, def_reg, op1);
4523 | ASM_REG_IMM_OP shl, insn->type, def_reg, shift
4526 | ASM_REG_IMM_OP shr, insn->type, def_reg, shift
4529 | ASM_REG_IMM_OP sar, insn->type, def_reg, shift
4532 | ASM_REG_IMM_OP rol, insn->type, def_reg, shift
4535 | ASM_REG_IMM_OP ror, insn->type, def_reg, shift
4539 ir_emit_store(ctx, type, def, def_reg);
4590 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4593 IR_ASSERT(def_reg != IR_REG_NONE);
4599 if (def_reg != op1_reg) {
4601 ir_emit_mov(ctx, type, def_reg, op1_reg);
4603 ir_emit_load(ctx, type, def_reg, op1);
4607 | ASM_REG_OP inc, insn->type, def_reg
4609 | ASM_REG_OP dec, insn->type, def_reg
4611 | ASM_REG_OP not, insn->type, def_reg
4613 | ASM_REG_OP neg, insn->type, def_reg
4620 | bswap Rd(def_reg)
4625 | bswap Rq(def_reg)
4631 ir_emit_store(ctx, type, def, def_reg);
4641 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4644 IR_ASSERT(def_reg != IR_REG_NONE);
4657 | lzcnt Rw(def_reg), Rw(op1_reg)
4659 | bsr Rw(def_reg), Rw(op1_reg)
4660 | xor Rw(def_reg), 0xf
4664 | tzcnt Rw(def_reg), Rw(op1_reg)
4666 | bsf Rw(def_reg), Rw(op1_reg)
4670 | popcnt Rw(def_reg), Rw(op1_reg)
4677 | lzcnt Rd(def_reg), Rd(op1_reg)
4678 | sub Rd(def_reg), 24
4680 | bsr Rd(def_reg), Rd(op1_reg)
4681 | xor Rw(def_reg), 0x7
4689 | lzcnt Rd(def_reg), Rd(op1_reg)
4691 | bsr Rd(def_reg), Rd(op1_reg)
4692 | xor Rw(def_reg), 0x1f
4696 | tzcnt Rd(def_reg), Rd(op1_reg)
4698 | bsf Rd(def_reg), Rd(op1_reg)
4702 | popcnt Rd(def_reg), Rd(op1_reg)
4709 | lzcnt Rq(def_reg), Rq(op1_reg)
4711 | bsr Rq(def_reg), Rq(op1_reg)
4712 | xor Rw(def_reg), 0x3f
4716 | tzcnt Rq(def_reg), Rq(op1_reg)
4718 | bsf Rq(def_reg), Rq(op1_reg)
4722 | popcnt Rq(def_reg), Rq(op1_reg)
4741 | ASM_TXT_TMEM_OP lzcnt, Rw(def_reg), word, mem
4743 | ASM_TXT_TMEM_OP bsr, Rw(def_reg), word, mem
4744 | xor Rw(def_reg), 0xf
4748 | ASM_TXT_TMEM_OP tzcnt, Rw(def_reg), word, mem
4750 | ASM_TXT_TMEM_OP bsf, Rw(def_reg), word, mem
4753 | ASM_TXT_TMEM_OP popcnt, Rw(def_reg), word, mem
4759 | ASM_TXT_TMEM_OP lzcnt, Rd(def_reg), dword, mem
4761 | ASM_TXT_TMEM_OP bsr, Rd(def_reg), dword, mem
4762 | xor Rw(def_reg), 0x1f
4766 | ASM_TXT_TMEM_OP tzcnt, Rd(def_reg), dword, mem
4768 | ASM_TXT_TMEM_OP bsf, Rd(def_reg), dword, mem
4771 | ASM_TXT_TMEM_OP popcnt, Rd(def_reg), dword, mem
4778 | ASM_TXT_TMEM_OP lzcnt, Rq(def_reg), qword, mem
4780 | ASM_TXT_TMEM_OP bsr, Rq(def_reg), qword, mem
4781 | xor Rw(def_reg), 0x3f
4785 | ASM_TXT_TMEM_OP tzcnt, Rq(def_reg), qword, mem
4787 | ASM_TXT_TMEM_OP bsf, Rq(def_reg), qword, mem
4790 | ASM_TXT_TMEM_OP popcnt, Rq(def_reg), qword, mem
4798 ir_emit_store(ctx, type, def, def_reg);
4808 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4815 IR_ASSERT(def_reg != IR_REG_NONE && tmp_reg != IR_REG_NONE);
4817 ir_emit_load(ctx, type, def_reg, op1);
4819 | movzx Rd(def_reg), Rb(def_reg)
4821 | movzx Rd(def_reg), Rw(def_reg)
4832 | movzx Rd(def_reg), Rb(op1_reg)
4835 | movzx Rd(def_reg), Rw(op1_reg)
4838 | mov Rd(def_reg), Rd(op1_reg)
4842 | mov Rq(def_reg), Rq(op1_reg)
4851 | mov Rd(tmp_reg), Rd(def_reg)
4852 | shr Rd(def_reg), 1
4853 | and Rd(def_reg), 0x55
4854 | sub Rd(tmp_reg), Rd(def_reg)
4855 | mov Rd(def_reg), Rd(tmp_reg)
4856 | and Rd(def_reg), 0x33
4859 | add Rd(tmp_reg), Rd(def_reg)
4860 | mov Rd(def_reg), Rd(tmp_reg)
4861 | shr Rd(def_reg), 4
4862 | add Rd(def_reg), Rd(tmp_reg)
4863 | and Rd(def_reg), 0x0f
4866 | mov Rd(tmp_reg), Rd(def_reg)
4867 | shr Rd(def_reg), 1
4868 | and Rd(def_reg), 0x5555
4869 | sub Rd(tmp_reg), Rd(def_reg)
4870 | mov Rd(def_reg), Rd(tmp_reg)
4871 | and Rd(def_reg), 0x3333
4874 | add Rd(tmp_reg), Rd(def_reg)
4875 | mov Rd(def_reg), Rd(tmp_reg)
4876 | shr Rd(def_reg), 4
4877 | add Rd(def_reg), Rd(tmp_reg)
4878 | and Rd(def_reg), 0x0f0f
4879 | mov Rd(tmp_reg), Rd(def_reg)
4881 | and Rd(def_reg), 0x0f
4882 | add Rd(def_reg), Rd(tmp_reg)
4885 | mov Rd(tmp_reg), Rd(def_reg)
4886 | shr Rd(def_reg), 1
4887 | and Rd(def_reg), 0x55555555
4888 | sub Rd(tmp_reg), Rd(def_reg)
4889 | mov Rd(def_reg), Rd(tmp_reg)
4890 | and Rd(def_reg), 0x33333333
4893 | add Rd(tmp_reg), Rd(def_reg)
4894 | mov Rd(def_reg), Rd(tmp_reg)
4895 | shr Rd(def_reg), 4
4896 | add Rd(def_reg), Rd(tmp_reg)
4897 | and Rd(def_reg), 0x0f0f0f0f
4898 | imul Rd(def_reg), 0x01010101
4899 | shr Rd(def_reg), 24
4904 | mov Rq(tmp_reg), Rq(def_reg)
4905 | shr Rq(def_reg), 1
4907 | and Rq(def_reg), Rq(const_reg)
4908 | sub Rq(tmp_reg), Rq(def_reg)
4909 | mov Rq(def_reg), Rq(tmp_reg)
4911 | and Rq(def_reg), Rq(const_reg)
4914 | add Rq(tmp_reg), Rq(def_reg)
4915 | mov Rq(def_reg), Rq(tmp_reg)
4916 | shr Rq(def_reg), 4
4917 | add Rq(def_reg), Rq(tmp_reg)
4919 | and Rq(def_reg), Rq(const_reg)
4921 | imul Rq(def_reg), Rq(const_reg)
4922 | shr Rq(def_reg), 56
4928 ir_emit_store(ctx, type, def, def_reg);
4965 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4968 IR_ASSERT(def_reg != IR_REG_NONE && op1_reg != IR_REG_NONE);
4975 IR_ASSERT(def_reg != op1_reg);
4977 ir_emit_mov(ctx, insn->type, def_reg, op1_reg);
4978 | ASM_REG_OP neg, insn->type, def_reg
4979 | ASM_REG_REG_OP2, cmovs, type, def_reg, op1_reg
4981 ir_emit_store(ctx, type, def, def_reg);
4991 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
4994 IR_ASSERT(def_reg != IR_REG_NONE);
5008 | sete Rb(def_reg)
5011 ir_emit_store(ctx, type, def, def_reg);
5022 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5115 if (def_reg != IR_REG_NONE) {
5116 if (def_reg != IR_REG_RAX) {
5117 ir_emit_mov(ctx, type, def_reg, IR_REG_RAX);
5120 ir_emit_store(ctx, type, def, def_reg);
5128 if (def_reg != IR_REG_NONE) {
5130 if (def_reg != IR_REG_RAX) {
5131 | mov Rb(def_reg), al
5134 ir_emit_store(ctx, type, def, def_reg);
5144 if (def_reg != IR_REG_NONE) {
5145 if (def_reg != IR_REG_RDX) {
5146 ir_emit_mov(ctx, type, def_reg, IR_REG_RDX);
5149 ir_emit_store(ctx, type, def, def_reg);
5176 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5179 IR_ASSERT(def_reg != IR_REG_NONE);
5185 if (def_reg != op1_reg) {
5187 ir_emit_fp_mov(ctx, type, def_reg, op1_reg);
5189 ir_emit_load(ctx, type, def_reg, op1);
5203 | vxorpd xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), [->double_neg_const]
5205 | xorpd xmm(def_reg-IR_REG_FP_FIRST), [->double_neg_const]
5218 | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), [->float_neg_const]
5220 | xorps xmm(def_reg-IR_REG_FP_FIRST), [->float_neg_const]
5235 | vandpd xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), [->double_abs_const]
5237 | andpd xmm(def_reg-IR_REG_FP_FIRST), [->double_abs_const]
5250 | vandps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), [->float_abs_const]
5252 | andps xmm(def_reg-IR_REG_FP_FIRST), [->float_abs_const]
5257 ir_emit_store(ctx, insn->type, def, def_reg);
5268 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5272 IR_ASSERT(def_reg != IR_REG_NONE);
5278 if (def_reg != op1_reg) {
5280 ir_emit_fp_mov(ctx, type, def_reg, op1_reg);
5282 ir_emit_load(ctx, type, def_reg, op1);
5285 op2_reg = def_reg;
5299 | ASM_SSE2_REG_REG_OP adds, type, def_reg, op2_reg
5302 | ASM_SSE2_REG_REG_OP subs, type, def_reg, op2_reg
5305 | ASM_SSE2_REG_REG_OP muls, type, def_reg, op2_reg
5308 | ASM_SSE2_REG_REG_OP divs, type, def_reg, op2_reg
5311 | ASM_SSE2_REG_REG_OP mins, type, def_reg, op2_reg
5314 | ASM_SSE2_REG_REG_OP maxs, type, def_reg, op2_reg
5324 | ASM_SSE2_REG_TXT_OP adds, type, def_reg, [=>label]
5327 | ASM_SSE2_REG_TXT_OP subs, type, def_reg, [=>label]
5330 | ASM_SSE2_REG_TXT_OP muls, type, def_reg, [=>label]
5333 | ASM_SSE2_REG_TXT_OP divs, type, def_reg, [=>label]
5336 | ASM_SSE2_REG_TXT_OP mins, type, def_reg, [=>label]
5339 | ASM_SSE2_REG_TXT_OP maxs, type, def_reg, [=>label]
5354 | ASM_SSE2_REG_MEM_OP adds, type, def_reg, mem
5357 | ASM_SSE2_REG_MEM_OP subs, type, def_reg, mem
5360 | ASM_SSE2_REG_MEM_OP muls, type, def_reg, mem
5363 | ASM_SSE2_REG_MEM_OP divs, type, def_reg, mem
5366 | ASM_SSE2_REG_MEM_OP mins, type, def_reg, mem
5369 | ASM_SSE2_REG_MEM_OP maxs, type, def_reg, mem
5374 ir_emit_store(ctx, insn->type, def, def_reg);
5385 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5389 IR_ASSERT(def_reg != IR_REG_NONE && op1_reg != IR_REG_NONE);
5406 | ASM_AVX_REG_REG_REG_OP vadds, type, def_reg, op1_reg, op2_reg
5409 | ASM_AVX_REG_REG_REG_OP vsubs, type, def_reg, op1_reg, op2_reg
5412 | ASM_AVX_REG_REG_REG_OP vmuls, type, def_reg, op1_reg, op2_reg
5415 | ASM_AVX_REG_REG_REG_OP vdivs, type, def_reg, op1_reg, op2_reg
5418 | ASM_AVX_REG_REG_REG_OP vmins, type, def_reg, op1_reg, op2_reg
5421 | ASM_AVX_REG_REG_REG_OP vmaxs, type, def_reg, op1_reg, op2_reg
5431 | ASM_AVX_REG_REG_TXT_OP vadds, type, def_reg, op1_reg, [=>label]
5434 | ASM_AVX_REG_REG_TXT_OP vsubs, type, def_reg, op1_reg, [=>label]
5437 | ASM_AVX_REG_REG_TXT_OP vmuls, type, def_reg, op1_reg, [=>label]
5440 | ASM_AVX_REG_REG_TXT_OP vdivs, type, def_reg, op1_reg, [=>label]
5443 | ASM_AVX_REG_REG_TXT_OP vmins, type, def_reg, op1_reg, [=>label]
5446 | ASM_AVX_REG_REG_TXT_OP vmaxs, type, def_reg, op1_reg, [=>label]
5461 | ASM_AVX_REG_REG_MEM_OP vadds, type, def_reg, op1_reg, mem
5464 | ASM_AVX_REG_REG_MEM_OP vsubs, type, def_reg, op1_reg, mem
5467 | ASM_AVX_REG_REG_MEM_OP vmuls, type, def_reg, op1_reg, mem
5470 | ASM_AVX_REG_REG_MEM_OP vdivs, type, def_reg, op1_reg, mem
5473 | ASM_AVX_REG_REG_MEM_OP vmins, type, def_reg, op1_reg, mem
5476 | ASM_AVX_REG_REG_MEM_OP vmaxs, type, def_reg, op1_reg, mem
5481 ir_emit_store(ctx, insn->type, def, def_reg);
5549 static void _ir_emit_setcc_int(ir_ctx *ctx, uint8_t op, ir_reg def_reg)
5558 | sete Rb(def_reg)
5561 | setne Rb(def_reg)
5564 | setl Rb(def_reg)
5567 | setge Rb(def_reg)
5570 | setle Rb(def_reg)
5573 | setg Rb(def_reg)
5576 | setb Rb(def_reg)
5579 | setae Rb(def_reg)
5582 | setbe Rb(def_reg)
5585 | seta Rb(def_reg)
5640 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5644 IR_ASSERT(def_reg != IR_REG_NONE);
5658 | xor Ra(def_reg), Ra(def_reg)
5660 ir_emit_store(ctx, insn->type, def, def_reg);
5665 | ASM_REG_IMM_OP mov, insn->type, def_reg, 1
5667 ir_emit_store(ctx, insn->type, def, def_reg);
5677 _ir_emit_setcc_int(ctx, op, def_reg);
5679 ir_emit_store(ctx, insn->type, def, def_reg);
5770 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5772 IR_ASSERT(def_reg != IR_REG_NONE);
5774 _ir_emit_setcc_int(ctx, insn->op, def_reg);
5776 ir_emit_store(ctx, insn->type, def, def_reg);
5782 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5784 IR_ASSERT(def_reg != IR_REG_NONE);
5785 _ir_emit_setcc_int(ctx, insn->op, def_reg);
5787 ir_emit_store(ctx, insn->type, def, def_reg);
5850 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
5853 IR_ASSERT(def_reg != IR_REG_NONE);
5858 | setnp Rb(def_reg)
5860 | cmovne Rd(def_reg), Rd(tmp_reg)
5863 | setp Rb(def_reg)
5865 | cmovne Rd(def_reg), Rd(tmp_reg)
5868 | setnp Rb(def_reg)
5870 | cmovae Rd(def_reg), Rd(tmp_reg)
5873 | setae Rb(def_reg)
5876 | setnp Rb(def_reg)
5878 | cmova Rd(def_reg), Rd(tmp_reg)
5881 | seta Rb(def_reg)
5884 | setb Rb(def_reg)
5887 | setp Rb(def_reg)
5889 | cmovae Rd(def_reg), Rd(tmp_reg)
5892 | setbe Rb(def_reg)
5895 | setp Rb(def_reg)
5897 | cmova Rd(def_reg), Rd(tmp_reg)
5901 ir_emit_store(ctx, insn->type, def, def_reg);
6181 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6186 IR_ASSERT(def_reg != IR_REG_NONE);
6221 if (op3_reg == def_reg) {
6223 | ASM_REG_REG_OP2 cmovne, type, def_reg, op2_reg
6226 if (def_reg != op2_reg) {
6228 ir_emit_mov(ctx, type, def_reg, op2_reg);
6230 ir_emit_fp_mov(ctx, type, def_reg, op2_reg);
6235 ir_emit_mov_imm_int(ctx, type, def_reg, ctx->ir_base[op2].val.i64);
6237 ir_emit_load_ex(ctx, type, def_reg, op2, def);
6239 | ASM_REG_REG_OP2 cmove, type, def_reg, op3_reg
6242 IR_ASSERT(op2_reg != IR_REG_NONE && op2_reg != def_reg);
6245 ir_emit_mov_imm_int(ctx, type, def_reg, ctx->ir_base[op3].val.i64);
6247 ir_emit_load_ex(ctx, type, def_reg, op3, def);
6249 | ASM_REG_REG_OP2 cmovne, type, def_reg, op2_reg
6253 ir_emit_store(ctx, type, def, def_reg);
6274 if (def_reg != op2_reg) {
6276 ir_emit_mov(ctx, type, def_reg, op2_reg);
6278 ir_emit_fp_mov(ctx, type, def_reg, op2_reg);
6282 ir_emit_load_ex(ctx, type, def_reg, op2, def);
6287 if (def_reg != op3_reg) {
6289 ir_emit_mov(ctx, type, def_reg, op3_reg);
6291 ir_emit_fp_mov(ctx, type, def_reg, op3_reg);
6295 ir_emit_load_ex(ctx, type, def_reg, op3, def);
6300 ir_emit_store(ctx, type, def, def_reg);
6311 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6333 if (op3_reg == def_reg) {
6339 if (def_reg != op2_reg) {
6341 ir_emit_mov(ctx, type, def_reg, op2_reg);
6343 // ir_emit_fp_mov(ctx, type, def_reg, op2_reg);
6348 ir_emit_mov_imm_int(ctx, type, def_reg, ctx->ir_base[op2].val.i64);
6350 ir_emit_load_ex(ctx, type, def_reg, op2, def);
6354 IR_ASSERT(op2_reg != IR_REG_NONE && op2_reg != def_reg);
6357 ir_emit_mov_imm_int(ctx, type, def_reg, ctx->ir_base[op3].val.i64);
6359 ir_emit_load_ex(ctx, type, def_reg, op3, def);
6369 | ASM_REG_REG_OP2 cmovne, type, def_reg, op3_reg
6372 | ASM_REG_REG_OP2 cmove, type, def_reg, op3_reg
6375 | ASM_REG_REG_OP2 cmovge, type, def_reg, op3_reg
6378 | ASM_REG_REG_OP2 cmovl, type, def_reg, op3_reg
6381 | ASM_REG_REG_OP2 cmovg, type, def_reg, op3_reg
6384 | ASM_REG_REG_OP2 cmovle, type, def_reg, op3_reg
6387 | ASM_REG_REG_OP2 cmovae, type, def_reg, op3_reg
6390 | ASM_REG_REG_OP2 cmovb, type, def_reg, op3_reg
6393 | ASM_REG_REG_OP2 cmova, type, def_reg, op3_reg
6396 | ASM_REG_REG_OP2 cmovbe, type, def_reg, op3_reg
6437 if (def_reg != op2_reg) {
6439 ir_emit_mov(ctx, type, def_reg, op2_reg);
6441 ir_emit_fp_mov(ctx, type, def_reg, op2_reg);
6445 ir_emit_load_ex(ctx, type, def_reg, op2, def);
6450 if (def_reg != op3_reg) {
6452 ir_emit_mov(ctx, type, def_reg, op3_reg);
6454 ir_emit_fp_mov(ctx, type, def_reg, op3_reg);
6458 ir_emit_load_ex(ctx, type, def_reg, op3, def);
6464 ir_emit_store(ctx, type, def, def_reg);
6475 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6537 if (def_reg != op2_reg) {
6539 ir_emit_mov(ctx, type, def_reg, op2_reg);
6541 ir_emit_fp_mov(ctx, type, def_reg, op2_reg);
6545 ir_emit_load_ex(ctx, type, def_reg, op2, def);
6550 if (def_reg != op3_reg) {
6552 ir_emit_mov(ctx, type, def_reg, op3_reg);
6554 ir_emit_fp_mov(ctx, type, def_reg, op3_reg);
6558 ir_emit_load_ex(ctx, type, def_reg, op3, def);
6563 ir_emit_store(ctx, type, def, def_reg);
6652 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6658 IR_ASSERT(def_reg != IR_REG_NONE);
6667 | movsx Rw(def_reg), Rb(op1_reg)
6669 | movsx Rd(def_reg), Rb(op1_reg)
6674 | movsx Rq(def_reg), Rb(op1_reg)
6679 | movsx Rd(def_reg), Rw(op1_reg)
6684 | movsx Rq(def_reg), Rw(op1_reg)
6692 | movsxd Rq(def_reg), Rd(op1_reg)
6708 | ASM_TXT_TMEM_OP movsx, Rw(def_reg), byte, mem
6710 | ASM_TXT_TMEM_OP movsx, Rd(def_reg), byte, mem
6715 | ASM_TXT_TMEM_OP movsx, Rq(def_reg), byte, mem
6720 | ASM_TXT_TMEM_OP movsx, Rd(def_reg), word, mem
6725 | ASM_TXT_TMEM_OP movsx, Rq(def_reg), word, mem
6733 | ASM_TXT_TMEM_OP movsxd, Rq(def_reg), dword, mem
6738 ir_emit_store(ctx, dst_type, def, def_reg);
6748 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6754 IR_ASSERT(def_reg != IR_REG_NONE);
6763 | movzx Rw(def_reg), Rb(op1_reg)
6765 | movzx Rd(def_reg), Rb(op1_reg)
6770 | movzx Rq(def_reg), Rb(op1_reg)
6775 | movzx Rd(def_reg), Rw(op1_reg)
6780 | movzx Rq(def_reg), Rw(op1_reg)
6789 if (op1_reg != def_reg) {
6790 | mov Rd(def_reg), Rd(op1_reg)
6807 | ASM_TXT_TMEM_OP movzx, Rw(def_reg), byte, mem
6809 | ASM_TXT_TMEM_OP movzx, Rd(def_reg), byte, mem
6814 | ASM_TXT_TMEM_OP movzx, Rq(def_reg), byte, mem
6819 | ASM_TXT_TMEM_OP movzx, Rd(def_reg), word, mem
6824 | ASM_TXT_TMEM_OP movzx, Rq(def_reg), word, mem
6831 | ASM_TXT_TMEM_OP mov, Rd(def_reg), dword, mem
6836 ir_emit_store(ctx, dst_type, def, def_reg);
6844 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6850 IR_ASSERT(def_reg != IR_REG_NONE);
6856 if (op1_reg != def_reg) {
6857 ir_emit_mov(ctx, dst_type, def_reg, op1_reg);
6860 ir_emit_load_ex(ctx, dst_type, def_reg, insn->op1, def);
6863 ir_emit_store(ctx, dst_type, def, def_reg);
6873 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
6877 IR_ASSERT(def_reg != IR_REG_NONE);
6884 if (op1_reg != def_reg) {
6885 ir_emit_mov(ctx, dst_type, def_reg, op1_reg);
6888 ir_emit_load_ex(ctx, dst_type, def_reg, insn->op1, def);
6896 if (op1_reg != def_reg) {
6897 ir_emit_fp_mov(ctx, dst_type, def_reg, op1_reg);
6900 ir_emit_load_ex(ctx, dst_type, def_reg, insn->op1, def);
6913 | vmovd Rq(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
6915 | movd Rq(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
6921 | vmovd Rd(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
6923 | movd Rd(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
6932 | mov64 Rq(def_reg), _insn->val.i64
6936 | mov Rd(def_reg), _insn->val.i32
6950 | ASM_TXT_TMEM_OP mov, Rq(def_reg), qword, mem
6954 | ASM_TXT_TMEM_OP mov, Rd(def_reg), dword, mem
6968 | vmovd xmm(def_reg-IR_REG_FP_FIRST), Rq(op1_reg)
6970 | movd xmm(def_reg-IR_REG_FP_FIRST), Rq(op1_reg)
6976 | vmovd xmm(def_reg-IR_REG_FP_FIRST), Rd(op1_reg)
6978 | movd xmm(def_reg-IR_REG_FP_FIRST), Rd(op1_reg)
6984 | ASM_FP_REG_TXT_OP movs, dst_type, def_reg, [=>label]
6994 | ASM_FP_REG_MEM_OP movs, dst_type, def_reg, mem
6998 ir_emit_store(ctx, dst_type, def, def_reg);
7008 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7013 IR_ASSERT(def_reg != IR_REG_NONE);
7064 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7065 | vcvtsi2sd xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), Rd(op1_reg)
7067 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7068 | cvtsi2sd xmm(def_reg-IR_REG_FP_FIRST), Rd(op1_reg)
7073 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7074 | vcvtsi2ss xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), Rd(op1_reg)
7076 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7077 | cvtsi2ss xmm(def_reg-IR_REG_FP_FIRST), Rd(op1_reg)
7085 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7086 | vcvtsi2sd xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), Rq(op1_reg)
7088 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7089 | cvtsi2sd xmm(def_reg-IR_REG_FP_FIRST), Rq(op1_reg)
7094 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7095 | vcvtsi2ss xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), Rq(op1_reg)
7097 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7098 | cvtsi2ss xmm(def_reg-IR_REG_FP_FIRST), Rq(op1_reg)
7116 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7117 …| ASM_TXT_TXT_TMEM_OP vcvtsi2sd, xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), dword…
7119 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7120 | ASM_TXT_TMEM_OP cvtsi2sd, xmm(def_reg-IR_REG_FP_FIRST), dword, mem
7125 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7126 …| ASM_TXT_TXT_TMEM_OP vcvtsi2ss, xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), dword…
7128 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7129 | ASM_TXT_TMEM_OP cvtsi2ss, xmm(def_reg-IR_REG_FP_FIRST), dword, mem
7137 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7138 …| ASM_TXT_TXT_TMEM_OP vcvtsi2sd, xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), qword…
7140 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7141 | ASM_TXT_TMEM_OP cvtsi2sd, xmm(def_reg-IR_REG_FP_FIRST), qword, mem
7146 … | vxorps xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7147 …| ASM_TXT_TXT_TMEM_OP vcvtsi2ss, xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), qword…
7149 | pxor xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST)
7150 | ASM_TXT_TMEM_OP cvtsi2ss, xmm(def_reg-IR_REG_FP_FIRST), qword, mem
7157 ir_emit_store(ctx, dst_type, def, def_reg);
7167 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7173 IR_ASSERT(def_reg != IR_REG_NONE);
7186 | vcvttsd2si Rd(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7188 | cvttsd2si Rd(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7193 | vcvttss2si Rd(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7195 | cvttss2si Rd(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7203 | vcvttsd2si Rq(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7205 | cvttsd2si Rq(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7210 | vcvttss2si Rq(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7212 | cvttss2si Rq(def_reg), xmm(op1_reg-IR_REG_FP_FIRST)
7223 | vcvttsd2si Rd(def_reg), qword [=>label]
7225 | cvttsd2si Rd(def_reg), qword [=>label]
7230 | vcvttss2si Rd(def_reg), dword [=>label]
7232 | cvttss2si Rd(def_reg), dword [=>label]
7240 | vcvttsd2si Rq(def_reg), qword [=>label]
7242 | cvttsd2si Rq(def_reg), qword [=>label]
7247 | vcvttss2si Rq(def_reg), dword [=>label]
7249 | cvttss2si Rq(def_reg), dword [=>label]
7266 | ASM_TXT_TMEM_OP vcvttsd2si, Rd(def_reg), qword, mem
7268 | ASM_TXT_TMEM_OP cvttsd2si, Rd(def_reg), qword, mem
7273 | ASM_TXT_TMEM_OP vcvttss2si, Rd(def_reg), dword, mem
7275 | ASM_TXT_TMEM_OP cvttss2si, Rd(def_reg), dword, mem
7283 | ASM_TXT_TMEM_OP vcvttsd2si, Rq(def_reg), qword, mem
7285 | ASM_TXT_TMEM_OP cvttsd2si, Rq(def_reg), qword, mem
7290 | ASM_TXT_TMEM_OP vcvttss2si, Rq(def_reg), dword, mem
7292 | ASM_TXT_TMEM_OP cvttss2si, Rq(def_reg), dword, mem
7299 ir_emit_store(ctx, dst_type, def, def_reg);
7309 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7314 IR_ASSERT(def_reg != IR_REG_NONE);
7321 if (op1_reg != def_reg) {
7322 ir_emit_fp_mov(ctx, dst_type, def_reg, op1_reg);
7326 …| vcvtsd2ss xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(op1_reg-IR_REG_FP_FIRS…
7328 | cvtsd2ss xmm(def_reg-IR_REG_FP_FIRST), xmm(op1_reg-IR_REG_FP_FIRST)
7333 …| vcvtss2sd xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), xmm(op1_reg-IR_REG_FP_FIRS…
7335 | cvtss2sd xmm(def_reg-IR_REG_FP_FIRST), xmm(op1_reg-IR_REG_FP_FIRST)
7343 | vcvtsd2ss xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), qword [=>label]
7345 | cvtsd2ss xmm(def_reg-IR_REG_FP_FIRST), qword [=>label]
7350 | vcvtss2sd xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), dword [=>label]
7352 | cvtss2sd xmm(def_reg-IR_REG_FP_FIRST), dword [=>label]
7366 …| ASM_TXT_TXT_TMEM_OP vcvtsd2ss, xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), qword…
7368 | ASM_TXT_TMEM_OP cvtsd2ss, xmm(def_reg-IR_REG_FP_FIRST), qword, mem
7373 …| ASM_TXT_TXT_TMEM_OP vcvtss2sd, xmm(def_reg-IR_REG_FP_FIRST), xmm(def_reg-IR_REG_FP_FIRST), dword…
7375 | ASM_TXT_TMEM_OP cvtss2sd, xmm(def_reg-IR_REG_FP_FIRST), dword, mem
7380 ir_emit_store(ctx, dst_type, def, def_reg);
7387 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7390 IR_ASSERT(def_reg != IR_REG_NONE || op1_reg != IR_REG_NONE);
7395 if (def_reg == op1_reg) {
7397 } else if (def_reg != IR_REG_NONE && op1_reg != IR_REG_NONE) {
7398 ir_emit_mov(ctx, type, def_reg, op1_reg);
7399 } else if (def_reg != IR_REG_NONE) {
7400 ir_emit_load(ctx, type, def_reg, insn->op1);
7406 if (def_reg != IR_REG_NONE && IR_REG_SPILLED(ctx->regs[def][0])) {
7407 ir_emit_store(ctx, type, def, def_reg);
7414 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7417 IR_ASSERT(def_reg != IR_REG_NONE || op1_reg != IR_REG_NONE);
7422 if (def_reg == op1_reg) {
7424 } else if (def_reg != IR_REG_NONE && op1_reg != IR_REG_NONE) {
7425 ir_emit_fp_mov(ctx, type, def_reg, op1_reg);
7426 } else if (def_reg != IR_REG_NONE) {
7427 ir_emit_load(ctx, type, def_reg, insn->op1);
7433 if (def_reg != IR_REG_NONE && IR_REG_SPILLED(ctx->regs[def][0])) {
7434 ir_emit_store(ctx, type, def, def_reg);
7443 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7448 IR_ASSERT(def_reg != IR_REG_NONE);
7452 | lea Ra(def_reg), aword [Ra(fp)+offset]
7454 ir_emit_store(ctx, type, def, def_reg);
7462 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7469 if (def_reg == IR_REG_NONE && ir_is_same_mem_var(ctx, def, var_insn->op3)) {
7472 IR_ASSERT(def_reg != IR_REG_NONE);
7474 ir_emit_load_mem(ctx, type, def_reg, mem);
7476 ir_emit_store(ctx, type, def, def_reg);
7543 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7550 IR_ASSERT(def_reg != IR_REG_NONE);
7565 ir_emit_load_mem_int(ctx, type, def_reg, mem);
7572 ir_emit_load_mem_int(ctx, type, def_reg, mem);
7574 ir_emit_store(ctx, type, def, def_reg);
7582 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7589 IR_ASSERT(def_reg != IR_REG_NONE);
7604 ir_emit_load_mem_fp(ctx, type, def_reg, mem);
7611 ir_emit_load_mem_fp(ctx, type, def_reg, mem);
7613 ir_emit_store(ctx, type, def, def_reg);
7760 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7762 if (def_reg == IR_REG_NONE) {
7770 if (src_reg != def_reg) {
7772 ir_emit_mov(ctx, type, def_reg, src_reg);
7775 ir_emit_fp_mov(ctx, type, def_reg, src_reg);
7780 ir_emit_store(ctx, type, def, def_reg);
7814 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7842 IR_ASSERT(def_reg != IR_REG_NONE);
7847 if (def_reg != op2_reg) {
7849 ir_emit_mov(ctx, type, def_reg, op2_reg);
7851 ir_emit_load(ctx, type, def_reg, insn->op2);
7855 | ASM_REG_IMM_OP add, IR_ADDR, def_reg, (alignment-1)
7856 | ASM_REG_IMM_OP and, IR_ADDR, def_reg, ~(alignment-1)
7857 | ASM_REG_REG_OP sub, IR_ADDR, IR_REG_RSP, def_reg
7859 if (def_reg != IR_REG_NONE) {
7860 | mov Ra(def_reg), Ra(IR_REG_RSP)
7862 ir_emit_store(ctx, insn->type, def, def_reg);
7910 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7912 | mov Ra(def_reg), Ra(IR_REG_RSP)
7915 ir_emit_store(ctx, IR_ADDR, def, def_reg);
7938 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
7941 | mov Ra(def_reg), Ra(IR_REG_RBP)
7943 | lea Ra(def_reg), [Ra(IR_REG_RSP)+(ctx->stack_frame_size + ctx->call_stack_size)]
7946 ir_emit_store(ctx, IR_ADDR, def, def_reg);
8139 ir_reg def_reg = ctx->regs[def][0];
8144 IR_ASSERT(def_reg != IR_REG_NONE && tmp_reg != IR_REG_NONE);
8157 ir_emit_load_mem(ctx, type, def_reg, IR_MEM_B(tmp_reg));
8161 ir_emit_store(ctx, type, def, def_reg);
8168 ir_reg def_reg = ctx->regs[def][0];
8173 IR_ASSERT(def_reg != IR_REG_NONE&& tmp_reg != IR_REG_NONE);
8198 | mov Ra(def_reg), aword [Ra(tmp_reg)-sizeof(void*)]
8206 ir_emit_load_mem_fp(ctx, type, def_reg, IR_MEM_BO(tmp_reg, -16));
8210 ir_emit_load_mem_fp(ctx, type, def_reg, IR_MEM_BO(tmp_reg, 0));
8216 ir_emit_store(ctx, type, def, def_reg);
8774 ir_reg def_reg;
8836 def_reg = IR_REG_NUM(ctx->regs[def][0]);
8837 if (def_reg != IR_REG_NONE) {
8838 if (def_reg != IR_REG_INT_RET1) {
8839 ir_emit_mov(ctx, insn->type, def_reg, IR_REG_INT_RET1);
8842 ir_emit_store(ctx, insn->type, def, def_reg);
8849 def_reg = IR_REG_NUM(ctx->regs[def][0]);
8851 if (def_reg != IR_REG_NONE) {
8852 if (def_reg != IR_REG_FP_RET1) {
8853 ir_emit_fp_mov(ctx, insn->type, def_reg, IR_REG_FP_RET1);
8856 ir_emit_store(ctx, insn->type, def, def_reg);
8866 if (def_reg == IR_REG_NONE) {
8885 ir_emit_load_mem_fp(ctx, insn->type, def_reg, IR_MEM_BO(fp, offset));
8887 ir_emit_store(ctx, insn->type, def, def_reg);
9430 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
9433 IR_ASSERT(def_reg != IR_REG_NONE);
9435 if (IR_MEM_BASE(mem) == def_reg
9440 | add Rd(def_reg), Rd(reg)
9441 } else if (IR_MEM_INDEX(mem) == def_reg
9446 | add Rd(def_reg), Rd(reg)
9448 | ASM_TXT_TMEM_OP lea, Rd(def_reg), dword, mem
9451 if (IR_MEM_BASE(mem) == def_reg
9456 | add Ra(def_reg), Ra(reg)
9457 } else if (IR_MEM_INDEX(mem) == def_reg
9462 | add Ra(def_reg), Ra(reg)
9464 | ASM_TXT_TMEM_OP lea, Ra(def_reg), aword, mem
9468 ir_emit_store(ctx, type, def, def_reg);
9530 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
9533 IR_ASSERT(def_reg != IR_REG_NONE && op3_reg != IR_REG_NONE);
9540 | ASM_FP_REG_REG_OP sqrts, insn->type, def_reg, op3_reg
9543 ir_emit_store(ctx, insn->type, def, def_reg);
9552 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
9555 IR_ASSERT(def_reg != IR_REG_NONE && op3_reg != IR_REG_NONE);
9563 | ASM_SSE2_REG_REG_REG_TXT_OP vrounds, insn->type, def_reg, def_reg, op3_reg, round_op
9565 | ASM_SSE2_REG_REG_TXT_OP rounds, insn->type, def_reg, op3_reg, round_op
9569 ir_emit_store(ctx, insn->type, def, def_reg);
9577 ir_reg def_reg = IR_REG_NUM(ctx->regs[def][0]);
9579 IR_ASSERT(def_reg != IR_REG_NONE);
9674 if (def_reg != IR_REG_INT_RET1) {
9675 ir_emit_mov(ctx, insn->type, def_reg, IR_REG_INT_RET1);
9678 ir_emit_store(ctx, insn->type, def, def_reg);
9990 reg = constraints.def_reg;