4 # emullong.brg: emulate 64 bit instructions with 32bit instructions
6 # we dont use this, its just a prototype!
9 # Dietmar Maurer (dietmar@ximian.com)
11 # (C) 2002 Ximian, Inc.
17 MONO_INST_NEW (s, inst, OP_ICONST);
18 inst->dreg = state->reg1;
19 inst->inst_c0 = tree->inst_c0;
20 mono_bblock_add_inst (s->cbb, inst);
22 tree->opcode = OP_ICONST;
23 tree->dreg = state->reg2;
24 tree->inst_c0 = tree->inst_c1;
25 mono_bblock_add_inst (s->cbb, tree);
28 lreg: CEE_CONV_I8 (OP_ICONST) {
31 inst = state->left->tree;
32 inst->dreg = state->reg1;
33 mono_bblock_add_inst (s->cbb, inst);
35 tree->opcode = OP_ICONST;
36 tree->dreg = state->reg2;
38 if (inst->inst_c0 >= 0)
43 mono_bblock_add_inst (s->cbb, inst);
46 lreg: CEE_CONV_U8 (OP_ICONST) {
49 inst = state->left->tree;
50 inst->dreg = state->reg1;
51 mono_bblock_add_inst (s->cbb, inst);
53 tree->opcode = OP_ICONST;
54 tree->dreg = state->reg2;
56 mono_bblock_add_inst (s->cbb, tree);
59 lreg: CEE_CONV_U8 (reg) {
62 if (state->reg1 != state->left->reg1) {
63 MONO_INST_NEW (s, inst, OP_MOVE);
64 inst->dreg = state->reg1;
65 inst->sreg1 = state->left->reg1;
66 mono_bblock_add_inst (s->cbb, inst);
69 tree->opcode = OP_ICONST;
70 tree->dreg = state->reg2;
72 mono_bblock_add_inst (s->cbb, tree);
75 lreg: CONV_OVF_I8_UN (OP_ICONST) {
76 state->left->tree->dreg = state->reg1;
77 mono_bblock_add_inst (s->cbb, state->left->tree);
79 tree->opcode = OP_ICONST;
80 tree->dreg = state->reg2;
82 mono_bblock_add_inst (s->cbb, tree);