1
0
mirror of https://github.com/prirun/p50em.git synced 2026-02-11 01:59:58 +00:00

add access bits to brp.vpn entries, use brp cache for put16 & put32

added get32m & put32m: these always map
changed get32 and put32 to be inlined
changed mem[] references to MEM[] to allow experiments
tried using register for MEM pointer - not so great
tried using register for instcount - screwed up (very sluggish)
This commit is contained in:
Jim
2007-09-12 00:00:00 -04:00
parent 0948124f29
commit e095020a55
3 changed files with 185 additions and 113 deletions

View File

@@ -111,13 +111,13 @@ MRGEN(03503, "JSX", d_jsx);
#define GENIX(inst) ((inst>>4) & 06000) | (inst & 01777)
#define DIGEN(opcode, name, target) \
gvp->disp_gen[GENIX(opcode)] = &⌖ \
disp_gen[GENIX(opcode)] = &⌖ \
//printf("Opcode %06o (%s), ix=%0o\n", opcode, name, GENIX(opcode))
/* initialize entire table to jump to bad generic label */
for (i=0; i < 010000; i++) {
gvp->disp_gen[i] = &&d_badgen;
disp_gen[i] = &&d_badgen;
}
/* initialize class 0 generics (first 2 bits are zero) */
@@ -230,14 +230,14 @@ DIGEN(001324, "MDIW", d_mdxx);
/* initialize class 1 generics (shift group) */
for (i = 02000; i < 04000; i++) {
gvp->disp_gen[i] = &&d_gen1;
disp_gen[i] = &&d_gen1;
}
/* initialize class 2 generics (skip group) */
#if 0
for (i = 04000; i < 06000; i++) {
gvp->disp_gen[i] = &&d_gen2;
disp_gen[i] = &&d_gen2;
}
#endif