Flyinghead
62085539a7
dynarec: reg alloc 64-bit regs. avoid some interpreter fallbacks
...
Option to reg alloc 64-bit regs in two host regs. Used when FPSCR.SZ ==
1 (64-bit reg and memory transfers.) Enabled for arm, arm64 and x64
(windows only) dynarecs.
Don't fallback to interpreter when FPSCR.PR==1 (double precision) for
FMOV, FLDS and FLTS.
2022-12-23 16:06:54 +01:00
Flyinghead
bc3be1029c
fix sh4 scheduler. use common cycle counter in sh4 context
...
scheduler reset and unregister
schedule requests during reset(), not init()
preserve cntx.sh4_sched_next on sh4 reset
Use cntx.cycle_counter in dynarecs and interpreter
Fixes Confidential Mission hang at boot with HLE
2021-10-07 16:18:32 +02:00
Flyinghead
9d6c548730
naomi: close cart on reset. sh4: replace some verify by throw
...
Close naomi/aw cart on reset. Reset input mapping/button names
Get rid of ngen_GetFeatures()
throw exception instead of failing verify if not internal error
catch sh4 exceptions in dynarecs and throw fatal error
2021-08-03 09:47:13 +02:00
Flyinghead
c8ebbc657a
x86 win32 build fix
2021-08-02 10:09:19 +02:00
Flyinghead
6f4e1365b1
x86: stack unwind fixes
2021-08-01 17:07:17 +02:00
Flyinghead
aabb492d01
x86 stack unwinding support (android)
2021-07-30 19:13:52 +02:00
Flyinghead
7561ce753a
unwind info for arm64. use static c++ lib for android
...
include oboe static libs
get rid of old regalloc
2021-07-29 17:46:46 +02:00
scribam
20b838b968
deps: update xbyak
2021-05-22 10:45:50 +02:00
Flyinghead
65290a70f3
x64/x86: store queue dynarec optimization
2021-03-29 14:26:55 +02:00
Flyinghead
31e0b3ab51
x64/x86 dynarecs: fast-math fcmp/eq implementation
...
Fixes Shin Nihon Pro Wrestling - Toukon Retsuden 4
Fixes Project Justice (Issue #38 )
2021-03-07 16:59:17 +01:00
Flyinghead
3f4993979f
Merge remote-tracking branch 'origin/master' into fh/x64-arm-jit
2021-01-31 22:45:35 +01:00
Flyinghead
d98462b192
x86 rec: compile fix
2021-01-31 18:05:47 +01:00
Flyinghead
3dfe4f96fa
x64 rec: mul_s64 fix
...
GTA2 hang on start
2021-01-31 17:31:47 +01:00
Flyinghead
80782475da
x64 rec: get rid of setjmp. standardize ngen_Rewrite/HandleException
...
move rewrite code from exception handlers to x86/x64 dynarecs
use same host context info on linux/win
x64: stack alignment issue in mem handlers
2021-01-30 16:14:44 +01:00
flyinghead
958775ffbe
x86 rec: add fast mem access and rewrite
...
x86: fix dynamic block end and directly use FPCB
fix code pointer for dsp dynarecs
reios entry point overwritten because of same address proc
2021-01-28 16:29:21 +01:00
flyinghead
c344903a23
new x86 dynarec. Enable for android
...
refactor common code between x64 and x86 dynarecs.
x86 rewrite based on the x64 one
some discarded dyna blocks weren't fully unlinked
2021-01-26 13:16:48 +01:00
scribam
e99aac3575
Remove "using namespace std;"
2020-03-30 23:00:43 +02:00
scribam
53bde38035
Replace DECL_ALIGN macros by alignas
2020-02-27 22:17:33 +01:00
Flyinghead
9d3ee3b57f
dyna: get rid of SmcCheckLevel options. Fix rec-cpp
...
Block check is now full or off depending on block protection
rec-cpp: Add missing opcode call classes and allow for immediate args
2019-09-29 18:18:46 +02:00
scribam
d826d8123a
msvc: Fix DYNACALL/__fastcall usage
2019-08-31 14:46:30 +02:00
scribam
269297be18
Use _WIN32 to handle Windows specific code
2019-08-28 20:37:53 +02:00
scribam
1b002ae0da
Use __GNUC__ to handle GCC specific code
2019-08-28 20:37:53 +02:00
scribam
51d181a46c
Use _MSC_VER to handle specific Visual Studio code
2019-08-28 20:37:53 +02:00
Flyinghead
419370084e
rec-x86: ssa support
2019-06-14 23:34:18 +02:00
Flyinghead
e0949fb9aa
Fix div matching: support 64-bit div and correct handling of negative
...
Some games do 64-bit / 32-bit division (Pro Pinball Trilogy)
DIV0s/1 use and output 1's complement numbers
The final reminder fixup wasn't correct for negative dividend
2019-06-13 18:27:21 +02:00
Flyinghead
c2c0215e1b
Merge remote-tracking branch 'origin/master' into fh/wince-dynarec
2019-05-22 14:13:00 +02:00
David Guillen Fandos
08285cf49c
Hack-fix the x86 JIT so that it builds. I guess that's why Win32 fails too
2019-05-11 13:37:13 +02:00
Flyinghead
dece3fc13e
wince: use setjmp/longjmp instead of try/catch for dynarecs
...
WinCE fast mmu implementation
WIP arm64 dynarec
2019-04-15 18:02:34 +02:00
Stefanos Kornilios Mitsis Poiitidis
af6993a819
dynarec: Refactor smc-option a bit
2019-03-30 07:16:44 +01:00
Flyinghead
6438a402df
dynarec: add option to control smc code checks: none, fast, full
2019-03-29 19:23:37 +01:00
Flyinghead
c809c6c56f
Merge branch 'fh/mymaster' into fh/master-merge
2019-03-25 16:47:47 +01:00
David Guillen Fandos
69ab16ad9c
Use CPUID to detect MMX/SSE support
...
Make it so that it works with all compilers and OSes.
Tested in VS, gcc and clang (built for Android x86)
2019-03-25 00:11:32 +01:00
flyinghead
3cdd39170d
win32: call os_DoEvents on the emu/main thread and other fixes
2019-02-07 19:20:10 +01:00
Flyinghead
fc05727538
dynarecs clean-up
...
move GetRegPtr and ngen_FailedToFindBlock to sh4/dyna
2019-01-11 23:52:20 +01:00
Flyinghead
f419786584
Fix sh4 FTRC op to use correct positive cutoff value.
...
Fix for interpreter, common dynarec and x86 rec.
Fixes wrong car color in Tokyo Xtreme Racer car selection screen.
2018-10-02 12:38:49 +02:00
Flyinghead
98da3a28dc
rec-x86: Load PC from sh4 context in ngen_mainloop
...
Fixes load state freeze and problems when pausing the emu thread
2018-09-23 12:04:07 +02:00
Flyinghead
cebc7486f8
Change cycle_counter to an int instead of u32 in the x86 dynarec
2018-09-20 22:23:38 +02:00
Flyinghead
a742b53369
Fix linux x86 startup crash
2018-09-20 21:59:19 +02:00
Flyinghead
7ce4fccb37
Merge remote-tracking branch 'origin/master' into fh/mymaster
2018-09-20 17:28:41 +02:00
David Miller
1a4f597bd8
ngen_mainloop for x86 updated to use PC value from context, CDI warning
...
and removed redundant header causing build failure on libwebsockets (VS)
2018-08-20 23:49:15 -04:00
Stefanos Kornilios Mitsis Poiitidis
b121fd1ba2
Revert "ngen_mainloop for x86 updated to use PC value from context, CDI warning"
...
This reverts commit 38539a9c2f
.
Reason: Breakage reported by beta testers
See #1260
2018-08-07 14:30:42 +02:00
David Miller
38539a9c2f
ngen_mainloop for x86 updated to use PC value from context, CDI warning
...
and removed redundant header causing build failure on libwebsockets (VS)
2018-08-06 15:01:15 -04:00
Flyinghead
9942bfc86e
Merge branch clean-exit-light
2018-08-01 18:02:50 +02:00
Flyinghead
5960450e76
Linux x86 fix. Wait for renderer thread to end.
2018-07-24 17:24:56 +02:00
Flyinghead
8dab514b2a
yet another tentative asm fix
2018-07-23 20:38:31 +02:00
Flyinghead
3d2de4a0dc
tentative fix for rec x86/win
2018-07-23 20:26:12 +02:00
Flyinghead
960904c401
Exit cleanly in desktop platforms
...
Lighter and cleaner version of the previous PR
2018-07-23 19:52:50 +02:00
Flyinghead
71d7f90858
Merge upstream
2018-07-19 12:19:51 +02:00
Flyinghead
ea35eeb728
Fix FTRC op in both interpreter and dynarec with respect to Inf and NaN
...
The -ffast-math gcc option implies the -ffinite-math-only option, which
produces wrong results with Inf and NaN. Use integer math to detect the
sign of float numbers in FTRC to avoid these issues.
Also the upper cut off value for conversion was apparently wrong.
Also fixed the x86 dynarec but not tested.
Fixes wrong car color in Tokyo Xtreme Racer car selection screen.
2018-07-13 12:02:32 +02:00
Stefanos Kornilios Mitsis Poiitidis
1933aff8a2
First steps for android studio builds
2018-06-25 12:04:07 -04:00