[Mono-dev] Patch review request -- generic changes to support MIPS conditional exceptions

Paolo Molaro lupus at ximian.com
Fri Jan 12 09:44:15 EST 2007


On 01/11/07 mason wrote:
> Index: mono/mini/inssel.brg
> ===================================================================
> --- mono/mini/inssel.brg	(revision 70746)
> +++ mono/mini/inssel.brg	(working copy)
> @@ -278,8 +278,7 @@
>  		if (! (state->tree->flags & MONO_INST_NORANGECHECK)) { \
>  			int _length_reg = mono_regstate_next_int (cfg->rs); \
>  			MONO_EMIT_NEW_LOAD_MEMBASE_OP (cfg, OP_LOADI4_MEMBASE, _length_reg, array_reg, G_STRUCT_OFFSET (array_type, array_length_field)); \
> -			MONO_EMIT_NEW_BIALU (cfg, OP_COMPARE, -1, _length_reg, index_reg); \
> -			MONO_EMIT_NEW_COND_EXC (cfg, LE_UN, "IndexOutOfRangeException"); \
> +			MONO_EMIT_NEW_COMPARE_EXC (cfe, LE_UN, _length_reg, index_reg, "IndexOutOfRangeException"); \

There is a typo here: cfe -> cfg.

> @@ -287,11 +286,31 @@
>  		if (! (state->tree->flags & MONO_INST_NORANGECHECK)) { \
>  			int _length_reg = mono_regstate_next_int (cfg->rs); \
>  			MONO_EMIT_NEW_LOAD_MEMBASE_OP (cfg, OP_LOADI4_MEMBASE, _length_reg, array_reg, G_STRUCT_OFFSET (array_type, array_length_field)); \
> -			MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE_IMM, -1, _length_reg, index_imm); \
> -			MONO_EMIT_NEW_COND_EXC (cfg, LE_UN, "IndexOutOfRangeException"); \
> +			MONO_EMIT_NEW_COMPARE_IMM_EXC (cfe, LE_UN, _length_reg, index_imm, "IndexOutOfRangeException"); \

Idem.

> +#ifndef MONO_EMIT_NEW_COMPARE_IMM_EXC
> +#define MONO_EMIT_NEW_COMPARE_IMM_EXC(cfg, cmp_op, sreg1, imm, exc) do { \
> +		MONO_EMIT_NEW_BIALU_IMM (cfg, OP_COMPARE, -1, sreg1, imm); \

It should be OP_COMPARE_IMM.
So this patch can't go in. Let me know if you want me to test compile a
fixed patch.

lupus

-- 
-----------------------------------------------------------------
lupus at debian.org                                     debian/rules
lupus at ximian.com                             Monkeys do it better



More information about the Mono-devel-list mailing list