1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-01-07 15:31:49 +00:00

Allocate proper size for defentries

This commit is contained in:
David Schmenk 2018-04-02 12:36:44 -07:00
parent 58eb615176
commit d0215eb7e1
3 changed files with 12 additions and 6 deletions

View File

@ -192,7 +192,7 @@ JITINTRP PLA
PLA PLA
SBC #$00 SBC #$00
STA TMPH STA TMPH
LDY #$05 LDY #$06
LDA (TMP),Y ; DEC JIT COUNT LDA (TMP),Y ; DEC JIT COUNT
SEC SEC
SBC #$01 SBC #$01
@ -200,6 +200,9 @@ JITINTRP PLA
BEQ RUNJIT BEQ RUNJIT
DEY ; INTERP BYTECODE AS USUAL DEY ; INTERP BYTECODE AS USUAL
LDA (TMP),Y LDA (TMP),Y
STA IPX
DEY
LDA (TMP),Y
STA IPH STA IPH
DEY DEY
LDA (TMP),Y LDA (TMP),Y
@ -210,7 +213,10 @@ RUNJIT LDA JITCOMP
STA SRCL STA SRCL
LDA JITCOMP+1 LDA JITCOMP+1
STA SRCH STA SRCH
DEY ; LDY #$04 DEY ; LDY #$05
LDA (SRC),Y
STA IPX
DEY
LDA (SRC),Y LDA (SRC),Y
STA IPH STA IPH
DEY DEY

View File

@ -316,5 +316,5 @@ cmdsys:cmdparser = @shell
interpentry = compiler:interpaddr interpentry = compiler:interpaddr
*jitcomp = @compiler *jitcomp = @compiler
cmdsys.jitcount = 44 cmdsys.jitcount = 44
cmdsys.jitsize = 96 //cmdsys.jitsize = 96
done done

View File

@ -457,7 +457,7 @@ end
// //
// Addresses of internal routines. // Addresses of internal routines.
// //
asm interp()#1 asm xinterp()#1
DEX DEX
LDA #<XINTERP LDA #<XINTERP
STA ESTKL,X STA ESTKL,X
@ -1052,7 +1052,7 @@ def adddef(isfirst, ext, addr, deflast)#1
fin fin
fin fin
defentry->interpjsr = $20 defentry->interpjsr = $20
defentry=>interpaddr = interp defentry=>interpaddr = xinterp
defentry=>bytecodeaddr = addr defentry=>bytecodeaddr = addr
defentry->bytecodexbyte = ext defentry->bytecodexbyte = ext
defentry->t_defentry = 0 defentry->t_defentry = 0
@ -1120,7 +1120,7 @@ def loadmod(mod)#1
// //
// Init def table. // Init def table.
// //
deftbl = allocheap(defcnt * 6 + 1) deftbl = allocheap(defcnt * t_defentry + 1)
deflast = deftbl deflast = deftbl
^deflast = 0 ^deflast = 0
if !refnum if !refnum