/* src/vm/jit/i386/darwin/md-os.c - machine dependent i386 Darwin functions
- Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
- C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
- E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
- J. Wenninger, Institut f. Computersprachen - TU Wien
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
#include "vm/global.h"
#include "vm/signallocal.h"
#include "vm/stringlocal.h"
+
#include "vm/jit/asmpart.h"
+#include "vm/jit/executionstate.h"
#include "vm/jit/stacktrace.h"
#include "vm/jit/i386/codegen.h"
}
}
-/* md_replace_executionstate_read **********************************************
+/* md_executionstate_read ******************************************************
- Read the given context into an executionstate for Replacement.
+ Read the given context into an executionstate.
*******************************************************************************/
-#if defined(ENABLE_REPLACEMENT)
-void md_replace_executionstate_read(executionstate_t *es, void *context)
+void md_executionstate_read(executionstate_t *es, void *context)
{
- ucontext_t *_uc;
- mcontext_t *_mc;
+ ucontext_t *_uc;
+ mcontext_t _mc;
i386_thread_state_t *_ss;
- s4 i;
+ int i;
_uc = (ucontext_t *) context;
- _mc = &_uc->uc_mcontext;
+ _mc = _uc->uc_mcontext;
_ss = &_mc->ss;
/* read special registers */
for (i = 0; i < FLT_REG_CNT; i++)
es->fltregs[i] = 0xdeadbeefdeadbeefULL;
}
-#endif
-/* md_replace_executionstate_write *********************************************
+/* md_executionstate_write *****************************************************
- Write the given executionstate back to the context for Replacement.
+ Write the given executionstate back to the context.
*******************************************************************************/
-#if defined(ENABLE_REPLACEMENT)
-void md_replace_executionstate_write(executionstate_t *es, void *context)
+void md_executionstate_write(executionstate_t *es, void *context)
{
- ucontext_t *_uc;
- mcontext_t *_mc;
- i386_thread_state_t *_ss;
- s4 i;
+ ucontext_t* _uc;
+ mcontext_t _mc;
+ i386_thread_state_t* _ss;
+ int i;
_uc = (ucontext_t *) context;
- _mc = &_uc->uc_mcontext;
+ _mc = _uc->uc_mcontext;
_ss = &_mc->ss;
/* write integer registers */
_ss->eip = (ptrint) es->pc;
_ss->esp = (ptrint) es->sp;
}
-#endif
/* md_critical_section_restart *************************************************