mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-02-13 15:31:09 +00:00
JIT WIP
This commit is contained in:
parent
71d17a99e4
commit
8c18a28e49
@ -54,6 +54,7 @@ def compiler(defptr)#0
|
||||
*$003E = *$003C + defptr->bytecodesize
|
||||
*$0042 = bytecode
|
||||
call($C311, 0, 0, 0, $00) // CALL XMOVE with carry clear (AUX->MAIN)
|
||||
^$C053 // MIX TEXT
|
||||
puts("Addr Xlate: $"); puth(addrxlate); putln
|
||||
puts("Bytecode: $"); puth(bytecode); putln
|
||||
//
|
||||
@ -77,8 +78,8 @@ def compiler(defptr)#0
|
||||
until not case
|
||||
fin
|
||||
addrxlate=>[i] = codeptr
|
||||
putc('$'); puth(codeptr); putc(':')
|
||||
putc('['); puti(i); puts("] ")
|
||||
//putc('$'); puth(codeptr); putc(':')
|
||||
//putc('['); puti(i); puts("] ")
|
||||
if ^(bytecode+i) < $20
|
||||
// CN,CN,CN,CN,CN,CN,CN,CN ; 00 02 04 06 08 0A 0C 0E
|
||||
// CN,CN,CN,CN,CN,CN,CN,CN ; 10 12 14 16 18 1A 1C 1E
|
||||
@ -258,11 +259,11 @@ def compiler(defptr)#0
|
||||
puts("DUP")
|
||||
^codeptr = $CA; codeptr++ // DEX
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $D0-1; codeptr++ // ESTKL-1
|
||||
^codeptr = $D0+1; codeptr++ // ESTKL+1
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0; codeptr++ // ESTKL
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0-1; codeptr++ // ESTKH-1
|
||||
^codeptr = $C0+1; codeptr++ // ESTKH+1
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $C0; codeptr++ // ESTKH
|
||||
break
|
||||
@ -1065,7 +1066,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
^codeptr = $20; codeptr++ // JSR INTERP
|
||||
*codeptr = $3D0; codeptr = codeptr + 2
|
||||
^codeptr = $9A; codeptr++ // MOD CODE
|
||||
^codeptr = $9A; codeptr++ // SHL CODE
|
||||
^codeptr = $C0; codeptr++ // NATV CODE
|
||||
break
|
||||
is $9C
|
||||
@ -1075,7 +1076,7 @@ def compiler(defptr)#0
|
||||
//
|
||||
^codeptr = $20; codeptr++ // JSR INTERP
|
||||
*codeptr = $3D0; codeptr = codeptr + 2
|
||||
^codeptr = $9C; codeptr++ // MOD CODE
|
||||
^codeptr = $9C; codeptr++ // SHR CODE
|
||||
^codeptr = $C0; codeptr++ // NATV CODE
|
||||
break
|
||||
is $9E
|
||||
@ -1457,7 +1458,7 @@ def compiler(defptr)#0
|
||||
^codeptr = $02; codeptr++ // +2
|
||||
^codeptr = $C8; codeptr++ // INY
|
||||
^codeptr = $18; codeptr++ // CLC
|
||||
^codeptr = $75; codeptr++ // ADC zp,X
|
||||
^codeptr = $75; codeptr++ // ADC zp,X
|
||||
^codeptr = $D0; codeptr++ // ESTKL
|
||||
^codeptr = $95; codeptr++ // STA zp,X
|
||||
^codeptr = $D0; codeptr++ // ESTKL
|
||||
@ -1564,10 +1565,10 @@ def compiler(defptr)#0
|
||||
//
|
||||
heaprelease(addrxlate)
|
||||
puts("Done compiling: $"); puth(defptr=>interpaddr); putln
|
||||
//getc
|
||||
getc
|
||||
return
|
||||
fin
|
||||
//getc
|
||||
getc
|
||||
loop
|
||||
//
|
||||
// If we got here. we ran out of code buffer space. Overwrite interpreter
|
||||
|
Loading…
x
Reference in New Issue
Block a user