Lines Matching refs:ins

21 #define EMIT_COND_BRANCH(ins,cond) 						\  argument
23 if (ins->inst_true_bb->native_offset) { \
26 ins->inst_true_bb->native_offset) - code) / 2; \
34 MONO_PATCH_INFO_BB, ins->inst_true_bb); \
39 #define EMIT_UNCOND_BRANCH(ins) \ argument
41 if (ins->inst_target_bb->native_offset) { \
44 ins->inst_target_bb->native_offset) - code) / 2; \
52 MONO_PATCH_INFO_BB, ins->inst_target_bb); \
64 #define EMIT_COMP_AND_BRANCH(ins, cab, cmp) \ argument
66 if (ins->inst_true_bb->native_offset) { \
69 ins->inst_true_bb->native_offset) - code) / 2; \
71 s390_##cab (code, ins->sreg1, ins->sreg2, \
72 ins->sreg3, displace); \
74 s390_##cmp (code, ins->sreg1, ins->sreg2); \
76 ins->inst_true_bb->native_offset) - code) / 2; \
77 s390_jcl (code, ins->sreg3, displace); \
80 s390_##cmp (code, ins->sreg1, ins->sreg2); \
82 MONO_PATCH_INFO_BB, ins->inst_true_bb); \
83 s390_jcl (code, ins->sreg3, 0); \
87 #define EMIT_COMP_AND_BRANCH_IMM(ins, cab, cmp, lat, logical) \ argument
89 if (ins->inst_true_bb->native_offset) { \
91 if ((ins->backend.data == 0) && (!logical)) { \
92 s390_##lat (code, ins->sreg1, ins->sreg1); \
94 ins->inst_true_bb->native_offset) - code) / 2; \
96 s390_brc (code, ins->sreg3, displace); \
98 s390_jcl (code, ins->sreg3, displace); \
101 S390_SET (code, s390_r0, ins->backend.data); \
103 ins->inst_true_bb->native_offset) - code) / 2; \
105 s390_##cab (code, ins->sreg1, s390_r0, \
106 ins->sreg3, displace); \
108 s390_##cmp (code, ins->sreg1, s390_r0); \
110 ins->inst_true_bb->native_offset) - code) / 2; \
111 s390_jcl (code, ins->sreg3, displace); \
115 if ((ins->backend.data == 0) && (!logical)) { \
116 s390_##lat (code, ins->sreg1, ins->sreg1); \
118 S390_SET (code, s390_r0, ins->backend.data); \
119 s390_##cmp (code, ins->sreg1, s390_r0); \
122 MONO_PATCH_INFO_BB, ins->inst_true_bb); \
123 s390_jcl (code, ins->sreg3, 0); \
128 if (ins->dreg == ins->sreg2) { \
129 src2 = ins->sreg1; \
131 src2 = ins->sreg2; \
132 if (ins->dreg != ins->sreg1) { \
133 s390_lgr (code, ins->dreg, ins->sreg1); \
138 if (ins->dreg == ins->sreg2) { \
140 s390_lgr (code, s390_r13, ins->sreg2); \
142 src2 = ins->sreg2; \
144 if (ins->dreg != ins->sreg1) { \
145 s390_lgr (code, ins->dreg, ins->sreg1); \
149 if (ins->dreg == ins->sreg2) { \
150 src2 = ins->sreg1; \
152 src2 = ins->sreg2; \
153 if (ins->dreg != ins->sreg1) { \
154 s390_lgfr (code, ins->dreg, ins->sreg1); \
159 if (ins->dreg == ins->sreg2) { \
161 s390_lgfr (code, s390_r13, ins->sreg2); \
163 src2 = ins->sreg2; \
165 if (ins->dreg != ins->sreg1) { \
166 s390_lgfr (code, ins->dreg, ins->sreg1); \
170 if (ins->dreg == ins->sreg2) { \
171 src2 = ins->sreg1; \
173 src2 = ins->sreg2; \
174 if (ins->dreg != ins->sreg1) { \
175 s390_ldr (code, ins->dreg, ins->sreg1); \
180 if (ins->dreg == ins->sreg2) { \
182 s390_ldr (code, s390_r13, ins->sreg2); \
184 src2 = ins->sreg2; \
186 if (ins->dreg != ins->sreg1) { \
187 s390_ldr (code, ins->dreg, ins->sreg1); \
1494 MonoInst *ins = cfg->varinfo [i]; in mono_arch_get_allocatable_int_vars() local
1501 if (ins->flags & (MONO_INST_VOLATILE|MONO_INST_INDIRECT) || in mono_arch_get_allocatable_int_vars()
1502 (ins->opcode != OP_LOCAL && ins->opcode != OP_ARG)) in mono_arch_get_allocatable_int_vars()
1506 if (mono_is_regsize_var(ins->inst_vtype)) { in mono_arch_get_allocatable_int_vars()
2324 MonoInst *ins; in add_outarg_reg2() local
2328 MONO_INST_NEW (cfg, ins, OP_MOVE); in add_outarg_reg2()
2329 ins->dreg = mono_alloc_ireg (cfg); in add_outarg_reg2()
2330 ins->sreg1 = tree->dreg; in add_outarg_reg2()
2331 MONO_ADD_INS (cfg->cbb, ins); in add_outarg_reg2()
2332 mono_call_inst_add_outarg_reg (cfg, call, ins->dreg, reg, FALSE); in add_outarg_reg2()
2335 MONO_INST_NEW (cfg, ins, OP_FMOVE); in add_outarg_reg2()
2336 ins->dreg = mono_alloc_freg (cfg); in add_outarg_reg2()
2337 ins->sreg1 = tree->dreg; in add_outarg_reg2()
2338 MONO_ADD_INS (cfg->cbb, ins); in add_outarg_reg2()
2339 mono_call_inst_add_outarg_reg (cfg, call, ins->dreg, reg, TRUE); in add_outarg_reg2()
2342 MONO_INST_NEW (cfg, ins, OP_S390_SETF4RET); in add_outarg_reg2()
2343 ins->dreg = mono_alloc_freg (cfg); in add_outarg_reg2()
2344 ins->sreg1 = tree->dreg; in add_outarg_reg2()
2345 MONO_ADD_INS (cfg->cbb, ins); in add_outarg_reg2()
2346 mono_call_inst_add_outarg_reg (cfg, call, ins->dreg, reg, TRUE); in add_outarg_reg2()
2405 MonoInst *ins; in mono_arch_emit_call() local
2427 MONO_INST_NEW (cfg, ins, OP_MOVE); in mono_arch_emit_call()
2428 ins->sreg1 = call->vret_var->dreg; in mono_arch_emit_call()
2429 ins->dreg = mono_alloc_preg (cfg); in mono_arch_emit_call()
2430 MONO_ADD_INS (cfg->cbb, ins); in mono_arch_emit_call()
2431 mono_call_inst_add_outarg_reg (cfg, call, ins->dreg, cinfo->ret.reg, FALSE); in mono_arch_emit_call()
2500 MONO_INST_NEW (cfg, ins, OP_OUTARG_VT); in mono_arch_emit_call()
2501 ins->sreg1 = in->dreg; in mono_arch_emit_call()
2502 ins->klass = in->klass; in mono_arch_emit_call()
2503 ins->backend.size = ainfo->size; in mono_arch_emit_call()
2504 ins->inst_p0 = call; in mono_arch_emit_call()
2505 ins->inst_p1 = mono_mempool_alloc (cfg->mempool, sizeof (ArgInfo)); in mono_arch_emit_call()
2506 memcpy (ins->inst_p1, ainfo, sizeof (ArgInfo)); in mono_arch_emit_call()
2508 MONO_ADD_INS (cfg->cbb, ins); in mono_arch_emit_call()
2546 MONO_INST_NEW (cfg, ins, OP_STORE_MEMBASE_REG); in mono_arch_emit_call()
2547 ins->inst_destbasereg = STK_BASE; in mono_arch_emit_call()
2548 ins->inst_offset = ainfo->offset; in mono_arch_emit_call()
2549 ins->sreg1 = in->dreg; in mono_arch_emit_call()
2550 MONO_ADD_INS (cfg->cbb, ins); in mono_arch_emit_call()
2578 mono_arch_emit_outarg_vt (MonoCompile *cfg, MonoInst *ins, MonoInst *src) in mono_arch_emit_outarg_vt() argument
2580 MonoCallInst *call = (MonoCallInst*)ins->inst_p0; in mono_arch_emit_outarg_vt()
2581 ArgInfo *ainfo = (ArgInfo*)ins->inst_p1; in mono_arch_emit_outarg_vt()
2582 int size = ins->backend.size; in mono_arch_emit_outarg_vt()
2629 EMIT_NEW_GC_PARAM_SLOT_LIVENESS_DEF (cfg, def, ainfo->offset, &ins->klass->byval_arg); in mono_arch_emit_outarg_vt()
2854 compare_and_branch(MonoBasicBlock *bb, MonoInst *ins, int cc, gboolean logical) in compare_and_branch() argument
2859 last = mono_inst_prev (ins, FILTER_IL_SEQ_POINT); in compare_and_branch()
2860 ins->sreg1 = last->sreg1; in compare_and_branch()
2861 ins->sreg2 = last->sreg2; in compare_and_branch()
2862 ins->sreg3 = cc; in compare_and_branch()
2866 ins->opcode = OP_S390_CLRJ; in compare_and_branch()
2868 ins->opcode = OP_S390_CRJ; in compare_and_branch()
2874 ins->opcode = OP_S390_CLGRJ; in compare_and_branch()
2876 ins->opcode = OP_S390_CGRJ; in compare_and_branch()
2880 ins->backend.data = (gpointer) last->inst_imm; in compare_and_branch()
2882 ins->opcode = OP_S390_CLIJ; in compare_and_branch()
2884 ins->opcode = OP_S390_CIJ; in compare_and_branch()
2889 ins->backend.data = (gpointer) last->inst_imm; in compare_and_branch()
2891 ins->opcode = OP_S390_CLGIJ; in compare_and_branch()
2893 ins->opcode = OP_S390_CGIJ; in compare_and_branch()
2914 MonoInst *ins, *n; in mono_arch_peephole_pass_1() local
2916 MONO_BB_FOR_EACH_INS_SAFE (bb, n, ins) { in mono_arch_peephole_pass_1()
2917 switch (ins->opcode) { in mono_arch_peephole_pass_1()
2920 compare_and_branch(bb, ins, S390_CC_EQ, FALSE); in mono_arch_peephole_pass_1()
2924 compare_and_branch(bb, ins, S390_CC_NE, TRUE); in mono_arch_peephole_pass_1()
2928 compare_and_branch(bb, ins, S390_CC_LT, FALSE); in mono_arch_peephole_pass_1()
2932 compare_and_branch(bb, ins, S390_CC_LT, TRUE); in mono_arch_peephole_pass_1()
2936 compare_and_branch(bb, ins, S390_CC_GT, FALSE); in mono_arch_peephole_pass_1()
2940 compare_and_branch(bb, ins, S390_CC_GT, TRUE); in mono_arch_peephole_pass_1()
2944 compare_and_branch(bb, ins, S390_CC_GE, FALSE); in mono_arch_peephole_pass_1()
2948 compare_and_branch(bb, ins, S390_CC_GE, TRUE); in mono_arch_peephole_pass_1()
2952 compare_and_branch(bb, ins, S390_CC_LE, FALSE); in mono_arch_peephole_pass_1()
2956 compare_and_branch(bb, ins, S390_CC_LE, TRUE); in mono_arch_peephole_pass_1()
2979 MonoInst *ins, *n, *last_ins = NULL; in mono_arch_peephole_pass_2() local
2981 MONO_BB_FOR_EACH_INS_SAFE (bb, n, ins) { in mono_arch_peephole_pass_2()
2982 switch (ins->opcode) { in mono_arch_peephole_pass_2()
2986 ins->inst_basereg == last_ins->inst_destbasereg && in mono_arch_peephole_pass_2()
2987 ins->inst_offset == last_ins->inst_offset) { in mono_arch_peephole_pass_2()
2988 ins->opcode = (ins->opcode == OP_LOADI4_MEMBASE) ? OP_ICONV_TO_I4 : OP_ICONV_TO_U4; in mono_arch_peephole_pass_2()
2989 ins->sreg1 = last_ins->sreg1; in mono_arch_peephole_pass_2()
2993 mono_peephole_ins (bb, ins); in mono_arch_peephole_pass_2()
3008 MonoInst *ins, *next; in mono_arch_lowering_pass() local
3010 MONO_BB_FOR_EACH_INS_SAFE (bb, next, ins) { in mono_arch_lowering_pass()
3011 switch (ins->opcode) { in mono_arch_lowering_pass()
3023 mono_decompose_op_imm (cfg, bb, ins); in mono_arch_lowering_pass()
3026 if (!s390_is_imm16 (ins->inst_imm)) in mono_arch_lowering_pass()
3028 mono_decompose_op_imm (cfg, bb, ins); in mono_arch_lowering_pass()
3149 MonoInst *ins; in mono_arch_output_basic_block() local
3161 MONO_BB_FOR_EACH_INS (bb, ins) { in mono_arch_output_basic_block()
3164 max_len = ((guint8 *)ins_get_spec (ins->opcode))[MONO_INST_LEN]; in mono_arch_output_basic_block()
3172 mono_debug_record_line_number (cfg, ins, offset); in mono_arch_output_basic_block()
3174 switch (ins->opcode) { in mono_arch_output_basic_block()
3176 s390_lghi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3178 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3182 s390_lghi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3184 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3188 s390_lgfi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3190 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3195 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3197 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3201 S390_LONG (code, stcy, stc, ins->sreg1, 0, in mono_arch_output_basic_block()
3202 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3206 S390_LONG (code, sthy, sth, ins->sreg1, 0, in mono_arch_output_basic_block()
3207 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3211 S390_LONG (code, sty, st, ins->sreg1, 0, in mono_arch_output_basic_block()
3212 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3217 S390_LONG (code, stg, stg, ins->sreg1, 0, in mono_arch_output_basic_block()
3218 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
3226 S390_LONG (code, lg, lg, ins->dreg, 0, in mono_arch_output_basic_block()
3227 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3231 S390_LONG (code, lgf, lgf, ins->dreg, 0, in mono_arch_output_basic_block()
3232 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3236 S390_LONG (code, llgf, llgf, ins->dreg, 0, in mono_arch_output_basic_block()
3237 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3241 S390_LONG (code, llgc, llgc, ins->dreg, 0, in mono_arch_output_basic_block()
3242 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3246 S390_LONG (code, lgb, lgb, ins->dreg, 0, in mono_arch_output_basic_block()
3247 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3251 S390_LONG (code, llgh, llgh, ins->dreg, 0, in mono_arch_output_basic_block()
3252 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3256 S390_LONG (code, lgh, lgh, ins->dreg, 0, in mono_arch_output_basic_block()
3257 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
3261 s390_lgbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3265 s390_lghr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3269 s390_llgcr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3273 s390_llghr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3277 s390_lgbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3281 s390_lghr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3285 s390_llgcr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3289 s390_llghr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3293 s390_llgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3297 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3302 if (is_unsigned (ins->next)) in mono_arch_output_basic_block()
3303 s390_clgr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3305 s390_cgr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3309 if (is_unsigned (ins->next)) in mono_arch_output_basic_block()
3310 s390_clr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3312 s390_cr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3317 gboolean branchUn = is_unsigned (ins->next); in mono_arch_output_basic_block()
3318 if ((ins->inst_imm == 0) && (!branchUn)) { in mono_arch_output_basic_block()
3319 s390_ltgr (code, ins->sreg1, ins->sreg1); in mono_arch_output_basic_block()
3321 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3323 s390_clgr (code, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3325 s390_cgr (code, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3330 gboolean branchUn = is_unsigned (ins->next); in mono_arch_output_basic_block()
3331 if ((ins->inst_imm == 0) && (!branchUn)) { in mono_arch_output_basic_block()
3332 s390_ltr (code, ins->sreg1, ins->sreg1); in mono_arch_output_basic_block()
3334 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3336 s390_clr (code, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3338 s390_cr (code, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3350 s390_agrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3353 s390_agr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3359 s390_agrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3362 s390_agr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3368 s390_alcgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3373 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3374 s390_aghik(code, ins->dreg, ins->sreg1, ins->inst_imm); in mono_arch_output_basic_block()
3376 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3377 s390_agrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3380 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3381 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3383 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3384 s390_aghi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3385 } else if (s390_is_imm32 (ins->inst_imm)) { in mono_arch_output_basic_block()
3386 s390_agfi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3388 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3389 s390_agr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3395 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3396 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3398 if (s390_is_imm32 (ins->inst_imm)) { in mono_arch_output_basic_block()
3399 s390_agfi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3401 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3402 s390_agr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3407 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3408 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3410 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3411 s390_lghi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3412 s390_alcgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3414 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3415 s390_alcgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3422 s390_ar (code, ins->dreg, src2); in mono_arch_output_basic_block()
3424 s390_lgfr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
3430 s390_algr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3432 s390_llgfr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
3440 s390_agr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3442 s390_agr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3448 s390_alcgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3454 s390_sgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3457 s390_sgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3463 s390_sgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3466 s390_sgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3472 s390_slbgr(code, ins->dreg, src2); in mono_arch_output_basic_block()
3476 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3477 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3479 if (s390_is_imm16 (-ins->inst_imm)) { in mono_arch_output_basic_block()
3480 s390_aghi (code, ins->dreg, -ins->inst_imm); in mono_arch_output_basic_block()
3481 } else if (s390_is_imm32 (-ins->inst_imm)) { in mono_arch_output_basic_block()
3482 s390_slgfi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3484 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3485 s390_slgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3490 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3491 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3493 if (s390_is_imm16 (-ins->inst_imm)) { in mono_arch_output_basic_block()
3494 s390_aghi (code, ins->dreg, -ins->inst_imm); in mono_arch_output_basic_block()
3495 } else if (s390_is_imm32 (-ins->inst_imm)) { in mono_arch_output_basic_block()
3496 s390_slgfi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3498 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3499 s390_slgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3504 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3505 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3507 if (s390_is_imm16 (-ins->inst_imm)) { in mono_arch_output_basic_block()
3508 s390_lghi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3509 s390_slbgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3511 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3512 s390_slbgr(code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3521 s390_sgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3523 s390_agr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3529 s390_slbgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3535 s390_ngrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3537 if (ins->sreg1 == ins->dreg) { in mono_arch_output_basic_block()
3538 s390_ngr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
3540 if (ins->sreg2 == ins->dreg) { in mono_arch_output_basic_block()
3541 s390_ngr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3543 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3544 s390_ngr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
3551 S390_SET_MASK (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3553 s390_ngrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3555 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3556 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3558 s390_ngr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3563 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
3564 s390_dsgr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3565 s390_lgr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3569 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
3571 s390_dlgr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3572 s390_lgr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3576 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
3577 s390_dsgr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3578 s390_lgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3582 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3583 s390_lghi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3585 s390_lgfi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3587 s390_lgr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3589 s390_lgfr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3593 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
3595 s390_dlgr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3596 s390_lgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3601 s390_ogrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3603 if (ins->sreg1 == ins->dreg) { in mono_arch_output_basic_block()
3604 s390_ogr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
3606 if (ins->sreg2 == ins->dreg) { in mono_arch_output_basic_block()
3607 s390_ogr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3609 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3610 s390_ogr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
3617 S390_SET_MASK(code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3619 s390_ogrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3621 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3622 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3624 s390_ogr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3630 s390_xgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3632 if (ins->sreg1 == ins->dreg) { in mono_arch_output_basic_block()
3633 s390_xgr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
3636 if (ins->sreg2 == ins->dreg) { in mono_arch_output_basic_block()
3637 s390_xgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3640 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3641 s390_xgr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
3648 S390_SET_MASK(code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3650 s390_xgrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3652 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3653 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3655 s390_xgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3661 s390_sllg (code, ins->dreg, ins->dreg, src2, 0); in mono_arch_output_basic_block()
3666 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
3667 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3669 s390_sllg (code, ins->dreg, ins->dreg, 0, (ins->inst_imm & 0x3f)); in mono_arch_output_basic_block()
3674 s390_srag (code, ins->dreg, ins->dreg, src2, 0); in mono_arch_output_basic_block()
3679 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
3680 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3682 s390_srag (code, ins->dreg, ins->dreg, 0, (ins->inst_imm & 0x3f)); in mono_arch_output_basic_block()
3687 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
3688 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3690 s390_srlg (code, ins->dreg, ins->dreg, 0, (ins->inst_imm & 0x3f)); in mono_arch_output_basic_block()
3695 s390_srlg (code, ins->dreg, ins->dreg, src2, 0); in mono_arch_output_basic_block()
3699 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
3700 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3703 s390_xgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3707 s390_lcgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3712 s390_msgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3717 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3718 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3721 (s390_is_imm32 (ins->inst_imm))) { in mono_arch_output_basic_block()
3722 s390_msgfi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3724 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3725 s390_lghi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3726 } else if (s390_is_imm32 (ins->inst_imm)) { in mono_arch_output_basic_block()
3727 s390_lgfi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3729 S390_SET (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3731 s390_msgr (code, ins->dreg, s390_r13); in mono_arch_output_basic_block()
3738 s390_msgrkc (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3741 s390_ltgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
3743 s390_ltgr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3748 s390_msgr (code, s390_r1, ins->sreg2); in mono_arch_output_basic_block()
3755 s390_lgr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3761 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
3762 s390_mlgr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3765 s390_lgr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3771 s390_algr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3776 s390_agr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3782 s390_alcgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3786 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3787 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3789 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3790 s390_aghi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3792 s390_afi (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
3797 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3798 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3800 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3801 s390_lghi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3802 s390_alcgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3804 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3805 s390_alcgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3812 s390_agrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3815 s390_agr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3823 s390_algrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3826 s390_algr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3833 s390_slgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3836 s390_slgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3842 s390_sgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3845 s390_sgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3851 s390_slbgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3855 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3856 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3858 if (s390_is_imm16 (-ins->inst_imm)) { in mono_arch_output_basic_block()
3859 s390_aghi (code, ins->dreg, -ins->inst_imm); in mono_arch_output_basic_block()
3861 s390_agfi (code, ins->dreg, -ins->inst_imm); in mono_arch_output_basic_block()
3866 S390_SET (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3867 s390_slgfr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3873 s390_srk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3877 s390_sr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3879 s390_lgfr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
3886 s390_slrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3889 s390_slr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3892 s390_llgfr(code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
3898 s390_sgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3901 s390_sgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3909 s390_slgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3915 s390_ngrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3918 s390_ngr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3923 S390_SET_MASK (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3925 s390_ngrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3927 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
3928 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
3930 s390_ngr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3935 s390_lgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3937 s390_dr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3938 s390_lgfr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3942 s390_lgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3944 s390_dlr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3945 s390_lgfr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3949 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3950 s390_lghi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3952 s390_lgfi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3954 s390_lgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3956 s390_dr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3957 s390_lgfr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
3961 s390_lgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3963 s390_dr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3964 s390_lgfr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3967 s390_lgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3969 s390_dlr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3970 s390_lgfr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3974 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
3975 s390_lghi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3977 s390_lgfi (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
3979 s390_lgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
3981 s390_dr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
3982 s390_lgfr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
3987 s390_ogrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
3990 s390_ogr (code, ins->dreg, src2); in mono_arch_output_basic_block()
3995 S390_SET_MASK (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
3997 s390_ogrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
3999 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
4000 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4002 s390_ogr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4008 s390_xgrk (code, ins->dreg, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4011 s390_xgr (code, ins->dreg, src2); in mono_arch_output_basic_block()
4016 S390_SET_MASK (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
4018 s390_xgrk (code, ins->dreg, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
4020 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
4021 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4023 s390_xgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4029 s390_sll (code, ins->dreg, src2, 0); in mono_arch_output_basic_block()
4033 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
4034 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4036 s390_sll (code, ins->dreg, 0, (ins->inst_imm & 0x1f)); in mono_arch_output_basic_block()
4041 s390_sra (code, ins->dreg, src2, 0); in mono_arch_output_basic_block()
4045 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
4046 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4048 s390_sra (code, ins->dreg, 0, (ins->inst_imm & 0x1f)); in mono_arch_output_basic_block()
4052 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
4053 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4055 s390_srl (code, ins->dreg, 0, (ins->inst_imm & 0x1f)); in mono_arch_output_basic_block()
4060 s390_srl (code, ins->dreg, src2, 0); in mono_arch_output_basic_block()
4064 if (ins->sreg1 != ins->dreg) { in mono_arch_output_basic_block()
4065 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4068 s390_xgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4072 s390_lcgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4077 s390_msr (code, ins->dreg, src2); in mono_arch_output_basic_block()
4081 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
4082 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4084 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
4085 s390_lghi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
4087 s390_lgfi (code, s390_r0, ins->inst_imm); in mono_arch_output_basic_block()
4089 s390_msr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4094 s390_ltr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
4096 s390_ltr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
4101 s390_msr (code, s390_r1, ins->sreg2); in mono_arch_output_basic_block()
4108 s390_lgfr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
4113 s390_lr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
4114 s390_mlr (code, s390_r0, ins->sreg2); in mono_arch_output_basic_block()
4117 s390_lgfr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
4122 S390_SET (code, ins->dreg, ins->inst_c0); in mono_arch_output_basic_block()
4127 (MonoJumpInfoType)ins->inst_i1, ins->inst_p0); in mono_arch_output_basic_block()
4128 S390_LOAD_TEMPLATE (code, ins->dreg); in mono_arch_output_basic_block()
4133 (MonoJumpInfoType)ins->inst_i1, ins->inst_p0); in mono_arch_output_basic_block()
4134 S390_LOAD_TEMPLATE (code, ins->dreg); in mono_arch_output_basic_block()
4138 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
4139 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4145 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4148 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4154 s390_llgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4158 s390_clgr (code, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
4160 s390_ltgr (code, ins->sreg1, ins->sreg1); in mono_arch_output_basic_block()
4162 s390_llgfr(code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4166 s390_cgr (code, ins->sreg1, s390_r0); in mono_arch_output_basic_block()
4168 s390_ltgr (code, ins->sreg1, ins->sreg1); in mono_arch_output_basic_block()
4170 s390_lgfr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4173 if (ins->dreg != ins->sreg1) { in mono_arch_output_basic_block()
4174 s390_ldr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4178 s390_lgdr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4181 s390_ldgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4184 s390_ledbr (code, s390_f0, ins->sreg1); in mono_arch_output_basic_block()
4185 s390_lgdr (code, ins->dreg, s390_f0); in mono_arch_output_basic_block()
4186 s390_srag (code, ins->dreg, ins->dreg, 0, 32); in mono_arch_output_basic_block()
4189 s390_slag (code, s390_r0, ins->sreg1, 0, 32); in mono_arch_output_basic_block()
4190 s390_ldgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4191 s390_ldebr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
4194 s390_ledbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4195 s390_ldebr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
4198 s390_ledbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4201 if (s390_is_imm16 (ins->inst_offset)) { in mono_arch_output_basic_block()
4202 s390_lghi (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
4203 } else if (s390_is_imm32 (ins->inst_offset)) { in mono_arch_output_basic_block()
4204 s390_lgfi (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
4206 S390_SET (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
4211 s390_lg (code, ins->dreg, s390_r13, s390_r1, 0); in mono_arch_output_basic_block()
4215 if (s390_is_imm16 (ins->inst_offset)) { in mono_arch_output_basic_block()
4216 s390_lghi (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
4217 } else if (s390_is_imm32 (ins->inst_offset)) { in mono_arch_output_basic_block()
4218 s390_lgfi (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
4220 S390_SET (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
4225 s390_stg (code, ins->sreg1, s390_r13, s390_r1, 0); in mono_arch_output_basic_block()
4240 ins->inst_p0); in mono_arch_output_basic_block()
4246 s390_lg (code, s390_r0, 0, ins->sreg1, 0); in mono_arch_output_basic_block()
4262 s390_stg (code, s390_r0, 0, ins->sreg1, 0); in mono_arch_output_basic_block()
4266 call = (MonoCallInst*)ins; in mono_arch_output_basic_block()
4267 if (ins->flags & MONO_INST_HAS_METHOD) in mono_arch_output_basic_block()
4285 call = (MonoCallInst*)ins; in mono_arch_output_basic_block()
4286 if (ins->flags & MONO_INST_HAS_METHOD) in mono_arch_output_basic_block()
4298 call = (MonoCallInst*)ins; in mono_arch_output_basic_block()
4299 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
4310 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
4315 call = (MonoCallInst*)ins; in mono_arch_output_basic_block()
4316 s390_lg (code, s390_r1, 0, ins->sreg1, ins->inst_offset); in mono_arch_output_basic_block()
4327 s390_lg (code, s390_r1, 0, ins->sreg1, ins->inst_offset); in mono_arch_output_basic_block()
4341 s390_lgr (code, s390_r1, ins->sreg1); in mono_arch_output_basic_block()
4342 if (ins->flags & MONO_INST_INIT) in mono_arch_output_basic_block()
4343 s390_lgr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
4369 s390_la (code, ins->dreg, 0, STK_BASE, area_offset); in mono_arch_output_basic_block()
4370 s390_srlg (code, ins->dreg, ins->dreg, 0, 3); in mono_arch_output_basic_block()
4371 s390_sllg (code, ins->dreg, ins->dreg, 0, 3); in mono_arch_output_basic_block()
4372 if (ins->flags & MONO_INST_INIT) { in mono_arch_output_basic_block()
4374 s390_lgr (code, s390_r0, ins->dreg); in mono_arch_output_basic_block()
4384 s390_lgr (code, s390_r2, ins->sreg1); in mono_arch_output_basic_block()
4391 s390_lgr (code, s390_r2, ins->sreg1); in mono_arch_output_basic_block()
4408 if (ins->sreg1 != s390_r2) in mono_arch_output_basic_block()
4409 s390_lgr(code, s390_r2, ins->sreg1); in mono_arch_output_basic_block()
4427 MONO_PATCH_INFO_BB, ins->inst_target_bb); in mono_arch_output_basic_block()
4429 for (GList *tmp = ins->inst_eh_blocks; tmp != bb->clause_holes; tmp = tmp->prev) in mono_arch_output_basic_block()
4434 ins->inst_c0 = code - cfg->native_code; in mono_arch_output_basic_block()
4446 mono_add_seq_point (cfg, bb, ins, code - cfg->native_code); in mono_arch_output_basic_block()
4460 if (ins->flags & MONO_INST_SINGLE_STEP_LOC) { in mono_arch_output_basic_block()
4466 mono_add_seq_point (cfg, bb, ins, code - cfg->native_code); in mono_arch_output_basic_block()
4488 g_assert (ins->sreg1 == S390_FIRST_ARG_REG); in mono_arch_output_basic_block()
4493 s390_tm (code, ins->sreg1, byte_offset, bitmask); in mono_arch_output_basic_block()
4502 ins->flags |= MONO_INST_GC_CALLSITE; in mono_arch_output_basic_block()
4503 ins->backend.pc_offset = code - cfg->native_code; in mono_arch_output_basic_block()
4507 EMIT_UNCOND_BRANCH(ins); in mono_arch_output_basic_block()
4510 s390_br (code, ins->sreg1); in mono_arch_output_basic_block()
4516 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4518 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4524 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4526 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4532 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4534 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4540 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4542 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4548 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4550 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4554 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4556 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4560 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4562 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4566 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4568 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4572 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4574 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4578 s390_lghi(code, ins->dreg, 1); in mono_arch_output_basic_block()
4580 s390_lghi(code, ins->dreg, 0); in mono_arch_output_basic_block()
4585 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_EQ, ins->inst_p1); in mono_arch_output_basic_block()
4589 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_NE, ins->inst_p1); in mono_arch_output_basic_block()
4595 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_LT, ins->inst_p1); in mono_arch_output_basic_block()
4601 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_GT, ins->inst_p1); in mono_arch_output_basic_block()
4607 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_GE, ins->inst_p1); in mono_arch_output_basic_block()
4613 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_LE, ins->inst_p1); in mono_arch_output_basic_block()
4617 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_OV, ins->inst_p1); in mono_arch_output_basic_block()
4621 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_NO, ins->inst_p1); in mono_arch_output_basic_block()
4625 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_CY, ins->inst_p1); in mono_arch_output_basic_block()
4629 EMIT_COND_SYSTEM_EXCEPTION (S390_CC_NC, ins->inst_p1); in mono_arch_output_basic_block()
4633 EMIT_COND_BRANCH (ins, S390_CC_EQ); in mono_arch_output_basic_block()
4637 EMIT_COND_BRANCH (ins, S390_CC_NE); in mono_arch_output_basic_block()
4643 EMIT_COND_BRANCH (ins, S390_CC_LT); in mono_arch_output_basic_block()
4649 EMIT_COND_BRANCH (ins, S390_CC_GT); in mono_arch_output_basic_block()
4655 EMIT_COND_BRANCH (ins, S390_CC_GE); in mono_arch_output_basic_block()
4661 EMIT_COND_BRANCH (ins, S390_CC_LE); in mono_arch_output_basic_block()
4665 EMIT_COMP_AND_BRANCH(ins, crj, cr); in mono_arch_output_basic_block()
4669 EMIT_COMP_AND_BRANCH(ins, clrj, clr); in mono_arch_output_basic_block()
4673 EMIT_COMP_AND_BRANCH(ins, cgrj, cgr); in mono_arch_output_basic_block()
4677 EMIT_COMP_AND_BRANCH(ins, clgrj, clgr); in mono_arch_output_basic_block()
4681 EMIT_COMP_AND_BRANCH_IMM(ins, crj, cr, ltr, FALSE); in mono_arch_output_basic_block()
4685 EMIT_COMP_AND_BRANCH_IMM(ins, clrj, clr, ltr, TRUE); in mono_arch_output_basic_block()
4689 EMIT_COMP_AND_BRANCH_IMM(ins, cgrj, cgr, ltgr, FALSE); in mono_arch_output_basic_block()
4693 EMIT_COMP_AND_BRANCH_IMM(ins, clgrj, clgr, ltgr, TRUE); in mono_arch_output_basic_block()
4698 if (*((double *) ins->inst_p0) == 0) { in mono_arch_output_basic_block()
4699 s390_lzdr (code, ins->dreg); in mono_arch_output_basic_block()
4701 S390_SET (code, s390_r13, ins->inst_p0); in mono_arch_output_basic_block()
4702 s390_ld (code, ins->dreg, 0, s390_r13, 0); in mono_arch_output_basic_block()
4707 if (*((float *) ins->inst_p0) == 0) { in mono_arch_output_basic_block()
4708 s390_lzdr (code, ins->dreg); in mono_arch_output_basic_block()
4710 S390_SET (code, s390_r13, ins->inst_p0); in mono_arch_output_basic_block()
4711 s390_ldeb (code, ins->dreg, 0, s390_r13, 0); in mono_arch_output_basic_block()
4716 S390_LONG (code, stdy, std, ins->sreg1, 0, in mono_arch_output_basic_block()
4717 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
4721 S390_LONG (code, ldy, ld, ins->dreg, 0, in mono_arch_output_basic_block()
4722 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
4726 s390_ledbr (code, s390_f15, ins->sreg1); in mono_arch_output_basic_block()
4728 ins->inst_destbasereg, ins->inst_offset); in mono_arch_output_basic_block()
4733 ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
4734 s390_ldebr (code, ins->dreg, s390_f15); in mono_arch_output_basic_block()
4739 s390_cdlfbr (code, ins->dreg, 5, ins->sreg1, 0); in mono_arch_output_basic_block()
4741 s390_llgfr (code, s390_r0, ins->sreg1); in mono_arch_output_basic_block()
4742 s390_cdgbr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4748 s390_cdlgbr (code, ins->dreg, 5, ins->sreg1, 0); in mono_arch_output_basic_block()
4751 s390_cxgbr (code, s390_f12, ins->sreg1); in mono_arch_output_basic_block()
4752 s390_ltgr (code, ins->sreg1, ins->sreg1); in mono_arch_output_basic_block()
4760 s390_ldr (code, ins->dreg, s390_f13); in mono_arch_output_basic_block()
4766 s390_cegbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4767 s390_ldebr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
4772 s390_cdgbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4776 s390_cgdbr (code, ins->dreg, 5, ins->sreg1); in mono_arch_output_basic_block()
4777 s390_ltgr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
4779 s390_oill (code, ins->dreg, 0x80); in mono_arch_output_basic_block()
4781 s390_ngr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4785 s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0); in mono_arch_output_basic_block()
4787 s390_ngr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4789 code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 1, FALSE); in mono_arch_output_basic_block()
4793 s390_cgdbr (code, ins->dreg, 5, ins->sreg1); in mono_arch_output_basic_block()
4794 s390_ltgr (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
4796 s390_oill (code, ins->dreg, 0x8000); in mono_arch_output_basic_block()
4798 s390_ngr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4802 s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0); in mono_arch_output_basic_block()
4804 s390_ngr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
4806 code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 2, FALSE); in mono_arch_output_basic_block()
4811 s390_cfdbr (code, ins->dreg, 5, ins->sreg1); in mono_arch_output_basic_block()
4816 s390_clfdbr (code, ins->dreg, 5, ins->sreg1, 0); in mono_arch_output_basic_block()
4818 code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 4, FALSE); in mono_arch_output_basic_block()
4822 s390_cgdbr (code, ins->dreg, 5, ins->sreg1); in mono_arch_output_basic_block()
4826 s390_clgdbr (code, ins->dreg, 5, ins->sreg1, 0); in mono_arch_output_basic_block()
4828 code = emit_float_to_int (cfg, code, ins->dreg, ins->sreg1, 8, FALSE); in mono_arch_output_basic_block()
4834 s390_ltgr (code, ins->sreg2, ins->sreg2); in mono_arch_output_basic_block()
4836 s390_ltgr (code, ins->sreg1, ins->sreg1); in mono_arch_output_basic_block()
4839 s390_cgr (code, ins->sreg1, s390_r13); in mono_arch_output_basic_block()
4841 if (ins->dreg != ins->sreg2) in mono_arch_output_basic_block()
4842 s390_lgr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
4856 s390_lpdbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4860 s390_sqdbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4865 s390_adbr (code, ins->dreg, src2); in mono_arch_output_basic_block()
4870 s390_sdbr (code, ins->dreg, src2); in mono_arch_output_basic_block()
4875 s390_mdbr (code, ins->dreg, src2); in mono_arch_output_basic_block()
4880 s390_ddbr (code, ins->dreg, src2); in mono_arch_output_basic_block()
4884 s390_lcdbr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
4889 s390_didbr (code, ins->dreg, src2, 5, s390_f15); in mono_arch_output_basic_block()
4893 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4897 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4898 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4900 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4904 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4905 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4907 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4911 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4912 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4914 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4918 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4919 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4921 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4925 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4926 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4928 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4932 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4933 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4935 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4939 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4940 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4942 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4946 s390_cdbr (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
4947 s390_lghi (code, ins->dreg, 1); in mono_arch_output_basic_block()
4949 s390_lghi (code, ins->dreg, 0); in mono_arch_output_basic_block()
4955 EMIT_COND_BRANCH (ins, S390_CC_EQ); in mono_arch_output_basic_block()
4960 EMIT_COND_BRANCH (ins, S390_CC_NE|S390_CC_OV); in mono_arch_output_basic_block()
4965 EMIT_COND_BRANCH (ins, S390_CC_LT); in mono_arch_output_basic_block()
4970 EMIT_COND_BRANCH (ins, S390_CC_LT|S390_CC_OV); in mono_arch_output_basic_block()
4975 EMIT_COND_BRANCH (ins, S390_CC_GT); in mono_arch_output_basic_block()
4980 EMIT_COND_BRANCH (ins, S390_CC_GT|S390_CC_OV); in mono_arch_output_basic_block()
4985 EMIT_COND_BRANCH (ins, S390_CC_GE); in mono_arch_output_basic_block()
4990 EMIT_COND_BRANCH (ins, S390_CC_GE|S390_CC_OV); in mono_arch_output_basic_block()
4995 EMIT_COND_BRANCH (ins, S390_CC_LE); in mono_arch_output_basic_block()
5000 EMIT_COND_BRANCH (ins, S390_CC_LE|S390_CC_OV); in mono_arch_output_basic_block()
5005 s390_tcdb (code, ins->sreg1, 0, s390_r13, 0); in mono_arch_output_basic_block()
5014 if (ins->backend.size > 0) { in mono_arch_output_basic_block()
5015 if (ins->backend.size <= 256) { in mono_arch_output_basic_block()
5016 s390_mvc (code, ins->backend.size, ins->dreg, in mono_arch_output_basic_block()
5017 ins->inst_offset, ins->sreg1, ins->inst_imm); in mono_arch_output_basic_block()
5019 s390_lgr (code, s390_r0, ins->dreg); in mono_arch_output_basic_block()
5020 if (ins->inst_offset > 0) { in mono_arch_output_basic_block()
5021 if (s390_is_imm16 (ins->inst_offset)) { in mono_arch_output_basic_block()
5022 s390_aghi (code, s390_r0, ins->inst_offset); in mono_arch_output_basic_block()
5023 } else if (s390_is_imm32 (ins->inst_offset)) { in mono_arch_output_basic_block()
5024 s390_agfi (code, s390_r0, ins->inst_offset); in mono_arch_output_basic_block()
5026 S390_SET (code, s390_r13, ins->inst_offset); in mono_arch_output_basic_block()
5030 s390_lgr (code, s390_r12, ins->sreg1); in mono_arch_output_basic_block()
5031 if (ins->inst_imm > 0) { in mono_arch_output_basic_block()
5032 if (s390_is_imm16 (ins->inst_imm)) { in mono_arch_output_basic_block()
5033 s390_aghi (code, s390_r12, ins->inst_imm); in mono_arch_output_basic_block()
5034 } else if (s390_is_imm32 (ins->inst_imm)) { in mono_arch_output_basic_block()
5035 s390_agfi (code, s390_r12, ins->inst_imm); in mono_arch_output_basic_block()
5037 S390_SET (code, s390_r13, ins->inst_imm); in mono_arch_output_basic_block()
5041 if (s390_is_imm16 (ins->backend.size)) { in mono_arch_output_basic_block()
5042 s390_lghi (code, s390_r1, ins->backend.size); in mono_arch_output_basic_block()
5043 } else if (s390_is_imm32 (ins->inst_offset)) { in mono_arch_output_basic_block()
5044 s390_agfi (code, s390_r1, ins->backend.size); in mono_arch_output_basic_block()
5046 S390_SET (code, s390_r13, ins->backend.size); in mono_arch_output_basic_block()
5058 s390_laag (code, ins->dreg, ins->sreg2, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5059 s390_agr (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5061 s390_lgr (code, s390_r1, ins->sreg2); in mono_arch_output_basic_block()
5062 s390_lg (code, s390_r0, 0, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5064 s390_csg (code, s390_r0, s390_r1, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5066 s390_lgr (code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
5071 s390_lg (code, s390_r0, 0, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5072 s390_csg (code, s390_r0, ins->sreg2, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5074 s390_lgr (code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
5079 s390_laa (code, ins->dreg, ins->sreg2, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5080 s390_ar (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5082 s390_lgfr(code, s390_r1, ins->sreg2); in mono_arch_output_basic_block()
5083 s390_lgf (code, s390_r0, 0, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5085 s390_cs (code, s390_r0, s390_r1, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5087 s390_lgfr(code, ins->dreg, s390_r1); in mono_arch_output_basic_block()
5092 s390_l (code, s390_r0, 0, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5093 s390_cs (code, s390_r0, ins->sreg2, ins->inst_basereg, ins->inst_offset); in mono_arch_output_basic_block()
5095 s390_lgfr(code, ins->dreg, s390_r0); in mono_arch_output_basic_block()
5099 s390_lgr (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5101 s390_aghi (code, ins->dreg, cfg->stack_offset); in mono_arch_output_basic_block()
5103 s390_agfi (code, ins->dreg, cfg->stack_offset); in mono_arch_output_basic_block()
5106 s390_agr (code, ins->dreg, s390_r13); in mono_arch_output_basic_block()
5118 s390_ltg (code, s390_r0, 0, ins->sreg1, 0); in mono_arch_output_basic_block()
5129 ins->backend.pc_offset = code - cfg->native_code; in mono_arch_output_basic_block()
5132 ins->backend.pc_offset = code - cfg->native_code; in mono_arch_output_basic_block()
5133 bb->spill_slot_defs = g_slist_prepend_mempool (cfg->mempool, bb->spill_slot_defs, ins); in mono_arch_output_basic_block()
5137 s390x_addps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5140 s390x_divps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5143 s390x_mulps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5146 s390x_subps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5149 s390x_maxps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5152 s390x_minps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5155 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 7); in mono_arch_output_basic_block()
5156 s390x_cmpps_imm (code, ins->sreg1, ins->sreg2, ins->inst_c0); in mono_arch_output_basic_block()
5159 s390x_andps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5162 s390x_andnps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5165 s390x_orps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5168 s390x_xorps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5171 s390x_sqrtps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5174 s390x_rsqrtps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5177 s390x_rcpps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5180 s390x_addsubps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5183 s390x_haddps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5186 s390x_hsubps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5189 s390x_movshdup (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5192 s390x_movsldup (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5196 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 0xFF); in mono_arch_output_basic_block()
5197 s390x_pshufhw_imm (code, ins->dreg, ins->sreg1, ins->inst_c0); in mono_arch_output_basic_block()
5200 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 0xFF); in mono_arch_output_basic_block()
5201 s390x_pshuflw_imm (code, ins->dreg, ins->sreg1, ins->inst_c0); in mono_arch_output_basic_block()
5204 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 0xFF); in mono_arch_output_basic_block()
5205 s390x_pshufd_imm (code, ins->dreg, ins->sreg1, ins->inst_c0); in mono_arch_output_basic_block()
5208 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 0xFF); in mono_arch_output_basic_block()
5209 s390x_shufps_imm (code, ins->sreg1, ins->sreg2, ins->inst_c0); in mono_arch_output_basic_block()
5212 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 0x3); in mono_arch_output_basic_block()
5213 s390x_shufpd_imm (code, ins->sreg1, ins->sreg2, ins->inst_c0); in mono_arch_output_basic_block()
5217 s390x_addpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5220 s390x_divpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5223 s390x_mulpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5226 s390x_subpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5229 s390x_maxpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5232 s390x_minpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5235 g_assert (ins->inst_c0 >= 0 && ins->inst_c0 <= 7); in mono_arch_output_basic_block()
5236 s390x_cmppd_imm (code, ins->sreg1, ins->sreg2, ins->inst_c0); in mono_arch_output_basic_block()
5239 s390x_andpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5242 s390x_andnpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5245 s390x_orpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5248 s390x_xorpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5251 s390x_sqrtpd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5254 s390x_addsubpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5257 s390x_haddpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5260 s390x_hsubpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5263 s390x_movddup (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5267 s390x_pmovmskb (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5271 s390x_pand (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5274 s390x_por (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5277 s390x_pxor (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5281 s390x_paddb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5284 s390x_paddw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5287 s390x_paddd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5290 s390x_paddq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5294 s390x_psubb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5297 s390x_psubw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5300 s390x_psubd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5303 s390x_psubq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5307 s390x_pmaxub (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5310 s390x_pmaxuw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5313 s390x_pmaxud (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5317 s390x_pmaxsb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5320 s390x_pmaxsw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5323 s390x_pmaxsd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5327 s390x_pavgb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5330 s390x_pavgw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5334 s390x_pminub (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5337 s390x_pminuw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5340 s390x_pminud (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5344 s390x_pminsb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5347 s390x_pminsw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5350 s390x_pminsd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5354 s390x_pcmpeqb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5357 s390x_pcmpeqw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5360 s390x_pcmpeqd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5363 s390x_pcmpeqq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5367 s390x_pcmpgtb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5370 s390x_pcmpgtw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5373 s390x_pcmpgtd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5376 s390x_pcmpgtq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5380 s390x_psadbw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5384 s390x_punpcklbw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5387 s390x_punpcklwd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5390 s390x_punpckldq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5393 s390x_punpcklqdq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5396 s390x_unpcklps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5399 s390x_unpcklpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5403 s390x_punpckhbw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5406 s390x_punpckhwd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5409 s390x_punpckhdq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5412 s390x_punpckhqdq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5415 s390x_unpckhps (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5418 s390x_unpckhpd (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5422 s390x_packsswb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5425 s390x_packssdw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5428 s390x_packuswb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5431 s390x_packusdw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5435 s390x_paddusb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5438 s390x_psubusb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5441 s390x_paddusw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5444 s390x_psubusw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5448 s390x_paddsb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5451 s390x_psubsb (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5454 s390x_paddsw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5457 s390x_psubsw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5461 s390x_pmullw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5464 s390x_pmulld (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5467 s390x_pmuludq (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5470 s390x_pmulhuw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5473 s390x_pmulhw (code, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5477 s390x_psrlw_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5480 s390x_psrlw (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5484 s390x_psraw_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5487 s390x_psraw (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5491 s390x_psllw_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5494 s390x_psllw (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5498 s390x_psrld_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5501 s390x_psrld (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5505 s390x_psrad_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5508 s390x_psrad (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5512 s390x_pslld_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5515 s390x_pslld (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5519 s390x_psrlq_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5522 s390x_psrlq (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5535 s390x_psllq_reg_imm (code, ins->dreg, ins->inst_imm); in mono_arch_output_basic_block()
5538 s390x_psllq (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5541 s390x_cvtdq2pd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5544 s390x_cvtdq2ps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5547 s390x_cvtpd2dq (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5550 s390x_cvtpd2ps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5553 s390x_cvtps2dq (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5556 s390x_cvtps2pd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5559 s390x_cvttpd2dq (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5562 s390x_cvttps2dq (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5566 amd64_movd_xreg_reg_size (code, ins->dreg, ins->sreg1, 4); in mono_arch_output_basic_block()
5569 amd64_movd_reg_xreg_size (code, ins->dreg, ins->sreg1, 4); in mono_arch_output_basic_block()
5572 if (ins->inst_c0) { in mono_arch_output_basic_block()
5573 amd64_movhlps (code, MONO_ARCH_FP_SCRATCH_REG, ins->sreg1); in mono_arch_output_basic_block()
5574 amd64_movd_reg_xreg_size (code, ins->dreg, MONO_ARCH_FP_SCRATCH_REG, 8); in mono_arch_output_basic_block()
5576 amd64_movd_reg_xreg_size (code, ins->dreg, ins->sreg1, 8); in mono_arch_output_basic_block()
5581 amd64_movd_reg_xreg_size (code, ins->dreg, ins->sreg1, 4); in mono_arch_output_basic_block()
5582 if (ins->inst_c0) in mono_arch_output_basic_block()
5583 amd64_shift_reg_imm (code, X86_SHR, ins->dreg, ins->inst_c0 * 8); in mono_arch_output_basic_block()
5584 amd64_widen_reg (code, ins->dreg, ins->dreg, ins->opcode == OP_EXTRACT_I1, FALSE); in mono_arch_output_basic_block()
5591 s390x_pextrw_imm (code, ins->dreg, ins->sreg1, ins->inst_c0); in mono_arch_output_basic_block()
5592 amd64_widen_reg_size (code, ins->dreg, ins->dreg, ins->opcode == OP_EXTRACT_I2, TRUE, 4); in mono_arch_output_basic_block()
5595 if (ins->inst_c0) in mono_arch_output_basic_block()
5596 amd64_movhlps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5598 s390x_movsd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5601 s390x_pinsrw_imm (code, ins->sreg1, ins->sreg2, ins->inst_c0); in mono_arch_output_basic_block()
5604 s390x_pextrw_imm (code, ins->dreg, ins->sreg1, ins->inst_c0); in mono_arch_output_basic_block()
5612 amd64_alu_reg_imm (code, X86_AND, ins->sreg1, ins->inst_c0 & 1 ? 0x00FF : 0xFF00); in mono_arch_output_basic_block()
5614 if (ins->inst_c0 & 1) in mono_arch_output_basic_block()
5615 amd64_shift_reg_imm_size (code, X86_SHL, ins->sreg2, 8, 4); in mono_arch_output_basic_block()
5617 amd64_alu (code, X86_OR, ins->sreg1, ins->sreg2); in mono_arch_output_basic_block()
5618 s390x_pinsrw_imm (code, ins->dreg, ins->sreg1, ins->inst_c0 / 2); in mono_arch_output_basic_block()
5621 s390x_pinsrw_imm (code, ins->dreg, ins->sreg2, ins->inst_c0 * 2); in mono_arch_output_basic_block()
5622 amd64_shift_reg_imm (code, X86_SHR, ins->sreg2, 16); in mono_arch_output_basic_block()
5623 s390x_pinsrw_imm (code, ins->dreg, ins->sreg2, ins->inst_c0 * 2 + 1); in mono_arch_output_basic_block()
5626 amd64_movd_xreg_reg_size(code, MONO_ARCH_FP_SCRATCH_REG, ins->sreg2, 8); in mono_arch_output_basic_block()
5627 if (ins->inst_c0) in mono_arch_output_basic_block()
5628 amd64_movlhps (code, ins->dreg, MONO_ARCH_FP_SCRATCH_REG); in mono_arch_output_basic_block()
5630 s390x_movsd (code, ins->dreg, MONO_ARCH_FP_SCRATCH_REG); in mono_arch_output_basic_block()
5634 switch (ins->inst_c0) { in mono_arch_output_basic_block()
5637 s390x_movss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5639 s390x_cvtsd2ss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5642 s390x_pshufd_imm (code, ins->dreg, ins->dreg, mono_simd_shuffle_mask(1, 0, 2, 3)); in mono_arch_output_basic_block()
5644 s390x_movss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5646 s390x_cvtsd2ss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5647 s390x_pshufd_imm (code, ins->dreg, ins->dreg, mono_simd_shuffle_mask(1, 0, 2, 3)); in mono_arch_output_basic_block()
5650 s390x_pshufd_imm (code, ins->dreg, ins->dreg, mono_simd_shuffle_mask(2, 1, 0, 3)); in mono_arch_output_basic_block()
5652 s390x_movss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5654 s390x_cvtsd2ss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5655 s390x_pshufd_imm (code, ins->dreg, ins->dreg, mono_simd_shuffle_mask(2, 1, 0, 3)); in mono_arch_output_basic_block()
5658 s390x_pshufd_imm (code, ins->dreg, ins->dreg, mono_simd_shuffle_mask(3, 1, 2, 0)); in mono_arch_output_basic_block()
5660 s390x_movss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5662 s390x_cvtsd2ss (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5663 s390x_pshufd_imm (code, ins->dreg, ins->dreg, mono_simd_shuffle_mask(3, 1, 2, 0)); in mono_arch_output_basic_block()
5668 if (ins->inst_c0) in mono_arch_output_basic_block()
5669 amd64_movlhps (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5671 s390x_movsd (code, ins->dreg, ins->sreg2); in mono_arch_output_basic_block()
5675 s390x_movups_membase_reg (code, ins->dreg, ins->inst_offset, ins->sreg1); in mono_arch_output_basic_block()
5678 s390x_movups_reg_membase (code, ins->dreg, ins->sreg1, ins->inst_offset); in mono_arch_output_basic_block()
5681 s390x_movaps_reg_membase (code, ins->dreg, ins->sreg1, ins->inst_offset); in mono_arch_output_basic_block()
5684 s390x_movaps_membase_reg (code, ins->dreg, ins->inst_offset, ins->sreg1); in mono_arch_output_basic_block()
5687 s390x_movntps_reg_membase (code, ins->dreg, ins->sreg1, ins->inst_offset); in mono_arch_output_basic_block()
5690 s390x_prefetch_reg_membase (code, ins->backend.arg_info, ins->sreg1, ins->inst_offset); in mono_arch_output_basic_block()
5695 if (ins->dreg != ins->sreg1) in mono_arch_output_basic_block()
5696 s390x_movaps (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5699 s390x_pxor (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
5702 amd64_movd_xreg_reg_size (code, ins->dreg, ins->sreg1, 4); in mono_arch_output_basic_block()
5706 s390x_movsd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5710 s390x_cvttsd2si_reg_xreg_size (code, ins->dreg, ins->sreg1, 4); in mono_arch_output_basic_block()
5711 switch (ins->backend.source_opcode) { in mono_arch_output_basic_block()
5713 amd64_widen_reg (code, ins->dreg, ins->dreg, TRUE, FALSE); in mono_arch_output_basic_block()
5716 amd64_widen_reg (code, ins->dreg, ins->dreg, FALSE, FALSE); in mono_arch_output_basic_block()
5719 amd64_widen_reg (code, ins->dreg, ins->dreg, TRUE, TRUE); in mono_arch_output_basic_block()
5722 amd64_widen_reg (code, ins->dreg, ins->dreg, FALSE, TRUE); in mono_arch_output_basic_block()
5728 s390x_pinsrw_imm (code, ins->dreg, ins->sreg1, 0); in mono_arch_output_basic_block()
5729 s390x_pinsrw_imm (code, ins->dreg, ins->sreg1, 1); in mono_arch_output_basic_block()
5730 s390x_pshufd_imm (code, ins->dreg, ins->dreg, 0); in mono_arch_output_basic_block()
5733 amd64_movd_xreg_reg_size (code, ins->dreg, ins->sreg1, 4); in mono_arch_output_basic_block()
5734 s390x_pshufd_imm (code, ins->dreg, ins->dreg, 0); in mono_arch_output_basic_block()
5737 amd64_movd_xreg_reg_size (code, ins->dreg, ins->sreg1, 8); in mono_arch_output_basic_block()
5738 s390x_pshufd_imm (code, ins->dreg, ins->dreg, 0x44); in mono_arch_output_basic_block()
5742 s390x_movsd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5744 s390x_movsd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5745 s390x_cvtsd2ss (code, ins->dreg, ins->dreg); in mono_arch_output_basic_block()
5747 s390x_pshufd_imm (code, ins->dreg, ins->dreg, 0); in mono_arch_output_basic_block()
5750 s390x_movsd (code, ins->dreg, ins->sreg1); in mono_arch_output_basic_block()
5751 s390x_pshufd_imm (code, ins->dreg, ins->dreg, 0x44); in mono_arch_output_basic_block()
5755 g_warning ("unknown opcode %s in %s()\n", mono_inst_name (ins->opcode), __FUNCTION__); in mono_arch_output_basic_block()
5761 mono_inst_name (ins->opcode), max_len, code - cfg->native_code - offset); in mono_arch_output_basic_block()
6060 MonoInst *ins; in mono_arch_emit_prolog() local
6063 MONO_BB_FOR_EACH_INS (bb, ins) in mono_arch_emit_prolog()
6064 max_offset += ((guint8 *)ins_get_spec (ins->opcode))[MONO_INST_LEN]; in mono_arch_emit_prolog()
6582 mono_arch_decompose_opts (MonoCompile *cfg, MonoInst *ins) in mono_arch_decompose_opts() argument
6588 switch (ins->opcode) { in mono_arch_decompose_opts()
6590 ins->opcode = OP_S390_ISUB_OVF; in mono_arch_decompose_opts()
6593 ins->opcode = OP_S390_ISUB_OVF_UN; in mono_arch_decompose_opts()
6596 ins->opcode = OP_S390_IADD_OVF; in mono_arch_decompose_opts()
6599 ins->opcode = OP_S390_IADD_OVF_UN; in mono_arch_decompose_opts()
6602 ins->opcode = OP_S390_LADD_OVF; in mono_arch_decompose_opts()
6605 ins->opcode = OP_S390_LADD_OVF_UN; in mono_arch_decompose_opts()
6608 ins->opcode = OP_S390_LSUB_OVF; in mono_arch_decompose_opts()
6611 ins->opcode = OP_S390_LSUB_OVF_UN; in mono_arch_decompose_opts()