gbeauche
dd7b09ebe8
Use a mutex to protect wakeup_time instead of a semaphore, do we want some
...
sort of barrier synchronisation? Anyhow, the current implementation looks
reasonable enough now when using old LinuxThreads without TLS.
XXX: in the past, the sem_post in sigsuspend_handler would not release the
calling thread thus entering into a mutual waiting condition.
2005-03-16 00:35:51 +00:00
gbeauche
260614a873
fix initialization of timer thread that could be put in indefinite suspended
...
state from the start.
2005-03-15 20:46:50 +00:00
gbeauche
cbf0c3debf
shorten vsldoi native code by one instruction, aka. avoid superfluous
...
shuffle of stale vector value
2005-03-14 00:30:44 +00:00
gbeauche
4918fe8d2d
default to 8 MB cache size on non-{alpha,powerpc} platforms
2005-03-13 23:41:42 +00:00
gbeauche
05a7453d54
MMX/SSE/SSE2 optimizations are now converted to full inline assembly code,
...
aka avoid use of (possibly broken) GCC intrinsics. Add some SSE2 optimizations.
Translate VSLDOI, MFVSCR, MTVSCR instructions. AltiVec Fractal Carbon now
shows more than 1 GFlops performance!
2005-03-13 12:49:30 +00:00
gbeauche
7cc49ca739
fix vsldoi implementation and testsuite
2005-03-13 11:38:35 +00:00
gbeauche
4d96076c62
fix SheepShaver wrappers in PowerPC CPU tester
2005-03-13 11:23:52 +00:00
gbeauche
e7d8a54e21
Enable high precision timings on POSIX systems supporting clock_nanosleep().
...
Since pthread_suspend_np() is not available to Linux (but NetBSD 2.0), thread
suspend is implemented likewise to boehm-gc.
2005-03-05 19:07:35 +00:00
gbeauche
48213aa5eb
Revert to no nested native ppc interrupt processing, also filter out cases
...
where InterruptFlags is 0.
2005-03-05 18:33:30 +00:00
gbeauche
fb42e00b8d
Don't require an instruction skipper to fake SCSI globals
2005-03-05 15:44:03 +00:00
gbeauche
9019e71cfc
Preserve all necessary registers on interrupt, thus also permitting nested
...
interrupts to occur. SheepShaver locks should now be reduced.
2005-03-05 15:25:10 +00:00
gbeauche
663facbf97
Fix native Linux/ppc with recent enough glibc that supports TLS; r2 is used
...
in that case. Tell me if I broke other arches, e.g. r13 is no longer saved
in Video and Ethernet stubs, though it seems to be OK.
Colateral feature: SheepShaver should now run on Linux/ppc64 with relevant
32-bit runtime. Native Linux/ppc64 support is harder as low mem globals are
32-bit in mind and e.g. the TLS register there is %r13, %r2 is the TOC
(PowerOpen/AIX ABI)
2005-02-27 21:52:06 +00:00
gbeauche
3f1eb78c6e
having both ppc_asm.S and ppc_asm.s in the same dir on MacOS X is a bad idea...
2005-02-21 22:29:49 +00:00
gbeauche
4aa9a22f41
native NetBSD/ppc support
2005-02-20 18:26:39 +00:00
gbeauche
c602bcb201
Move Linux/asm_linux.S to ppc_asm.S suitable for Linux, MacOS X and NetBSD
2005-02-20 18:25:45 +00:00
gbeauche
81204ca2d9
NetBSD/ppc paranoia checks
2005-02-20 18:25:05 +00:00
gbeauche
8500381648
Initial support for NetBSD/ppc in native mode (some crashes occur but I
...
could boot MacOS 9.0.4)
2005-02-20 18:08:50 +00:00
gbeauche
436522186e
Implement SheepThreads on NetBSD/ppc so that sigaltstack()s are really used
2005-02-20 18:06:40 +00:00
gbeauche
6d5303c868
Support FreeBSD 5.3:
...
- fix implementation of offsetof() with GCC >= 3.4 and C++ code
2005-02-13 18:18:59 +00:00
gbeauche
7df6429591
Support NetBSD 2.0 for x86:
...
- implement trunc() function, isless() and isgreater() macros
- execute genexec.pl through a real perl executable
- disable generation of debug info from dyngen u-ops
2005-02-13 15:32:11 +00:00
gbeauche
df0d5d2a41
Happy New Year 2005!
2005-01-30 21:48:22 +00:00
gbeauche
f401bb1494
really invalidate caches when ROM was patched in native mode
2005-01-30 21:25:24 +00:00
gbeauche
26314e240e
Add InitAll() which covers common initializations so that to avoid duplicate
...
code and possible bugs (e.g. on BeOS/PPC). Likewise for ExitAll().
2005-01-30 21:19:07 +00:00
gbeauche
f891b23e32
add PowerPC,G4 node
2005-01-30 21:13:23 +00:00
gbeauche
126e549397
add FP regs & state to preserved context on interrupt
2005-01-30 21:12:07 +00:00
gbeauche
9b17e04150
Fix Kernel Data for Gossamer ROMs: PVR, CPUClockSpeed et al.
2005-01-30 18:49:48 +00:00
gbeauche
a79ecf38ef
workaround direct access to FCBS from Apple Personal Diagnostics in MacOS 9
2005-01-30 17:39:44 +00:00
gbeauche
4316979264
fix NULL pmf initialization
2005-01-22 23:24:28 +00:00
gbeauche
5a2246b224
take care when only compiling in SDL audio support with X11 graphics
2005-01-19 20:26:01 +00:00
gbeauche
fb3f855d29
better handling of no-dyngen cases in makefiles
2005-01-10 22:50:54 +00:00
gbeauche
2f947f5667
Append disassembler to dyngen, if available
2004-12-21 23:27:11 +00:00
gbeauche
f5a9e6e110
add facility to debug basic blocks extracted from *-ops.o
2004-12-21 23:20:31 +00:00
gbeauche
f2d7689435
direct addressing fixes to video.cpp way to handle the VSL service owner
2004-12-19 23:05:34 +00:00
gbeauche
6b89caf030
little endian fixes to gamma handling code
2004-12-19 15:14:22 +00:00
gbeauche
6ecaec47d9
Don't overwrite our serial drivers (9.0)
2004-12-19 09:26:30 +00:00
gbeauche
7944aaf2de
FindLibSymbol() returns an address in MacOS address space. Likewise for
...
Mac_sysalloc(). i.e. make it return an uint32.
2004-12-19 09:01:04 +00:00
gbeauche
ec8304c597
enable 64-bit NATMEM_OFFSET
2004-12-19 08:19:27 +00:00
gbeauche
c704fa4c7d
append jit srcs for test-powerpc, no need to prepend in a wrong way
2004-12-19 08:10:51 +00:00
gbeauche
8677229f60
exp2f/log2f implementations if not existing
2004-12-18 23:45:33 +00:00
gbeauche
0802f4d93d
fix build on macosx, it's a native ppc arch too
2004-12-18 23:27:15 +00:00
gbeauche
a83a597585
enable build of the powerpc-tester without JIT
2004-12-18 22:36:16 +00:00
gbeauche
17ffad1d63
s/vm_page_size/vm_get_page_size/
2004-12-18 22:21:04 +00:00
gbeauche
a8a235345c
implement mcrxr instruction
2004-12-18 22:13:47 +00:00
gbeauche
2747c0b5e2
Shut up remaining warnings as we are now sure pointers are allocated in
...
MacOS address space. TODO: add checks to be sure?
2004-12-18 18:43:25 +00:00
gbeauche
6255bd24c3
direct addressing & 64-bit fixes
2004-12-18 18:40:43 +00:00
gbeauche
f9937854be
ethernet seems to work with sheepnet, even on kernel 2.6/x86_64!
2004-12-18 18:40:04 +00:00
gbeauche
1c915bbc19
Don't restrict MacOS X Xserver detection on native versions since SheepShaver
...
can run remotely and drawing to an X window on MacOS X.
2004-12-18 18:34:56 +00:00
gbeauche
83f594ec16
patch the right branch instruction, it seems it doesn't much matter whether
...
we return success (0) or error (-1) in the previous casse.
2004-12-16 23:14:25 +00:00
gbeauche
dfa16d9686
disable power management for now (opcode fe0f)
2004-12-16 22:59:38 +00:00
gbeauche
873377726b
fix regression introduced in the load of OldWorld ROMs when Direct Addressing
...
mode was impemented
2004-12-12 18:45:44 +00:00
gbeauche
0c8d0cd8be
SheepShaver icon for Windows
2004-12-11 11:19:55 +00:00
gbeauche
ce1420dcce
use native windows critical sections to implement atomic interrupt flags
...
handling and B2_mutexes
2004-12-11 10:17:48 +00:00
gbeauche
22efcbc6e4
native windows threads, set a higher thread priority to the tick thread,
...
implement Pause/ResumeEmulator()
2004-12-11 09:42:34 +00:00
gbeauche
ef8e363c5c
new NATMEM_OFFSET (0x02000000) makes it possible to allocate space for
...
the MacOS DR emulator code, though the usual limitations exist there
2004-12-11 08:59:57 +00:00
gbeauche
27eb7cccae
Windows-specific prefs items
2004-12-07 22:43:21 +00:00
gbeauche
3cd6c38e99
native windows version of SheepShaver (does not depend on cygwin.dll)
2004-12-07 22:40:30 +00:00
gbeauche
292b839e47
add Windows-specific localizable strings
2004-12-07 22:36:29 +00:00
gbeauche
9e96bd8241
fix cntlzw masks, fix build with cygwin/gcc
2004-11-26 00:13:05 +00:00
gbeauche
6287978c19
enable build of the cpu tester from the SheepShaver tree
2004-11-25 19:14:15 +00:00
gbeauche
6d68826725
cope with cygwin assembler'isms
2004-11-25 00:29:36 +00:00
gbeauche
3caa663fc8
try to cope with cygwin assembler
2004-11-25 00:25:53 +00:00
gbeauche
a6109dbec5
fix i386 offsets for direct patching. Fix Cygwin support.
2004-11-25 00:24:07 +00:00
gbeauche
53dfcecb54
16-byte aligned memory allocator only for sheepshaver_cpu
2004-11-25 00:21:09 +00:00
gbeauche
73a3269ea5
Merge in Win32 (COFF) executable support from QEMU. Also add Mach parser
...
but it's unlikely to work, simply keep it in sync.
2004-11-24 23:07:55 +00:00
gbeauche
602851a68e
move ppc-execute-impl.cpp dep down after DYNGENDEPS is defined
...
(fix parallel build, tested as make -j5)
2004-11-24 22:57:10 +00:00
gbeauche
f6d5e64088
cosmetics (only include <stddef.h> for size_t definition)
2004-11-24 22:49:15 +00:00
gbeauche
061b9512f3
fix coff symbol table decoding
2004-11-24 22:48:38 +00:00
gbeauche
a5837cd989
check for <fenv.h>
2004-11-24 22:48:02 +00:00
gbeauche
7114f0d4cd
a.out definitions for the cygwin coff object analyzer
2004-11-23 23:18:54 +00:00
gbeauche
ba20dc55d7
fix build with dyngen JIT
2004-11-22 23:35:05 +00:00
gbeauche
bf2185c208
fix build on unixish platforms
2004-11-22 23:17:32 +00:00
gbeauche
26a128bf6a
use new ieeefp.hpp wrapping over <fenv.h>
2004-11-22 22:55:50 +00:00
gbeauche
ddcd7a8df8
Implement some <fenv.h> functions on systems that don't support them
...
yet. This includes Cygwin/x86. The code is derived from the GNU C Library.
2004-11-22 22:54:53 +00:00
gbeauche
a9928fe707
Cygwin support. Only generate NATMEM_OFFSET definitions in Direct Addressing
...
mode. Merge sshpty.c support detection code from Basilisk II.
2004-11-22 22:51:54 +00:00
gbeauche
1eab606dcb
Cygwin Direct Addressing hack.
2004-11-22 22:40:26 +00:00
gbeauche
22af21e7fa
Add .exe extensions accordingly. Fix build without dyngen JIT support
2004-11-22 22:23:55 +00:00
gbeauche
40fcbdc172
Avoid use of Host2MacAddr() with static data as it may need to force
...
a 32-bit address truncation on 64-bit platforms with DIRECT_ADDRESSING
or with platforms with particular Direct Addressing modes (a.g. Cygwin)
2004-11-22 22:16:09 +00:00
gbeauche
e1bbf0714b
PPC_REENTRANT_JIT is only valid with JIT enabled
2004-11-22 22:09:05 +00:00
gbeauche
114f5ff6c7
Use BUILD_SHEEPSHAVER_PROCEDURE to allocate static procedures into the
...
SheepShaver globals. Fix build of sheepshaver_glue.cpp without JIT.
2004-11-22 22:04:38 +00:00
gbeauche
7be8af917c
Try to explain the SheepShaver globals
2004-11-22 21:50:45 +00:00
gbeauche
d6c7e0eb23
New SheepShaver globals layout, move ZeroPage into the middle. Since it is
...
a read-only page, it can also be used to detect overlaps between Procedure
space and Data space.
Provide native Windows implementation of shared MacOS KernelData allocation.
This is moved under main() so that to avoid a weird linking error. This native
implementation is independent of Cygwin IPC (and possible background server)
2004-11-22 21:33:32 +00:00
gbeauche
40367bd931
new SheepShaver globals layout
2004-11-22 21:22:58 +00:00
gbeauche
970bc59e40
fix build without dyngen enabled
2004-11-21 20:50:51 +00:00
gbeauche
ba11daf004
Inherit clip_unix.cpp from Basilisk II, now they are identical.
2004-11-15 23:41:08 +00:00
gbeauche
3ace37f4eb
Implement Direct Addressing mode similarly to Basilisk II. This is to get
...
SheepShaver working on OSes that don't support maipping of Low Memory globals
at 0x00000000, e.g. Windows.
2004-11-13 14:09:16 +00:00
gbeauche
9e330d5615
fix cpuid test on x86_64 and newer binutils
2004-11-11 07:25:45 +00:00
gbeauche
62f9a4bbba
fix build on 32-bit platforms
2004-11-10 10:23:38 +00:00
gbeauche
c3333e8ef6
fix deps for parallel build (tested make -j4)
2004-11-10 07:24:33 +00:00
gbeauche
5d79c5a5f2
fix build on 64-bit platforms with gcc3.4, especially on x86_64
2004-11-10 06:47:17 +00:00
gbeauche
c45fa9c75e
fix build on FC2/x86_64 (Bob Deblier)
2004-09-27 19:08:23 +00:00
gbeauche
4f78562642
SDL audio support
2004-07-19 19:42:21 +00:00
gbeauche
a83dfd52d0
fix gc_mask2 patch for gossamer
2004-07-14 08:24:07 +00:00
gbeauche
4d60dea4ee
Revert last change until I can check myself...
2004-07-11 08:12:21 +00:00
gbeauche
58e74f3ca0
Enable ethernet everywhere, several users got it to work. Hangs may be
...
unrelated to ethernet code anyway and ethernet driver should be endian
safe nowadays.
2004-07-11 07:54:56 +00:00
gbeauche
18a039b610
Notify upper execution levels that we invalidated the translation cache,
...
even partially. i.e. Always get out of compiled code on any cache invalidate
2004-07-11 06:44:52 +00:00
gbeauche
623a804814
Remove "native" EmulOp stuff as it is useless and duplicates functionalities
2004-07-11 06:42:28 +00:00
gbeauche
c1c16e9997
Use Nigel's "extfs" implementation on MacOS X
2004-07-10 07:38:51 +00:00
gbeauche
b60874907e
Better PowerPC / POWER CPU detection from Linux cpu_specs[] table.
2004-07-10 06:15:42 +00:00
gbeauche
9a93480546
Remap any newer G4/G5 processor to plain G4 for compatibility
2004-07-07 04:33:37 +00:00
gbeauche
cdd4462cd3
MacOS X bundle stuff. make SheepShaver_app to build the .app.
2004-07-07 04:13:37 +00:00