gbeauche
384648a740
Darwin function descriptors act as Linux ones
2004-01-18 22:10:09 +00:00
gbeauche
04e7fcf5d3
Handle (broken) Apple assembler. Make prologue/epilogue as macros as ';'
...
is the comment delimiter for Darwin assembler. Increase stack pad by
16 bytes in EMUL_OP_PROC to accomodate LR saves in Darwin EmulOp
2004-01-18 22:08:39 +00:00
gbeauche
5e154ad65f
Add spinlocks for Darwin/PPC
2004-01-18 22:05:28 +00:00
gbeauche
321fcfefe5
handle dummy stuff
2004-01-18 22:04:23 +00:00
gbeauche
dcf1fc5e10
paranoia checks for native Darwin/PPC port
2004-01-18 22:04:04 +00:00
gbeauche
b8a4c842fd
dummy ethernet support for SheepShaver
2004-01-18 22:03:37 +00:00
gbeauche
750f9778a4
Workaround for non conforming C++ libraries
2004-01-16 15:36:14 +00:00
gbeauche
c0874f60e8
Fix native mode, a better solution would be to also add GetResource()
...
patches into the native_op[] table in native mode too.
2004-01-15 23:28:59 +00:00
gbeauche
09cd7ccfd6
gcc on darwin defines __ppc__, not __powerpc__
2004-01-14 23:16:37 +00:00
gbeauche
ea61b2a4fc
DGA guards
2004-01-14 23:15:41 +00:00
gbeauche
07f0be19b5
Fix FP single operations. aka fix scrollbar & Graphing Calculator bugs.
2004-01-13 23:50:09 +00:00
cebix
5098c8ae83
Happy New Year!
2004-01-12 15:55:51 +00:00
cebix
2d5de1af9d
Happy New Year! :)
2004-01-12 15:37:24 +00:00
gbeauche
76a5e63bd2
Make sure 68k procedures are stored on 16-bit word boundaries.
2004-01-10 08:46:57 +00:00
gbeauche
1b0e88041e
Also cache native routine descriptor instead of recreating them at each
...
invokation to ExecuteNative().
2004-01-07 18:24:45 +00:00
gbeauche
9f745bd142
Fix IA-32 testandset(), make spinlock_t volatile int.
2004-01-06 15:05:35 +00:00
gbeauche
5f52e637b1
Handle "keyboardtype" prefs item from Basilisk II
2004-01-06 15:03:16 +00:00
gbeauche
261efeaa9e
Look for clock_gettime() as it is faster that gettime() for GetTicks_usec()
...
implementation. Also look for extra pthread related functions.
2004-01-06 13:24:56 +00:00
gbeauche
88edf05381
As usual, my eye captions the error just after the commit.
2004-01-04 18:38:00 +00:00
gbeauche
6146d86bae
Handle --with-mon=<monsrcdir> case
...
Force definition of HAVE_PTHREAD_CANCEL in native mode
2004-01-04 18:36:47 +00:00
gbeauche
dd3a208906
Emulated lmw/stmw with unaligned EA. e.g. for BBEdit under MacOS 8.6.
...
This may be due to some switch mode that needs to save r13 and upwards.
The faultive code seems to explicitly add 0xee to r1, which causes it to
be unaligned for upcoming lmw/stmw.
2004-01-04 18:35:21 +00:00
gbeauche
5ce5736c89
Fix pthread_join() to actually wait for children. Fix semaphores and also
...
provide a simple producer/consumer test program.
2004-01-04 16:27:50 +00:00
gbeauche
9723f1d495
Light implementation of pthread_mutexes
2004-01-04 06:55:50 +00:00
gbeauche
e346de3199
Fix ADB problems with unitinialized mutex
2004-01-04 05:45:50 +00:00
gbeauche
53e0c46452
PutScrap and GetScrap replacements are always enabled.
2004-01-01 11:29:38 +00:00
gbeauche
602d49159c
Add TODO and debug info for 'styl' resources, and TARGETS from requestors.
2004-01-01 11:28:22 +00:00
gbeauche
b2bc1db356
Remove the "klipper" hack since it now (in KDE 3.2) checks for TIMESTAMP.
...
Besides, we are as smooth as before with last commits.
2003-12-31 18:23:41 +00:00
gbeauche
e291c6d065
Add fast X11 display locking routines based on spinlocks, or on pthreads
...
in the worst case. Optimize out GetScrap() case when we already own the
selection. i.e. make it smoother. Use our own XDisplay{Un,}Lock() routines.
2003-12-31 18:16:55 +00:00
gbeauche
ea33a5c8b0
Handle copy-paste between X11 and MacOS. X11 events handling code has to
...
be improved in copy mode (when we own the selection to service other clients).
Also note that older klipper has a tendency to request clipboard data
several times per second.
2003-12-31 11:37:26 +00:00
gbeauche
70c1d04b2a
Declare timing functions from timer_unix.cpp
2003-12-28 17:56:03 +00:00
gbeauche
7f6078a591
Merge in Mouse Wheel support from Basilisk II.
2003-12-27 10:37:30 +00:00
gbeauche
b9b0b5248b
Merge in dsp, mixer, ignoresegv prefs items from Basilisk II. Audio output
...
does not work with NewWorld ROMs yet.
2003-12-27 10:02:33 +00:00
gbeauche
a27aa7dc26
Sign-extend get_resource() ID parameter so that vCheckLoad sees them
...
correctly. e.g. for sift resources to be patched (-16497)
2003-12-27 09:42:15 +00:00
gbeauche
213b8c1b7d
audio fixes
2003-12-27 09:08:51 +00:00
gbeauche
9e1d1606ff
Cosmetic fixes to vm_write_memory_*() functions.
2003-12-26 17:27:47 +00:00
gbeauche
97ce4fdc75
Match Linux/ppc native version better: jump to ROM with EmulatorData in r4,
...
preserve CR & XER registers on EmulOp.
2003-12-25 23:54:36 +00:00
gbeauche
561046449a
Fix no JIT & no decode cache case to default to interpretive mode only.
2003-12-25 23:33:15 +00:00
gbeauche
f5aed53e3c
clean-ups, going to beat myself tonight
2003-12-15 15:27:01 +00:00
gbeauche
c3a706d354
There may be extra instructions before moving stuff to SCC registers.
2003-12-15 15:25:38 +00:00
gbeauche
24c4ae354c
Fix SCC initialization code detection. Move up AddrMap patch space since
...
we clobber 40 bytes below it and it may intersect with GetScrap patch space.
2003-12-15 15:23:59 +00:00
gbeauche
ae8c08b260
Generic ROM patches from ROMTYPE_PARCELS experiments, no apparent
...
regession. There is no improvement either.
2003-12-14 14:23:46 +00:00
gbeauche
bbde2a2054
Use an alternate stack base while servicing PowerPC interrupts.
2003-12-05 13:37:56 +00:00
gbeauche
c3bb2eabf1
Really clear the zero page.
2003-12-05 12:41:19 +00:00
gbeauche
4755f118df
Revert 32-bit EA load/stores workaround, problem was 0xffffffff read from
...
[PgChk]+4 which yields to 3 on 32-bit arches and something > 32-bit on AMD64
2003-12-05 12:38:44 +00:00
gbeauche
e517594a51
Fake reading from [HpChk]+4 (FIXME: the callchain reports some function
...
from DriverServicesLib). Also make fake SCSIGlobals map to zero page.
2003-12-05 12:37:14 +00:00
gbeauche
44e54f730a
Add XLM_ZERO_PAGE globals which points to a read-only page with all bits
...
set to zero.
2003-12-05 12:36:11 +00:00
gbeauche
091a219280
Use a unique ExecuteNative() interface in any case, i.e. native & emulated
2003-12-04 23:37:38 +00:00
gbeauche
7a7363fd18
Forgot to add thunks.cpp to BeOS Makefile too
2003-12-04 22:34:48 +00:00
gbeauche
d1a676eb1c
Fix ExecutePPC() with nw SheepRoutineDescriptor
2003-12-04 22:34:34 +00:00
gbeauche
ddbebd7111
Fix ExecutePPC() merge with new SheepRoutineDescriptor
2003-12-04 22:33:24 +00:00
gbeauche
779b4858d2
We do need <pthread.h> in any case, especially native Linux/PPC
2003-12-04 22:29:15 +00:00
gbeauche
63219873b4
Don't set WANT_JIT if not EMULATED_PPC
2003-12-04 22:28:40 +00:00
gbeauche
158f63d1e3
Force 32-bit EA in load/store operations. This fixes SheepShaver/JIT on AMD64.
2003-12-04 18:10:36 +00:00
gbeauche
5dca41d253
Add gen_invoke_CPU_im_im() to invoke do_record_step(pc, opcode).
2003-12-04 17:53:04 +00:00
gbeauche
328bb9f239
Add new thunking system for 64-bit fixes.
2003-12-04 17:26:38 +00:00
gbeauche
982424dabd
Use "cpu/vm.hpp" if EMULATED_PPC, so that target optimized functions are
...
used to match alignment/endianess needs.
2003-12-03 15:06:09 +00:00
gbeauche
490fa2d553
Add x86 asm opts (though disabled for now)
2003-12-03 11:45:45 +00:00
gbeauche
5b0569944f
Don't enable asm opts for now, this hides measurability of other generic
...
optimizations. Remove no longer used synthetic instructions.
2003-12-03 11:45:13 +00:00
gbeauche
0c2735dbcc
fix stats reports
2003-12-03 10:59:43 +00:00
gbeauche
7ebe0347bf
Add "jit" prefs item. Fix PPC_DECODE_CACHE version to fill in new min_pc &
...
max_pc members of block info. Increase -finline-limit to 10000 for older gcc
2003-12-03 10:52:50 +00:00
gbeauche
34f90d6b3a
PowerPC tester: open results file in binary mode, aka fix pb on DOS.
2003-12-03 09:16:46 +00:00
gbeauche
8db8d10287
fix extraction of XER from QEMU engine
2003-12-03 07:27:05 +00:00
gbeauche
04214f3820
Fix decrement the CTR, then branch conditional if decremented CTR != 0.
...
Remove CR cache for now. Remove BC & MODE_68K hacks for SheepShaver,
that was a colateral damage of wrong branch emulation of the former.
2003-12-02 22:49:18 +00:00
gbeauche
dc79320904
cleanups
2003-12-02 15:00:40 +00:00
gbeauche
3ca595a337
PowerPC tester: add support for QEMU engine.
2003-12-02 14:57:07 +00:00
gbeauche
07c8e505c9
PowerPC tester: add support for Bart's Model 3 CPU emulator
2003-12-02 11:29:46 +00:00
gbeauche
32133b2261
Add PPC_PROFILE_GENERIC_CALLS, don't enable PPC_PROFILE_COMPILE_TIME by
...
default.
2003-12-01 13:51:35 +00:00
gbeauche
e2ca6270f8
Implement ISYNC, MTCRF, MCRF.
2003-12-01 13:40:38 +00:00
gbeauche
054748532a
NOP'ize unimplemented instructions
2003-12-01 13:21:41 +00:00
gbeauche
dd956c78db
gather some stats on untranslated instructions
2003-12-01 13:07:26 +00:00
gbeauche
32f34c07c5
fix stack allocation, really roundup to next 16 KB boundaries
2003-12-01 11:02:13 +00:00
gbeauche
f034ae704f
handle ROM areas and put associated blocks into dormant state
2003-12-01 00:16:21 +00:00
gbeauche
ceb9b4a428
cleanups & optimize for constant branches (i.e. follow them).
2003-12-01 00:03:02 +00:00
gbeauche
4a3cd024ed
better handling of static translation cache allocation, handle nested
...
execution paths from the cpu core, cleanups for KPX_MAX_CPUS == 1.
2003-11-30 17:21:53 +00:00
gbeauche
c1dba58808
fix & reenable asm compare ops for ppc
2003-11-30 17:18:17 +00:00
gbeauche
10db506aa5
handle CR cache though it's not efficient with current approach without
...
superblock (traces) optimization.
2003-11-30 17:17:32 +00:00
gbeauche
7594e26d36
fix new block creation on full cache that was just invalidated, add
...
provisions for following constants jumps in next commit.
2003-11-30 17:16:24 +00:00
gbeauche
833fc0c935
remove dead code
2003-11-30 17:13:10 +00:00
gbeauche
efad4ff3b6
Handle even more XER test masks to be preserved or to be set.
2003-11-30 09:07:36 +00:00
gbeauche
d0a2277325
Gather stats about compile time. Define KPX_MAX_CPUS to 1 for allowing
...
allocation of translation cache into .data section on PowerPC.
2003-11-28 22:13:50 +00:00
gbeauche
0301afb3eb
first part of CR caching fixes
2003-11-28 22:11:59 +00:00
gbeauche
6a7c8f7e83
Add PowerPC tester glue for Microlib CPU core
2003-11-28 15:12:37 +00:00
gbeauche
3bea82fa1c
fix merge, hunks were missing
2003-11-27 23:59:00 +00:00
gbeauche
8ca440d0b5
Fix SRAW on non PowerPC platforms.
2003-11-27 23:53:41 +00:00
gbeauche
8711c4afd6
Add support for external results file for non PowerPC platforms.
2003-11-27 23:52:19 +00:00
gbeauche
687b9c5a74
I manually synchronize with Kheperix code.
2003-11-27 20:07:33 +00:00
gbeauche
aee3e05e4b
The JIT should work now but there is an extra bottleneck causing it to
...
not match Kheperix speeds while executing Linux/ppc binaries.
Fix x86 DYNGEN_OP_FLAGS settings. Only allocate translation cache in .data
on PPC since x86 can do jumps anywhere.
2003-11-27 11:09:38 +00:00
gbeauche
2bacb2fd01
Workaround CR expectations in MODE_68K execution
2003-11-27 11:06:23 +00:00
gbeauche
d7ac6a0e68
Fix SLW & SRW, an x86 does not work the same way as a ppc
2003-11-27 10:53:37 +00:00
gbeauche
ae2d91912c
fix dummy includes
2003-11-27 10:06:27 +00:00
gbeauche
36ce9c07e6
Statically allocate the translation cache on PowerPC. This makes it possible
...
to generate direct bl instructions for function invokation.
2003-11-27 00:26:35 +00:00
gbeauche
e30001bc00
Fix BCCTR & BCLR. However, conditions are still wrong somehow, disabled
...
this case. Factored & optimized branch instructions.
2003-11-26 23:58:14 +00:00
gbeauche
2eba241021
self credit cpu emulator ;-)
2003-11-25 10:27:59 +00:00
gbeauche
73d51962f6
Merge in-progress PowerPC "JIT1" engine for AMD64, IA-32, PPC.
...
The merge probably got wrong as there are some problems probably due to the
experiment begining with CR deferred evaluation. With nbench/ppc, performance
improvement was around 2x. With nbench on x86, performance improvement was
around 4x on average.
Incompatible change: instr_info_t has a new field in the middle. But since
insertion of PPC_I(XXX) identifiers is auto-generated, there is no problem.
2003-11-24 23:45:52 +00:00
gbeauche
7968a20100
Handle "JIT1" engine but disable it for now since there are some problems
...
with SheepShaver integration from Kheperix.
2003-11-24 23:39:35 +00:00
gbeauche
09a774ae51
Add link to B2 Unix/config.{guess,sub}
2003-11-24 22:19:35 +00:00
gbeauche
2a0f750a83
Optimize memory accesses on little endian systems that can do unaligned
...
accesses to memory. Fix build when vm.hpp is included in a C program.
2003-11-24 21:30:17 +00:00
gbeauche
04349eebce
Optimized bswap_32() for AMD64
2003-11-24 21:20:47 +00:00
gbeauche
1dbe1179c6
Merge in "keycodes" support from Basilisk II. e.g. make French keyboard
...
layout work correctly for me.
2003-11-21 17:01:33 +00:00
gbeauche
5b950fa2ef
fix shm screen image allocation.
2003-11-20 16:24:57 +00:00