Commit Graph

1212 Commits

Author SHA1 Message Date
gbeauche
9fa1bbd972 According to kernel sources, that is XNU 344.49 (10.2.8), XNU 517.12.7 (10.3.9),
XNU 792.21.3 (10.4.10) and XNU 1228 (10.5.0), exception handler code[1] always
contains the fault address nowadays. So make it the default fast path but keep
provisions to check that at run-time first.

This yields a nearly 4x improvement in SIGSEGV recovery but MacOS X is still
suboptimal wrt. Linux, so VOSF is still not possible with frameskip == 0.

XXX: the ppc kernel had bugs that caused DAR (put into code[1]) to be incorrectly
decoded. This would need a broader test audience or more careful audit of the
sources changes.
2007-12-30 12:11:17 +00:00
gbeauche
7e7827a886 More overrides for MacOS X. 2007-12-30 09:15:32 +00:00
gbeauche
016dfddd79 Sync with the new SIGSEGV API. 2007-12-30 08:47:34 +00:00
gbeauche
902079ec8e Improve API for systems that require explicit calls to functions to retrieve
the memory addresses that triggered a SIGSEGV (e.g. MacOS X).
2007-12-30 08:45:18 +00:00
gbeauche
25c5b9599e Update to slirp sources from QEMU 0.9.0:
- fix UDP (Jason Wessel)
- enable TCP_NODELAY for slirp redirection (Daniel Jacobowitz)
2007-11-03 16:36:35 +00:00
gbeauche
b899d55068 Don't raise SIGPIPE, let errno be set to EPIPE. i.e. this fixes slirp ethernet
mode with no listening port on the remote host.
2007-11-03 11:31:36 +00:00
gbeauche
d7eb0f4d6d Update to slirp sources from QEMU 0.8.2:
- set slirp client hostname
- fix slirp redirection on systems without a useful host IP address
- separate alias_addr (10.0.2.2) from our_addr (Ed Swierk)
- fix 32+ KB packets handling (Ed Swierk)
- fix UDP broadcast translation error
- solaris port (Ben Taylor)
2007-11-03 11:11:42 +00:00
gbeauche
c3a75ac75a Add VERSION file so that to track differences from "upstream" slirp sources, i.e. QEMU. 2007-11-03 10:01:27 +00:00
gbeauche
d83c11faa2 Host OS name representation must be large enough to handle any kind of native
encoding (e.g. UTF-8 on MacOS X).
2007-11-03 09:59:39 +00:00
gbeauche
9000d4f54c Rewrite ExtFS support for MacOS X. This implementation uses xattrs (metadata)
on Tiger+ to store FInfo and FXInfo. Otherwise, plain old .finfo/ helpers are
used. "Safe" flags and fields are always synchronized to/from MacOS X.

BTW, CFString leak was fixed at the same time.
2007-11-01 15:33:22 +00:00
asvitkine
a70c79b3cb support for prefs stuff 2007-07-28 15:45:12 +00:00
gbeauche
a5778cd5cb Fix xBCD instruction for 68040 emulation: the NV flags shall not be affected. 2007-06-30 08:00:31 +00:00
gbeauche
35bf8b2c25 Use NSIMAGE graphics mode for MacOS X on Intel platforms for now. Otherwise
it's crashing in some Apple code.
2007-06-30 07:33:30 +00:00
gbeauche
7f2dfe7f4f Fix LSL & LSR instructions so that they preserve the X flags when the
shift count is 0. Likewise for ASR + another improvement to avoid shifting
by halves (propagated bit is reset to original's when necessary).
2007-06-29 16:53:04 +00:00
gbeauche
9c13d5cda9 Implement CMOV.B and CMOV.W translations. Only the latter has a native
x86 equivalent however.
2007-06-29 16:36:03 +00:00
gbeauche
b3f62598b7 More human readable instruction names (from e-uae). 2007-06-29 16:32:05 +00:00
gbeauche
e3f9d46556 Improve heuristic for VOSF profitability: we should not spend more than
the half of a video interrupt quantum for updating the screen. Also improve
the wording of the result.
2007-06-16 07:24:39 +00:00
gbeauche
320b4ccd61 Add Darwin/x86_64 support. Fix EDX register index for i386 insn decoder. 2007-06-16 06:21:57 +00:00
gbeauche
e9c5625ada Fix REAL_ADDRESSING mode on MacOS X, aka move Mach defines to config_macosx.h
and fix lowmem (BLESS) to handle other-endian binaries.
2007-06-15 22:54:24 +00:00
gbeauche
41df47a596 Disable cxmon by default for MacOS X builds. Add hackery to cross-compile
a working 10.2/ppc binary.
2007-06-15 21:46:25 +00:00
gbeauche
92ff210e4f Enable universal builds with --enable-universal
Move arch-dependent definitions to config_macosx.h, i.e. make them compile
time instead of configure time. Support IEEE FPU emulation core only.
2007-06-15 17:11:46 +00:00
gbeauche
7015458281 Fix cxmon files inclusion. Drop support for non ppc & x86 MacOS X arches.
Make JIT files & defs selection at build-time, not configure-time (FATs).

NOTE: be careful, larger changes are yet to come.
2007-06-15 10:11:28 +00:00
gbeauche
e2e8558ff1 Build MacOS X binaries only from the command line. Prepare the configure
scripts as follows: [NO_CONFIGURE=1] ../Unix/autogen.sh

Second round will be to build FAT binaries.
2007-06-15 09:16:58 +00:00
gbeauche
9617ca3033 Fix MOVEC for 68020/68030 emulation (MSP & ISP are supported control regs). 2007-06-15 08:10:48 +00:00
gbeauche
b05833a86b Fix JIT for 68020/68030 emulation mode. 2007-06-15 08:09:01 +00:00
gbeauche
3f535d30da Add support for comma-separated elements in "jitblacklist" item. 2007-06-15 07:55:03 +00:00
gbeauche
0a7fe2eaf8 Workaround video mode switch problems. IOW, make sure to always allocate
the frame buffer at the same base address.
2007-06-14 14:45:54 +00:00
gbeauche
b1900fbd06 Handle "idlewait" option. 2007-06-13 16:11:31 +00:00
gbeauche
31a754b2e6 Raise INTFLAG_1HZ in RTCInterrupt() 2007-06-13 16:10:05 +00:00
gbeauche
f20c1ca30b Remove dead code, B2 doesn't use valid_address() 2007-06-13 15:57:46 +00:00
gbeauche
03833e4c56 Fix autogen.sh to automatically include the local m4 directory, used as a
fallback if system-wide defs are not found.
2007-06-13 13:27:40 +00:00
gbeauche
4ec66db185 Add MIPS files from cxmon. 2007-06-07 11:52:14 +00:00
gbeauche
974f086a8c Arrangements for Linux/mips. 2007-06-05 13:15:57 +00:00
asvitkine
5bbda1a589 byteswap styled text (clipboard) on little endian host OS X 2007-02-18 21:11:41 +00:00
asvitkine
e2cde00af4 fix compile warning & potential buffer overflow at the same time 2007-01-24 05:42:23 +00:00
asvitkine
f12f5173be macroman_to_host_encoding - so it works the other way around too 2007-01-24 02:37:06 +00:00
asvitkine
ab86a395da Since Guest and Host OS may use different text encodings for filenames,
I am adding functionality to support this. For the moment, I've only
added the platform-specific conversion for MacOSX (ie: UTF8 -> MacRoman),
but others can be added later.
2007-01-22 17:14:06 +00:00
asvitkine
efa4fee4ac cleanup: use get_device_path() since we already have it, instead of doing
the same thing manually with duplicated code
2007-01-22 14:58:33 +00:00
asvitkine
dc68e99f7c fix compile warnings w/ slirp caused by not including stdlib 2007-01-22 14:48:40 +00:00
asvitkine
48907db336 Ok, now this works properly (Fix resolution switching without affecting audio). 2007-01-22 00:36:32 +00:00
asvitkine
268af8086b back out my previous change, it breaks audio 2007-01-22 00:32:25 +00:00
asvitkine
473a3f2e22 Fix for resolution switching corruption under SDL (Mac OS X). 2007-01-21 19:33:13 +00:00
asvitkine
a3c2413f3b ignore disks on which you can't get size 2007-01-21 18:06:39 +00:00
asvitkine
16bb0823b8 some documentation of status codes not yet implemented 2007-01-21 17:40:00 +00:00
asvitkine
28d7af3820 newline in error msgs 2007-01-21 17:27:15 +00:00
asvitkine
e9fbc36368 fix compile warnings on OS X 2007-01-21 17:10:49 +00:00
asvitkine
10b342e064 Byteswapping fixes for Mac OS X x86 2007-01-21 17:04:47 +00:00
gbeauche
3c100abdb2 Fix CMOV emulation on x86_64 in case the CPU doesn't support that instruction
(which is very unlikely).
2007-01-14 13:23:36 +00:00
gbeauche
8d2f2a335b The older code generator is now deprecated on x86-32 too. 2007-01-14 13:07:22 +00:00
gbeauche
1f2e561a6f Use SAHF_SETO_PROFITABLE wherever possible on x86-64, it's faster. This can't
be the default because some very ancient CPUs don't support LAHF in long mode
2007-01-14 12:23:29 +00:00