From e5e43f58b757b2cc0960ba14f0626b8e151e8bbb Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Mon, 2 Apr 2018 10:02:17 -0700 Subject: [PATCH] Save/Restore JIT code ptr --- src/vmsrc/apple/sossys.pla | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/vmsrc/apple/sossys.pla b/src/vmsrc/apple/sossys.pla index 077efc6..3042737 100755 --- a/src/vmsrc/apple/sossys.pla +++ b/src/vmsrc/apple/sossys.pla @@ -28,6 +28,12 @@ struc t_defentry byte bytecodesize end // +// JIT compiler values +// +const jitcomp = $B7F0 +const jitcodeptr = $B7F2 +const codemax = $A000 +// // Pedefined functions. // predef syscall(cmd,params)#1, call(addr,areg,xreg,yreg,status)#1 @@ -1270,16 +1276,18 @@ def loadmod(mod)#1 end def execmod(modfile)#1 byte moddci[17] - word saveheap, savesym, saveflags + word saveheap, savesym, saveflags, savejit perr = 1 if stodci(modfile, @moddci) - saveheap = heap - savesym = lastsym - saveflags = systemflags + saveheap = heap + savesym = lastsym + saveflags = systemflags + savejit = *jitcodeptr if loadmod(@moddci) < modkeep - lastsym = savesym - heap = saveheap + lastsym = savesym + heap = saveheap + *jitcodeptr = savejit while modid modid-- seg_release(modseg[modid])