1
0
mirror of https://github.com/prirun/p50em.git synced 2026-02-04 07:12:49 +00:00
Commit Graph

80 Commits

Author SHA1 Message Date
Jim
98417e5835 invalidate instruction cache page (instvpn) whenever OWNER might change
removed OWNER tests from instruction fetch
2007-09-07 00:00:00 -04:00
Jim
6afd8f2c52 added inline to shift procedures (reduced the executable size, + faster) +
changed gvp->prevppa from Prime memory offset to mem[] pointer
added inline to tch, tcr, adlr
added -DNOIDLE to make BDX use CPU cycles instead of sleeping
changed ea64v.h so ixy avoids branching (hot spot in Shark)
2007-09-07 00:00:00 -04:00
Jim
24179fd2ac added dispatch table for SRV memory references instructions vs switch +
inlined and simplified iget16 instruction fetch
moved pio test to R-mode path
moved and simplified effective address calculation switch stmt
removed mode switch stmt for EA calcs, changed to cascaded if
moved iget16 static vars to gvp, for inlining
changed mapva and iget16 so that the normal path is predicted
2007-09-05 00:00:00 -04:00
Jim
31edfb6674 removed valid bit from STLB cache and use segment # 0xFFFF instead
this allows removing a comparison from mapva's fast path
2007-09-04 00:00:00 -04:00
Jim
ab4316a6a8 added FAST2 #ifdef to eliminate memory limit test, simplify CAS 2007-09-04 00:00:00 -04:00
Jim
2ee4f03291 added mapva stats 2007-09-04 00:00:00 -04:00
Jim
8f95ccc375 FDV, DFDV, FD, DFD always test for zero divisor, const mapio, fastmap
added fastmap, but it's disabled because Primos 19 won't boot
made mapio a const function
2007-09-04 00:00:00 -04:00
Jim
904ab90bd3 changed ea switch statement to multi-line if to check 64v first, get64 #FAST 2007-09-03 00:00:00 -04:00
Jim
a992b3de2f set crs[PBH] with 1 32-bit store instead of 2 16-bit stores in main loop +
changed order of 3 lines in iget16 to improve performance
2007-09-03 00:00:00 -04:00
Jim
8bdffd4e56 moved pio tests to R-mode so that V-mode doesn't check for pio
Perf increase from 12.3 MIPS to 12.5 MIPS
2007-09-03 00:00:00 -04:00
Jim
3e4c98c296 Added gvp->livereglim to speed up "live register" addressing mode tests 2007-09-02 00:00:00 -04:00
Jim
fdb4d4ae4c New ea64v, missing memory check, #ifdef FAST 2007-09-02 00:00:00 -04:00
Jim
0ea78958b0 Backout ea64v changes, PCL fixes, disabled curtrack/maxtrack check in devdisk 2007-09-01 00:00:00 -04:00
Jim
62b8229961 gvp dedicated global variable register, iget16 page cache 2007-08-31 00:00:00 -04:00
Jim
2f06bf6081 get/put64 are long long, not double, optimize fetch cycle device poll, ZSTEP
do "and" test on instcount so device poll isn't performed on every loop
added ZSTEP to eliminate ZGETC/ZPUTC common code
various FP changes
2007-08-27 00:00:00 -04:00
Jim
818697e797 added stopwatch.h (Jeff) and monitoring throughout 2007-08-27 00:00:00 -04:00
Jim
7601dcb718 INCRP, ADDRP macros, code optimization
added INCRP macro - now does 32-bit increments of RP for speed
added ADDRP macro to return RP incremented by n (CGT)
changed globals to static (didn't help speed much - thought it might)
moved around some functions
changed shift instructions to create bitmask at runtime (faster)
manually inlined mathexception (but used inline keyword in later revs)
2007-08-25 00:00:00 -04:00
Jim
8c0020d0dd get/put16t, crs/crsl macro, PowerPC register variables, tape bugs
changed get16/put16 to get16t/put16t where address trap might occur
this eliminates ea<0 test for all other non-trappable get16/put16 calls
changed crs & crsl to macros to reference a union vs 2 distinct variables
changed crs and RP to be register variables (regs.h)
fixed tape drive problems
2007-08-23 00:00:00 -04:00
Jim
24e7bfaea0 optimize with Shark, dispatch.h & label arrays, inhcount
changed generics from switch table to indirect jumps
removed redundant test of inhcount
beginning of a long series of optimizations with Shark tool
2007-08-16 00:00:00 -04:00
Jim
5bd57fb92a Garth, FP, XED, devmt, 512MB, sys console full duplex
sent to Garth around 8/15/07
supports 512MB memory
device "terminate" call
added XED emulation
more FP changes
changed devmt to emulate Kennedy tape drive & controller
devmt changes to support higher revs / fix bugs
2007-08-07 00:00:00 -04:00
Jim
29334a2945 fp.c now fp.h, FP rewrite, more CC macros: CLEARCC, SETEQ, SETLT 2007-06-25 00:00:00 -04:00
Jim
31f4e2e22e Removed os.[ch], ignore SIGPIPE, disk model support, 8 drives/controller
added CLEARCL macro to clean up code
ignore SIGPIPE so broken socket doesn't kill emulator
2007-06-08 00:00:00 -04:00
Jim
55ea18c85e register sets, PX, ZTRN, ZED, RTS, I-mode FP, R-mode MPL
added "smart" LRU code to handle multiple register sets
expanded registers to handle 8 user, 2 system (10 total)
turned off various process-exchange changes that were causing failures
only zero first 64K of memory
added emulation of ZTRN, ZED, and RTS
started I-mode floating point
make sure R-mode MPL faults to appease DIAG tests
2007-05-26 00:00:00 -04:00
Jim
f3ae6de902 STTM emulation, fatal() dumps concealed stack frames 2007-05-11 00:00:00 -04:00
Jim
edc9b077f3 IOTLB & mapio, FP register format, SVC
added IOTLB, mapio, and get/put16io macros so rev23 would boot
changed device drivers to go through IOTLB, not STLB
removed SVC Primos II emulation code
changed floating point register format to match memory
2007-05-08 00:00:00 -04:00
Jim
d306a85352 SSSN serial # hack, share shift procs, DIV/DVL overflow fix
hack to patch Primos 23K on the fly for SSSN check
added procs for all shifts so 32I can use them
fixed DIV & DVL to handle overflow correctly
2007-05-04 00:00:00 -04:00
Jim
d40c4bad82 more 32I work, zero physical memory on master clear, ICP/DCP changes
changed C-pointer ICP/DCP to use goofy/faster? Prime method to pass diags
2007-05-02 00:00:00 -04:00
Jim
29949a3390 32I instructions, share instructions between V and I modes
huge hunk of 32I instructions
generalized SETCC and LCXX macros so I-mode can use them
fixed bug in LDC where A-reg was getting trashed at end of string
made macros for many instructions so I-mode can use them
forgot to close the boot file
2007-04-30 00:00:00 -04:00
Jim
7d295a0334 corrected mapva "when to map" test, "fair" devamlc receive processing 2007-04-29 00:00:00 -04:00
Jim
319b868345 added ea32i.h include file, ea64v, devamlc, PNC
ea64v never needs to return a bit offset
added devamlc feature to set room available in user's input buffer
misc PNC changes (not working yet)
2007-04-19 00:00:00 -04:00
Jim
5bc7332b1f devamlc updates, major tape bug fixed, opcode 1701 is now illegal (for DBG)
changed devamlc to always make new connections nonblocking
initialize addrlen in devamlc accept code
added greeting to new amlc connection
2007-04-07 00:00:00 -04:00
Jim
2e6ee3cfe6 telnet server updates, RPH segment tracing
specific RPH segment tracing
simple telnet server option handling
put telnet connection in binary mode
2007-03-31 00:00:00 -04:00
Jim
1419a909d5 added get/put16t to handle address trap cases, real-time clock changes
devcp supports varying clock tick rates
reinit clock if it gets off more than 5 seconds
2007-03-25 00:00:00 -04:00
Jim
bc8742fb5c removed syscom/ directory, clock auto-sets via VCP interface +
SVC always fault - no more emulation of Primos II
added support for 102.4 and 3.2us clock ticks
2007-03-21 00:00:00 -04:00
Jim
d907a5a68a macros for V-mode branch & logicize
began PNC driver
put16r0 macro shortcuts like get16r0
branch instructions use inline code (macros) instead of gotos
devasr blocks when possible
lock disk files to prevent corruption from multiple emulators
devamlc select to ensure output socket buffer isn't full
devamlc partial write error is now a warning vs fatal
ECONNRESET test in devamlc (spurious emulator crashes)
lots of changes to PNC driver (not working yet)
2007-03-13 00:00:00 -04:00
Jim
a063854a5c get16r0 shortcut macros to mean "Ring 0"
name faults in traces
2007-03-03 00:00:00 -05:00
Jim
4f4fc5ff1a removed some #ifdef's
change LDLR to load 1 and -1 as constants
2007-03-02 00:00:00 -05:00
Jim
80e47600c0 hacking on ZMV to fix Emacs explore bug 2007-03-01 00:00:00 -05:00
Jim
d13cfe6f6f changes to CAZ 2007-03-01 00:00:00 -05:00
Jim
83919548e7 mask some bits in EAFA to fix Emacs Explore bug 2007-03-01 00:00:00 -05:00
Jim
bd46abe385 insignificant edits 2007-03-01 00:00:00 -05:00
Jim
f9d4f6f3bb trace improvements, PCL indirect bit offset bug (SAC odd char bug) +
added T_TERM for system terminal output tracing
added specific user tracing:
- 2-digit number after trace (user number)
- 6-digit octal number = OWNERL (for devices)
added specific procedure tracing
major bug in PCL: indirect bit offsets not working,
  causing SAC JIM:PDALURW to be SAC JIM:PAUW
2007-03-01 00:00:00 -05:00
Jim
ec2ba390d0 MPY, DIV, devasr, devamlc changes +
for R-mode MPY, do the math THEN generate the exception
DIV exception handling was wrong, code was wrong too
a few devasr changes
changed devamlc to always turn off parity instead of flipping it
2007-02-25 00:00:00 -05:00
Jim
8f1833c843 move instpermsec updating to devcp (clock device) 2007-02-22 00:00:00 -05:00
Jim
4b76c2ea1d changed fprintf(stderr... to TRACE macro
writes tracing to a buffered log file instead of stderr
added clear of first 32K of physical memory to master clear
changed all exit() calls to fatal() calls
more changes to the devmt tape driver
2007-02-18 00:00:00 -05:00
Jim
cad1dab3ee changed boot to handle tape devices, multiple disk controllers
lots of changes to tape driver
added console log
2007-02-15 00:00:00 -05:00
Jim
4703c0b8fd extensive changes to devmt tape controller emulation
changed to use iget16 instead of get16 to fetch instructions
added test in notify for semaphore overflow - call fatal()
2007-02-07 00:00:00 -05:00
Jim
55fc87a975 update instpermsec every 5 seconds to support varying host CPU speeds
changes to support accurate real-time clock in devcp
changes to backstop idle instruction (BDX)
2007-01-26 00:00:00 -05:00
Jim
292af061fc correct SSSN: actually an illegal shift opcode, add --nport option for PNC 2006-03-30 00:00:00 -05:00
Jim
03dedb4106 --tport option, support for physical queues (RTQ, ABQ) for DMQ (QAMLC) 2005-10-02 00:00:00 -04:00