gbeauche
a4209f5db0
Arrangements for the SIGSEGV perf tester.
2008-01-20 11:51:08 +00:00
gbeauche
2bdb300da1
HPPA support.
2008-01-20 00:39:51 +00:00
gbeauche
acd35671b8
HP-UX does support 32-bit memory mappings.
2008-01-20 00:38:52 +00:00
gbeauche
88ea04a365
Add support for HP-UX/ia64. It would be best to use libunwind so that to
...
handle stacked registers access with ease...
2008-01-19 22:27:29 +00:00
gbeauche
3615be1d4d
Use fixed-size integer types, especially for 64-bit quantities. HP-UX for IPF
...
is essentially an ILP32 platform but machine registers are 64-bit wide. Make
IA64_SET_GR() set the NaT bit at the same time as the register value.
2008-01-19 22:25:27 +00:00
gbeauche
b5ac45434a
Fix build on 64-bit Vista.
2008-01-17 23:19:01 +00:00
gbeauche
69376f61ca
Wrap the Windows write-watch API.
2008-01-16 22:36:35 +00:00
gbeauche
ef39e46cb2
Fix build on MacOS X Leopard.
...
Leopard kernel faster? This is pure marketing hype. For 32-bit applications,
Mach exception recovery is 60% slower. For 64-bit applications, this is up
to 40% faster though. In any case, MacOS X remains pretty slow wrt. Linux...
2008-01-14 19:29:29 +00:00
gbeauche
df3475ed16
64-bit Windows support
2008-01-12 23:01:40 +00:00
gbeauche
f5e5da6916
LLP64 fixes (64-bit Windows)
2008-01-12 21:43:02 +00:00
gbeauche
b1fa25128a
Make it possible to override the Mach fault recovery scheme through an
...
environment variable: SIGSEGV_MACH_FAULT. It can be set to "direct" to
assume the fault address comes from code[1] argument, or "slow" to use
the slow path through thread_get_status(EXCEPTION_STATE)->faultvaddr.
2008-01-07 22:44:39 +00:00
gbeauche
58ff9aba45
The Linux kernel actually allows to restart execution from the specified slot
...
in the bundle. This is faster and more accurate as this avoids emulation.
Also clean-up code so that to prepare the use of lib uaccess on hpux/ia64.
XXX: this will need explicit use of uint64_t to define registers because
HP/UX is ILP32 capable and all registers are 64-bit capable so "unsigned long"
won't fit.
2008-01-06 17:22:19 +00:00
gbeauche
8aadf8e455
Further comment the ia64 decoder and (minimal) emulator.
2008-01-06 16:36:00 +00:00
gbeauche
57ae6ed470
Add initial support for instruction skipping on Linux/ia64. It was more
...
complex than expected but it was fun to play with. Who designed this ISA?
I'd love to see how the decoder is implemented in HW, by all means it is
not "simplified" unless I missed some pattern...
2008-01-06 16:25:03 +00:00
gbeauche
a56e4b9be0
Hack around over-optimized labels-as-values extension from GCC.
2008-01-06 16:19:27 +00:00
gbeauche
e08bb16edf
ISO C++ conformance fixes: remove superfluous coma at the end of enum definitions.
2008-01-06 16:10:30 +00:00
nigel
85dfeb1522
Corrent HTML for the accent on Gwenolé's name
2008-01-06 05:14:50 +00:00
gbeauche
a93bec88fd
Don't clobber "sip" arg from our sigsegv_info wrapper (renamed to SIP).
2008-01-05 08:35:08 +00:00
nigel
6069d6814c
Replace mention to 1_prepare_files.sh script with discrete commands
2008-01-02 23:19:54 +00:00
gbeauche
c578952735
Add macros for SSSE3 instructions encoding (PSHUFB in particular).
2008-01-01 21:48:41 +00:00
gbeauche
c8cb4879a4
Happy New Year!
2008-01-01 09:40:36 +00:00
gbeauche
26f9b1d38b
Fix instruction skipping on MacOS X in the fast path case.
2007-12-31 18:07:01 +00:00
gbeauche
b5ac365858
Add support for 64-bit MacOS X for PowerPC (untested beyond "it compiles").
2007-12-31 06:59:39 +00:00
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
gbeauche
2e95c43bf2
Remove the 33-bit addressing hack as it's overly complex for not much gain.
...
Rather, use an address override prefix (0x67) though Intel Core optimization
reference guide says to avoid LCP prefixes. In practise, impact on performance
is measurably marginal on e.g. Speedometer tests.
2007-01-13 18:21:30 +00:00
gbeauche
9e252b413e
Fix 64-bit builds in REAL_ADDRESSING mode with gcc4.1.
2007-01-13 17:21:08 +00:00
nigel
a8e7114df2
Do'h. Checked in and shipped a DEBUG=1. Thanks to Steve Green for his fast eyes.
2006-08-01 03:31:46 +00:00
nigel
9a3097705d
Clarify CD insertion state, add widescreen suggestion
2006-07-31 11:10:59 +00:00
nigel
1b25d07fd6
Final doco changes before a new release
2006-07-31 10:51:24 +00:00
nigel
acb3384366
Sound done, VOSF pointless, Cut/paste half working, CD insert
2006-07-31 10:10:48 +00:00
nigel
9e9e20325e
Use Gwenole's clip_macosx.cpp instead of the dummy version
2006-07-31 08:52:33 +00:00
nigel
ecf2403c46
ether_unix.cpp somehow pulls something in that needs mem_banks.
...
If it isn't compiled in this directory, the wrong config.h is used.
2006-07-31 08:47:52 +00:00
nigel
1dad46a8ad
Project file updates for the new audio source files.
2006-07-29 02:24:15 +00:00
nigel
c68e5d916d
Working audio output by Daniel Sumorok.
...
Not quite the way I wanted to do it but it will do for now.
(on a real Mac, the real audio hardware should be able to pull/grab the data
from our buffers - an extra thread with its own set of buffers is wasteful!)
2006-07-28 13:42:29 +00:00
nigel
938c61485c
Resync with latest src/Unix/configure.ac
2006-07-28 13:28:54 +00:00
nigel
3e21f0377b
Giving up on the Objective-C version, also need to remove it from the makefile
2006-07-28 13:18:12 +00:00
nigel
f44d37bac8
Working audio output by Daniel Sumorok.
...
Not quite the way I wanted to do it but it will do for now.
(on a real Mac, the real audio hardware should be able to pull/grab the data
from our buffers - an extra thread with its own set of buffers is wasteful!)
2006-07-28 13:15:18 +00:00
gbeauche
7af6665619
icc9.1 & gcc4.1 warning fixes
2006-07-23 10:20:23 +00:00
gbeauche
87e1518e96
A few fixlets to the SIGSEGV library:
...
- Don't export transfer types definitions (formerly used by older API)
- Handle ADD instructions in ix86_skip_instruction() (generated by icc 9.1)
- Use "%p" format for EIP/RIP addresses
2006-07-19 21:31:10 +00:00
gbeauche
d1d7d5bd4c
Fix remove_shm_range() to actually return something
2006-07-19 21:23:41 +00:00
gbeauche
f39c252fbd
Fix 33-bit addressing mode check when compiling with icc 9.1
2006-07-19 21:22:41 +00:00
gbeauche
53f79caf8c
Add LEALQmr, EMMS, SSE CMP and a series of new SSE opcodes (auto-generated)
2006-07-17 04:07:41 +00:00
gbeauche
9e64c3af94
Add more SSE templates for new SheepShaver's code generator -- though it
...
should be made independent of this file.
2006-07-14 16:53:48 +00:00
gbeauche
b4768fc62c
Run-time assembler fixes:
...
- Check for RIP register only in 64-bit mode
- Add missing macros and arguments (BT*im)
- MOVSWQ/MOVZWQ are 64-bit mode instructions only
2006-07-14 09:09:12 +00:00
nigel
c071cd14f6
libgenemu can't find regflags in the XCode built newcpu.o,
...
so we compile it from the makefile into the lib, and not in the project
2006-05-25 05:03:03 +00:00
gbeauche
e4f5757403
Merge from the QEMU tree:
...
- Fix IP packet re-assembly logic (Ed Swierk)
- Suppress unaligned accesses (Fabrice Bellard)
2006-05-14 17:27:38 +00:00
gbeauche
ab1565ced2
Support up to 1GB in SheepShaver for Windows now.
2006-05-14 16:13:54 +00:00
gbeauche
7660affe77
Windows apparently needs an extra mouse event to make the new cursor image
...
visible.
2006-05-14 14:11:46 +00:00
gbeauche
3aa9d912b7
Fix build on Windows (<malloc.h> for alloca())
2006-05-14 13:49:53 +00:00
nigel
1a7d3714fb
Compile the CPU emulator in the makefile, so that it picks up configure-
...
generated #defines that are needed for running on X86 (vs PPC) emulator
2006-05-14 11:58:41 +00:00
nigel
c5c748f7e2
Some windowed graphics drawing methods cause the snapshot code to fail
...
if you have changed the depth since boot (seems to be something strange
with the parameters that I still haven't worked out). If this happens,
we now put a suggested workaround in the warning message.
2006-05-14 10:17:06 +00:00
gbeauche
98675da523
Fix NQD bounds checking -- don't overwrite the CLEAR Page Guard.
2006-05-14 08:32:05 +00:00
gbeauche
26a71e5417
Fix page alignment
2006-05-14 07:11:23 +00:00
gbeauche
1470a8af13
NQD dirty boxes, SDL backend.
...
This reduces the number of Screen_fault_handler() calls by 80%. i.e. VOSF
is now viable on this turtle MacOS X. Besides, since there is no buffer
comparison, idle sleep can really be effective. SheepShaver in idle mode
on my PBG4 now goes below 8% of CPU resources instead of 70-80% with
bounding boxes based video refreshes.
Caveat: if your program doesn't use standard MacOS routines that call NQD,
then you can expect slower (visual) performance. However, I do think the
new default behavior (VOSF+NQD) is the most common.
2006-05-13 16:58:44 +00:00
gbeauche
e4015e069f
Use NQD dirty boxes, VOSF backend
...
+ make video_vosf_profitable() NQD accel aware
+ call vm_protect() only if PFLAG_CLEAR(page)
2006-05-13 16:48:47 +00:00
gbeauche
3b07ba27e4
Introduce a new video refresh function that uses smaller bounding boxes.
...
This does not improve graphics performance but helps CPU because it reduces
the number of bytes transfered to actual screen. I saw an improvement by up
to 26% in frameskip 4 800x600x16 but also a hit by 3% with frameskip 0.
The next step is to use NQD bounding boxes to help detecting dirty areas.
So far, this is the best I can do without VOSF working (MacOS X performance
bugs -- pitifully slow Mach syscalls)
2006-05-11 07:51:32 +00:00
gbeauche
5019174a22
SDL Video updates:
...
- Properly handle migration from "screenmodes" and "windowmodes" to "screen"
- Fix has_mode() logic to really test for actual mode availability. i.e.
no longer start in large screen mode if user specified a max size.
2006-05-09 21:41:02 +00:00
gbeauche
4c225b2705
MacOS X exception handling updates:
...
- Call user handler for KERN_INVALID_ADDRESS too (SIGBUS)
- Check for VALID_THREAD_STATE_FLAVOR in forward_exception()
- Return KERN_FAILURE if forward_exception() got an unknown behavior code
2006-05-09 06:24:05 +00:00
gbeauche
24af8d27c3
Fix for LAZY_FLUSH_ICACHE_RANGE. Blocks are indexed by native addresses.
2006-05-08 16:56:07 +00:00
gbeauche
ecdc036c69
Adapt for new functions (DarwinSysInit() & DarwinSysExit())
2006-05-08 15:22:56 +00:00
gbeauche
61a2e86594
Rewrite MacOS X CD-ROM support.
...
Other bugs fixed:
- CD-ROM media are polled and now can be changed without rebooting
- Buffer overflow, memory leak and extra wait in CD-ROM ejection code
2006-05-08 12:15:58 +00:00
gbeauche
ff950c35e6
fix underquoted definition warning
2006-05-05 07:37:14 +00:00
gbeauche
5d3f53943d
Add another NULL pointer check
2006-05-05 06:00:17 +00:00
gbeauche
1314f09a68
remove
2006-05-05 05:56:52 +00:00
gbeauche
2bff888cee
updates
2006-05-05 05:56:20 +00:00
gbeauche
828b53b990
fix rev 1.22 commit for windows (extraneous return -1 left)
2006-05-02 19:49:25 +00:00
gbeauche
51a5e4c0da
Don't build a built-in GUI if --enable-standalone-gui was requested.
...
The following configurations were tested:
./configure --without-mon --with-gtk=gtk1 --enable-jit-compiler [B.GTK1]
./configure --without-mon [B.GTK2]
./configure --without-mon --enable-standalone-gui --without-gtk [no GUI]
./configure --without-mon --enable-standalone-gui --with-gtk=gtk1 [S.GTK1]
./configure --enable-jit-compiler --enable-standalone-gui [S.GTK2]
2006-05-02 05:36:42 +00:00
gbeauche
62389bb3c0
Add my local changes to GTK+OSX 0.7 -- it's only correct for Basilisk II
...
and SheepShaver purposes. i.e. it's not fully suitable as a generic
g_main_run() replacement.
2006-05-01 23:09:12 +00:00
gbeauche
daa0af4da6
improve locks
2006-05-01 13:13:18 +00:00
gbeauche
f853ce6c5b
Handle compatibility with older preferences files.
...
- routerenabled true
- ether GUID
both have priority over regular options.
2006-05-01 10:42:00 +00:00
gbeauche
c9c21cf70d
Add ether "tap" support to the GUI. Also fix "slirp" callback.
2006-05-01 10:27:17 +00:00
gbeauche
11ff11d205
Add experimental TAP-Win32 support. It looks rather sluggish to me, something
...
is probably wrong somewhere...
2006-05-01 10:23:47 +00:00
gbeauche
6590198dd8
aha, quick fix ;-)
2006-05-01 06:14:08 +00:00
gbeauche
5fed65456b
Implement better Windows suspend/resume routines so that we don't oversleep.
...
i.e. really wake up the thread on next TriggerInterrupt().
2006-05-01 06:12:50 +00:00
gbeauche
2e6ae14c4c
Note new "idlewait" feature
2006-04-30 21:49:50 +00:00
gbeauche
8ccf336660
Add "idlewait" to Basilisk II for Windows
2006-04-30 21:46:31 +00:00
gbeauche
5aa8c9f86f
Tentative fixes to BeOS idle suspend/resume routines. Well, I have no-op'ed
...
them. So, if someone has BeOS and wants to give it a try, please change and
test this new code. Corner case could be a resume_thread() when emul_thread
is not suspended.
Fixlet to powerrom_cpu: call idle_resume() from TriggerInterrupt().
2006-04-30 21:26:21 +00:00
gbeauche
4f07113555
Patch SynchIdleTime() to implement new "idlewait" prefs item.
2006-04-30 21:16:48 +00:00
gbeauche
52ff4b209b
Implement dummy idle suspend/resume routines for AmigOS
2006-04-30 21:13:21 +00:00
gbeauche
8fa12f4819
Fix PutScrap() patch with Mac Classic ROMs. Untested but it should work
...
again provided you build with --enable-addressing=banks
2006-04-30 17:27:55 +00:00
gbeauche
c9ae122d1b
handle creation time on MacOS X
2006-04-30 15:46:55 +00:00
gbeauche
5c9e121b7d
Workaround finderFlags problem on folders in MacOS X 10.4.
...
TODO: implement the same ".finf/" trickery as for Unix versions.
2006-04-30 14:46:15 +00:00
gbeauche
6a035aa279
update GUI with ether "slirp" on win32
2006-04-29 14:15:01 +00:00
gbeauche
08a6e383e8
slirp now works on windows
2006-04-29 10:57:56 +00:00
gbeauche
08b783d52b
slight updates for win32...
2006-04-29 10:54:12 +00:00
gbeauche
f0d77218c8
fix build on win32
2006-04-29 10:41:25 +00:00
gbeauche
8ca74c4eac
FAST_TIMO is 2 ms not 2 usec. Noticed on Windows but this obviously can't
...
fix my problem with slirp_select_fill() there as it still doesn't fill in
any socket descriptor. :-/ I think I won't bother much for Windows...
2006-04-26 06:26:14 +00:00
gbeauche
f56f28b813
updates
2006-04-23 15:44:44 +00:00
gbeauche
02c1747d34
Update the GUI with the new ethernet configuration changes. Handle migrations
...
from the GUI. Also move from a combo to a fixed popdown menu with pretty
printed ethernet interfaces.
2006-04-23 15:40:23 +00:00
gbeauche
732109eff2
Some clean-ups. Rewrite ethernet config interpreter. This implies some
...
prefs items changes but it should now be simpler to add other ethernet
emulation means (slirp, tap-win32).
# Basilisk II driver mode
ether {guid}
becomes
ether b2ether
etherguid {guid}
# Basilisk II Router mode
routerenabled true
becomes
ether router
2006-04-23 15:36:51 +00:00
gbeauche
9232fbe4df
Avoid the use of min(). Add helpers to access the network control panel
...
registry -- aka get pretty printed names from GUID ethernet devices.
2006-04-23 15:20:31 +00:00
gbeauche
2d5c088601
Make it possible to build Basilisk II for Windows with SDL libraries
...
statically linked in.
2006-04-20 22:36:26 +00:00
gbeauche
fb332c4e38
Add mkstandalone -- make a standalone bundle with GTK runtime
2006-04-19 22:51:27 +00:00
gbeauche
6d15429156
Always build the STANDALONE_GUI hooks into Basilisk II.
2006-04-19 06:55:54 +00:00
gbeauche
180f3edafd
Enable build of RPC code without pthreads (for Basilisk II and SheepShaver)
...
since we use our own custom message dispatch loop
2006-04-19 06:47:15 +00:00
gbeauche
622eca9068
Handle MacOS X bundles, search order: BasiliskII.app in the same directory
...
as BasiliskIIGUI.app, or /Applications/BasiliskII.app if none was found.
Also make yet another arrangement for MacOS X "difference". This scenario
was not working: WarningAlert -> ErrorAlert, the latter was not performed
because the exit status was not properly filled in sip->si_status...
2006-04-18 22:17:31 +00:00
gbeauche
d2e672c38f
Fix NO_B2_EXE_FOUND (again) -- catch it very early, hence the SIGCHLD. Use
...
new rpc_wait_dispatch() function and gracefully get out of the main loop
when the child returns, though this is caught but the sigchld_handler().
2006-04-18 21:29:01 +00:00
gbeauche
758050ac73
Implement rpc_wait_dispatch()
2006-04-18 21:24:12 +00:00
gbeauche
3fda1a3af7
- Only start the emulator if requested (click on the "Start" button)
...
- Rewrote dispatch loop to accomodate GTK+1.2 for MacOS X (which doesn't
like threads nor forks(!)). The latter also requires an additional patch
to the version 0.7 available on SourceForge
- Run-time detect JIT capability so that we could hopefully use the ppc GUI
on intel based Macs (check!)
2006-04-17 21:22:01 +00:00
gbeauche
02c24ed6c2
Create MacOS X bundle for BasiliskIIGUI.app. Also make sure to only link in
...
necessary GUI_LIBS and not all of the LIBS.
2006-04-17 15:32:37 +00:00
gbeauche
a295eea890
Fixes for GTK+1.2 GUI on MacOS X
2006-04-17 14:25:57 +00:00
gbeauche
5b1977b9f2
Fixes for MacOS X (10.2 has no <sys/poll.h> and 10.4 version is broken).
2006-04-17 09:06:32 +00:00
gbeauche
252f396ff3
Make Basilisk II main application not use GTK libraries when compiling with
...
STANDALONE_GUI. This is the second step towards a more interesting GUI alike
to VMware. Communication from/to the GUI is held by some lightweight RPC.
Note: The step should be enough to provide a tiny GTK GUI for MacOS X.
2006-04-16 21:25:41 +00:00
gbeauche
6994ab671e
Enable build of a standalone GUI (first step).
2006-04-16 16:32:45 +00:00
gbeauche
5f3874c853
Apply the qemu-slirp-performance.patch from Kenneth Duda available here:
...
<http://lists.nongnu.org/archive/html/qemu-devel/2006-04/msg00245.html >
This does improve slirp performance a lot, especially in FTP passive mode
transfers. i.e. now, they are equally as fast as non passive mode. I get
approx. 800 KB/sec in B2 and 500 KB/sec in SheepShaver (over a DSL line).
In native env, the max download data rate from my ISP is around 950 KB/sec.
2006-04-13 22:15:02 +00:00
gbeauche
0222915bc4
Fix long double support for x86 targets if -m128bit-long-double.
2006-04-09 13:40:27 +00:00
gbeauche
bc9c586afc
cleanups
2006-04-04 07:08:12 +00:00
gbeauche
896ada92dc
Try to improve slirp performance again (though passive mode is still slower)
2006-04-02 21:06:50 +00:00
gbeauche
7c68ef5418
fix memory leak (1.0.17)
2006-04-02 08:47:39 +00:00
gbeauche
db76383246
decode movslq (generated by gcc4.1)
2006-03-30 22:45:49 +00:00
gbeauche
99241183a5
Fix pollmedia on Windows, it's no longer necessary to boot with a CD-ROM in
...
the drive to use it. Side effect: media can be changed without problems now
2006-03-28 07:01:19 +00:00
gbeauche
dfbb829055
Use GetMainWindowHandle() provided by main_windows.cpp
2006-03-28 06:59:30 +00:00
gbeauche
8d73299187
cleanups, it's only worth supporting x86 arches
2006-03-28 06:58:30 +00:00
gbeauche
29396b547b
cosmetics
2006-03-27 22:04:36 +00:00
gbeauche
61fb95dd6f
Merge in slirp updates from QEMU:
...
- improved performance (still not visible in B2 part, especially passive mode)
- set SO_REUSEADDR before calling bind()
- win32 compile fix
2006-03-25 07:57:38 +00:00
gbeauche
a4a070bc4a
- add Linux/PPC linker script
...
- always relocate Basilisk II binary to 0x78048000 on MacOS X (including x86,
to be tested later)
2006-03-25 07:08:50 +00:00
gbeauche
dc286967dc
fix clipboard handling for MacOS X
2006-03-21 06:43:02 +00:00
nigel
d2c45bd4f2
GweloleÌ fixed ether_unix exit problem (and my hacky workaround), so the enhancement comment can go
2006-03-16 04:23:47 +00:00
nigel
8eddb42a60
Better documentation of Snapshot bug
2006-03-16 04:14:12 +00:00
gbeauche
41ee2520b6
freebsd linker script
2006-03-15 06:54:34 +00:00
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