Flyinghead
13a2f8bc61
win32: build fix
2019-06-19 11:14:12 +02:00
Flyinghead
318852e261
dynarec: use mprotect to protect code areas
...
All ram pages containing code are write protected. In that case, no need
for block checks. Memory reads in the same block(s) can also be executed
at compile time and the results propagated as constants.
When a write is detected in a protected area, the corresponding blocks
are discarded and recompiled using traditional (slow) block checks.
Backported the blkmap code finding change from upstream.
Use smart pointers for block management to avoid reference issues.
Added WriteAfterWrite ssa pass
Fixed crash in ssa ConstProp pass when op list is modified
2019-06-19 11:01:33 +02:00
Flyinghead
0b8a312fea
rec-arm64: simplify read/write mem rewrite logic
...
pass exception pc in x2 reg for both slow/fast paths
infer the op type and size from the armv8 op encoding
rewrite doesn't need access to the block anymore
add support for some imm args
2019-06-18 15:07:32 +02:00
Flyinghead
8d8e694e23
swap setpeq args in ssa if first is imm
2019-06-18 13:25:43 +02:00
Flyinghead
3d8b0df789
rec-x64: setpeq native impl. Fix imm mem write for byte and short
...
Optimize fneg, fabs and sub
Fix cvt_f2i
Fix fsca with imm arg
2019-06-18 13:16:42 +02:00
Flyinghead
419370084e
rec-x86: ssa support
2019-06-14 23:34:18 +02:00
Flyinghead
8506355447
wrap aica ram to 8MB instead of only 2MB (dc)
...
fix crash with GuruGuru Onsen 2 and HeadHunter
2019-06-13 21:58:09 +02:00
Flyinghead
7120512205
wince: use exceptions in dyna/decoder.cpp and catch them in driver.cpp
2019-06-13 18:36:08 +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
de86aae73e
rec-arm: XTRCT implementation
2019-06-12 17:46:53 +02:00
Flyinghead
c49694599c
rec-arm: use ssa regalloc
...
add `subc a,a` expression to simplify
2019-06-12 17:31:37 +02:00
Flyinghead
e537d92bcc
ssa: don't simplify FPU ops because of Inf of NaN
2019-06-12 08:52:42 +02:00
Flyinghead
ff745ee4fe
fix xtrct canonical implementation
2019-06-10 19:17:24 +02:00
Flyinghead
a4453c0a81
Fix vmem in 512MB mode
2019-06-10 19:01:56 +02:00
Flyinghead
2c3b516341
x64: use eax instead of ecx for mem reads return value
2019-06-10 14:48:54 +02:00
Flyinghead
f81ff3fe21
Merge remote-tracking branch 'origin/fh/wince-dynarec' into fh/wince-dynarec
2019-06-10 14:47:22 +02:00
Flyinghead
8819c9d536
arm64: handle pref with imm arg. some refactoring
2019-06-10 14:35:27 +02:00
Flyinghead
62e14f6b4c
osx: add files to project
2019-06-10 14:07:58 +02:00
Flyinghead
3dd16e80d2
arm64 and x64 recs use ssa regalloc
2019-06-10 13:57:10 +02:00
Flyinghead
623d70d710
ssa register allocator and more ssa stuff
2019-06-09 19:41:42 +02:00
Flyinghead
bd30752b86
Use auto& to avoid copy when iterating. Inline mmu_Read/WriteMemNoEx
2019-06-08 13:04:35 +02:00
Flyinghead
0890150dda
dynarec: ssa missing changes
2019-06-04 21:27:45 +02:00
Flyinghead
681c423e66
Merge remote-tracking branch 'origin/master' into fh/wince-dynarec
2019-06-04 21:21:04 +02:00
Flyinghead
692556ca5d
dynarec: ssa initial commit
2019-06-04 21:20:34 +02:00
flyinghead
b75a96592e
Update build page url
2019-06-04 19:57:47 +02:00
flyinghead
d25653e9cc
Name change
2019-06-04 19:55:56 +02:00
Flyinghead
a46f1bd0aa
Merge branch 'master' into fh/wince-dynarec
...
# Conflicts:
# appveyor.yml
2019-05-30 21:44:44 +02:00
Flyinghead
97eab1be59
wercker: added naomi build
2019-05-30 20:09:25 +02:00
Flyinghead
94fd42db6f
wercker: missing slash
2019-05-30 20:00:36 +02:00
Flyinghead
aa94d7dfe2
wercker: fix S3 path
2019-05-30 19:54:24 +02:00
Flyinghead
b5a9d0d258
wercker: deploy to S3
2019-05-30 19:46:23 +02:00
flyinghead
5b5bc13588
Add link to builds page on README.md
2019-05-30 19:02:41 +02:00
Flyinghead
cbe8df51cf
osx: bigger window. travis: public_read for S3
2019-05-30 11:56:28 +02:00
Flyinghead
34f1a65ff0
appveyor: add naomi build
2019-05-30 11:03:01 +02:00
Flyinghead
117b23a588
appveyor: fix S3 key
2019-05-30 10:42:20 +02:00
Flyinghead
bad0f38ff5
appveyor: set S3 region
2019-05-29 21:49:00 +02:00
Flyinghead
a7b123ffb6
appveyor and bitrise fixes
2019-05-29 21:37:03 +02:00
Flyinghead
d2591c1022
appveyor: fix indentation
2019-05-29 21:16:09 +02:00
Flyinghead
c28bb7d780
appveyor: deploy to S3
...
bitrise: fix git hash in path
2019-05-29 21:14:34 +02:00
Flyinghead
447061c686
bitrise: fix s3 path
2019-05-29 21:00:01 +02:00
Flyinghead
36c821da49
bitrise: fix env vars
2019-05-29 20:07:47 +02:00
Flyinghead
fdd9370eb1
bitrise: more annoyance
2019-05-29 20:05:12 +02:00
Flyinghead
10e3357e20
bitrise: tentative fix
2019-05-29 20:01:43 +02:00
Flyinghead
5279a00b56
bitrise: more tab to space
2019-05-29 19:50:31 +02:00
Flyinghead
167be1f830
bitrise: tab to space
2019-05-29 19:49:33 +02:00
Flyinghead
0ec1584806
bitrise: deploy to S3
2019-05-29 19:41:42 +02:00
Flyinghead
4f9a22cb26
travis: deploy to S3
2019-05-29 19:04:53 +02:00
Flyinghead
b8a00b9c7d
rec-arm64/x64: only do regalloc on rewrite when needed
2019-05-28 20:03:08 +02:00
Flyinghead
714de0303e
rec-x64: don't save fp regs when calling mem access handlers
2019-05-28 19:43:56 +02:00
Flyinghead
cafd1c3c49
rec-arm64: do a full regalloc when rewriting mem access in mmu mode
2019-05-28 19:43:17 +02:00