There's a couple of idiosycracies with S390.
For example, in the exception8 test:
using System;
public class TryTest
{
public static void
ThrowException()
{
throw new Exception();
}
public static int Main()
{
int state =
0;
try
{
ThrowException();
try
{
Console.WriteLine("In try
block");
} catch (Exception e)
{
state =
1;
Console.WriteLine("------------------------");
Console.WriteLine(e);
Console.WriteLine("------------------------");
}
} catch
{
state =
2;
}
if (state !=
2)
return
1;
Console.WriteLine("OK");
return 0;
}
}
The result of the ThrowException() is that
the IP is pointing at the first instruction of the "try { Console.WriteLine ("In try Block");" block so that the test in mono_handle_exception()
if (ei->try_start <= MONO_CONTEXT_GET_IP (ctx)
&&
would result in the wrong catch
being used to field the exception.
-----Original
Message-----
Hi,
Great work ! You might want to try modifying the S390
port
to use the
arch-independent exception handling code in
mini-exceptions.c.
- [Mono-list] Remaining S/390 JIT issues Neale.Ferguson
- [Mono-list] Re: Remaining S/390 JIT issues Paolo Molaro
- RE: [Mono-list] Remaining S/390 JIT issues Varga Zoltan
- RE: [Mono-list] Remaining S/390 JIT issues Neale.Ferguson
- RE: [Mono-list] Remaining S/390 JIT issues Varga Zoltan
