2009-01-26 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Mon, 26 Jan 2009 15:18:18 +0000 (15:18 -0000)
committerZoltan Varga <vargaz@gmail.com>
Mon, 26 Jan 2009 15:18:18 +0000 (15:18 -0000)
commitb0f0755b24da5f19d2e7129b0277303088a9533a
tree12c6f644f5a07e3f3f36ef4c4833577176f0f190
parent17312bbcdf79195b147eefcab32cbef47b991cbb
2009-01-26  Zoltan Varga  <vargaz@gmail.com>

* mini.c (mini_method_compile): Save the unwind info generated by the JIT
and put its id into jinfo->used_regs. This is only used on amd64,
which is currently the only platform generating unwind info.

* exceptions-amd64.c: Instead of unwinding based on a register mask, use
the dwarf unwinder. This is required to correctly handle async exceptions
like thread abort and stack overflows, which can happen while a method
is in the middle of its prolog or epilog.

* aot-runtime.c (mono_aot_get_unwind_info): New helper function to obtain
the unwind info belonging to an AOTed method.

* aot-compiler.c aot-runtime.c: Save/Load the unwind info emitted by the JIT
into cfg->unwind_ops.

svn path=/trunk/mono/; revision=124504
mono/mini/ChangeLog
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/exceptions-amd64.c
mono/mini/mini.c
mono/mini/mini.h