From 47e3aa1cdbb6a2d7efc8be79761eec5815aa1a0b Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Sat, 26 Jul 2008 12:56:03 +0000 Subject: [PATCH] 2008-07-26 Zoltan Varga * exceptions-x86.c: Merge some changes which seemed to have got lost in the linear-ir merge. svn path=/trunk/mono/; revision=108854 --- mono/mini/ChangeLog | 3 ++ mono/mini/exceptions-x86.c | 71 ++++++++++---------------------------- 2 files changed, 22 insertions(+), 52 deletions(-) diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog index 3b62493435a..381dac76c4e 100644 --- a/mono/mini/ChangeLog +++ b/mono/mini/ChangeLog @@ -1,5 +1,8 @@ 2008-07-26 Zoltan Varga + * exceptions-x86.c: Merge some changes which seemed to have got lost + in the linear-ir merge. + * liveness.c: Disable the liveness2 pass on 32 bit platforms. * method-to-ir.c (mono_handle_global_vregs): Make the component vregs of a diff --git a/mono/mini/exceptions-x86.c b/mono/mini/exceptions-x86.c index 7df9d114e4b..c69928c5071 100644 --- a/mono/mini/exceptions-x86.c +++ b/mono/mini/exceptions-x86.c @@ -25,10 +25,6 @@ #include "mini.h" #include "mini-x86.h" -#if defined(__FreeBSD__) -#include -#endif - #ifdef PLATFORM_WIN32 static void (*restore_stack) (void *); @@ -713,27 +709,15 @@ mono_arch_sigctx_to_monoctx (void *sigctx, MonoContext *mctx) #ifdef MONO_ARCH_USE_SIGACTION ucontext_t *ctx = (ucontext_t*)sigctx; -#if defined(__FreeBSD__) - mctx->eax = ctx->uc_mcontext.mc_eax; - mctx->ebx = ctx->uc_mcontext.mc_ebx; - mctx->ecx = ctx->uc_mcontext.mc_ecx; - mctx->edx = ctx->uc_mcontext.mc_edx; - mctx->ebp = ctx->uc_mcontext.mc_ebp; - mctx->esp = ctx->uc_mcontext.mc_esp; - mctx->esi = ctx->uc_mcontext.mc_esi; - mctx->edi = ctx->uc_mcontext.mc_edi; - mctx->eip = ctx->uc_mcontext.mc_eip; -#else - mctx->eax = ctx->uc_mcontext.gregs [REG_EAX]; - mctx->ebx = ctx->uc_mcontext.gregs [REG_EBX]; - mctx->ecx = ctx->uc_mcontext.gregs [REG_ECX]; - mctx->edx = ctx->uc_mcontext.gregs [REG_EDX]; - mctx->ebp = ctx->uc_mcontext.gregs [REG_EBP]; - mctx->esp = ctx->uc_mcontext.gregs [REG_ESP]; - mctx->esi = ctx->uc_mcontext.gregs [REG_ESI]; - mctx->edi = ctx->uc_mcontext.gregs [REG_EDI]; - mctx->eip = ctx->uc_mcontext.gregs [REG_EIP]; -#endif + mctx->eax = UCONTEXT_REG_EAX (ctx); + mctx->ebx = UCONTEXT_REG_EBX (ctx); + mctx->ecx = UCONTEXT_REG_ECX (ctx); + mctx->edx = UCONTEXT_REG_EDX (ctx); + mctx->ebp = UCONTEXT_REG_EBP (ctx); + mctx->esp = UCONTEXT_REG_ESP (ctx); + mctx->esi = UCONTEXT_REG_ESI (ctx); + mctx->edi = UCONTEXT_REG_EDI (ctx); + mctx->eip = UCONTEXT_REG_EIP (ctx); #else struct sigcontext *ctx = (struct sigcontext *)sigctx; @@ -755,28 +739,15 @@ mono_arch_monoctx_to_sigctx (MonoContext *mctx, void *sigctx) #ifdef MONO_ARCH_USE_SIGACTION ucontext_t *ctx = (ucontext_t*)sigctx; -#if defined(__FreeBSD__) - ctx->uc_mcontext.mc_eax = mctx->eax; - ctx->uc_mcontext.mc_ebx = mctx->ebx; - ctx->uc_mcontext.mc_ecx = mctx->ecx; - ctx->uc_mcontext.mc_edx = mctx->edx; - ctx->uc_mcontext.mc_ebp = mctx->ebp; - ctx->uc_mcontext.mc_esp = mctx->esp; - ctx->uc_mcontext.mc_esi = mctx->esi; - ctx->uc_mcontext.mc_edi = mctx->edi; - ctx->uc_mcontext.mc_eip = mctx->eip; - -#else - ctx->uc_mcontext.gregs [REG_EAX] = mctx->eax; - ctx->uc_mcontext.gregs [REG_EBX] = mctx->ebx; - ctx->uc_mcontext.gregs [REG_ECX] = mctx->ecx; - ctx->uc_mcontext.gregs [REG_EDX] = mctx->edx; - ctx->uc_mcontext.gregs [REG_EBP] = mctx->ebp; - ctx->uc_mcontext.gregs [REG_ESP] = mctx->esp; - ctx->uc_mcontext.gregs [REG_ESI] = mctx->esi; - ctx->uc_mcontext.gregs [REG_EDI] = mctx->edi; - ctx->uc_mcontext.gregs [REG_EIP] = mctx->eip; -#endif + UCONTEXT_REG_EAX (ctx) = mctx->eax; + UCONTEXT_REG_EBX (ctx) = mctx->ebx; + UCONTEXT_REG_ECX (ctx) = mctx->ecx; + UCONTEXT_REG_EDX (ctx) = mctx->edx; + UCONTEXT_REG_EBP (ctx) = mctx->ebp; + UCONTEXT_REG_ESP (ctx) = mctx->esp; + UCONTEXT_REG_ESI (ctx) = mctx->esi; + UCONTEXT_REG_EDI (ctx) = mctx->edi; + UCONTEXT_REG_EIP (ctx) = mctx->eip; #else struct sigcontext *ctx = (struct sigcontext *)sigctx; @@ -797,11 +768,7 @@ mono_arch_ip_from_context (void *sigctx) { #ifdef MONO_ARCH_USE_SIGACTION ucontext_t *ctx = (ucontext_t*)sigctx; -#if defined(__FreeBSD__) - return (gpointer)ctx->uc_mcontext.mc_eip; -#else - return (gpointer)ctx->uc_mcontext.gregs [REG_EIP]; -#endif + return (gpointer)UCONTEXT_REG_EIP (ctx); #else struct sigcontext *ctx = sigctx; return (gpointer)ctx->SC_EIP; -- 2.25.1