| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| | |
|
| |
|
|
| |
dual multiplier/ALU ops, be stricter about Rn vs Fn.
|
| |
|
|
| |
and COPYSIGN, and some minor optimisation, for interpreter.
|
| |
|
|
|
|
| |
* Set AOS on fixed point dual add/subtract overflow.
* Handle corner cases better for floating point MIN, MAX and CLIP.
* Cleaned up code for floating point COMP.
|
| |
|
|
|
|
|
|
|
| |
* Implemented fixed-point ALU overflow sticky flag (AOS).
* More accurate implementation of Fn = -Fx, Fn = ABS Fx and
Fn = PASS Fx.
* Implemented Rn = ABS Rx and Fn = ABS(Fx - Fy).
* Sorted computer function declarations and definitions to match order
of instruction listings in documentation.
|
| |
|
|
|
|
|
| |
Fix a shift error in the wcr1 register values
Add bcr2 plumbing for determining cache line fetch reads based off BCR2.
Area 0 is set via external pins so hardcoding the cv1k value, this is
typically code space though so it only affects timing during copy of
code to main memory
|
| | |
|
| | |
|
| |
|
|
|
|
| |
* Fixed carry flag calculation for subtract with carry.
* Implemented Rn = Rx + CI and Rn = Rx + CI - 1.
* Rn = Rx + 1, Rn = Rx - 1 and Rn = -Rx should saturate the result.
|
| |
|
|
|
| |
Neglected to git add the change after copy/pasting complementary
operation above.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Implemented fixed point CLIP and add/subtract with carry for
recompiler.
* Cleaned up and de-duplicated code for setting ASTAT flags on fixed
point ALU operationf for recompiler, and fixed AC flag for subract
operations.
* Optimised generated code for fixed point dual add subtrat, PASS and
COMP for recompiler.
* Reduced unnecessary ASTAT flag copies for recompiler and added more
glue that will be needed for supporting saturating arithmetic.
* Cleaned up fixed point COMP code for interpreter.
-machine/microtch.cpp: Added the host interface microcontroller to make
it easier to look at the program (disabled for now, will be emulated in
the future).
-video/vrender0.cpp: The inline qualifier implies internal linkage for
free functions in C++ - there's no need for static.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Add cv1k SH7709S cache handling behavior for slowdown emulation
- Handles some basic caching for the sh7709s used for cv1k titles so that they run at more appropriate speeds
* sh7709s.cpp: Fix up a couple of timing handling bugs
- Use the writeback flag instead of write flag as the access to external memory is what matters for those
- Fix up the writeback buffer timing, we don't need to precharge twice for writes. Also rolled up the command costs the SDRAM region handling so the writes only need to add trwl to the penalty
- Check for burst mode availability when determining the base cycle cost, only burst ROM and sdram can use burst access to each other area requires 4 separate accesses
* sh7709s.cpp: Add some comments explaining missing/unimplemented features
- Add the non-burst timing table for WCR2
- Updates and adds a couple of extra comments related to the penalties/timing
|
| |
|
|
|
|
|
|
|
| |
* Implemented short word sign extension.
* Fixed DAG2 (PM) register display in debugger.
* Track AF dependencies when analysing instructions.
* Log analysed instructions when logging UML code.
* Removed misplaced break in cpu/sharc/sharcfe.cpp.
* cpu/uml.h: Let C functions take any pointer/reference parameter.
|
| | |
|
| |
|
|
| |
leaving recompiled code.
|
| | |
|
| |
|
|
|
|
|
| |
interpreter. (#15055)
* Corrected logic for generating carry/overflow flags in add-with-carry and subtract-with-borrow operations.
* Corrected floating point clip calculation for Fx < 0.
* Implemented the LT, LE, GE and GT conditions properly.
|
| |
|
|
| |
on entry.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cpu/drcbearm64.cpp: Don't set the rounding mode on SETFMOD if it hasn't
changed.
cpu/e132xs.cpp: Skip more unnecessary flag calculations, use
pre-calculated PC for updating G0 in memory when possible, better
analysis of pre-calculated PC values when delay slots are involved.
cpu/sh: Cleaned up register dependency analysis logging, fixed an
instruction analysis bug.
cpu/sharc: Disassemble unimplemented instructions executed in recompiled
code, include tag in more fatal errors, use throw syntax to make it
cleared it's an early out.
|
| |
|
|
|
|
| |
* Also fixed some instruction analysis bugs.
-cpu/drcbearm64.cpp: Reduced unnecessary rounding mode changes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
-cpu/powerpc: Modernised recompiler front-end code, improved instruction
analysis logging.
-cpu/sh: Cleaned up instruction analysis logging a little
-util/client_ws.hpp, util/server_ws_impl.hpp, capcom/cps2comm.cpp:
Updated some use of deprecation ASIO APIs.
-nakajima/nakajies.cpp: Use range-based loops.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Reduced redundant code, track condition flag dependencies independently,
fixed a number of bugs.
-cpu/e132xsdrc_ops.hxx: Don't recalculate immediate values when
generating code.
-cpu/powerpc/ppcfe.cpp: End instruction sequences on encountering SC.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* Fixes various things that were always broken with the C and ARM
backends or worked by chance with the x86-64 and i686 back-end.
* Also commented out some constexpr for now.
-cpu/drcfe.h: Added some helpers.
-cpu/sharc/sharcfe.cpp: Don't use memset to clear loop entries.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The base opcode description now only has the parts that are used by the
base recompiler front-end. CPU cores are free to define their own
extensions as they see fit without being limited to pre-defined fields.
The base recompiler front-end is now a template, eliminating the virtual
member functions. It no longer has any dependencies on libemu, which
paves the way to decoupling the recompiler front-ends and allowing the
instruction analysis to be tested without the rest of the emulator.
Also added a compile-time option to disable ASTAT flag update elision in
the SHARC recompiler, and fixed some recompiler front-end bugs.
|
| |
|
|
|
|
|
|
|
|
|
| |
* Templated relevant member functions on ignore ARP hack avoiding a data
member check.
* Made IRQ cycles a local - it's never needed outside the scope where
it's used.
* Skip hold logic if hold read callback is unset.
* Templated some member functions with simple variations.
* namco/namcos21_dsp.cpp, namco/namcos21_dsp_c67.cpp: Don't hook up
unused hold/ack.
|
| |
|
|
| |
state when switching from input to output.
|
| |
|
|
| |
cpu/sharc: Fixed build.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* cpu/drcbec.cpp: Work around older clang that doesn't support the
floating point environment access pragma.
* machine/i8251.cpp, emu/audio_effects/reverb.cpp: Fixed uninitialised
data accesses.
* sega/model2.cpp: Use 8251 ready output line status rather than
pretending to be able to read the status register asynchronously.
|
| |
|
|
| |
mcs48: update notes
|