gbeauche
724516511a
Do translate BSR.L, we don't have any issue with that even if we are
...
doing block inlining since we have a complete chain of information about
the blocks to checksum.
2002-10-03 14:59:35 +00:00
gbeauche
e11dd3d375
Do translate FMUL instructions, the core needs to be fixed and this is
...
not translation of that instruction. I believe this is related to some
misgeneration of FPU core sequence and allocation of FP registers?
2002-10-03 14:58:02 +00:00
gbeauche
e9584dbcc1
Add PROFILE_UNTRANSLATED_INSNS information. Interestingly, the following
...
are the bottleneck now: DIVS, BSR.L (why isn't it translated yet?),
bit-field instructions (I need to self-motivate enough for that), and
A-Traps.
2002-10-02 16:22:51 +00:00
gbeauche
94a9038826
- Remove dead code in readcpu.cpp concerning CONST_JUMP control flow.
...
- Replace unused fl_compiled with fl_const_jump
- Implement block inlining enabled with USE_INLINING && USE_CHECKSUM_INFO.
However, this is currently disabled as it doesn't give much and exhibits
even more a cache/code generation problem with FPU JIT compiled code.
- Actual checksum values are now integral part of a blockinfo regardless
of USE_CHECKSUM_INFO is set or not. Reduce number of elements in that
structure and speeds up a little calculation of checksum of chained blocks.
- Don't care about show_checksum() for now.
2002-10-02 15:55:10 +00:00
gbeauche
21909f1eed
- Rewrite blockinfo allocator et al. Use a template class so that this
...
can work with other types related to blockinfos.
- Add new method to compute checksums. This should permit code inlining
and follow-ups of const_jumps without breaking the lazy cache invalidator.
aka. chain infos for checksuming. TODO: Incomplete support thus disabled.
2002-10-01 16:22:36 +00:00
gbeauche
518f982775
- CAN_JIT=yes has to be moved into the actual block containing JITSRCS.
...
- Optimistically reenable gas/x86 assembly optimizations and JIT for FreeBSD
as it used to work in the past there. If not, beat me.
2002-10-01 09:58:08 +00:00
gbeauche
13e8cb3eec
Huh, am I still asleep? Actually use the cpuemuX_nf.cpp pattern rather
...
than the *.s variant.
2002-10-01 09:51:09 +00:00
gbeauche
75de104c92
- Optimize use of quit_program variable. This is a real boolean for B2.
...
- Remove unused/dead code concerning surroundings of (debugging).
- m68k_compile_execute() is generated and optimized code now.
2002-10-01 09:39:55 +00:00
gbeauche
bdf9d76bb8
- #include "flags_x86.h" here to get NATICE_CC_?? helper macros
...
- Add raw_cmp_b_mi() and raw_call_m_indexed() for generated
m68k_compile_execute() function
2002-10-01 09:37:03 +00:00
gbeauche
c492269143
Drop cpuopti on x86 now that we have a fast JIT. I don't want to bother
...
fixing cpuopti or workarounding code for any known and unknown gcc bug.
2002-10-01 09:34:47 +00:00
gbeauche
98d1246815
- Let fullscreen DGA mode work again, even with a DirectColor visual. In
...
that case, we do need add it when creating the window otherwise we
result int a nice BadMatch for X_CreateWindow request. FIXME?
- Fix typo and do enable VOSF in DGA mode, if necessary.
2002-09-28 12:42:39 +00:00
gbeauche
8748b48b7a
Disable USE_QUAD_DOUBLE for now and probably for good as (i) the emulator
...
implementation is not correct, (ii) I don't know of any CPU which
handles this kind of format *natively* with conformance to IEEE.
2002-09-20 16:52:48 +00:00
gbeauche
ec92457d68
Fix align_jumps for athlon, that's really "16" and gcc-3.2 sources contained
...
the same error. ;-)
2002-09-20 14:55:50 +00:00
gbeauche
d7c677d077
- Implement {make,extract}_extended() for USE_QUAD_DOUBLE
...
- Don't forget to fill in mantissa3 member for USE_QUAD_DOUBLE in
make_extended_*() but make sure NaN, inf, zeros are handled beforehand
2002-09-19 20:52:50 +00:00
gbeauche
a5ba7ea5ac
Don't define USE_LONG_DOUBLE when sizeof(long double) == 16. This still
...
is not very clean but it should build now. Probably live with USE_LONG_DOUBLE
for any case where native long double exists and sizeof > 8 ?
2002-09-19 16:02:13 +00:00
gbeauche
b765112cf9
Get rid of any "extern inline" bits. Use static inline instead as MIPS
...
compilers don't really like the former syntax.
2002-09-19 15:42:16 +00:00
gbeauche
ecd3db832e
- Rewrite raw_init_cpu() to match more details, from kernel sources.
...
- Add possibility to tune code alignment to the underlying processor. However,
this is turned off as I don't see much improvement and align_jumps = 64
for Athlon looks suspicious to me.
- Remove two extra align_target() that are already covered.
- Remove unused may_trap() predicate.
2002-09-19 14:59:03 +00:00
gbeauche
feca66d43e
Optimize runtime assembler with shorter equivalents when the accumulator
...
(%eax) is referenced along with immediates.
2002-09-18 15:56:17 +00:00
gbeauche
f2a9938685
Ensure the IEEE fpu core is used when building the JIT compiler
2002-09-18 13:06:49 +00:00
gbeauche
54ac7a1493
Move -DSAHF_SETO_PROFITABLE down in x86 & gas specific block. Also ensure
...
SAHF_SETO_PROFITABLE is defined when compiling the JIT. Aka I don't want
to support obsolete and probably bogus code nowadays.
2002-09-18 11:41:56 +00:00
gbeauche
e268a5a072
Define SAHF_SETO_PROFITABLE on x86, aka restore full performance of the
...
JIT compiler. ;-) BTW, also fixes some valgrind warnings.
2002-09-18 10:25:05 +00:00
gbeauche
c40279294a
Don't forget to use vm_realease() to free up translation cache. Also free
...
the right amount of memory that was previously allocated.
2002-09-18 09:55:37 +00:00
gbeauche
599f7e845f
Use vm_acquire() to allocate translation cache
2002-09-18 07:50:55 +00:00
gbeauche
5df172aa53
Additions for the JIT compiler opcode translators + NOFLAGS variant of
...
regular instruction handlers.
2002-09-17 16:09:25 +00:00
gbeauche
8c7254e4c8
Additions for the JIT compiler (--enable-jit-compiler, --enable-jit-debug)
2002-09-17 16:08:41 +00:00
gbeauche
6f3a214a15
Make FlushCodeRange aware of the JIT compiler's flush_icache()
2002-09-17 16:08:07 +00:00
gbeauche
0b001e81a5
Additional string defs for JIT-specific options
2002-09-17 16:07:21 +00:00
gbeauche
ea8bdf1941
Update prefs editor with "JIT Compiler" pane
2002-09-17 16:06:37 +00:00
gbeauche
4fc127c8df
- Changes to support 68040 -> x86 dynamic translator
...
- Globalize FLIGHT_RECORDER, possibly used in compiler/ sources as well
2002-09-17 16:05:39 +00:00
gbeauche
c0526db089
Import JIT compiler
2002-09-17 16:04:06 +00:00
gbeauche
ba346aa0d2
Check for for C99 math functions in the form *l()
2002-09-16 15:40:48 +00:00
gbeauche
6af88bc787
Only use *l() math functions when they are available
2002-09-16 15:40:23 +00:00
gbeauche
ea98d02ce8
Conditionalize use of pthread_mutexattr_setpshared() as this is an optional
...
POSIX feature from _POSIX_THREAD_PROCESS_SHARED group. Besides, Ulrich Drepper
mentions "the kernel support for this option wasn't available until 2.5.7.
Future versions of the thread library will support this option."
<http://people.redhat.com/drepper/posix-option-groups.html >
BTW, this nukes a warning when build on FreeBSD 4.6
2002-09-16 15:06:24 +00:00
cebix
7c1352a5f7
updated autogen.sh to AutoGen(TM) 8.0 Professional :-)
2002-09-16 14:54:19 +00:00
gbeauche
d16a54362c
#include <pthread.h> to get pthread_attr_t definition
2002-09-16 14:48:53 +00:00
gbeauche
a04889fe03
Portability fixes: use a switch to test for ac_cv_c_float_format
2002-09-16 14:17:20 +00:00
gbeauche
a0d72c749b
Remove acconfig.h, obsoleted by new autoconf2.5 stuff
2002-09-16 14:10:21 +00:00
gbeauche
b60198fc17
- Moved minium autoconf support to 2.52+
...
- Add large file support for 2+ GB hard disk images
2002-09-16 13:32:33 +00:00
gbeauche
453c6de0e2
Now use autoconf 2.52+ as it provides nice AC_SYS_LARGEFILE check and a
...
fixed check for exit() prototype.
2002-09-16 13:29:33 +00:00
gbeauche
5be5714a9e
Remove TYPE_SOCKLEN_T check as it was merged in main configure script already.
2002-09-16 13:28:17 +00:00
gbeauche
9cc4185fa2
- Make "ieee" core default, where applicable
...
- Import gcc configury to determine HOST_FLOAT_FORMAT
2002-09-16 12:03:07 +00:00
gbeauche
48986febc6
- FP endianness is now testing at configure time
...
- Fix junk introduced in previous rev for extract_extended()
2002-09-16 12:01:38 +00:00
gbeauche
e59e4904d3
Fix "ieee" FPU core on big endian and without long double > double support
...
- Handle conversions to/from host double for m68k long doubles formats
- Make mathlib aware of sizeof(long double) == sizeof(double) arches
- Attempt to fix FSCALE implementation
2002-09-15 18:21:13 +00:00
gbeauche
57e73de5f6
USE_LONG_DOUBLE guards
2002-09-13 15:06:42 +00:00
gbeauche
dbc92fb334
Updates for new FPU core architecture, add "ieee" core (x86 for now)
2002-09-13 12:51:24 +00:00
gbeauche
a50871f87c
Updates for new FPU core architecture
2002-09-13 12:50:56 +00:00
gbeauche
c327eee41b
* Basilisk II JIT integration, phase 2:
...
- Add new FPU core architecture
- Clean fpu_x86_asm.h as it is no longer automatically generated
2002-09-13 12:50:40 +00:00
gbeauche
d3bda319a8
Use B2_mutex instead of pthread mutexes when ENABLE_EXCLUSIVE_SPCFLAGS is
...
set. However, this is not used at the moment. Is there an advantage? People
may want to add arch-optimized SPCFLAGS_{SET,CLEAR}.
2002-09-01 16:32:02 +00:00
gbeauche
7972082c56
- Merge with Basilisk II/JIT cpu core, interpretive part for now
...
- Clean use of USE_PREFETCH_BUFFER macro and dependent bits
2002-09-01 15:17:13 +00:00
cebix
4f8d06b671
- implemented direct SCSI transfers (bypassing the buffer)
...
- minor fixes
2002-09-01 12:01:46 +00:00