]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/os-freebsd-x86.64.hpp
webapps.wiki: adding search bar
[factor.git] / vm / os-freebsd-x86.64.hpp
index 02f7fb3ad2ae45b6361f329dec688f7f6d21f62f..a6bb00b89ef9253002356f6a1248b3c118068931 100644 (file)
@@ -1,34 +1,40 @@
 #include <ucontext.h>
+#include <signal.h>
+#include <sys/signal.h>
+#include <machine/ucontext.h>
+#include <sys/_ucontext.h>
 #include <machine/fpu.h>
 
-namespace factor
-{
+namespace factor {
+
 
 inline static unsigned int uap_fpu_status(void *uap)
 {
-        ucontext_t *ucontext = (ucontext_t *)uap;
-        if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
+       ucontext_t *ucontext = (ucontext_t *)uap;
+       if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
        {
                struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate);
                return xmm->sv_env.en_sw | xmm->sv_env.en_mxcsr;
-        }
+       }
        else
                return 0;
 }
 
 inline static void uap_clear_fpu_status(void *uap)
 {
-        ucontext_t *ucontext = (ucontext_t *)uap;
-        if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
+       ucontext_t *ucontext = (ucontext_t *)uap;
+       if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM)
        {
                struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate);
                xmm->sv_env.en_sw = 0;
                xmm->sv_env.en_mxcsr &= 0xffffffc0;
-        }
+       }
 }
 
+#define UAP_STACK_POINTER(ucontext) (((struct sigcontext *)ucontext)->sc_rsp)
+#define UAP_PROGRAM_COUNTER(ucontext) (((struct sigcontext *)ucontext)->sc_rip)
+#define UAP_SET_TOC_POINTER(uap, ptr) (void)0
+#define UAP_STACK_POINTER_TYPE long
 
-#define UAP_STACK_POINTER(ucontext) (((ucontext_t *)ucontext)->uc_mcontext.mc_rsp)
-#define UAP_PROGRAM_COUNTER(ucontext) (((ucontext_t *)ucontext)->uc_mcontext.mc_rip)
-
+static const unsigned JIT_FRAME_SIZE = 32;
 }