Commit Graph

1116 Commits

Author SHA1 Message Date
gbeauche
b662e6acec Add linker script for FreeBSD 5.3 (and probably newer). Verified to allocate
up to 1 GB of Mac RAM in both REAL_ADDRESSING and DIRECT_ADDRESSING modes.

NetBSD 2.0 can use the Linux linker script. However, I could not verify 1G
support since my installation does not permit this.
2006-03-15 06:54:07 +00:00
gbeauche
449c6496ff Link with AppKit framework on MacOS X. This should enable X11 builds when
there is no SDL available (suggested by Dara Hazeghi)
2006-03-14 22:14:13 +00:00
gbeauche
7ee9cb43dc Relocate MacOS X executable to 0x78048000 akin to linker scripts on Linux
arches. This probably already worked in the past but I have just verified
that Basilisk II works with up to 1 GB of Mac RAM in DIRECT_ADDRESSING or
REAL_ADDRESSING mode.

BTW, a quick Speedometer 4 CPU performance test showed a +15% speed increase
in real addressing mode vs. direct addressing. x86 arches don't benefit much
from that mode since they support complex address modes already (beyond plain
load/store).

TODO: check on MacOS X for Intel so that to reduce the test to darwin*:*)
2006-03-14 21:18:44 +00:00
nigel
fa84cf9a51 1. Happy New Year. 2. Minor syntax error 2006-03-14 09:38:24 +00:00
nigel
cce2d58228 Incorporate recent changes from Unix equivalent files 2006-03-11 11:45:25 +00:00
nigel
0fc35d5a91 Ensure event processing works in fullscreen mode 2006-03-10 08:16:56 +00:00
gbeauche
b80e9651f5 fix cross-block initializer 2006-02-27 13:39:29 +00:00
gbeauche
cafa8c8c89 add some barriers to make sure L_e_region* really come after the test insns 2006-02-27 13:38:52 +00:00
gbeauche
c19cc7a81b Updates 2006-02-27 07:25:43 +00:00
gbeauche
74c62b9095 - Try to allocate Mac memory only once on 32-bit systems
- Cap Mac memory to 1023 MB, Apple Personal Diagnostics crashes at 1 GB
- Scratch memory is meant to be addressed from Mac programs too
2006-02-27 07:24:58 +00:00
gbeauche
f446d610f8 Start allocating memory from 0x10000000 with linker scripts since the system
sometimes has a problem to make a decision when next_address == 0.

NOTE: this makes it possible to allocate up to 1 GB with DIRECT_ADDRESSING
2006-02-27 07:16:40 +00:00
gbeauche
9aab8c7d85 Move up _start base 2006-02-27 07:14:39 +00:00
gbeauche
93d918097b Fix vm_acquire_mac() fallback to non 33-bit addressing mode. Support 33-bit
addressing in REAL_ADDRESSING mode. Only support platforms with proper
linker scripts to map the whole Mac memory from address 0. Warning fix.

NOTE: when compiled with --enable-addressing=real on Linux {x86,x86_64},
you can not address up to 1.5 GB in Basilisk II.
2006-02-27 00:15:39 +00:00
gbeauche
2ef9d6e708 Add linker scripts for correct REAL_ADDRESSING support 2006-02-27 00:11:49 +00:00
gbeauche
077a232acc Memory allocated through win32 VirtualAlloc() is zero-filled. Likewise for
memory mmap()'ed with MAP_ANONYMOUS (equivalent to /dev/zero mapping but
faster)
2006-02-27 00:04:12 +00:00
gbeauche
735c332ab7 add 33-bit addressing support to vm_acquire_fixed() 2006-02-26 23:45:07 +00:00
gbeauche
dbc467e316 prefer lower indexes in register allocation, this avoids REX prefixes on
x86_64 when %r8 - %r15 are used (very light speedup expected)
2006-02-26 18:58:18 +00:00
gbeauche
91babf4bb5 fix FETOX & FTWOTOX translations for x86_64 2006-02-26 18:49:55 +00:00
gbeauche
c374d519a3 fix ROM85 bug fix for AppleShare extension 2006-02-19 14:18:29 +00:00
gbeauche
294664b726 Fix SAHF_SETO_PROFITABLE code for x86-64 platforms.
This was only an experiment. Improvement was marginal: only +3% on AMD64
(an Athlon 64 3200+). However, it may be interesting to test it on EM64T
(e.g. newer P4s) since an older P3/800, hence in 32-bit mode, got a +15%
improvement in Speedometer 4 benchmarks.

Rationale: lahf/seto sequences avoid load/stores to the stack (push/pop)
and it was thus hoped to be faster.

Anyhow, SAHF_SETO_PROFITABLE can only be enabled manually at this time.
Edit your generated Makefile for testing, but first make sure your CPU
supports lahf in 64-bit mode (lahf_lm flag in /proc/cpuinfo).
2006-02-06 23:06:54 +00:00
gbeauche
3b94dfb1a9 Cosmetics, fix %rh cases in !X86_FLAT_REGISTERS mode, lahf/sahf are now
valid instructions in long mode (recent enough CPU revisions: lahf_lm).
2006-02-06 22:57:18 +00:00
gbeauche
9ccf62f7b0 Manually emit LAHF instructions so that 64-bit assemblers can grok it 2006-02-06 22:55:44 +00:00
gbeauche
360a9457c6 fix logic 2006-01-27 23:49:01 +00:00
gbeauche
9d984b3b34 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:41:43 +00:00
gbeauche
e9e3ad9a4b Further unaligned access fixes on IRIX (Brian J. Johnson). Configury needed
to ensure compiler supports bit-field members of unsigned char type.
2006-01-27 23:31:38 +00:00
gbeauche
a615a4ac24 Use the most portable POSIX-style non-blocking I/O (O_NONBLOCK) instead of
BSD-style through FIONBIO. It turns out Tru64 and probably IRIX don't support
the latter when fd is a pipe (slirp case).
2006-01-24 23:46:19 +00:00
gbeauche
064973dbc7 ugly cast games 2006-01-24 21:33:26 +00:00
gbeauche
e0a966ee15 Code I wrote yesterday was totally broken. It's enough to make sure nPC is
correctly updated too... Instruction skipper now works on Solaris/SPARC.
2006-01-23 23:57:41 +00:00
gbeauche
99f5dcf66f - Fix SPARC Store Doubleword transfer_size in decoder.
- In the instruction skipper code, add a huge kludge (trampoline) to forcibly
  zero out %global registers when requested. Otherwise, Solaris/SPARC turned
  out to use %g1 during signal handling, and the zero we could have written
  to there vanished. This assumes [%sp-8] is valid to use (ABI states data
  below %sp is undefined though)
2006-01-22 23:14:48 +00:00
gbeauche
100a3e1abd Adapt for MacOS X for Intel, also fix thread_state type in forward_exception() 2006-01-22 00:05:05 +00:00
gbeauche
f0f76cd7ad Remove nigel's hack, I am confident the problem was MacOS X implementation of
poll() that was not a cancellation point, which I fixed (OSX/Intel 10.4.4)
2006-01-21 20:48:17 +00:00
gbeauche
ceb7488a77 poll() and select() are still not cancellation points in MacOS X 10.4.4... 2006-01-21 16:19:47 +00:00
gbeauche
a6156a17b7 streamline for standalone VOSF performance testing 2006-01-21 16:00:17 +00:00
gbeauche
335a9dd7f3 MacOS X bundle 2006-01-21 13:06:32 +00:00
gbeauche
5ee0a6741b Packet headers can be examined through unaligned addresses. This patch
fixes this, especially for MIPS & SPARC platforms. [Initial patch from
Brian J. Johnson]
2006-01-17 21:19:12 +00:00
nigel
998e1f7f7b A few more clashes with OS X headers (10.3 only?), update year 2006-01-16 23:10:33 +00:00
nigel
078efac834 Added the cosmetic feature that I forgot was in v17 2006-01-16 23:09:53 +00:00
nigel
ff7665cb2e Add a Networking section, update formatting in other parts of the text 2006-01-16 23:07:22 +00:00
gbeauche
e534b07a70 more precise callee-saved register set 2006-01-16 21:31:41 +00:00
gbeauche
12f103a83a JIT generated code is not guaranteed to be leaf, e.g. there could be a call
to a generic instruction handler (untranslated code). This caused problems
on MacOS X for Intel where the unaligned stack conditions turned out to be
more visible. Performance loss is really neglectable and this is the right
fix now anyway.
2006-01-16 21:31:08 +00:00
gbeauche
1b99c9501f fix stack alignment (theoritically but it was OK in practise) in generated
functions, move m68k_compile_execute() to compiler/ dir since it's JIT
generic and it now depends on USE_PUSH_POP (as it should)
2006-01-15 22:42:51 +00:00
gbeauche
2bc7887bc1 fix framework detection on OSX/intel (thanks toshi for the remote access ;-) 2006-01-15 11:38:41 +00:00
nigel
a398b4a32a 10.4 builds are fine, but not when using Xcode 2006-01-05 03:37:56 +00:00
nigel
fc83144337 Update in what OSs this compiles under 2006-01-05 00:36:20 +00:00
nigel
9dbc9e276d Another year, OS X port networking now works, seperate OS X slirp
and udp tunneling descriptions by an extra blank line
2006-01-04 06:28:55 +00:00
nigel
681187bfc2 Another two years! 2006-01-04 06:23:57 +00:00
nigel
bdf1e05605 Version 17 test was a bit messy 2006-01-04 06:20:38 +00:00
nigel
ca2dba38fe Another year, another version 2006-01-04 06:14:55 +00:00
nigel
e47c1c50cd There is now a fix (er, hack) for the ethernet thread exit problem,
so move it from bugs to "wouldn't it be nice if ..."
2006-01-04 06:14:26 +00:00
nigel
4b000e4dad Clean up after configure 2006-01-04 06:11:04 +00:00
gbeauche
a2840298b0 - factor out native_byte_order determination
- fix ExpandMap[] when client X image byte order is different than host's
  e.g. { mips, ppc } -> x86 in 8 bpp mode
2006-01-03 22:03:27 +00:00
nigel
c08ed3ccd5 Add SLIRP changes to Project Builder file (10.0 and 10.1) 2005-12-30 01:56:03 +00:00
nigel
641fa2c01e Compiling on Mac OS X 10.2 doesn't define uint8_t using the standard headers.
Including stdint.h should be safe, but if it clashes, we could put an OS X
specific wrapper around it: #if (defined(__MACH__) && defined(__APPLE__))
2005-12-30 01:19:53 +00:00
nigel
5d09d2b6c4 Small hack for clean exits on Nigel's OS X port 2005-12-29 13:40:25 +00:00
nigel
3802e35346 Working EtherNet (SLIRP), minor doco update, semaphore.h needed for Unix src. 2005-12-29 13:06:12 +00:00
nigel
a4bac33b8b A few more updates from latest Unix configure.ac 2005-12-29 00:32:43 +00:00
gbeauche
bdcf8efe2e Link with math library (-lm) on IRIX so that to get support for long double
arithmetic. Also make sure to only use -IPA with MIPSPro Compilers.
2005-12-04 15:45:09 +00:00
gbeauche
0ca22128d6 Fixes for IRIX/mips build with MIPSPro compilers 2005-12-04 15:23:02 +00:00
gbeauche
dbd5736f1d Fix Serial build on IRIX, remove the STDC_HEADERS manually defined macro
since it now works (egrep was missing previously, IIRC)
2005-12-04 15:03:11 +00:00
gbeauche
41fb85a3e7 Protect the SDL events queue when changing the cursor map in SheepShaver,
aka fix "Xlib: unexpected async reply" messages in SDL/x11 builds.
2005-11-29 23:20:31 +00:00
gbeauche
56f0207ebe Initial support for NDIS interfaces selection (very preliminary but working
for me on Windows XP, and actually faster than NAT/Router ethernet emulation)
2005-11-29 22:59:44 +00:00
gbeauche
f16f343b76 add support for "cdrom" drive selection 2005-11-29 20:54:57 +00:00
gbeauche
434ad38a1f SheepShaver GUI, remove extraneous "slirp" currently inexistent for Windows 2005-11-27 23:51:47 +00:00
gbeauche
a2cb2c6280 SheepShaver glue for Ethernet support. Remove duplicate "Set source address"
case from common code.
2005-11-27 22:18:29 +00:00
cebix
9cdff5117f ignore floppy device open fail in Sys_open() so the floppy drive will be
operative even if no disk was inserted at startup
2005-11-24 17:23:43 +00:00
cebix
92551146fc modernized Linux sound device detection 2005-11-24 17:03:15 +00:00
cebix
f450308b2f modernized Linux floppy detection 2005-11-24 17:02:59 +00:00
cebix
a415ed6117 added missing virtual destructor 2005-11-24 16:43:11 +00:00
gbeauche
b57b53ee75 Windows GUI: set "frameskip" to 1 when switching to fullscreen mode 2005-11-22 22:57:30 +00:00
gbeauche
05f4a79aa9 last minute TODO 2005-11-22 22:42:03 +00:00
gbeauche
1f66e31423 undo unwanted change for now (double check this one later) 2005-11-22 21:57:59 +00:00
gbeauche
af7973a79c fix build with gtk-1.2 2005-11-22 21:53:24 +00:00
gbeauche
3e8ac0eaa8 Update: Windows GUI is still missing detection of NDIS interfaces 2005-11-22 21:21:24 +00:00
gbeauche
81853597ea try to add missing changes and regroup them better 2005-11-22 21:20:30 +00:00
gbeauche
4c4b24026f fix copyright dates 2005-11-22 20:29:46 +00:00
gbeauche
dd2b492086 "jitlazyflush" prefs item type was changed to bool some time ago, this fixes
this and enables the GUI to set it to true by default, as expected.
2005-11-22 06:48:55 +00:00
gbeauche
5fbaa95fbc Windows HACK: default to the DIB driver as it looks smoother to me and
doesn't require locking the surfaces, which probably the cause of apparent
slowness when using the DirectX backend. This needs to be investigated more
2005-11-22 06:26:35 +00:00
gbeauche
a7da877356 Remove obsolete Cygwin/X11 addressing hack. Fix DirectX fullscreen mode
with hardware surface. On the other hand, DIB (SDL_VIDEODRIVER=windib)
always seems the fastest on my system for both windowed and fullscreen
modes.
2005-11-21 23:38:46 +00:00
gbeauche
934975e12b add support for instruction skipping on windows too 2005-11-21 22:13:56 +00:00
gbeauche
88246b3622 don't remove config.h.in in make distclean 2005-11-21 22:03:53 +00:00
gbeauche
9c06a00dd2 GUI cosmetics from the Windows port: add "browse" button to ROM & keycodes
file selectors, improve "Memory/Misc" pane to be more attractive and simplify
RAM size selection, rename to "Keyboard/Mouse" pane to match the actual order
of elements in the pane, make "<control>-S" save/start the config.
2005-11-21 21:39:08 +00:00
gbeauche
c830fd7f02 Windows GUI: don't mess the button pad, map '<ctrl>-S' to Start/Save config 2005-11-20 23:59:18 +00:00
gbeauche
2fadb1707c Try to be a bit more descriptive 2005-11-20 23:55:17 +00:00
gbeauche
3ab9970f0c Windows GUI: disable SCSI settings for now since they are not merged yet,
handle Ethernet (NAT/Router module, None) and actually execute BasiliskII.exe
2005-11-20 23:47:42 +00:00
gbeauche
3cd04e58e1 GUI cosmetics: translation cache size is expressed in Kilo Bytes (KB) 2005-11-20 21:58:30 +00:00
gbeauche
ad4f3b2afd Windows GUI: fix creation of new volumes, handle "Enable external file system",
"Enable polling", add "Browse" button for keycodes file chooser.
2005-11-20 21:56:06 +00:00
gbeauche
148a4d1647 Windows GUI resources 2005-11-20 17:45:29 +00:00
gbeauche
b52fd5535b GUI cosmetics 2005-11-20 17:26:16 +00:00
nigel
185141ee4b Another minor 10.4 fix, Marcus Gail's CD-ROM boot UI fix 2005-10-15 10:38:22 +00:00
nigel
b78c71dab6 Update official B2 web page 2005-10-15 10:22:27 +00:00
nigel
ab9fa2c293 Minor change to Mc OS X details 2005-10-15 10:21:40 +00:00
nigel
1f5092a9af Fixes from latest Unix version (no more black screen bug!) 2005-09-19 07:49:12 +00:00
nigel
891e284c40 Re-sync with Unix version. Fixes black screen bug 2005-09-19 07:45:07 +00:00
nigel
0c96c9bbbf No need for classic mode 2005-09-19 07:38:55 +00:00
nigel
9ef0599095 Recent fixes mean there is no "classic" build, so update doco 2005-09-19 07:24:10 +00:00
nigel
110318fb69 Some more 10.4 fixes by Kirk Kerekes 2005-09-19 06:02:47 +00:00
gbeauche
a750963a94 don't grab in -mdynamic-no-pic with icc, note that you need icc >= 9.0.25
to have a working build
2005-08-18 22:10:15 +00:00
nigel
82e6f0cbd4 Added a few more bugs 2005-08-14 12:24:40 +00:00
nigel
029c61ff20 Added install item 2005-08-14 12:22:31 +00:00
nigel
d8c85284f4 Stylistic (and possible GCC3/4) fix 2005-08-14 12:21:27 +00:00