1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-03-22 01:30:45 +00:00

Add NO-JITC flag to module SYSFLAGS

This commit is contained in:
David Schmenk 2018-04-06 17:53:51 -07:00
parent fd641bef8f
commit dad0f4b4d5
4 changed files with 24 additions and 13 deletions

View File

@ -33,6 +33,7 @@ import cmdsys
const reshgr2 = $0020
const resxhgr1 = $0040
const resxhgr2 = $0080
const nojitc = $0100
//
// Module don't free memory
//

View File

@ -1024,7 +1024,7 @@ def loadmod(mod)#1
word addr, defaddr, modaddr, modfix, modofst, modend
word deftbl, deflast
word moddep, rld, esd, sym
byte refnum, defbank, str[16], filename[64]
byte refnum, defbank, filename[64], str[]
byte header[128]
//
// Read the RELocatable module header (first 128 bytes)
@ -1209,6 +1209,8 @@ def loadmod(mod)#1
*$0042 = defaddr
call($C311, 0, 0, 0, $05) // CALL XMOVE with carry set (MAIN->AUX) and ints disabled
fin
else
perr = $46
fin
if perr
return -perr

View File

@ -16,6 +16,7 @@ const reshgr1 = $0010
const reshgr2 = $0020
const resxhgr1 = $0040
const resxhgr2 = $0080
const nojitc = $0100
//
// Module don't free memory
//
@ -1044,7 +1045,7 @@ def loadmod(mod)#1
word addr, defaddr, modaddr, modfix, modofst, modend
word deftbl, deflast
word moddep, rld, esd, sym
byte refnum[], deffirst, str[16], filename[64]
byte refnum[], deffirst, skipjit, filename[64], str[]
byte header[128]
//
// Read the RELocatable module header (first 128 bytes)
@ -1074,11 +1075,12 @@ def loadmod(mod)#1
//
// This is an EXTended RELocatable (data+bytecode) module.
//
systemflags = header:4 | systemflags
defofst = header:6
defcnt = header:8
init = header:10
moddep = @header.12
systemflags = header.4 | systemflags
skipjit = header.5 & (nojitc >> 8)
defofst = header:6
defcnt = header:8
init = header:10
moddep = @header.12
//
// Load module dependencies.
//
@ -1153,8 +1155,8 @@ def loadmod(mod)#1
// This is a bytcode def entry - add it to the def directory.
//
adddef(deffirst, rld=>1 + defofst, @deflast)
deffirst = 0
rld = rld + 4
deffirst = skipjit // Calculate JIT potential or not
rld = rld + 4
loop
//
// Run through the Re-Location Dictionary.
@ -1194,6 +1196,8 @@ def loadmod(mod)#1
*$003E = modaddr + modsize
*$0042 = defaddr
call($C311, 0, 0, 0, $05) // CALL XMOVE with carry set (MAIN->AUX) and ints disabled
else
perr = $46
fin
if perr
return -perr

View File

@ -11,6 +11,7 @@ const reshgr1 = $0010
const reshgr2 = $0020
const resxhgr1 = $0040
const resxhgr2 = $0080
const nojitc = $0100
//
// Module don't free memory
//
@ -1050,7 +1051,7 @@ def loadmod(mod)#1
word addr, defaddr, modaddr, modfix, modofst, modend
word deftbl, deflast, codeseg
word moddep, rld, esd, sym
byte lerr, defext, fileinfo[], str[16], filename[33]
byte lerr, defext, skipjit, fileinfo[], str[16], filename[33]
byte header[128]
lerr = 0
//
@ -1084,7 +1085,8 @@ def loadmod(mod)#1
//
// This is an EXTended RELocatable (data+bytecode) module.
//
systemflags = header:4 | systemflags
systemflags = header.4 | systemflags
skipjit = header.5 & (nojitc >> 8)
defofst = header:6
defcnt = header:8
init = header:10
@ -1176,8 +1178,8 @@ def loadmod(mod)#1
// This is a bytcode def entry - add it to the def directory.
//
adddef(deffirst, defext, rld=>1 + defofst, @deflast)
deffirst = 0
rld = rld + 4
deffirst = skipjit // Calculate JIT potential or not
rld = rld + 4
loop
//
// Run through the Re-Location Dictionary.
@ -1241,6 +1243,8 @@ def loadmod(mod)#1
//
memxcpy(codeseg, bytecode, modsize - (bytecode - modaddr))
fin
else
lerr = $46
fin
if lerr
return -lerr