Commit Graph

70 Commits

Author SHA1 Message Date
gbeauche
9ce43c6cf3 Fix ASYNC_IRQ build but locks may still happen. Note that with a predecode
cache, checking for pending interrupts may not be the bottle neck nowadays.
2003-10-26 14:16:40 +00:00
gbeauche
60d34a6816 Rewrite interrupts handling code so that the emulator can work with a
predecode cache. This implies to run in interpreted mode only while
processing EmulOps or other native (nested) runs.

Note that the FLIGHT_RECORDER with a predecode cache gets slower than
without caching at all.
2003-10-26 13:59:04 +00:00
gbeauche
d766049d59 - enable multicore cpu emulation with ASYNC_IRQ
- move atomic_* operations to main_unix so that they could use spinlocks or
  other platform-specific locking mechanisms
2003-10-26 09:14:14 +00:00
gbeauche
7312739738 fix MakeExecutable patch for little endian systems 2003-10-26 08:48:48 +00:00
gbeauche
46a1b4ada5 allow DGA & Xshm only on local displays 2003-10-26 07:54:02 +00:00
cebix
5f0a739cc7 - fixed compilation problems under BeOS
- boot drive wasn't set correctly
2003-10-26 00:32:31 +00:00
gbeauche
ccf89d9efb Preserve CR in execute_68k(). This enables MacOS 8.6 to work. ;-) 2003-10-19 21:37:43 +00:00
gbeauche
cb13fe3007 Log both r24 (m68k emulator PC) & stack pointer in SheepShaver mode only 2003-10-19 21:36:21 +00:00
gbeauche
9a05805a27 - Fix ADDME & ADDZE decoders, add RA==R0 testers
- Increase predecode cache size to 32K entries
- Enable PPC_EXECUTE_DUMP_STATE for predecode cache as well
2003-10-18 13:43:25 +00:00
gbeauche
1b9876889e - Record address range of block to invalidate. i.e. icbi records ranges
and isync actually invalidate caches
2003-10-12 06:44:04 +00:00
gbeauche
7e0dccc544 - Handle MakeExecutable() replacement
- Disable predecode cache in CVS for now
- Fix flight recorder ordering in predecode cache mode
2003-10-12 05:44:17 +00:00
gbeauche
a3036b0c9d Really enable flight_recorder with predecode cache on 2003-10-11 16:43:42 +00:00
gbeauche
7e20a8d205 - Add support for FLIGHT_RECORDER with predecode cache
- Always enable predecode cache & flight recorder for now
2003-10-11 09:57:52 +00:00
gbeauche
b05c68e90e Move PPC emulator config to here 2003-10-11 09:34:35 +00:00
gbeauche
ebb67f0421 - Minor optimization to execute_ppc() as we apparently don't need to move
target PC into CTR.
- Fix breakage introduced during little endian fixing. We now assume that
  MacOS doesn't rely on any PPC register that may have been saved on top
  of it stack. i.e. register state is saved onto native stack.
2003-10-11 09:33:27 +00:00
gbeauche
1012da75dd - Cleanups & make sure PPC emulator config is setup in sysdeps.h
- Log r24 in SheepShaver mode as this represents the 68k emulator PC
2003-10-11 09:03:03 +00:00
gbeauche
be50ff1b42 Adapt ROM patches space to Gossamer ROMs layout. Weird that it passed the
other day.
2003-10-07 19:28:09 +00:00
gbeauche
ad0aea0403 fix parcels decoder 2003-10-06 21:23:53 +00:00
gbeauche
0cb51c42dd cleanups :-) 2003-10-06 21:01:22 +00:00
gbeauche
974ebd5d91 - Add checks against ROM patches space
- Make sure to also load the floppy disk driver with Gossamer ROMs so
  that exfs feature can work too
2003-10-06 21:00:48 +00:00
gbeauche
c9b8dd6628 tm_task is actually correct for both nw & gossamer ROMs 2003-10-05 23:49:19 +00:00
gbeauche
84ce1f2b0d fix tm_task patch for Gossamer ROMs 2003-10-05 23:38:07 +00:00
gbeauche
3768573d35 Add support for Gossamer ROMs (DTG3) 2003-10-05 23:05:05 +00:00
gbeauche
19053d4992 little endian fixes, note that trampolines are still not 64-bit clean either 2003-09-29 22:50:31 +00:00
gbeauche
663b536257 Little endian fixes to Serial trampolines. 2003-09-29 22:49:23 +00:00
gbeauche
7ac3170cb4 More little endian fixes 2003-09-29 22:48:22 +00:00
gbeauche
aafd6e4898 Little endian fixes to FindLibSymbol(). This is not 64-bit clean and this
needs to go through a more appropriate thunking mechanism.
2003-09-29 22:47:39 +00:00
gbeauche
5229b42622 basic implementation for missing functions (signbit/isless/isgreater) in
older C libraries
2003-09-29 22:45:31 +00:00
gbeauche
1713a26a3f NULL is the null pointer to member function 2003-09-29 22:42:53 +00:00
gbeauche
792bef8e61 Make older & bogus compilers happy. aka. force "static" storage class
for SPIN_LOCK_UNLOCKED constant.
2003-09-29 22:41:50 +00:00
gbeauche
c7dd356f7f VSLNewInterruptService() returns a serviceID in big endian format 2003-09-29 20:31:47 +00:00
gbeauche
3d4ed54488 first round of little endian fixes 2003-09-29 20:30:21 +00:00
gbeauche
b8b139faf2 - Share EmulatorData & KernelData struct definitions
- Introduce new SheepShaver data area for alternate stacks, thunks, etc.
- Experimental asynchronous interrupts handling. This improves performance
  by 30% but some (rare) lockups may occur. To be debugged!
2003-09-29 15:46:09 +00:00
gbeauche
2d92ad6dfb spinlocks from QEMU 2003-09-29 08:27:56 +00:00
gbeauche
1c2fa89e31 use B2 sigsegv API instead of rewriting yet another sigsegv handler for x86 2003-09-29 07:05:15 +00:00
gbeauche
5b57fde6ce New NativeOps for DisableInterrupt() & EnableInterrupt(). 2003-09-28 21:27:55 +00:00
gbeauche
3851071ecd Try to handle XLM_IRQ_NEST atomically in emulated PPC views. Fix placement
of fake SCSIGlobals (disabled for now). Switch back to mono core emulation
until things are debugged enough. Implement get_resource() et al.
2003-09-28 21:27:34 +00:00
gbeauche
2a86a4f62a Handle dcbz. Ignore unaligned load/store multiple. Fix icbi/isync. 2003-09-28 21:22:59 +00:00
gbeauche
4e5e13d92d make do_execute() a template so that execution loop prologues/epilogues
can be performed in derived engines
2003-09-28 21:22:09 +00:00
gbeauche
2f13888ea8 plain interpretive mode for debugging purposes 2003-09-28 21:21:07 +00:00
gbeauche
28ae4b0028 Disable SIGUSR2 handler in EMULATED_PPC mode for now 2003-09-28 21:20:38 +00:00
gbeauche
9914de4a09 Define HAVE_PTHREADS, if available 2003-09-28 21:19:06 +00:00
gbeauche
2a756136e4 more tests 2003-09-21 22:13:09 +00:00
gbeauche
2cc3b4edab fix xoris 2003-09-21 21:45:05 +00:00
gbeauche
089247fcff Merge in cpu core:
- make cache invalidation routines public
- fix shift instructions, especially for invalid shift counts
- fix mullwo to set overflow only if the product can't be represented in
  32 bits
2003-09-15 22:48:57 +00:00
gbeauche
09c674f63a factor out -I usage 2003-09-14 22:11:42 +00:00
gbeauche
b5b471b4f1 add PowerPC emulator tester 2003-09-14 22:10:58 +00:00
gbeauche
fb8fbf71ed PowerPC emulator fixes:
- make divw. behaviour more realistic (vs ppc 7410) when rB == 0
- fix carry/overflow computations to fix SUBFME handling
- fix nand duplicate with wrong operand
2003-09-14 22:09:13 +00:00
gbeauche
cb1dd6dac5 - Integrate new NativeOp instructions to be used as trampolines to call
native functions from ppc code.
- Little endian fixes in emul_op.cpp
- Add new 'gpch' 750 patch to workaround crash with MacOS 8.6
- Don't crash in Process Manager on reset/shutdown with MacOS 8.6
- We also have an experimental interrupt thread in emulation mode
2003-09-07 14:33:54 +00:00
gbeauche
15a1208483 Handle new ppc emulator 2003-09-07 14:26:15 +00:00