Commit Graph

219 Commits

Author SHA1 Message Date
gbeauche
7a7abb30b4 GCC 3.4 fixes 2004-02-16 15:35:37 +00:00
gbeauche
18893e22bd GCC 3.4 does not allow the lazy_allocator instantiation, the other form is
not supported by any GCC but ICC accepts it.
2004-02-16 15:34:55 +00:00
gbeauche
8b66b778e6 Fixes for GCC 3.4 2004-02-16 15:33:22 +00:00
gbeauche
d10a3586f1 Year got increased "recently". ;-) 2004-02-16 10:57:07 +00:00
gbeauche
00280fbaaa is it better? 2004-02-16 09:05:28 +00:00
gbeauche
e944110707 try to fix cvs update -d conflicts 2004-02-16 09:04:57 +00:00
gbeauche
546f65a365 Now that we have AltiVec emulation, we can pretend for a G4 processor
Also make sure to actually fix PVR code for 7400
2004-02-15 17:20:36 +00:00
gbeauche
313cddeeb2 AltiVec emulation! ;-) 2004-02-15 17:17:37 +00:00
gbeauche
d92989dc53 Add AltiVec regression testsuite 2004-02-15 17:16:57 +00:00
gbeauche
8d4108dd3a Recognize 7400 & 7410 cpus 2004-01-31 11:10:49 +00:00
gbeauche
74cf5d2686 add barrier to inlined block dispatcher 2004-01-29 21:36:31 +00:00
gbeauche
c9edbd29ee Handle .rodata.cst16 on AMD64 for FP constants. 2004-01-27 17:02:13 +00:00
gbeauche
8afa65cc96 Inline fast basic block lookups. Only check top tag as it is a hit more than
95% of the time. Overall, this improves performance by more than 2x on a P4.
2004-01-27 13:54:51 +00:00
gbeauche
41d3975f22 Don't access VIA variables in NObj resource ID 100. aka. enable MacBench 5.0
to run.
2004-01-26 22:04:01 +00:00
gbeauche
9da81c79a2 Use bswap instruction on IA-32 too. Optimize bswap_64 on little-endian
(x86 for now) systems.
2004-01-26 13:52:31 +00:00
gbeauche
6a214d48b0 Faster double load/store on ia32 2004-01-26 13:51:01 +00:00
gbeauche
ea9553ee65 Optimize rlwinm further. Translate FP instructions if we don't need to
compute exceptions.
2004-01-25 23:21:06 +00:00
gbeauche
9c6b42b014 Optimize gen_mov_32_REG_im(0) case 2004-01-24 17:50:32 +00:00
gbeauche
82808234fa Merge in FP exceptions support but disable it for now as it is incomplete
and slower. Implement mcrfs. Fix and optimize fctiw with native rounding.
2004-01-24 16:43:45 +00:00
gbeauche
3de5a15902 Don't define disasm_block() in non-JIT mode. Also make sure to disassemble
native code if we can (i.e. TARGET_NATIVE disassembler exists).
2004-01-24 11:52:54 +00:00
gbeauche
10b9ab2c34 Generate PowerPC code wrapping GetResource() replacements. That way, it's
a normal PPC function invocation that can be JIT compiled to native code
instead of nesting execute() calls which may lead to use the interpreter
(this took around 11% of total execution time on boot, downto 3%).

Also, optimize some SheepShaver EmulOps and actually report non-CTI.
2004-01-24 11:28:06 +00:00
gbeauche
60d371486b Propagate done_compile down to compile1() in case it needs to override
the end-of-block condition (e.g. sheep EmulOps)
2004-01-24 11:22:48 +00:00
gbeauche
48d844a40a Add gen_spcflags_{init,set,clear} + load/store of GPRs to T2. 2004-01-24 11:20:33 +00:00
gbeauche
6a4463b8fb We need at least for native registers, hence we are guaranteed to have
REG_T2 available. Add 16/32 sign-extension in T1. Add call generators
with (T0, T1) and (T0, T1, T2) arguments.
2004-01-24 11:18:29 +00:00
gbeauche
324fba4137 Post-merge fixups: machine state wrappers, Apple assembler perticularities. 2004-01-18 22:59:06 +00:00
gbeauche
0665ab1139 No need to map ROM executable on emulated/ppc. Make sure to detect unaligned
EA for lmw/stmw with real addr instead of relying on the signal number.
2004-01-18 22:22:28 +00:00
gbeauche
7f13ce6fed Wrappers around machine state registers within signal handlers. 2004-01-18 22:14:31 +00:00
gbeauche
07fa8c79b3 Handle dummy files. Merge in configure stuff for Mach exception filters.
Check whether struct sigaction defines sa_restorer member. Don't include
posix_sem.cpp on native Linux/ppc builds.
2004-01-18 22:12:24 +00:00
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