Commit Graph

1095 Commits

Author SHA1 Message Date
asvitkine
ff172bd87d Some changes to PrefsEditor stuff to ease future integration with SheepShaver. 2007-07-16 02:38:53 +00:00
gbeauche
8da1a472ae Add native audio support (without SDL) from Nigel's Basilisk II port to MacOS X. 2007-06-13 16:34:13 +00:00
gbeauche
7adb1cace9 Add mips cxmon files 2007-06-13 12:11:55 +00:00
gbeauche
3d69ce66be ifdef() constructs cause problems, make sure to automatically include the m4 directory while
regenerating the configure script (provided no ACLOCAL_FLAGS are passed). i.e. ./autogen.sh
now just works, even on MacOS X!
2007-06-13 12:09:05 +00:00
gbeauche
b20a76f580 merge PPC_PROFILE_REGS_USE fixes from KPX branch 2007-02-17 09:01:31 +00:00
gbeauche
8e0088c4c6 generate lwarx/swcx. native code only for uniprocessor emulation 2007-02-17 08:59:56 +00:00
asvitkine
c6560c2152 fix configure.ac unix script to not fail when AM_PATH_GTK and AM_PATH_ESD
are not defined (such as is usually the case on Mac OS X)
2007-01-24 14:33:52 +00:00
asvitkine
3b28326f7e ifndef so prefs editor compiles 2007-01-24 03:36:48 +00:00
asvitkine
b1f1592f44 OSX Cocoa PrefsEditor - code and Xcode project 2007-01-24 03:35:51 +00:00
asvitkine
be4aba2f82 Fix Master of Orion II 2007-01-21 17:21:23 +00:00
gbeauche
9999881c78 Enable JIT in non-constructor so that a user-defined value can be set later 2007-01-21 13:44:27 +00:00
gbeauche
3b6a579f33 Optimize lwarx/stwcx for uniprocessors and generate code for them. There is
no performance increase even though those two instructions represented approx
18M of untranslated instructions on a simple boot to MacOS.
2007-01-18 07:02:35 +00:00
gbeauche
b9486d35e3 Rearrange powerpc_registers struct and nuke fp_result register which is
only needed for JIT (and to be handled differently in the future).
2007-01-17 07:05:19 +00:00
gbeauche
69d3fcba95 Update for new instr_info_t format 2007-01-17 06:56:09 +00:00
gbeauche
5b0b60da76 Remove specialised decoders. This will be done differently, if necessary. 2007-01-17 06:20:36 +00:00
gbeauche
e4af8a1909 Report SSSE3 instead of SSE4 (to be released later). 2007-01-15 07:00:16 +00:00
gbeauche
9dfecc4279 Update CPU table to kernel 2.6.17+ code (POWER6, Cell, PA6T). Fix detection
of the CPU string (separator is actually ','). Fix detection of CPU clock
frequency when it is expressed as a float.
2006-10-26 05:25:19 +00:00
gbeauche
954593d1c0 Generate spcflags checks at the start of the block. This makes better
opportunities when CR cache is implemented.
2006-07-30 16:29:10 +00:00
gbeauche
bcf7f9a2cd Add throw() specs for Linux glibc platforms 2006-07-30 09:49:21 +00:00
gbeauche
2c27914196 Fix op_record_cr6_VD() to use less branches (gcc 4.1.2 build fix on x86-32) 2006-07-19 22:21:46 +00:00
gbeauche
874bab017c Fix for parallel build (make -j20 here) 2006-07-19 06:00:26 +00:00
gbeauche
7705f85655 Add missing implementations for VAVGUB & VAVGUH. Optimize VSEL too. 2006-07-17 21:47:18 +00:00
gbeauche
07bf6fe6c1 Fix typo for ANDPS, ANDPD, ANDSS, ANDSD 2006-07-17 21:46:15 +00:00
gbeauche
a23f846bec symlink codegen_x86.h 2006-07-17 07:43:54 +00:00
gbeauche
c8a273332f Fix for 32-bit x86, was generating setcc CC,%dh instead of %dl.
i.e. force use of ecx & edx -- though it was fine in 64-bit mode, of course
2006-07-17 07:34:33 +00:00
gbeauche
e07e2196e3 Use new code generator. The gain is only 10%, bottlenecks are elsewhere.
Optimize Altivec vector splat instructions after Agner's guide.
2006-07-17 06:56:38 +00:00
gbeauche
ceb43ce19a Define global XMM registers for SIMD & FPU (64-bit mode) 2006-07-17 06:52:13 +00:00
gbeauche
4e624209d3 Add new code generator for testing purposes (i386, x86_64) -- It's to be
used for mid-level optimizations
2006-07-17 06:49:07 +00:00
gbeauche
c306dfc4fd Make VSCR an uint32, don't bother splitting it into NJ, SAT values since
the gain is almost nil and actually hurts performance in JIT mode.
2006-07-17 06:46:56 +00:00
gbeauche
cc12787047 Prepare for new code generator and mid-level optimizations. 2006-07-16 12:47:38 +00:00
gbeauche
7cfee5a2be Move processor capability information to utils-cpuinfo.[ch]hpp. Add new
utils-sentinel.hpp for helper functions to be called at program initialization
and termination.
2006-07-16 12:28:01 +00:00
gbeauche
9bc307c3fd Fix for new code generator -- FIXME: backend macros should be enabled only
in ppc-jit.cpp (e.g. define a new ENABLE_JIT_TARGET_ASM macro?)
2006-07-16 12:23:03 +00:00
gbeauche
6113436ea4 Remove obsolete code (HAVE_STATIC_DATA_EXEC). 2006-07-16 12:18:59 +00:00
gbeauche
a2e0cc10c0 forgot to commit this __op_PARAM? change 2006-07-16 12:09:40 +00:00
gbeauche
5d7ef13a9c Fix gen_op_invoke*() for 64-bit offsets on x86-64. Drop CPUPARAM since it's
now cached to a host register.
2006-07-09 15:19:32 +00:00
gbeauche
a5296875f1 Optimize alignment routine for x86 & x86_64. 2006-07-09 15:18:08 +00:00
gbeauche
d75a91497d Fix debugging of generated code to include the block chainer trampoline. 2006-07-09 15:17:15 +00:00
gbeauche
7d5898f97a Some minor optimizations: xchg (unused), movdqa in sse2 code. 2006-07-09 12:19:50 +00:00
gbeauche
abc911eaa7 Remove use of global register A0 (now aliased to T0). This makes it possible
to cache the CPU context pointer to a register and thus rendering generated
code CPU context independent. Not useful to SheepShaver, but it is for
another project for threads emulation on plain x86-32.

Note: AltiVec performance may drop a little on x86 but this will be restored
(and even improved) in the future.
2006-07-09 12:15:48 +00:00
gbeauche
d0a64733ef Use -fno-align-functions to really disable function alignment (a value of 0
used the default alignment, e.g. 16 bytes on x86_64). This is purely cosmetics
and only helps reading the resulting disassembly.
2006-07-06 00:07:47 +00:00
gbeauche
d5bd143e40 Remove obsolete vminfp & vmaxfp (too long sequences) 2006-07-06 00:04:33 +00:00
gbeauche
c677dff47a Add more micro asm optimisations to x86{,-64} (mulhw, mulhwu, slw, srw, cntlzw
and subf* series). Also now enable the optimzations on x86_64 by default.
2006-07-06 00:01:04 +00:00
gbeauche
e39e80b44b cosmetics 2006-07-04 23:27:06 +00:00
gbeauche
0123552ddc Use extra precision (e.g. long double) for fma operations though this
inhibits some underflow conditions.
2006-07-04 23:23:42 +00:00
gbeauche
98dea63921 Fix fmadd et al. to set FPSCR[VXISI] only if any of the multiply operands
is an inifinity (2.1.5 -- don't set based on the intermediate result)
2006-07-04 23:20:46 +00:00
gbeauche
e020d63591 Fix frsp FPSCR[OX] condition 2006-07-04 23:17:37 +00:00
gbeauche
78952866b4 Fix mtfsb0 & mtfsb1 (VEX's xlc_dbl_u32 + code review) 2006-07-04 10:41:48 +00:00
gbeauche
c022ff87e6 remove dead code (fdivs was never used) 2006-07-04 08:58:40 +00:00
gbeauche
9f6edc436b Fix mismerge from kpx branch 2006-07-04 08:54:53 +00:00
gbeauche
7efab4276f Improve FPU emulation accurracy. However, PPC_ENABLE_FPU_EXCEPTIONS is still
set to 0 until generated code is optimized enough (current slow down factor
is 3x vs. previous core, expectations are about 50% slower FP code).

The main benefit is exception bits are accurate. All glibc test-fenv,
test-arith{,f}, test-double, test-float pass on ppc, and mostly on x86_64
with gcc 4.0.1. Yes, this is also compiler dependent.

FIXME: find a real Mac application that depends on precise FPSCR bits... I
think I don't want to care optimizing yet until someone shows me a real world
application.
2006-07-04 07:19:18 +00:00
gbeauche
0a74d0559a Fix fnmadds & fnmsubs emulation + try to provide optimized fma routines for
better precision
2006-07-04 07:06:18 +00:00
gbeauche
dc88ee271d Use lrint() for fctiw on x86-64. This is because some glibc use AMD optimized
math library where floor(), ceil() et al. don't set the inexact flag correctly
2006-07-04 06:59:28 +00:00
gbeauche
dc3df920c5 Fix fctiw emulation (VEX's jm-ppc-test -f, handle current rounding mode) 2006-07-04 06:58:24 +00:00
gbeauche
de5389bc0e Fix vminfp & vmaxfp emulation (VEX's jm-ppc-test -a, triggered nan bugs) 2006-07-04 04:47:04 +00:00
gbeauche
39ee6ba1aa Fix vctsxs & vctuxs emulation (VEX's jm-ppc-test -a, triggered inf/nan bugs) 2006-07-04 04:37:15 +00:00
gbeauche
0a2f9d3f03 Add fsel instruction emulation (VEX's jm-ppc-test -f) 2006-07-04 04:25:02 +00:00
gbeauche
635ee55a5d Fix floating-point single precision load/store (VEX's jm-ppc-test -f) 2006-07-04 04:21:02 +00:00
gbeauche
d9eb35f026 updates 2006-05-14 20:46:19 +00:00
gbeauche
e339993b22 Updates. It's high time for a new snapshot. 2006-05-14 17:14:09 +00:00
gbeauche
c512377a12 Add 1GB item to GUI 2006-05-14 16:14:29 +00:00
gbeauche
bd6ec66354 Add missing "etherguid" prefs item for Basilisk II Ethernet support (b2ether). 2006-05-14 16:13:16 +00:00
gbeauche
3f3891ab31 Move up NATMEM_OFFSET to 0x11000000. This is arbitrarily determined to be
the base of the largest free block. Turns out SDL libraries are loaded around
0x10000000 so we have some luck here.
2006-05-14 15:58:11 +00:00
gbeauche
8a27c90e15 Temporary workaround for Windows (shndx_text is not unique...) 2006-05-14 14:12:57 +00:00
gbeauche
d26f8ad8e2 Fix for DIRECT_ADDRESSING mode (Windows) 2006-05-14 13:48:05 +00:00
gbeauche
7ef09b90bb NQD dirty boxes, BeOS backend -- no-op. 2006-05-14 08:35:35 +00:00
gbeauche
5e4c2b7bb9 NQD dirty boxes, X11 backend. 2006-05-14 08:32:33 +00:00
gbeauche
757f849ad0 Optimize generated code to NQD & CheckLoad functions. They don't call into
68k or MacOS code, so they don't need to be a termination point. i.e. don't
split into two basic blocks and thus avoid a full hash search.

Also add missing NQD_unknown_hook NativeOp from previous commit.
2006-05-14 07:21:10 +00:00
gbeauche
74a5024be4 NQD dirty boxes, generic code
+ while we are at it, also rename a few NQD related NativeOps.
2006-05-13 17:12:18 +00:00
gbeauche
484469962b Don't let SDL catch SIGINT and SIGTERM signals. This is not suitable for
SheepShaver since we are typically translating SDL_QUIT events to PowerOff()
on MacOS side. And, if MacOS is not fully booted, it's not really convenient
to shut it down, even with ctrl-C. i.e. you had to kill -9 it.
2006-05-09 19:53:31 +00:00
gbeauche
0af4721cb6 Don't read from 0xf8000090 during MacOS (8.5, 9.0) installation. Is this an
OpenFirmware check for OldWorld 604-based machines?

XXX I have code pending that makes it possible to use PowerMac ID #3035 and
model 510 (PowerMac G3 Series). However, I have a regression with one of my
MacOS 8.6 disks. This is non-standard anyway since it was installed from the
iMac DV 8.6 discs ("yellow" not generic) with MOL -- SheepShaver can't cope
with it.

So I am not surprised it breaks. Otherwise, 8.5 -> 9.0.4 were fine with it.

BTW, the "regression" is Native Resource Manager is not installed and the
boot gets mad later. FWIW, it's the same as for MacOS 9.1. A resource is
very likely not loaded.
2006-05-08 23:32:58 +00:00
gbeauche
0a37b8f5e9 Fix MacOS X GUI (new fake DarwinSys*() functions) 2006-05-08 17:20:20 +00:00
gbeauche
8bd38cff75 Also nuke MacOS X GUI binary and bundle for make clean 2006-05-08 17:19:45 +00:00
gbeauche
12195c32b5 Define UNALIGNED_PROFITABLE on x86 platforms 2006-05-07 16:54:58 +00:00
gbeauche
75f3bdea68 Fix NQD_bitblt_hook() to perform sign check correctly 2006-05-07 10:49:48 +00:00
gbeauche
bc13355b57 Add linker scripts from Basilisk II and make it possible to allocate up to
1 GB of Mac memory. Only tested on Linux/x86_64 so far but with a somewhat
interesting (MacOS, ROM, RAM size) matrix.

XXX: It should be possible to allocate up to 1.5 GB by relocating the ROM
base to something like 0x60800000.
2006-05-06 10:42:51 +00:00
gbeauche
6da4032ab7 Add a few FE0A opcode patches. This slightly improves stability. 2006-05-06 10:30:00 +00:00
gbeauche
80c87484f3 Add 'nsrd' 1 and 'gpch' 650 patches for MacOS 7.5.3 Revision 2.2 2006-05-06 09:23:28 +00:00
gbeauche
3bd5d0c787 Instructions that trap are now an end-of-block condition. This should avoid
the compilation of illegal instructions and thus stopping execution earlier.
2006-05-06 07:19:39 +00:00
gbeauche
e88961bc45 Review MacOS 8.6 vs 9.0 patches:
- 'boot' 3: set boot stack pointer only once at the correct place
- 'gpch' 750: fix FE0A opcode replacement (selector #$0a is virt2phys on pgidx)
- 'gpch' 750: remove bogus patch for SonyVars
- Mark patches "9.0" verified accordingly vs. 8.6
2006-05-05 19:05:24 +00:00
gbeauche
4578abcbd4 Add native GetNamedResource() and Get1NamedResource() patches for PPC Unix.
Only tested on MacOS X so far. It shouldn't be a problem for Linux/PowerPC.
2006-05-03 22:11:49 +00:00
gbeauche
812682fda6 update 2006-05-03 21:53:47 +00:00
gbeauche
f3ba2f0d64 Don't access ROM85 as it it was a pointer to a ROM version number (8.0, 8.1)
aka. fix bogus AppleShare extension, it was trying to dereference 0x3fff.

XXX: why is this code called in the first place?
2006-05-03 21:53:33 +00:00
gbeauche
21f35a34f0 Add patches for native GetNamedResource() and Get1NamedResource(). This will
be useful to fix a bug in the AppleShare extension (see DRVR .AFPTranslator
in Basilisk II)

Unrelated improvement: call sheepshaver_cpu::get_resource() directly, don't
get it through another global function.
2006-05-03 21:45:14 +00:00
gbeauche
0f5f874e11 Huh, committed wrong changelog for configure.ac, it should have been the
following: fix build of the CPU emulator (check for additional math functions)
2006-05-02 19:36:57 +00:00
gbeauche
8123813cad Add SLiRP support to SheepShaver for Windows 2006-05-02 19:35:39 +00:00
gbeauche
22110cb4f3 Make GetMainWindowHandle() a globally exported function as it is used e.g.
in clip_windows.cpp & video_sdl.cpp
2006-05-02 19:34:04 +00:00
gbeauche
e5051464bf Move likely() definitions to dyngen-exec.h, they are only used in the CPU
core where it's most useful (give a stronger hint to gcc4)
2006-05-02 19:33:10 +00:00
gbeauche
b9b1fd4e22 Don't build a built-in GUI with --enable-standalone-gui was requested 2006-05-02 05:50:38 +00:00
gbeauche
085253dc9b - Fix build on ppc (paranoia.cpp -- one extra STR_SIGUSR2_INSTALL_ERR left)
- Fix for GTK+ 1.2 GUI on ppc (notebook's panes redraw)
- Add run-time detection of the underlying arch for "jit" detection (MacOS X)
2006-05-01 23:01:53 +00:00
gbeauche
9b60acb2da Port --enable-standalone-gui support to SheepShaver
Others changes include:
- Factor out STR_SIG_INSTALL_ERR messages
- Process command line arguments early (prior to calling PrefsInit())
- GUI: set start_clicked only if the "Start" button was clicked
- GUI: save changes to the "Input" pane when the "Start" button was clicked
2006-05-01 22:33:34 +00:00
gbeauche
a7888c6c64 fix underquoted definitions 2006-04-06 22:36:43 +00:00
gbeauche
5678c1d37d Detect SSE3 & SSE4. 2006-04-01 22:14:33 +00:00
gbeauche
b288f6278e Helper macros to annotate likely branch directions. Colateral effect: this
also fixes build with GCC 4.1 (ppc-dyngen-ops.cpp) since the branches are
re-ordered in a way there is now only one exit-point in op_jump_next_A0().
2006-04-01 21:41:19 +00:00
gbeauche
d475faf4ba Copy constants to 32-bit addressable data pool. This fixes -pie builds on
x86_64: program resides above 32-bit barrier and JIT generated code wants
(knowingly) to access globals directly.
2006-01-28 22:03:31 +00:00
gbeauche
d9b4b31490 Merge from KPX: new exit() handling code 2006-01-28 22:00:10 +00:00
gbeauche
e0589a097e fix new/delete mismatch in slow_allocator, also use that for lazy_allocator 2006-01-28 21:59:41 +00:00
gbeauche
022d09375f Merge from KPX: new exit() handling code; make "syscall" illegal for MacOS
emulation (SheepShaver)
2006-01-28 21:57:52 +00:00
gbeauche
d4210ef902 Check whether compiler supports byte bit-fields. If so, we can enable slirp
emulation code since it pure C+sockets code.
2006-01-27 23:48:08 +00:00
gbeauche
6ddf123991 Adapt for new non-blocking I/O error message 2006-01-24 23:50:19 +00:00
gbeauche
02525acf32 Use FIONBIO only on pretty ancient systems. 2006-01-24 23:47:09 +00:00
gbeauche
f8c3b2c6bb no-stack-frame optimization for linux/i386 too since it now works there too 2006-01-22 20:07:47 +00:00
gbeauche
f2d3692c08 updates 2006-01-22 16:46:41 +00:00
gbeauche
f32e053178 Apply the no-stack-frame optimization in op_invoke_*() to MacOS X for Intel
templates. This avoids mis-aligninment of the stack, and useless reservation
of space on it for function args. Indeed, we now pre-allocate 16 stack-slots
in op_execute() for this purpose.
2006-01-22 00:12:39 +00:00
gbeauche
51a09ecc21 Don't mis-align the stack on x86 platforms (most visible on MacOS X for Intel) 2006-01-22 00:08:32 +00:00
gbeauche
1f195045a1 __DATA,__data section may be empty (MacOS X 10.4.4 for Intel) 2006-01-22 00:07:22 +00:00
gbeauche
89700e74e2 update icon with transparency 2006-01-21 18:04:03 +00:00
gbeauche
7755bd2873 rename extfs volume name to "Unix" 2006-01-21 17:26:27 +00:00
gbeauche
46ee842be3 don't trigger interrupt through deleted cpu object (XXX may need locks) 2006-01-21 17:18:53 +00:00
gbeauche
a9468a9644 fix encoding of lis r0,0x9e00 2006-01-19 22:24:09 +00:00
gbeauche
d85590c972 adapt for older MIPSpro preprocessor 2006-01-18 23:50:16 +00:00
gbeauche
357467c97b <cpu/jit/dyngen-exec.h> is necessary because it contains the definitions of
DYNGEN_FAST_DISPATCH for the direct_chaining_possible() test... [otherwise,
it was a performance regression]
2006-01-18 23:45:31 +00:00
gbeauche
73c6d2d2c0 apply the no-stack-frame optimization in op_invoke_*() to MacOS X hosts too 2006-01-18 23:06:48 +00:00
gbeauche
1313fe589b fix for MacOS X/ppc (simply for completeness, the CPU emulator is not used
natively by default)
2006-01-18 23:00:59 +00:00
gbeauche
b6600ca3fe recognize POWER5+ CPUs (e.g. p5-520) 2006-01-18 22:12:26 +00:00
gbeauche
2e7f194ff2 add generic roundf() from glibc (for IRIX/mips with older libm) 2006-01-17 23:09:18 +00:00
gbeauche
bde3eb7972 fix framework detection on OSX/intel with newer compiler that compiler that
fully obsoleted nested functions support (my fault anyway)
2006-01-15 11:41:23 +00:00
gbeauche
0a9a210c30 Disable direct block chaining if DYNGEN_FAST_DISPATCH is not defined. Note
this is a workaround prior to enabling it on mips and the future JIT.
2005-12-12 21:44:50 +00:00
gbeauche
d9fc0aa5ad Look for g++ in /usr/freeware/bin (IRIX/mips for the JIT). Avoid false
positives in GCC detection, i.e. knowingly cause a syntax error if #error
was not good enough (MIPSpro CC). Fix dyngen g++ version detection if
main compiler is not g++
2005-12-12 21:22:40 +00:00
gbeauche
c71bc8cc4c avoid unaligned memory accessed when patching the ROM (IRIX/mips) 2005-12-12 20:46:31 +00:00
gbeauche
5c287d301d remove obsolete cygwin bits and fix allocation of NanoKernel region on
IRIX (aka make it POSIX compliant)
2005-12-11 23:18:47 +00:00
gbeauche
6416914c15 fix overflows for lve[bhw]x input values and vector values on 64-bit hosts 2005-12-11 20:57:45 +00:00
gbeauche
8372abd132 arrangements for non-gcc compilers 2005-12-11 18:15:34 +00:00
gbeauche
d19908c9d9 JIT now works on IRIX/mips, you need GCC for the synthetic opcodes:
CC=cc CXX=CC ./configure --with-dgcc=g++

Also merge MIPSPro optimization flags from Basilisk II tree.

Note that I only verified the emulator works through the testsuite
(all tests passed, including AltiVec emulation)
2005-12-11 18:15:05 +00:00
gbeauche
4866e89c3a factor out and fix mips case for external function invocation as t9 shall
be set so that gp can be recomputed in the called function
2005-12-11 17:25:42 +00:00
gbeauche
92f7738f80 - Add possibility to skip a test category (ALU, FPU, VMX). This will only
generate target code without executing it, and not comparing results
- Fix aligned_vector_t, we can't rely on THIS pointer to be 16-byte aligned
- Also fix dummy_vector alignment
2005-12-11 17:21:07 +00:00
gbeauche
37ee682c0f fix for mipspro compilers 2005-12-11 17:15:12 +00:00
gbeauche
63d4506a4d add "fast" pointers to non-virtual member functions for MIPSpro compilers 2005-12-11 17:12:59 +00:00
gbeauche
dd2b9a95d5 Align PowerPC registers struct manually, i.e. don't depend on non-portable
compiler extensions (e.g. GCC __attribute__((aligned(N)))).
2005-12-06 22:25:13 +00:00
gbeauche
d8aa8a7459 Port JIT to IRIX/mips (initial code from QEMU) 2005-12-05 22:24:13 +00:00
gbeauche
1670c6e84d ahem, forget this extra difference between multiarch & jit dispatcher 2005-12-05 22:10:46 +00:00
gbeauche
ecc90b0916 Better mechanism to dispatch arch-dependent JIT headers as we can't use
raw arch names (e.g. mips expands to 1, thus not finding the header)
2005-12-05 20:37:46 +00:00
gbeauche
d3e8f634b2 Fix build of test-powerpc on non-{x86,ppc} platforms 2005-12-04 17:46:52 +00:00
gbeauche
45cb124844 We really need a way to specify a member alignment for AltiVec emulation
testing. Extra fixlets for IRIX/mips and other CPU emulator in non-JIT mode
2005-12-04 17:45:41 +00:00
gbeauche
8c12552fda GCC fixes for IRIX/mips (unsupported __generic intrinsic and probably not
using the fixincludes-patched internal/math_core.h file)
2005-12-04 17:44:21 +00:00
gbeauche
41ab82edce Better IRIX support: add audio & slirp networking. Fix configure to use -lm
when searching for C99 functions (roundf() et al.).
2005-12-04 16:26:57 +00:00
gbeauche
f75d445700 Some compilers don't permit the use of C99 extensions from C++. This is the
case for MIPSPro (IRIX) for fegetround(), isinf() et al., though they are
available in the math library.
2005-12-04 16:10:01 +00:00
gbeauche
28ed73f212 Fix build in pure interpreter mode (IRIX/mips) 2005-12-04 16:07:52 +00:00
gbeauche
7a24d4c8b6 Use #pragma pack() on IRIX and enforce a means to pack structs 2005-12-04 15:58:52 +00:00
gbeauche
b17b4d7584 dos2unix 2005-12-04 15:53:55 +00:00
gbeauche
dfb7f52abd The JIT works in Darwin/x86 too. 2005-11-30 21:42:22 +00:00
gbeauche
954643b582 Modernize tarball VERNAME 2005-11-30 07:25:37 +00:00
gbeauche
e2391d5753 Always use the complete non-stubs Ethernet driver (XXX probably do that
only in Emulated PPC mode for performance reasons?)
2005-11-30 07:24:53 +00:00
gbeauche
09c61e2354 Makefile fixes. Also checkout Basilisk II tree while preparing the
SheepShaver sources tree as it's better to have the tarball having
the B2 sources inside too.
2005-11-30 00:29:29 +00:00
gbeauche
34b8843a1c Remaining references to V2.2 changed (XXX needs to be factored out) 2005-11-30 00:02:25 +00:00
gbeauche
f8fd76ba35 Copyright and URL changes 2005-11-29 23:59:36 +00:00
gbeauche
4cda58b38a NEWS improvements 2005-11-29 23:55:05 +00:00
gbeauche
bc463966c8 V2.3-Pre (snapshot) 2005-11-29 23:48:18 +00:00
gbeauche
6fb46cd1c3 Move to V2.3 (snapshot) versioning since V2.2 was already CVS-released 4
years ago. Add missing changes.
2005-11-29 23:46:43 +00:00
gbeauche
42d6693435 Support "b2ether" devices (from Basilisk II tree) 2005-11-29 23:01:09 +00:00
gbeauche
4ddc2368d1 add "CD-ROM Drive" label 2005-11-29 20:55:33 +00:00
gbeauche
71d0871858 aha, I forgot a hunk 2005-11-27 23:59:07 +00:00
gbeauche
5a5defb9d8 Build Windows GUI with GTK 2005-11-27 23:54:26 +00:00
gbeauche
37da272071 Ethernet and Serial support (merge from Basilisk II tree) 2005-11-27 22:29:32 +00:00
gbeauche
13e7e02786 Force DIB driver for SDL/Windows (HACK from Basilisk II tree), improves
responsiveness for me.
2005-11-27 20:40:52 +00:00
gbeauche
bc550cd3cd Windows fixes for "new" Ethernet API. The full driver is needed because of
DIRECT_ADDRESSING mode.
2005-11-27 20:36:30 +00:00
gbeauche
cd568e8bd3 fix for new ethernet API 2005-11-27 20:22:19 +00:00
gbeauche
90670c2652 warning fixes, aka don't redefine log2() et al. if already defined (Win32) 2005-11-27 20:20:25 +00:00
gbeauche
c1c4345594 fix regression introduced from JIT/Mach support 2005-11-27 20:14:22 +00:00
gbeauche
49143b5e81 fix ether_dummy.cpp build 2005-11-27 20:09:59 +00:00
gbeauche
d27fdd7afb cleanupsCVS: ---------------------------------------------------------------------- 2005-11-27 20:02:06 +00:00
gbeauche
9ec35ab23e Do use predecode cache in case the JIT is disabled by the user ("jit" option) 2005-11-27 16:20:17 +00:00
gbeauche
b5562ede18 GUI cosmetics from Basilisk II, add missing "slirp" ethernet option 2005-11-27 16:01:59 +00:00
gbeauche
dcc027791c "Keyboard/Mouse" is the more logical way 2005-11-27 15:03:01 +00:00
cebix
b8a4568cae modernized Linux sound device selection (synced to B2) 2005-11-24 17:26:00 +00:00
gbeauche
5f7021a179 don't grab in -mdynamic-no-pic when using icc, note that you need at least
version 9.0.25 (build 20050809) to have a working binary
2005-08-18 22:32:31 +00:00
gbeauche
a0c918ae5d ahem, fix typo :) 2005-07-25 20:03:07 +00:00
gbeauche
81ba8f90d0 force -finline-functions to get inlining really operating with gcc < 3.3.6
on x86 or you may get a _ZN9bit_fieldILi0ELi0EE7extractEj undefined symbol
2005-07-25 19:46:24 +00:00
gbeauche
74e4b16079 fix for gcc < 3.3.6 on x86 2005-07-25 19:45:26 +00:00
gbeauche
2b72c5e047 Fix for broken MacOS X headers (at least in 10.2) when compiling with the
CPU emulator.
2005-07-14 18:09:30 +00:00
gbeauche
d8dc5827d3 Initial JIT support for Darwin/x86. Seems there is still a problem though. 2005-07-11 07:06:31 +00:00
gbeauche
d08df6e659 Darwin/x86 fixes 2005-07-11 06:52:51 +00:00
gbeauche
ff28c42565 Check for CoreFoundation framework, which is not available in Darwin. 2005-07-10 15:43:33 +00:00
gbeauche
6eacaf2e82 Fix asm clobbers for newer gcc 4.0.1, don't use -msse to enable xmm clobbers
(likewise for -mmmx vs. mmx registers). Instead, since GCC won't generate
MMX/SSE code without explicit intrinsics use of vectorization, we know
those register won't be clobbered outside of the __asm__ code. So, it's safe
as is (we could also remove all sse/mmx clobbers).
2005-07-09 21:53:26 +00:00
gbeauche
4cb11c7c9f Fix detection of GCC versions, avoid AC_EGREP_CPP (J.P. Larocque) 2005-07-06 05:26:01 +00:00
gbeauche
896cdc1fb7 Add upcoming 7448 and new PPC970FX CPU ids. 2005-07-06 05:11:56 +00:00
gbeauche
4d97079af9 Map latest 7447A CPU to a plain G4 (7400) 2005-07-06 04:58:34 +00:00
gbeauche
2975867e09 forgot to commit a hunk 2005-07-04 17:46:31 +00:00
gbeauche
284bda9357 updates for next snapshot 2005-07-04 11:38:17 +00:00
gbeauche
0f358518df New paranoia checks that better match was SheepShaver is doing with threads
and sigaltstack(). At least, this time we force use of threads and also
alter r1 to see whether the current threading model relies on it or not.
2005-07-04 06:09:59 +00:00
gbeauche
29207d9cf2 Move sigregs handling to dedicated header 2005-07-04 05:34:33 +00:00
gbeauche
d80a943daf Don't use sem_t definition from our local "semaphore.h" layer. Copy the
definitions from original LinuxThreads.
2005-07-03 23:28:30 +00:00
gbeauche
811b8d6648 Bad MacOS X, we need our our semaphore.h from Basilisk II to get POSIX
unnamed semaphores emulation with named Mach semaphores.
2005-07-03 22:44:30 +00:00
gbeauche
97eaae096c Fix typo for AO_transmit_packet() thunk. 2005-07-03 22:43:11 +00:00
gbeauche
e259aeb504 Tweaks to build slirp on MacOS X. Yeah, there is now ethernet there! ;-) 2005-07-03 22:42:48 +00:00
gbeauche
f346839f86 Add the complete NDRV variant for DIRECT_ADDRESSING modes. We could use
this one for all cases but I'd prefer keep it that way. i.e. the old
driver in REAL_ADDRESSING mode (with the D(bug()) facility), and the new
NDRV for DIRECT_ADDRESSING mode (e.g. Windows).
2005-07-03 22:04:18 +00:00
gbeauche
97726bd1e7 Minor tweaks to support compilation of ether.cpp within MacOS. i.e. mostly
migrate the Ethernet driver to the MacOS side. This is enabled for
DIRECT_ADDRESSING cases. I didn't want to alter much of ether.cpp (as it
would have required to support that mode). Of course, in REAL_ADDRESSING
mode (the default) and for debugging purposes, the old driver is still
available.
2005-07-03 22:02:01 +00:00
gbeauche
9c16ab1514 Remove obsolete and broken Cygwin/X11 hacks. Forbid builds of the Windows
version from within the Unix/ directory.
2005-07-03 13:39:06 +00:00
gbeauche
b7004b1199 Add necessary configury + support code to support slirp in SheepShaver,
the user-space network emulation layer. Enable it on all Unix supported
platforms where I know it works.
2005-07-03 13:05:36 +00:00
gbeauche
2cf7fd2a88 First round of patches to increase ethernet code portability. 2005-07-03 08:23:42 +00:00
gbeauche
029d86ce4c Fix build with CodeWarrior in MacOS (9 under SheepShaver ;-) 2005-07-02 22:54:07 +00:00
gbeauche
7cc1bbc7b8 Issue a SysError(dsOldSystem) if we are trying to use MacOS < 8.1.0 with a
NewWorld ROM. That may be 8.1.0 included but original iMac had a NewWorld
ROM compatible system.

Otherwise we will crash because the boot routine is trying to execute code
through unitialized descriptor that points to 0x13ff, which is obviously
wrong (and unaligned on word-boundaries for 68k code).
2005-07-02 17:51:43 +00:00
gbeauche
2881c20813 Hopefully fix the remaining issue in the High Resolution Timing support
code and re-enable it on Linux platforms (they have clock_nanosleep). Why
did I trigger an interrupt inside a held lock? Hmmm, we should probably
add an _ack semaphore like we do e.g. for ethernet.
2005-07-01 23:15:11 +00:00
gbeauche
245c691102 Check for <stdint.h> ourselves + build with -mdynamic-no-pic on MacOS X. 2005-07-01 06:16:00 +00:00
gbeauche
f1ef1322b3 Add B2 Unix/m4 symlink 2005-07-01 06:15:21 +00:00
gbeauche
a60b0fb78c Restore clobbered registers before calling SDL_PumpEvents(). 2005-06-30 22:26:12 +00:00
gbeauche
df960a814e HFS+ is case insensitive (sic!). At least, it pointed out to not remove
ppc_asm.s file but rather the temporary ppc_asm.out.s variant.
2005-06-30 22:19:01 +00:00
gbeauche
ec8661f431 Fix a damn silly bug. On some occasions, we could have spcflags() set to
EXEC_RETURN | HANDLE_INTERRUPT. And then, we handled the interrupt, but
EXEC_RETURN was set so we returned very quickly without completing the
interrupt routine. As a side effect, this occasionnaly hung the emulator
most likely with {ethernet,audio}-based applications that trigger a lot
of interrupts.

The fix is to always honour EXEC_RETURN flag at first, of course.
2005-06-30 15:29:11 +00:00
gbeauche
fd69df24f3 Re-enable spinlocks on {i386,x86_64} since they are now used only for really
small atomic operations (add/sub). This implementation should be enough for
that purpose.
2005-06-30 13:29:43 +00:00
gbeauche
08c5f8b713 Improve idle wait mechanism. Now, the emulator thread can be suspended
(idle_wait) until events arrived and notified through TriggerInterrupt().
i.e. we no longer sleep a fixed amount of time on platforms that support
a thread wait/signal mechanism.
2005-06-30 10:17:58 +00:00
gbeauche
c9b044aeaf Completely avoid any form of nested interrupt processing. 2005-06-30 09:09:59 +00:00
gbeauche
55f5e3a41b Fix CR save/restore in EmulOp thunk. I don't know what it fixes for real
but that was definitely wrong to only preserve CR2 there.
2005-06-30 07:34:17 +00:00
gbeauche
ea42af0568 Consume the packet even if we could not allocate a message block for it in
the Ethernet interrupt. The BeOS version does that, likewise for MOL. Otherwise,
we end up into an infinite loop reporting the memory allocation failure.

I think this is now the expected behavior as we wouldn't have stats
(num_rx_no_mem) for it if we couldn't get out of the EtherIRQ. ;-) Besides,
the packet will be resent for reliable networks.
2005-06-30 06:38:09 +00:00
gbeauche
7ac6ad2f46 Clean-ups: comments, ticks per sec output, don't restore r13 twice. 2005-06-28 16:50:30 +00:00
gbeauche
38d03d02e9 The alternate stack trick never worked as you can't modify an active stack.
i.e. it returned EPERM and ran into stack corruption to eventually crash the
emulator. This is noticeable in !hw_mac_cursor_accl mode (e.g. fullscreen DGA).

In order to the sigalstack() to be effective, we must kludge the kernel to
think it's running on another stack. In practise, we provide another stack
for the SIGUSR2 handler. sigusr2_handler_init() fulfills that purpose.

I hope this fixes remaining issues forever. At some point, I had multiple
*_init() handlers in case this is necessary.
2005-06-28 16:47:32 +00:00
gbeauche
a8ba24aecf Use fast spinlocks only for small enough atomic operations. Otherwise, you
run into some performance problems in e.g. video graphics experience because
of busywaits in the current spin_lock() implementation.
2005-06-25 11:40:29 +00:00
gbeauche
198925c5ae clean-ups from previous experiment with sched_yield(), this one caused a
slow-down too.
2005-06-25 11:36:35 +00:00
gbeauche
52138d2014 We HAVE_PTHREADS even if we use our own pthreads implementation, this also
induces availability of locking primitives. I will merge the !HAVE_PTHREADS
case (a la Basilisk II) for EMULATED_PPC when I get back to home.
2005-06-25 11:06:24 +00:00
gbeauche
b92ce82a32 Rewrite SheepThreads locks & semaphores. They now look much better and avoid
busy waits for acquiring spin locks.
2005-06-25 11:00:30 +00:00
gbeauche
e991e59fc1 fix test_and_set, aka fixes X async replies when clipboard active 2005-06-25 10:58:47 +00:00
gbeauche
2de44f1910 Fix for MacOS X assembler, why don't Apple use GNU as? 2005-06-25 06:33:39 +00:00
gbeauche
d0da2a0dda - Restore TOC on EMUL_OP_EXEC_RETURN from Execute68k
- Restore r13 on EMUL_RETURN, though I never saw r13 clobbered
- Increase stack frame allocated to EmulOp processing on par with BeOS
- Factor GetResource wrappers with a macro + restore r13 too
2005-06-24 22:58:55 +00:00
gbeauche
d8a33b0952 Direct Color visual is OK for fbdev dga. 2005-06-24 22:31:28 +00:00
gbeauche
26ee263b6f Don't fake the TVECT value on non-BeOS native systems. This is important
for systems that use a global r2 as the TLS register, e.g. Linux/ppc with
newer glibc. Also remove the syscall junk which were simply workarounds
for this bug. Remove a duplicate r2 restoration in EmulOp.

BTW, it's possible to get SheepShaver running on Linux/ppc systems with
NPTL rather than SheepThreads.
2005-06-23 16:23:31 +00:00
gbeauche
b9b90fce11 fix last commit 2005-06-23 11:56:43 +00:00
gbeauche
2deca51ca4 Add code to gather some stats on register usage. 2005-06-23 11:37:01 +00:00
gbeauche
c33f09b2d8 Fix crash in FBDev DGA mode when it failed to initialize (here, that was
because fb visual was Direct Color instead of True Color). We used to
initialize the_buffer* even if !open_display. Report that gracefully with
the dedicated STR_OPEN_WINDOW_ERR.
2005-06-22 16:40:24 +00:00
gbeauche
c41f403f56 Rework sheepshaver_cpu object allocation and get rid of POSIX'ish functions. 2005-06-22 16:38:15 +00:00
gbeauche
c4a7b10650 op_invoke*() symbols are expected to be in demangled form, i.e. "C" linkage 2005-06-22 16:35:59 +00:00
gbeauche
f887fb7bac Enable build of the JIT with GCC 2.9x compilers (e.g. "2.96" from MDK 8.1). 2005-06-22 15:37:25 +00:00
gbeauche
ae52321fe7 HOST_FLOAT_WORDS_BIG_ENDIAN is a tristate and, when defined, can still be
0, so little endian format. i.e. don't check that with a simple #ifdef...
2005-06-22 15:33:22 +00:00
gbeauche
32b5b4f0bd Integrate C++ demangler from libiberty so that to handle G++ 2.9X generated
symbols.
2005-06-22 15:30:54 +00:00
gbeauche
f226f793dd Extend internal math library from GNU libc to accomodate older systems
with glibc 2.2.X or simply no C99 capable C library. Fix vrfiz instruction
to really truncate on float values.
2005-06-22 12:32:32 +00:00
gbeauche
28a167b3bd Avoid <limits> to determine vector register numeric_limits<>. This fixes
build with ancient compilers like gcc "2.96".
2005-06-22 12:27:01 +00:00
gbeauche
3aa78832fc pointer-to-member-functions fixlets, NULL may be (void *)0 on ancient
compilers which is not suitable here.
2005-06-22 12:25:43 +00:00
gbeauche
c686f5451c Include <sys/mman.h> for fbdev dga without VOSF acceleration. 2005-06-22 12:24:36 +00:00
gbeauche
e616062d6d Apple GCC uses __ppc__ as the arch token 2005-06-14 06:35:00 +00:00
gbeauche
46f9e6d2ea Support JIT on Mach/ppc platforms. Mach/i386 (Darwin/x86) is to follow. 2005-06-14 06:32:52 +00:00
gbeauche
ef30f8e882 remove duplicate 2005-06-11 16:47:00 +00:00
gbeauche
e423a07632 Recognize POWER5 CPUs. ;-) 2005-06-08 12:12:50 +00:00
gbeauche
89643dbce0 Enable VidMode extension by default though some Xservers may still be
broken. Probably run-time check for the right VidMode version? My tests
were done with X.org 6.8.2 (VidMode 2.2)
2005-05-12 11:21:10 +00:00
gbeauche
0bce152c20 - Sync with latest B2 video_vosf.h updates.
- Enable VidMode extension with FBDev DGA graphics.
- Factor out FBDev/XF86 DGA code.
- Fix pointer grab in fbdev DGA mode, thus fixing scrolling screens in
  lower VidModes.
- Only select VidModes that match the requested resolutions, exactly.
- Fix VideoQuitFullScreen() in non FBDev mode.
2005-05-12 11:20:00 +00:00
gbeauche
1853c38130 fix inline asm for gcc4 2005-04-24 17:22:49 +00:00
gbeauche
8db2a3ef62 implement lvsl/lvsr instructions 2005-04-15 17:03:49 +00:00
gbeauche
ac6b7d760e What a silly thing I wrote! Really nuke the generated file, not the original
source. IOW, don't commit stuff when you are ill.
2005-04-07 22:35:47 +00:00
gbeauche
8f80b5ddba remove generated ppc_asm.S on make clean 2005-04-03 15:35:20 +00:00
gbeauche
8e512ca7fe Better lock and zero VOSF data, especially for DGA mode. Also make sure
that we really update the whole screen when sub-8bpp modes are used
2005-04-02 09:54:16 +00:00
gbeauche
b46eb9ae45 Only support True Color frame buffers. Make it possible to run-time switch
depth in FBDev DGA fullscreen mode.
2005-03-28 16:19:28 +00:00
gbeauche
f9e3fd28a1 better logics in sigstack allocation on native platforms 2005-03-28 09:50:58 +00:00
gbeauche
88b493bf38 fix make modules for Linux NetDriver 2005-03-28 09:06:46 +00:00
gbeauche
0f4440f99f Handle "screen fbdev/WIDTH/HEIGHT" to force use of FBDev DGA instead of XF86
DGA mode. In other words, root user can now use FBDev DGA though it's always
recommended to run SheepShaver with a normal user. Increase "ramsize" bounds
in the GUI and fully migrate to new "screen" modes. Remove "windowmodes" and
"screenmodes" defaults.
2005-03-28 09:05:28 +00:00
gbeauche
5810c6a764 Use "screen TYPE/WIDTH/HEIGHT" prefs item by default on Unix systems. The
former options (windowmodes/screenmodes) are migrated if the user uses the
GUI. Also make a note about EXPERIMENTAL state for jit68k.
2005-03-27 22:32:46 +00:00
gbeauche
abd2c5406f Add "screen" prefs item similar to Basilisk II. Don't ignore SEGV by default
as this could hide real bugs.
2005-03-27 22:08:33 +00:00
gbeauche
08e30a894e disable 68k DR emulator for now (not stable enough yet) 2005-03-27 22:06:52 +00:00
gbeauche
d27832cb1c - Implement fullscreen DGA via fbdev access under Linux. Besides, r/w access
to /dev/mem is required on Linux to use XF86 DGA mode. Otherwise, there is
now a fallback to fbdev.
- Forward port some features from Basilisk II (set_window_name,
disable_mouse_accel).
- Don't SIGSTOP the emulation thread on suspend since that would completely
stop the process on Linux. Use a frame buffer lock instead (as B2 does)
2005-03-27 19:05:18 +00:00
gbeauche
0bc6418ea6 Implement screen win/WIDTH/HEIGHT prefs item that overrides any other value
for windowmodes and screenmodes. Necessary for arbitrary full screen mode
sizes.
2005-03-27 14:53:04 +00:00
gbeauche
fbe378f780 Add custom video modes for full screen in unsual resolutions (e.g. 1400x1050).
X11 and SDL infrastructures have yet to be implemented
2005-03-27 13:44:45 +00:00
gbeauche
ca7a87465b Disable high-res timings as it could still hang. The advantage is that we
now can use special mutexes to debug deadlocks
2005-03-27 13:41:46 +00:00
gbeauche
d9a8a5c10f cross-compilation fixes 2005-03-24 23:39:19 +00:00
gbeauche
35a29f57df rearrange for win32 cross-compilation 2005-03-24 23:38:10 +00:00
gbeauche
2d6df7d54d Respin snapshot with functional Windows port + extra SDL keysym translations
in case keycodes were not used (e.g. includes key-'3')
2005-03-20 23:58:43 +00:00
gbeauche
86b049678f Windows specific configure script and Makefile 2005-03-20 23:45:17 +00:00
gbeauche
0db0d48bf0 Avoid the use of floating-point when loading/storing from/to memory. This
could have caused some rounding thus alterations to integer registers on
context switches when lfd/stfd instructions were used. e.g. cygwin compilers
defaulted to i686 code generation and exhibed this behaviour, you could also
see this behavior with -march=i586 -mtune=pentiumpro. GCC is perfectly right
to do those optimizations.
2005-03-20 23:07:11 +00:00
gbeauche
1fb076bc7b Check that we are running a Windows NT kernel >= 4.0 and drivers are
installed correctly (namely cdenable.sys)
2005-03-19 19:09:44 +00:00
gbeauche
9383e5bd50 Enable build with gtk2 and default to that UI if found. Otherwise, it's
still possible to select GTK1 as --with-gtk=gtk1 or --with-gtk=gtk.
2005-03-19 09:59:30 +00:00
gbeauche
b29b5e4e23 let it build against gtk2 2005-03-19 09:35:01 +00:00
gbeauche
8071d90849 workaround weird bug lying somewhere in cygwin generated micro-ops for
FP load/store of doubles
2005-03-19 07:18:18 +00:00
gbeauche
7fcb230d67 the current ethernet code is not direct addressing clean, so enable it only
if real addressing mode is available (e.g. this excludes win32 platforms for
now)
2005-03-19 04:31:59 +00:00
gbeauche
c044b1d8eb add windows specific sysdeps.h as they are stable enough now. lowered constant
offset to 0x02000000 so that we can cope with the new RAM_BASE value.
2005-03-18 00:03:32 +00:00
gbeauche
2990a3ddfc add missing AboutWindow file for Windows, that have yet to be fully
implemented however
2005-03-18 00:01:37 +00:00
gbeauche
cf16210d3a add other symlinks to B2/Windows files 2005-03-17 23:56:04 +00:00
gbeauche
0f90a78b5a Always set RAM_BASE to 0x20000000 for now as there could be some weird
problems depending on the amount of memory requested. Also fix
initialization of the system dependent timers. Remove unixism.
2005-03-17 23:48:50 +00:00
gbeauche
068e2075fc fix for native compilation under windows 2005-03-17 23:45:28 +00:00
gbeauche
536c81f641 fix when cross-compiling or using cygwin 2005-03-17 23:44:48 +00:00
gbeauche
287296b363 it makes more sense to dump the crash dump header to stderr 2005-03-17 23:40:01 +00:00
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
cd31ea2d80 mention improvements to the altivec code 2005-03-14 00:32:12 +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
fa6c3a521b Try to document major changes between released snapshots 2005-03-09 00:12:27 +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
0a61d5ea64 Add missing symlinks. Fix LN_S with source dirs contains spaces. 2004-11-22 22:21:33 +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
gbeauche
ba0b428bba MacOS X bundle stuff 2004-07-07 04:07:09 +00:00
gbeauche
ebdb5d29fd get timebase-frequency on osx too. 2004-07-04 05:19:44 +00:00
gbeauche
9545f93d3d More accurate Gestalt 'cput' values (G4, 750FX) 2004-07-03 17:48:44 +00:00
gbeauche
0669b02e5f Introducce TimebaseSpeed which represents exact timebase-frequency instead
of supposing it to be (BusClockSpeed/4), which is no longer true on G5 et al.
2004-07-03 10:39:07 +00:00
gbeauche
ddd6402a16 fix jump crossing init of start_time 2004-07-02 15:38:54 +00:00
gbeauche
e03fe79872 Move NQD to gfxaccel.cpp, since it does not depend on a specific system
implementation.
2004-07-02 06:06:34 +00:00
gbeauche
32a6ac321c Try to recognize and handle PowerPC 970 (G5). Untested as I don't have such
platforms handy.
2004-07-01 22:55:02 +00:00
gbeauche
ecbb2163ff Better hardware cursor mapping from SDL code. 2004-06-30 22:03:34 +00:00
gbeauche
d51727009e check for egrep 2004-06-30 08:51:37 +00:00
gbeauche
39a6cdf957 Avoid corefiles. Check for large file support (> 2 GB). 2004-06-30 08:48:45 +00:00
gbeauche
0d206db2e7 Use autoconf 2.5 so that we could get m4sugar macros (AS_VAR_PUSHDEF et al.)
and more importantly correct macros for AC_SYS_LARGEFILE support.

BTW, also fix test for <linux/if.h>
2004-06-30 08:45:14 +00:00
gbeauche
41035e5064 Fix Gestalt for PowerPC 745x processors. 2004-06-30 08:17:12 +00:00
gbeauche
eb9961585b Handle 750FX, 7450, 7455, 7457. 2004-06-29 20:25:55 +00:00
gbeauche
76bb0a9d60 fix typo 2004-06-27 22:14:09 +00:00
gbeauche
4b680a1ccb Add configure macros to check for -framework Carbon and -framwork IOKit so
that we can include ../MacOSX/clip_macosx.cpp (clipboard support),
../MacOSX/sys_darwin.cpp (cdrom, floppy et al. support). Also handle new
SDL keycodes file.
2004-06-27 22:12:52 +00:00
gbeauche
b6bf86c406 Fix typo in comment here too. ;-) 2004-06-27 20:36:51 +00:00
gbeauche
794ad50b0b Symlink MacOS X sys_darwin.cpp and clip_macosx.cpp 2004-06-27 20:18:08 +00:00
gbeauche
380d4f294e Make sure to initialize alt stacks before SIGSEGV handlers 2004-06-26 16:25:22 +00:00
gbeauche
3e5c98c7d4 Performance of VOSF is heuristically determined at run-time, so have to
initialize SIGSEGV handlers early, as in Basilisk II. Besides, also add
missing call to vm_init() in case host system doesn't have MAP_ANON.
2004-06-26 15:26:18 +00:00
gbeauche
df3cf1ac52 Add --enable-sdl-static option to use static SDL libraries. Useful e.g. on
MacOS X as user might not have SDL installed and I am using self-built
libraries placed into /usr/local/lib/*. Note this can add extra dependencies
to unused libraries.
2004-06-24 16:32:12 +00:00
gbeauche
67da895ec6 Check for strlcpy(). Check for "true" better with AC_PROG_PATH 2004-06-24 16:13:53 +00:00
gbeauche
0dcb2b4516 SDL support in SheepShaver too, though it doesn't work in native mode
on Linux/ppc as libSDL is pulling in libpthread which conflicts with
our sheepthreads.
2004-06-24 15:37:26 +00:00
gbeauche
20014c1c7c Provide Host2MacAddr(), which returns address in Mac address space. 2004-06-24 15:34:59 +00:00
gbeauche
10e94e8abd Symlink dummy/clip_dummy.cpp and SDL directory. 2004-06-24 15:31:50 +00:00
gbeauche
358def87a4 Fix for new SDL code in Basilisk II. 2004-06-23 14:41:49 +00:00
gbeauche
1c8f60e63a Disable VOSF on OSX, SIGSEGV recovery is too slow. 2004-06-22 22:41:44 +00:00
gbeauche
15f0ca6a22 Force use of MacX mappings on MacOS X with Apple's X server. 2004-06-22 20:01:18 +00:00
gbeauche
5357aac108 Fix VideoExit() on OSX, there was no cancellation point in redraw_thread. 2004-06-22 19:32:00 +00:00
gbeauche
e0a76f9e38 Don't handle XLM_IRQ_NEST atomically in emulated mode. That's useless since
this variable is modified only within a single thread and interrupts are
not handled asynchronously.
2004-06-22 17:10:08 +00:00
gbeauche
1988a45a16 More realistic "mftb" implementation, aka. fix AbsoluteToNanoseconds() and
generally speaking UpTime()-based stopwatchers.
2004-06-22 15:48:50 +00:00
gbeauche
070ac7079f Always handle interrupt even if InterruptFlags == 0, though it should not
really happen in practise.
2004-06-22 14:18:35 +00:00
gbeauche
f2324520b7 Improve timing of periodic threads (from Basilisk II), aka. make 10 seconds
really last 10 seconds, not 18. ;-)
2004-06-22 12:20:17 +00:00
gbeauche
2224cc63d0 MacOS 9.0.4 support. ;-) 2004-06-20 19:10:02 +00:00
gbeauche
cb46ffe97a Get PVR information et al. through (slow) ioreg -c IOPlatformDevice 2004-06-17 05:15:25 +00:00
gbeauche
5f98a013a5 Don't bother with predecode cache when using JIT. 2004-06-15 21:37:22 +00:00
gbeauche
72b26d7ff7 Stop forced compilation when entering a new JIT execution level. 2004-06-15 21:27:46 +00:00
gbeauche
aeab320c3f Speed up testsuite with JIT compilers. Fix exit code. 2004-06-15 21:02:24 +00:00
gbeauche
6eb8c20565 Merge event2keycode() from Basilisk II, aka. make Option key mapped to
Mode_Switch work as real option key. Merge caps_on handling from B2 too.
2004-06-11 22:09:27 +00:00
gbeauche
f574a5df05 Cleanups. Rewrite gen_bc() so that no push/pop could be inserted thus
causing crahes with some compilers. However, that's slower.
2004-06-09 16:36:44 +00:00
gbeauche
301d3a3192 STATS: Account for all interrupts, but still count native interrupts. It
turns out that for a regular bootup sequence to the Finder, less than 30%
interrupts triggered were in native mode.

Default EMUL_TIME_STATS to 0, end user probably doesn't want garbage to
be printed to his console.
2004-06-05 07:09:38 +00:00
gbeauche
1a4e0d5c40 remove now obsolete code 2004-06-05 06:30:58 +00:00
gbeauche
d5f6d59ad0 When no fullscreen mode requested nor available, always try to pick the
first windowed mode matching current depth.
2004-06-05 06:28:21 +00:00
gbeauche
a9c38c3598 Add "jit68k" prefs item to enable built-in 68k DR emulator. 2004-06-03 21:52:55 +00:00
gbeauche
bf17f78ac4 Disable testandset() locks, use pthread's as SheepShaver occasionnally hangs
with spinlocks. Weird as those are derived from x86 linuxthreads.
2004-06-02 16:11:49 +00:00
gbeauche
76c06c52e0 Fix and enable NQD (bitblt, fillrect) on little-endian platforms too 2004-06-02 15:41:34 +00:00
gbeauche
c8d897b558 Disable DR Cache for now, as I don't know why it occasionnally crashes. 2004-05-31 11:00:13 +00:00
gbeauche
374101ee9e Make DR Cache executable by default in native PowerPC mode. 2004-05-31 10:55:42 +00:00
gbeauche
389dd61d0d Check for SIGSEGVs from DR Cache code too. 2004-05-31 10:08:31 +00:00
gbeauche
a533a9c455 Enable DR emulator with OldWorld ROMs too. It turned out that translated
code was also trying to access Serial memory.

Note however that I noticed some rare crashes with the DR emulator.
Probably caused by nested runs from EmulOps? We'd really want a native
68k emulator too for Execute68k() things.
2004-05-31 10:02:20 +00:00
gbeauche
7bc86b27ee Enable Apple DR emulator from NewWorld ROMs only. 2004-05-31 09:04:44 +00:00
gbeauche
0241704587 Add GUI items for "idlewait" and "gfxaccel" 2004-05-25 16:12:14 +00:00
gbeauche
6eb7262000 STR_1152x768_CTRL => "Fullscreen 1152x768" 2004-05-25 15:33:24 +00:00
gbeauche
619aa9b319 Translate LMW, STMW and DCBZ instructions. 2004-05-23 16:34:38 +00:00
gbeauche
b0aae35951 Do FOLLOW_CONST_JUMPS for bcl 20,BI,TARGET branches too, since that's an
unconditional jump and we don't need the LR in that case.

Also fix this:
SheepShaver: ../kpx_cpu/src/cpu/ppc/ppc-translate.cpp:1499: powerpc_block_info* powerpc_cpu::compile_block(unsigned int): Assertion `dg.jmp_addr[i] != __null' failed.
Aborted

aka. StuffIt Expander + pressing the 'Cancel' button.
2004-05-23 06:41:25 +00:00
gbeauche
05bd5f40b4 Fix NativeOp code generation, especially in PPC_REENTRANT_JIT mode 2004-05-23 05:28:12 +00:00
gbeauche
f376933138 Attempt to fix direct block chaining code in corner cases. e.g. really
chain only blocks within page boundaries (compare against block entry point)
2004-05-22 17:57:36 +00:00
gbeauche
d9168c9869 add and fix testandset for x86_64 2004-05-20 17:46:49 +00:00
gbeauche
3a033cf79b atomic spcflags 2004-05-20 17:19:59 +00:00
gbeauche
bd6eaf680a Get rid of old (and broken) ASYNC_IRQ / MUTICORE code 2004-05-20 12:33:58 +00:00
gbeauche
3a960764ea Don't allow "recursive" NanoKernel interrupts 2004-05-20 11:47:27 +00:00
gbeauche
ec6c98035b Better interrupt context checking code 2004-05-20 11:05:30 +00:00
gbeauche
c3f2342f47 Make NativeOp() handler a sheepshaver_cpu handler, thus getting rid of ugly
GPR macro definition.

Make the JIT engine somewhat reentrant. This brings a massive performance
boost for applications that cause many Execute68k(). e.g. audio in PlayerPRO.
2004-05-19 21:23:17 +00:00
gbeauche
76bb058d70 Use memmove() in NQD_bitblt() in order to avoid possible overlaps 2004-05-16 15:48:25 +00:00
gbeauche
ae0e7293dd Don't take an EMUL_OP mode switch for Microseconds() and SynchIdleTime() 2004-05-15 17:26:28 +00:00
gbeauche
28eb840182 "idlewait" support for Linux and NewWorld ROMs 2004-05-15 16:36:44 +00:00
gbeauche
65e1edb5b2 Fix bus frequency detection for more realistic timers.
Also add bus-frequency and timebase-frequency values to the Name Registry.
2004-05-15 11:07:11 +00:00
gbeauche
3904a421d4 Use assembly optimizations on x86 for adde/addo/etc. emulation 2004-05-14 08:25:30 +00:00
gbeauche
2ee1e604eb Revert to use hw mac cursor acceleration in windowed mode 2004-05-14 08:24:31 +00:00
gbeauche
7da40bee5c Handle SAFE_INTERRUPT_PPC to check possible nested calls (and this happens) 2004-05-12 15:54:23 +00:00
gbeauche
4571aa1c23 Typos. In EtherIRQ sheep_net case, really grab size bytes from device 2004-05-12 11:42:12 +00:00
gbeauche
8f6a408701 chmod 755 installed tunconfig 2004-05-12 11:39:00 +00:00
gbeauche
f75394db90 Direct block chaining works on all supported platforms, enabled by default 2004-05-12 11:38:16 +00:00
gbeauche
05fad61b21 Direct block chaining works on all supported platforms 2004-05-12 11:36:39 +00:00
gbeauche
81ae2fee40 Direct block chaining on x86 and amd64 too. Optimize do_execute_branch_bo<>
No need to update Program Counter if we have direct linked blocks.

TODO: remove obsolete PC-related generators
2004-05-12 10:44:04 +00:00
gbeauche
15a0779328 Size optimization: don't generate jump_next_A0() code in block chaining
mode since the only case we would reach that is when there are pending
interrupts, thus needing to exit from this basic block ASAP. Otherwise,
we jumped to linker trampolines
2004-05-11 21:53:48 +00:00
gbeauche
08bcd2653d direct block chaining, aka faster block dispatcher 2004-05-11 20:53:25 +00:00
gbeauche
6c0e2a9f2a Disable MacOS -> X11 copying of cursor in windowed mode too. You can
recompile with "mac_cursor_enabled" constant set to true. Disabling it
causes a better looking cursor that is not "disappearing" sometimes with
e.g. Microsoft Internet Explorer.
2004-05-10 16:42:37 +00:00
gbeauche
21607e19ad Provide Mac_sysalloc() and Mac_sysfree() for memory allocation in MacOS
system heap zone. Use them for network related data dynamically allocated.

TODO: check performance in emulated mode!
2004-05-10 16:16:26 +00:00
gbeauche
f32e5ee9ab Optimize for 32-bit big endian platforms 2004-05-10 15:42:35 +00:00
gbeauche
fd8b5bbb7a Tentative little-endian fixes 2004-05-10 12:05:45 +00:00
gbeauche
cbc77b202d Link keycodes & tunconfig files, DESTDIR'ify Unix/Makefile 2004-05-09 17:55:11 +00:00
gbeauche
85347b85c7 TUN/TAP support 2004-05-09 17:44:18 +00:00
gbeauche
5164fc9dfc parentesisation 2004-05-07 14:19:50 +00:00