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