Author: zoltan
Date: 2006-01-17 15:48:25 -0500 (Tue, 17 Jan 2006)
New Revision: 55692
Modified:
branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
branches/vargaz/mini-linear-il/mono/mono/mini/mini-amd64.c
Log:
Ongoing work
Modified: branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
2006-01-17 19:49:46 UTC (rev 55691)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/method-to-ir.c
2006-01-17 20:48:25 UTC (rev 55692)
@@ -797,7 +797,7 @@
MONO_INST_NEW ((cfg), (inst), (op)); \
inst->inst_destbasereg = base; \
inst->inst_offset = offset; \
- inst->inst_p1 = (gpointer)imm; \
+ inst->inst_p1 = (gpointer)(gssize)imm; \
MONO_ADD_INS ((cfg)->cbb, inst); \
} while (0)
@@ -8659,6 +8659,8 @@
return OP_STOREI2_MEMBASE_IMM;
case OP_STOREI4_MEMBASE_REG:
return OP_STOREI4_MEMBASE_IMM;
+ case OP_STOREI8_MEMBASE_REG:
+ return OP_STOREI8_MEMBASE_IMM;
default:
g_assert_not_reached ();
}
@@ -8912,10 +8914,12 @@
void
mono_spill_global_vars (MonoCompile *cfg)
{
- int i;
guint32 *stacktypes;
MonoBasicBlock *bb;
char spec2 [16];
+#if SIZEOF_VOID_P == 4
+ int i;
+#endif
memset (spec2, 0, sizeof (spec2));
@@ -9071,7 +9075,7 @@
/* Try to fuse the store into
the instruction itself */
/* FIXME: Add more instructions
*/
- if (ins->opcode == OP_ICONST) {
+ if ((ins->opcode == OP_ICONST)
|| ((ins->opcode == OP_I8CONST) && (ins->inst_c0 == 0))) {
ins->opcode =
store_membase_reg_to_store_membase_imm (store_opcode);
ins->inst_imm =
ins->inst_c0;
ins->inst_destbasereg =
var->inst_basereg;
@@ -9181,7 +9185,7 @@
* - get rid of the empty bblocks created by MONO_EMIT_NEW_BRACH_BLOCK2
* - Things to backport to the old JIT:
* - op_atomic_exchange fix for amd64
- * - long shift ops have sreg1:L but they use ins->unused=eax
+ * - localloc fix for amd64
* - handle long shift opts on 32 bit platforms somehow: they require
* 3 sregs (2 for arg1 and 1 for arg2)
* - make byref a 'normal' type.
Modified: branches/vargaz/mini-linear-il/mono/mono/mini/mini-amd64.c
===================================================================
--- branches/vargaz/mini-linear-il/mono/mono/mini/mini-amd64.c 2006-01-17
19:49:46 UTC (rev 55691)
+++ branches/vargaz/mini-linear-il/mono/mono/mini/mini-amd64.c 2006-01-17
20:48:25 UTC (rev 55692)
@@ -2240,7 +2240,7 @@
offset += 8;
}
- amd64_shift_reg_imm (code, X86_SHR, sreg, 4);
+ amd64_shift_reg_imm (code, X86_SHR, sreg, 3);
if (sreg != AMD64_RCX)
amd64_mov_reg_reg (code, AMD64_RCX, sreg, 8);
amd64_alu_reg_reg (code, X86_XOR, AMD64_RAX, AMD64_RAX);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches