v0.78: VM performance improvement, removed debug printout on error
This commit is contained in:
parent
8765cfce25
commit
86e517a6eb
BIN
bin/8ball20.prg
BIN
bin/8ball20.prg
Binary file not shown.
BIN
bin/8ball64.prg
BIN
bin/8ball64.prg
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/disass
BIN
bin/disass
Binary file not shown.
BIN
bin/disass20.prg
BIN
bin/disass20.prg
Binary file not shown.
BIN
bin/disass64.prg
BIN
bin/disass64.prg
Binary file not shown.
BIN
bin/eightball
BIN
bin/eightball
Binary file not shown.
BIN
bin/eightballvm
BIN
bin/eightballvm
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -400,9 +400,6 @@ void error(unsigned char errcode)
|
|||
{
|
||||
printchar('?');
|
||||
print(errmsgs[errcode - ERR_FIRST]);
|
||||
print(" \"");
|
||||
print(txtPtr);
|
||||
print("\"\n");
|
||||
}
|
||||
#ifdef A2E
|
||||
#pragma code-name (pop)
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
/* */
|
||||
/**************************************************************************/
|
||||
|
||||
#define VERSIONSTR "0.77"
|
||||
#define VERSIONSTR "0.78"
|
||||
|
||||
void print(char *str);
|
||||
|
||||
|
|
232
eightballvm.c
232
eightballvm.c
|
@ -180,9 +180,6 @@ unsigned char *memory = 0;
|
|||
#define CHECKSTACKOVERFLOW(bytes)
|
||||
#endif
|
||||
|
||||
/* Handler for unsupported bytecode */
|
||||
#define UNSUPPORTED() unsupported()
|
||||
|
||||
#ifdef STACKCHECKS
|
||||
/*
|
||||
* Check for evaluation stack underflow.
|
||||
|
@ -1153,7 +1150,195 @@ vm_prch,
|
|||
vm_prstr,
|
||||
vm_prmsg,
|
||||
vm_kbdch,
|
||||
vm_kbdln};
|
||||
vm_kbdln,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported,
|
||||
unsupported /* Should be at least 255 lines long */
|
||||
};
|
||||
|
||||
/*
|
||||
* Fetch, decode and execute a VM instruction.
|
||||
|
@ -1255,7 +1440,46 @@ void execute()
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef A2E
|
||||
jumptbl[MEM(pc)]();
|
||||
#else
|
||||
#if 0
|
||||
/* Slight speedup versus the code emitted by cc65 */
|
||||
__asm__("ml: lda (_pc)");
|
||||
__asm__(" stz tmp1");
|
||||
__asm__(" asl a");
|
||||
__asm__(" rol tmp1");
|
||||
__asm__(" clc");
|
||||
__asm__(" adc #<(_jumptbl)");
|
||||
__asm__(" sta ptr1");
|
||||
__asm__(" lda tmp1");
|
||||
__asm__(" adc #>(_jumptbl)");
|
||||
__asm__(" sta ptr1+1");
|
||||
__asm__(" ldy #$01");
|
||||
__asm__(" lda (ptr1),y");
|
||||
__asm__(" tax");
|
||||
__asm__(" lda (ptr1)");
|
||||
__asm__(" jsr callax");
|
||||
__asm__(" bra ml");
|
||||
#else
|
||||
/* This version assumes (_pc) < 128, saves a few more cycles */
|
||||
/* Slight speedup versus the code emitted by cc65 */
|
||||
__asm__("ml: lda (_pc)");
|
||||
__asm__(" asl a");
|
||||
__asm__(" clc");
|
||||
__asm__(" adc #<(_jumptbl)");
|
||||
__asm__(" sta ptr1");
|
||||
__asm__(" lda #$00");
|
||||
__asm__(" adc #>(_jumptbl)");
|
||||
__asm__(" sta ptr1+1");
|
||||
__asm__(" ldy #$01");
|
||||
__asm__(" lda (ptr1),y");
|
||||
__asm__(" tax");
|
||||
__asm__(" lda (ptr1)");
|
||||
__asm__(" jsr callax");
|
||||
__asm__(" bra ml");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue