From 4be5eadb340d8d6055fb6d2bb72da5204d5c7a6e Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Mon, 17 Oct 2011 15:26:06 -0700 Subject: [PATCH] cpu.x86.bootstrap: add safepoint to jit-epilog --- basis/cpu/x86/32/bootstrap.factor | 3 +++ basis/cpu/x86/64/bootstrap.factor | 3 +++ basis/cpu/x86/bootstrap.factor | 1 + 3 files changed, 7 insertions(+) diff --git a/basis/cpu/x86/32/bootstrap.factor b/basis/cpu/x86/32/bootstrap.factor index 39f72de2b9..2943bf9c48 100755 --- a/basis/cpu/x86/32/bootstrap.factor +++ b/basis/cpu/x86/32/bootstrap.factor @@ -359,6 +359,9 @@ IN: bootstrap.x86 EAX EDX [] MOV jit-jump-quot ; +: jit-safepoint ( -- ) + 0 [] EAX MOV rc-absolute rel-safepoint ; + [ jit-start-context-and-delete ] \ (start-context-and-delete) define-sub-primitive diff --git a/basis/cpu/x86/64/bootstrap.factor b/basis/cpu/x86/64/bootstrap.factor index 162ed5125a..5191f3993c 100755 --- a/basis/cpu/x86/64/bootstrap.factor +++ b/basis/cpu/x86/64/bootstrap.factor @@ -313,6 +313,9 @@ IN: bootstrap.x86 jit-push-param jit-jump-quot ; +: jit-safepoint ( -- ) + 0 [RIP+] EAX MOV rc-relative rel-safepoint ; + [ jit-start-context-and-delete ] \ (start-context-and-delete) define-sub-primitive diff --git a/basis/cpu/x86/bootstrap.factor b/basis/cpu/x86/bootstrap.factor index c5e9405b3c..ba5f2f8594 100644 --- a/basis/cpu/x86/bootstrap.factor +++ b/basis/cpu/x86/bootstrap.factor @@ -198,6 +198,7 @@ big-endian off ] jit-execute jit-define [ + jit-safepoint stack-reg stack-frame-size bootstrap-cell - ADD ] jit-epilog jit-define