[Mono-dev] mono 2.2 rc2 on ARM issues

Zoltan Varga vargaz at gmail.com
Fri Dec 12 14:57:01 EST 2008


Hi,

  The calls to flush_icache are now fixed on the 2.2 branch. Thanks
for reporting this.

               Zoltan

On Thu, Dec 11, 2008 at 9:36 PM, Cliff Brake <cliff.brake at gmail.com> wrote:
> On Thu, Dec 11, 2008 at 2:55 PM, Rodrigo Kumpera <kumpera at gmail.com> wrote:
>> The mono_arch_flush_icache is wrong, it passes a pointer to the end
>> of the code buffer and not to the beggining.
>>
>> It should be mono_arch_flush_icache (buf, code - buf);
>
> Basic on a quick scan I agree.  I made the code changes as follows,
> but still get the Illegal instruction.
>
> Thanks,
> Cliff
>
> Index: mono-2.2/mono/mini/tramp-arm.c
> ===================================================================
> --- mono-2.2.orig/mono/mini/tramp-arm.c 2008-12-11 15:16:40.000000000 -0500
> +++ mono-2.2/mono/mini/tramp-arm.c      2008-12-11 15:17:46.000000000 -0500
> @@ -362,7 +362,7 @@
>       code += 8;
>
>       /* Flush instruction cache, since we've generated code */
> -       mono_arch_flush_icache (code, code - buf);
> +       mono_arch_flush_icache (buf, code - buf);
>
>       /* Sanity check */
>       g_assert ((code - buf) <= GEN_TRAMP_SIZE);
> @@ -390,7 +390,7 @@
>
>       ARM_MOV_REG_REG (code, ARMREG_PC, ARMREG_LR);
>
> -       mono_arch_flush_icache (code, code - buf);
> +       mono_arch_flush_icache (buf, code - buf);
>
>       *code_len = code - buf;
>
> @@ -447,7 +447,7 @@
>       }
>
>       /* Flush instruction cache, since we've generated code */
> -       mono_arch_flush_icache (code, code - buf);
> +       mono_arch_flush_icache (buf, code - buf);
>
>       g_assert ((code - buf) <= size);
>
>
>
> --
> =======================
> Cliff Brake
> http://bec-systems.com
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


More information about the Mono-devel-list mailing list