SternXD
d983b2b066
Copyright: Change year from 2002-2025 to 2002-2026
2026-01-15 00:22:32 +01:00
TellowKrinkle
59125c9b12
Core: Don't create xImpl_G1Logic instances
2025-08-24 20:16:24 -05:00
TheTechnician27
23fd57f641
Copyright: Change year from 2002-2024 to 2002-2025
2025-01-20 05:07:26 +01:00
GovanifY
132431b7c8
headers: relicense to GPL-3.0+
...
also update to 2024 while i'm at it
2024-07-30 17:17:13 -04:00
Stenzek
d9abe10308
Misc: Remove explicit PCH include, switch to SPDX
2023-12-24 14:03:14 +10:00
Stenzek
47a65ce01e
Misc: Slim down PCH
2023-12-24 14:03:14 +10:00
Stenzek
dc859ca0a6
Misc: Simplify assertion macros
2023-12-24 14:03:14 +10:00
Connor McLaughlin
1ccddb92d4
EE Rec/IOP Rec: Rewrite large portions
...
- Add fastmem
- Add delay slot swapping
- Add COP2 sync elision
- Add block analysis and use analysis
- Add GPR register caching and renaming
2022-11-19 04:59:10 +00:00
Connor McLaughlin
fd194124a9
x86: Move cycle/writeback fields to CPU structs
...
[SAVEVERSION+] Potentially better locality, keeps everything we're
accessing from the rec together.
2022-11-19 03:54:02 +00:00
kenshen112
fdabc82342
Remove IopCommon.h added proper includes to files. Removing circle includes in several files that sometimes was several layers deep
2022-04-11 21:25:20 +01:00
TellowKrinkle
5260d63565
Core: Format recompilers
2021-09-04 18:28:24 -04:00
Tyler Wilding
9fa484dbab
GameDB/MSVC: renamed _Target_ to _InstrucTarget_ to avoid collisions
2020-12-16 09:31:58 +00:00
Tellow Krinkle
dc57270fb8
EE/IOP/VU: x86-64 recompiler support
2020-08-24 16:20:09 -05:00
Gregory Hainaut
18f677d530
oups miss one minus
2016-11-08 23:11:12 +01:00
Gregory Hainaut
f6c27c2abf
pcsx2: use ASCII minus
2016-11-08 23:09:20 +01:00
Gregory Hainaut
774d98991c
iop rec: fully enable COP2 support
2016-09-02 21:05:28 +02:00
Gregory Hainaut
b47c50ae5d
iop rec: add the missing LWC2/SWC2 (CP2 reg from/to mem)
2016-09-01 21:50:13 +02:00
Gregory Hainaut
1ee0526e41
iop rec: add constant propagation for COP2
...
Inspirated from COP0
2016-09-01 21:16:43 +02:00
Gregory Hainaut
bdc29dbbbf
iop rec: put cop2 comment in the good position...
2016-09-01 20:47:12 +02:00
Gregory Hainaut
d78d515acb
iop rec: plug GTE (aka COP2) in the recompiler
...
Code isn't enabled yet to avoid any breakage
Edit iR3000ATables.cpp line 1446
2016-08-27 17:23:37 +02:00
Gregory Hainaut
cc68776069
pcsx2: manually cast function pointer to void*
...
Templace is nicer but give a hard time to compiler.
New version compile in both gcc&clang without hack
v2: add an uptr cast too for VS2013 sigh...
v3: use an ugly function pointer cast to please VS2013
2016-08-17 09:53:30 +02:00
Gregory Hainaut
c037686a26
iop: don't load any value in r0
...
Fix lsu.irx test
2016-01-27 20:08:37 +01:00
Gregory Hainaut
b21ce8c9fb
iop: fix division handling based on the EE div operator
...
Division will now handle properly division by 0 and signed overflow
2016-01-27 19:13:31 +01:00
Gregory Hainaut
135cdfca46
iop: fix division on the interpreter
...
Recompiler is still completely broken just add tons of FIXME
2016-01-27 18:15:14 +01:00
Gregory Hainaut
ba62ce9e93
iop: fix MTLO instruction
...
Test hilodelay.irx is now pass ^^ (but test only covers constant path.)
2016-01-27 10:27:34 +01:00
Gregory Hainaut
8485a8c654
iop: fix division overflow
...
So far only on the const path because it is was easy (and free)
but it ought to be done on the recompiler too.
2016-01-24 21:49:06 +01:00
Gregory Hainaut
e3d5eb5a4e
core: convert xCALL to xFastCall
...
SuperVU wasn't converted (unlikely to be ported to 64 bits)
A couple of calls weren't converted because they require extra work
but there are not mandatory (debug/MTVU/...)
2016-01-11 09:21:45 +01:00
Gregory Hainaut
5c0c9a60e9
core: use ecx directly
2016-01-09 21:26:25 +01:00
Gregory Hainaut
b09295fc7c
core: use xRegister32 for _allocX86reg
2016-01-09 21:26:25 +01:00
Gregory Hainaut
4ddc4778e4
ee: use xRegister32 for 1st argument of _psxMoveGPRtoR
2016-01-09 21:26:25 +01:00
Gregory Hainaut
3570467838
core: inline LogicalOp* functions
2016-01-09 21:26:25 +01:00
Gregory Hainaut
9eb73e1ef0
core: rely on register.GetId() instead of define
2016-01-09 21:15:46 +01:00
Gregory Hainaut
fcdbae6806
core: massively sed old emitter syntax to the new one
...
It misses jump & FPU. Jump need to be handled manually.
Syntax isn't perfect yet because of various casts. But it will allow to have a
single emitter syntax and rely on type safety on the future.
Conflicts:
pcsx2/x86/iR3000Atables.cpp
pcsx2/x86/ix86-32/iR5900-32.cpp
2016-01-09 20:56:07 +01:00
Kingcom
4c36c12fb1
Fix IOP bltzal and bgezal opcodes
2015-12-28 10:05:26 +01:00
Jake.Stine
36d1503581
Converted IOP to use a static/global hardware register allocation. (same as I did for the EE a few weeks ago).
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3826 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-09-23 19:44:55 +00:00
sudonim1
d7a09fa4d7
IOP: Deleted micro-optimisation in what's already not a speed critical recompiler which was corrupting code in experimental modifications.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3620 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-07 13:47:02 +00:00
Jake.Stine
a7bb875e18
x86emitter: removed implicit pointer dereferencing on 'indirect' operand types, and implicit uptr addressing on ptr[]; avoids some obscure pitfalls and might speed up release mode builds (LTCG).
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3158 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-06-04 22:27:06 +00:00
Jake.Stine
70d47bf240
Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins)
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2937 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-03 14:08:02 +00:00
sudonim1
4457fe40fc
Removed all trailing whitespace in *.c *.cpp *.h because it irritates me.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2897 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-25 00:31:27 +00:00
Jake.Stine
a6d716b351
Replace assert() with pxAssert() in pcsx2 core and recompilers.
...
Rationale: assert() is not thread safe on win32 (the modal popup can block user input or hang the program), and is neigh useless on Linux (just does a DebugBreak/Trap). Furthermore, pxAssert() registers stack traces and supports more detailed textual descriptions. I considered just #undef/#define on the assert macro, but MSVC's assert.h also does #undef/#define so it'd be too prone to accidentally calling MSVC's problematic version if some nested header included <assert.h> (which many do).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2077 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-25 15:07:43 +00:00
Jake.Stine
3e1c1f939c
aligned_stack: Finished conversion of all CALLFunc and _callFunctionArg1 functions to aligned-stack safe __fastcall invocations; only IOP's psxExecute and dispatchers remain to be done. (rev is fully functional in this state tho, on win32 at least)
...
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2045 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-20 20:02:07 +00:00
Jake.Stine
653d09e821
Lots of new code maintenance stuffs:
...
* Completely new assertion macros: pxAssert, pxAssertMsg, and pxFail, pxAssertDev (both which default to using a message). These replace *all* wxASSERT, DevAssert, and jASSUME varieties of macros. New macros borrow the best of all assertion worlds: MSVCRT, wxASSERT, and AtlAssume. :)
* Rewrote the Console namespace as a structure called IConsoleWriter, and created several varieties of ConsoleWriters for handling different states of log and console availability (should help reduce overhead of console logging nicely).
* More improvements to the PersistentThread model, using safely interlocked "Do*" style callbacks for starting and cleaning up threads.
* Fixed console logs so that they're readable in Win32 notepad again (the log writer adds CRs to naked LFs).
* Added AppInit.cpp -- contains constructor, destructor, OnInit, and command line parsing mess.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1950 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 08:27:27 +00:00
Jake.Stine
4efb1ed9ca
Added some DebugBreak generation (INT3 / 0xcc) to the PsxRec, for catching null pxsRegs.pc assignments from the recompiler (enabled in DEBUG builds only). These are usually more context-useful breakpoints than the assert() check in psxRecompile.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1948 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-03 13:36:19 +00:00
Jake.Stine
d2fbb22076
Upgraded PCSX2 core and utilities to GPLv3.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1783 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 12:08:10 +00:00
Jake.Stine
3b10771c36
Got rid of that old 'params' mess on console logs. Not needed anymore since wxwidgets has nicer built in formatting options (never liked it anyway)
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1782 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 05:37:40 +00:00
arcum42
e330c57556
Minor bug fixes. Reformat iVUzerorec.cpp & get rid of all occurrances of the FORIT macro.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1153 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-08 04:44:32 +00:00
Jake.Stine
bf3d124e23
Switched the emitter over to using Thread-Local storage (TLS), which removes all the templates and brings us back to a more traditional-looking, macro-free, and intellisense-friendly implementation. Plus it's a lot less prone to errors and will make debugging easier down the road. (next commit will rename the files back to .cpp and get them out of the header includes)
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@919 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-07 16:54:02 +00:00
arcum42
4ea9d9292f
Replaced more SysPrintf's with Console:: functions then I want to think about. A few minor changes in passing, mainly format-related.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@843 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-27 01:42:51 +00:00
arcum42
e0347fd285
Some header work, get rid of some dead code, and rename PsxCommon.h.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@762 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 04:49:23 +00:00
Jake.Stine
3821425442
Minor fixes to the IOP Interpeter and const prop regarding the SLTIU instruction.
...
Removed the rest of the references to the UseGui global boolean since it wasn't used anymore.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@761 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 04:21:50 +00:00