Henrik Rydgard
b4dd094f56
x86jit: Save a MOV in many cases of "jr ra"
2016-01-10 12:28:00 -08:00
daniel229
1e984b48ef
update functions
2016-01-04 09:08:52 +08:00
daniel229
de8503f83b
Replace function in Shinigami to Shoujo
2016-01-03 22:35:46 +08:00
daniel229
05612bbc25
Replace function in Little Busters! Converted Edition
2016-01-03 22:28:38 +08:00
daniel229
3b461a00cc
Replace function in ATV Offroad Fury Blazin' Trails
2016-01-03 22:20:50 +08:00
daniel229
107fa1c09a
Replace function in ATV Offroad Fury Pro
2016-01-03 22:13:42 +08:00
daniel229
ed12bb9c89
Fix flickering in SD Gundam G Generation Portable
2016-01-03 09:56:40 +08:00
daniel229
678ca9301a
Fix tutorial videoes in Tony Hawk P8
2016-01-02 13:33:22 +08:00
gmvbif
281f0e18e6
Fixed some errors from PVS-Studio in Core project
...
FixedSizeQueue
- Added private operator=
- Changed signature of EndPop
Some changed to printf like functions.
Fixed typo in syn-att.c
2015-12-31 10:25:11 +03:00
sum2012
8debe785b8
Revert "Fix Yu-Gi-Oh 6 crash with edit card in Android version"
...
This reverts commit f659e60c8d
.
The crash is correctly fixed
2015-12-29 04:10:18 +08:00
Henrik Rydgård
d70125f953
Merge pull request #8319 from unknownbrackets/jit-branch
...
Jit: Always link RA, even if branch not taken
2015-12-28 19:47:14 +01:00
Unknown W. Brackets
3ec7404d2d
Jit: Always link RA, even if branch not taken.
...
The ops don't write RA conditionally.
2015-12-27 20:47:15 -08:00
Unknown W. Brackets
86127b3d0d
Update armips to latest version.
...
The new version has some speed and other improvements.
2015-12-26 20:30:35 -08:00
Unknown W. Brackets
7bfe100b0f
Fix some unused variable warnings.
...
The CheckAlpha one looks like it will matter.
2015-11-25 16:11:53 -08:00
Henrik Rydgard
b998131581
Move the symbol map to the heap, deallocate it when no game is running.
2015-10-31 23:01:19 +01:00
Sacha
bbc4f64999
MIPS: Fix build so we can compile this again.
2015-10-29 02:46:43 +00:00
Henrik Rydgård
e69a456713
Merge pull request #8095 from hrydgard/improve-x64-disasm
...
x64 disasm: properly symbolize rip-relative addresses
2015-10-24 13:29:57 +02:00
Henrik Rydgard
aa584d1992
x86 32-bit buildfix
2015-10-24 11:10:14 +02:00
Henrik Rydgard
b7db15225f
x64 disasm: properly symbolize rip-relative addresses
2015-10-24 10:37:01 +02:00
Unknown W. Brackets
3735dc7c16
arm64: Fix crash on not-nice jr delay slot.
...
These are very rare, I only caught this while debugging with nice
disabled. But it could happen.
2015-10-17 01:22:26 -07:00
Unknown W. Brackets
387ebf3ddd
arm64: Only clobber HI and LO together.
...
We can't clobber LO if HI is still needed. Fixes a crash in Trails in
the Sky on new game (due to a mfhi getting the wrong result.)
2015-10-17 01:21:51 -07:00
Lioncash
fea7428fdb
Core: Add missing override specifiers
2015-10-17 02:58:02 -04:00
Henrik Rydgard
92f7f459dc
Not safe to change the rounding mode function pointer in GenerateCode
2015-10-10 16:46:07 +02:00
Henrik Rydgard
65ee3723d3
ARM64: Don't update currentRoundingFunc unless necessary.
2015-10-10 14:33:01 +02:00
Henrik Rydgard
70239f1611
Fix another rounding bug. ARM64 passes the fpu test again.
2015-10-10 13:30:30 +02:00
Henrik Rydgard
a6294f3e2d
Now the three backends actually do the same thing with rounding. Fixes a bug in the x86 backend, too.
2015-10-10 13:11:38 +02:00
Henrik Rydgard
1ddb508542
Improve x86 disassembly (a few symbols)
2015-10-10 13:05:17 +02:00
Henrik Rydgard
30555f31ca
ARM64 typo fix. Add a couple of worrying comments...
2015-10-10 11:56:59 +02:00
Henrik Rydgard
8914cd9914
ARM64 disassembler improvements (show many kinds of branch targets properly)
2015-10-10 11:27:28 +02:00
Henrik Rydgard
d628b9b57b
Minor fixes, mostly comments
2015-10-10 10:03:34 +02:00
Henrik Rydgard
b2b5f3424f
Fix for 32-bit ARM
2015-10-08 23:11:57 +02:00
Henrik Rydgard
7fee5abf9f
x86/x64: Don't use a separate code block for pregenerated functions, just like on ARM
2015-10-08 22:15:28 +02:00
Henrik Rydgard
c41baab747
Pregenerate code to handle rounding mode switches. This time, for all three cores.
2015-10-08 19:58:37 +02:00
Henrik Rydgard
b7725c4f40
Remove empty header files
2015-10-08 18:54:33 +02:00
Henrik Rydgard
8a3c96a413
ARM64: Don't need to avoid destroying SCRATCH1 in these functions.
2015-10-08 14:54:43 +02:00
Henrik Rydgard
bfed830f91
Remove the ability to disable rounding mode support. It's time.
2015-10-08 14:54:42 +02:00
Henrik Rydgard
6dd86cd843
Get rid of the ForceFlushToZero hidden config option
2015-10-08 14:54:41 +02:00
Henrik Rydgard
42ce836ba5
Some minor renames and cleanups
2015-10-08 14:43:16 +02:00
Henrik Rydgard
5f4145238a
Fix #8034 . Cannot leave IMMs or REGIMM in statically allocated registers after a FlushAll.
2015-10-08 14:39:21 +02:00
Henrik Rydgard
490d8be4df
Some cleanup, enable CRT memory tracker in debug builds
2015-10-04 14:11:34 +02:00
Henrik Rydgard
68fc776fa7
Work around some crashes I got trying to load a GTA:LCS savestate from 2014.
...
However, the savestate still loads to a black screen, although background audio is working.
2015-10-04 10:34:15 +02:00
Unknown W. Brackets
ea271dd61d
Kill FINAL ifdef entirely.
...
We've never turned off the disasm pointer and it's probably not worthwhile
at this point...
2015-09-20 11:39:46 -07:00
Unknown W. Brackets
3301a347b3
arm64: Dumb typo, oops.
2015-09-12 11:56:33 -07:00
Unknown W. Brackets
dd548ba12c
arm64: Check for unordered in vmin/vmax.
2015-09-08 20:07:10 -07:00
Henrik Rydgard
1c67de0c21
We don't need a third set of sized integer typedefs, get rid of it.
2015-09-06 19:10:08 +02:00
Unknown W. Brackets
9b94266c4a
arm64: Avoid overflow in imm math.
2015-08-30 13:00:18 -07:00
Unknown W. Brackets
9262ddfc13
Avoid any possible shifts by 32.
2015-07-19 13:25:50 -07:00
Unknown W. Brackets
cd842ac21f
Validate blocklinking in icache invalidate all.
...
Normally blocks are invalidated on entry. But when blocklinking is on,
we don't validate on all entries.
This fixes Tales of Rebirth crashes (#7868.)
2015-07-19 13:08:32 -07:00
Unknown W. Brackets
96b01e4999
Make sure we don't clean up proxy blocks.
2015-07-19 13:04:06 -07:00
Henrik Rydgard
47f68ae3a3
ARM64 store optimization bugfix
2015-07-16 00:25:32 +02:00
Henrik Rydgard
aaa8350591
Windows: Fix some remaining ASLR issues
2015-07-15 22:25:24 +02:00
Henrik Rydgard
ccd77cfb7a
ARM64 stores: Use WZR for any zero immediates.
2015-07-15 20:01:36 +02:00
Henrik Rydgard
8b05e27259
ARM64 regalloc: Map more registers
2015-07-11 23:53:06 +02:00
Henrik Rydgard
9fe382ad18
ARM64: Shortcut moves between gpr and vfpu when not mapped
2015-07-11 23:53:06 +02:00
Henrik Rydgard
56f9aaa164
ARM64: Store zeroes using WZR
2015-07-11 23:53:05 +02:00
Henrik Rydgård
1ba2b1cfae
Merge pull request #7855 from hrydgard/static-alloc
...
ARM64 jit: Statically allocate a few registers, including SP
2015-07-11 18:13:47 +02:00
Henrik Rydgard
2e937b2d10
use the DiscardR function. Remove an old TODO
2015-07-11 17:17:54 +02:00
Henrik Rydgard
b73920fcba
ARM64: Cleanups in regcache and jit
2015-07-11 17:00:01 +02:00
Henrik Rydgard
444fc0885c
Fix the crash bug (need to mark static non-pointer regs as depointerified on flush)
2015-07-11 16:59:14 +02:00
Henrik Rydgard
2a8560e522
ARM64: Another pair of fixes for static alloc. Still crashes in many games...
2015-07-11 16:59:14 +02:00
Henrik Rydgard
d1bbc1d3c0
More regcache fixes. ML_IMM works now although there is another stability issue somewhere.
2015-07-11 16:59:13 +02:00
Henrik Rydgard
568e2abb2b
Save/load static registers around replacement funcs
2015-07-11 16:59:13 +02:00
Henrik Rydgard
1b8549b26f
Couple more regcache fixes
2015-07-11 16:59:12 +02:00
Henrik Rydgard
4920f3e3c1
Work towards handling ML_IMM in static registers but doesn't work yet (enable on line 649)
2015-07-11 16:59:11 +02:00
Henrik Rydgard
f42f81a4da
ARM64: Optimize small adjustments of pointerified registers
2015-07-11 16:59:11 +02:00
Henrik Rydgard
9af6abd8a1
ARM64: Support pointerified static allocs, statically allocate SP
2015-07-11 16:59:10 +02:00
Henrik Rydgard
844a3f19a9
Fix bugs and issues in ARM64 static alloc. Thanks unknown for finding the problem.
2015-07-11 16:59:09 +02:00
Henrik Rydgard
a0bf934796
ARM64: Some work on static allocation. Close to working, cube.elf runs 700 blocks but then hangs (?!)
2015-07-11 16:59:09 +02:00
Henrik Rydgard
698ef82452
ARM64: Fix vrot
2015-07-11 16:56:26 +02:00
Henrik Rydgard
9937b41461
ARM64: Fix vi2uc and vi2us and enable them.
2015-07-11 16:46:11 +02:00
Henrik Rydgard
dc2f6a30fb
ARM64: Fix joining of lwl/lwr and swl/swr. "implement" the cache instruction.
2015-07-11 16:25:22 +02:00
Henrik Rydgard
1575025b3d
ARM64: Store back fp registers in pairs where possible
2015-07-11 13:52:46 +02:00
Henrik Rydgard
35c65973c1
ARM64 jit: implement vuc2i, vc2i, vus2i, vs2i instructions
2015-07-11 13:25:58 +02:00
Henrik Rydgard
4a7ee6d6cd
ARM64 jit: Implement vi2uc, vi2c, vi2us, vi2s instructions
2015-07-11 12:37:23 +02:00
Henrik Rydgard
f50828a66a
ARM32 JIT: Implement vs2i, vus2i, vc2i (but not vuc2i)
2015-07-11 00:37:57 +02:00
Henrik Rydgard
cd1665e8f6
ARM32 jit: Implement vi2s, vi2c (but not the unsigned variants yet). uses the new shifts from the last commit
2015-07-09 00:27:12 +02:00
Henrik Rydgard
a3b728dd1b
ARM64 jit: Minor optimization of lv.q and sv.q
2015-07-08 11:59:48 +02:00
Henrik Rydgård
f3c5af570c
Merge pull request #7849 from unknownbrackets/arm64-micro
...
Fix discarding imms and flushing zero in arm64
2015-07-05 21:11:28 +02:00
Unknown W. Brackets
db3dffb44d
arm64: Oops, fix flushing zero from an armreg.
2015-07-05 11:57:18 -07:00
Unknown W. Brackets
204c1dc8dd
arm64: Optimize 3ops against zero.
2015-07-05 09:52:53 -07:00
Henrik Rydgard
7011758e83
Move misplaced FlushIcache() in Arm64Asm.cpp
2015-07-05 10:03:52 +02:00
Unknown W. Brackets
003668fe66
armjit: Fix discarding imms.
2015-07-04 07:30:32 -07:00
Unknown W. Brackets
8ea7f99072
arm64: Fix imm wasting when STP doesn't work out.
2015-07-04 07:09:47 -07:00
Unknown W. Brackets
e6a7ba3fae
arm64: Bring imms along for the STP ride.
2015-07-03 16:51:33 -07:00
Unknown W. Brackets
ca1e482a56
arm64: Avoid setting a reg to zero to store it.
2015-07-03 16:05:25 -07:00
Henrik Rydgård
82c66bc463
Merge pull request #7840 from unknownbrackets/arm64-micro
...
Flush using STP where possible in ARM64
2015-07-03 23:20:43 +02:00
Unknown W. Brackets
8fdceba7ca
Add timing for all the basics.
...
This way we can see overall stats for a frame.
2015-07-03 12:05:08 -07:00
Unknown W. Brackets
90b7d135cb
arm64: Flush in pairs if possible.
...
On an A57, this is around twice as fast (for just the STR/STR vs STP.)
2015-07-03 11:07:09 -07:00
Unknown W. Brackets
ddb955a527
arm64: Try to optimize imm stores.
...
If we already have a reg, we can use it. This can happen when immediate
addresses are loaded and used as bases, although it's not super common.
2015-07-03 10:48:11 -07:00
Unknown W. Brackets
2331df8c70
arm64: Try to be more consistent in ZERO handling.
...
Let's keep it IMM where possible, even though we've added checks for
MIPS_REG_ZERO.
2015-07-03 10:21:24 -07:00
Unknown W. Brackets
66d85233b9
arm64: Flush only caller-saved regs before calls.
2015-07-03 10:09:43 -07:00
Unknown W. Brackets
66adc4e695
jit: Normalize CONDITIONAL_DISABLE formatting.
2015-07-02 20:31:37 -07:00
Unknown W. Brackets
fed687fb59
arm64: Meld LO and HI together for multiplies.
2015-07-02 20:31:37 -07:00
Unknown W. Brackets
1d1c80d9cf
arm64: Use BFI for cfc1.
2015-07-02 20:31:35 -07:00
Unknown W. Brackets
757a1a414a
arm64: Workaround an apparent gcc bug.
...
Only seems to happen with unsigned. This took a while to track down...
2015-07-02 19:59:38 -07:00
Unknown W. Brackets
e94fd3d4bd
arm64: Fix div/divu remainders.
...
Erp, I transposed the args when I pasted them.
2015-06-28 16:52:49 -07:00
Unknown W. Brackets
81b923f1dc
arm64: Correct movz/movn. Weren't right after all.
2015-06-28 16:49:28 -07:00
Unknown W. Brackets
4d7a948717
arm64: Fix a dump mistake with rounding modes.
2015-06-28 16:35:46 -07:00
Unknown W. Brackets
b6612edf67
arm64: Use a cached rounding func for cvt.w.s.
...
This is much faster for this particular instruction, although not all
games even use it.
2015-06-28 12:40:29 -07:00
Unknown W. Brackets
1c163e4817
arm64: Avoid an ORR for c.ueq.
...
This is about 15% faster for this single, uncommon instruction on A57.
2015-06-28 10:52:17 -07:00
Unknown W. Brackets
febe435946
arm64: Use FP load/stores for non-reg pointers.
2015-06-28 10:45:44 -07:00
Unknown W. Brackets
909e4b9bd8
Switch lo and hi so that low comes first.
...
This way we can treat it as a single 64-bit value.
2015-06-28 10:42:19 -07:00
Unknown W. Brackets
213ad4bcc9
arm64: Cleanup branch code a tiny bit.
...
Want to make it clear that we can't kill W0 at this point (delay slots.)
2015-06-28 09:28:54 -07:00
Unknown W. Brackets
0978aa4d5e
arm64: Use msub for div/divu remainder.
...
Not really much faster, but less instructions at least.
2015-06-28 09:05:39 -07:00
Unknown W. Brackets
0a5b1c030b
arm64: Implement ext and ins.
2015-06-28 08:45:17 -07:00
Unknown W. Brackets
daddb73f22
arm64: Implement nor.
2015-06-28 00:41:04 -07:00
Unknown W. Brackets
11a851a139
arm64: Enable movz/movn.
2015-06-28 00:41:04 -07:00
Unknown W. Brackets
223e55a453
arm64: Undisable clz/clo, they work.
...
Also, avoid a temp in clo. It's the tiniest bit faster on A57, though
we'll see how it works out elsewhere. A bit clearer without the temp
imho.
2015-06-28 00:41:03 -07:00
Unknown W. Brackets
81bc8107cf
arm64: Use UBFX, not LSR, for slti sign check.
...
This is about 22% faster on the A57 (for just this one instruction, so not
a huge impact overall.) Makes sense that it would be since not arith.
2015-06-28 00:41:03 -07:00
Unknown W. Brackets
fedbe645e0
arm64: Use all immediate compares in safemem.
...
Ah, this is better.
2015-06-27 00:22:09 -07:00
Unknown W. Brackets
3c29ec2051
arm64: Optimize codesize in safemem path a bit.
...
Will only be used for scratchpad, I think.
2015-06-27 00:22:04 -07:00
Unknown W. Brackets
fbd4db0fc4
arm64: Add a safemem path.
...
This is probably not optimal but at least it works.
2015-06-27 00:22:04 -07:00
Unknown W. Brackets
b3aa6d89e9
Fix UBFX encoding (thanks SonicAdvance1.)
2015-06-26 21:27:03 -07:00
Henrik Rydgard
e848247f88
ARM64: Also save FP registers around the JIT dispatcher loop
2015-06-14 13:03:46 +02:00
Henrik Rydgard
2c05334d47
ARM64: Fix bug where we didn't save the FP registers correctly in the vertex decoder.
...
Also port a few ops from dolphin's ARM64 emitter.
2015-06-14 12:56:44 +02:00
Jan Beich
a4eb49f009
Unbreak build with FakeJit
...
Core/MIPS/fake/FakeJit.cpp:141:46: error:
unknown type name 'FakeJitBlock'; did you mean 'JitBlock'?
const u8 *FakeJit::DoFakeJit(u32 em_address, FakeJitBlock *b)
^~~~~~~~~~~~
JitBlock
Core/MIPS/JitCommon/JitBlockCache.h:59:8: note:
'JitBlock' declared here
struct JitBlock {
^
Core/MIPS/fake/FakeJit.cpp:141:20: error:
out-of-line definition of 'DoFakeJit' does not match any declaration in
'MIPSComp::FakeJit'
const u8 *FakeJit::DoFakeJit(u32 em_address, FakeJitBlock *b)
^~~~~~~~~
Core/HLE/ReplaceTables.cpp:1044:29: error:
use of undeclared identifier 'JITFUNC'
{ "fabsf", &Replace_fabsf, JITFUNC(Replace_fabsf), REPFLAG_ALLOWINLI...
^
Core/HLE/ReplaceTables.cpp:1101:27: error:
invalid application of 'sizeof' to an incomplete type 'const
ReplacementTableEntry []'
for (int i = 0; i < (int)ARRAY_SIZE(entries); i++) {
^~~~~~~~~~~~~~~~~~~
native/math/../base/basictypes.h:67:30: note:
expanded from macro 'ARRAY_SIZE'
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
^~~
Core/HLE/ReplaceTables.cpp:1117:9: error:
invalid application of 'sizeof' to an incomplete type 'const
ReplacementTableEntry []'
return ARRAY_SIZE(entries);
^~~~~~~~~~~~~~~~~~~
native/math/../base/basictypes.h:67:30: note:
expanded from macro 'ARRAY_SIZE'
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
^~~
Core/MIPS/JitCommon/JitCommon.cpp:31:2: error:
unknown type name 'Jit'
Jit *jit;
^
Core/MIPS/JitCommon/JitCommon.cpp💯 21: error:
no member named 'Asm' in 'MIPSComp::FakeJit'
if (MIPSComp::jit->Asm().IsInSpace((u8 *)(intptr_t)addr)) {
~~~~~~~~~~~~~ ^
Core/MIPS/JitCommon/JitCommon.cpp:101:45: error:
no member named 'Asm' in 'MIPSComp::FakeJit'
*offset = addr - (uint64_t)MIPSComp::jit->Asm().GetBasePtr();
~~~~~~~~~~~~~ ^
Core/MemMap.cpp:197:57: error:
use of undeclared identifier 'MEMVIEW32_MASK'
...position, view.size, base + (view.virtual_address & MEMVIEW32_MASK));
^
2015-05-26 15:20:10 +03:00
daniel229
af9e04dc97
Replace framebuffer download in Youkoso Hitsuji-Mura Portable
2015-04-20 16:36:07 +08:00
Unknown W. Brackets
b818509734
x86jit: Fix clobbering address in lv.q/sv.q.
...
We can't let it go into EAX. Hmm, maybe there's a cleaner way.
Should fix #7686 .
2015-04-14 23:17:11 -07:00
Unknown W. Brackets
4aa92ed99e
Read fcr1-30 as 0.
...
Accidentally broken in 91966824bb
.
2015-04-13 19:09:53 -07:00
Henrik Rydgård
a1f5c537d4
Merge pull request #7672 from unknownbrackets/jit-minor
...
More x86jit micro optimizations for the FPU
2015-04-13 09:57:02 +02:00
Henrik Rydgård
c1b91ff5c1
x86: Add a way to eliminate some mov instructions.
...
Not currently used yet.
2015-04-12 13:50:23 -07:00
Henrik Rydgård
70fa830ba5
Split out the ReplaceJalTo test logic.
...
This makes it so the IR, in the future, can work correctly for
replacements.
2015-04-12 13:35:10 -07:00
Henrik Rydgård
c6113b831d
Remove unused and duplicate define.
2015-04-12 13:16:01 -07:00
Henrik Rydgård
f81781d25c
Unify JitOptions in FakeJit also.
2015-04-12 13:15:00 -07:00
Henrik Rydgård
a8b50d0c9b
Fix MIPSInfo masking for 64-bit flags.
2015-04-12 11:57:49 -07:00
Henrik Rydgård
6dcf56530b
Add some missing FPU flags to MIPSTables.
2015-04-12 11:56:04 -07:00
Henrik Rydgård
071b6b986a
Best-effort update of the MipsJit prototype
2015-04-12 11:53:16 -07:00
Henrik Rydgård
d014d420db
Unify JitOptions across the backends.
...
This is required to make ExtractIR not a member of the various backends.
2015-04-12 11:41:26 -07:00
Henrik Rydgård
7bf67509d1
ARM: Cleanup a TODO in NEON VFPU.
2015-04-12 11:21:53 -07:00
Unknown W. Brackets
56f071d26a
x86jit: Support SIMD load/store with fastmem off.
...
Which is a lot faster, since it usually takes the fast path.
2015-04-11 01:22:50 -07:00
Henrik Rydgård
81dec36da8
Use an accessor to read the compilerPC.
...
In the IR it will be read from the block.
2015-04-11 01:14:37 -07:00
Henrik Rydgård
a897723e6a
Separate out jit reading nearby instructions.
...
This makes it easier to use an IR for these things, or remove them.
2015-04-11 00:53:24 -07:00
Henrik Rydgård
59d0baca93
Add way to print some block bloat stats.
2015-04-11 00:12:56 -07:00
Henrik Rydgård
115486e431
Fix some fp instruction in/out flags
2015-04-11 00:03:56 -07:00
Unknown W. Brackets
7ea9bcbc13
x86jit: Avoid mapping rs in vfpu load/store.
...
This allows immediate address load/store, when possible, which can be
faster (especially with slow mem enabled.)
2015-04-10 20:30:14 -07:00
Unknown W. Brackets
eaed080add
x86jit: Fix immediate kernel addresses.
...
Using a signed add + a value with the top bit set = bad. Will have to
live with losing the kernel bit here, should be fine.
2015-04-10 20:25:29 -07:00
Unknown W. Brackets
e58eb5e186
x86jit: Small optimization for fd->fd fp convert.
...
We just generate a little less code. This is also slightly faster
generally.
2015-04-10 20:07:43 -07:00
Unknown W. Brackets
7e38df077f
x86jit: Prefer MOVAPS over MOVSS for reg->reg.
2015-04-10 20:07:43 -07:00
Unknown W. Brackets
9069c84928
x86jit: Use ANDPS for abs.s.
...
Should be faster considering they're likely to use other floating point
math on it. As long as that's the case, this is faster than PAND.
2015-04-10 13:20:52 -07:00
Unknown W. Brackets
b2b20a6eee
Correct an invalid format parameter.
2015-04-08 12:17:24 -07:00
Unknown W. Brackets
8e8a18e9b5
Log read failures from hashmap too.
2015-04-08 12:10:45 -07:00
Unknown W. Brackets
3cb474047b
Fix potential shift by negative number.
2015-04-08 11:57:59 -07:00
Unknown W. Brackets
fc0788bc95
Avoid unpredictable behavior in error condition.
2015-04-08 11:57:57 -07:00
Unknown W. Brackets
b0d291032d
armjit Avoid cfc1/mfc1 to $0.
2015-04-07 18:30:36 -07:00
Unknown W. Brackets
7ce5841f30
jit: Avoid mfhi/mflo to $0.
2015-04-07 18:25:28 -07:00
Unknown W. Brackets
788b9d78f8
jit: Avoid a super unlikely write to zero.
2015-04-07 18:20:37 -07:00
Henrik Rydgård
a8c2d0945a
ARM64: lwl: Pass INVALID_REG to be sure SCRATCH1 doesn't get overwritten...
2015-04-06 18:13:41 +02:00
Henrik Rydgård
13c9390c53
ARM64: Emitter fix, disable swl/swr/lwl/lwr again fully
2015-04-06 18:13:38 +02:00
Henrik Rydgård
95cd1478de
Restore the x86 build.
2015-04-06 18:13:37 +02:00
Henrik Rydgård
fbaffdceab
Remove some outdated comments, minor stuff
2015-04-06 18:13:36 +02:00
Henrik Rydgard
0a70618f87
ARM64: Accurate floating point rounding. For some reason, FTZ doesn't seem to work though.
2015-04-06 18:13:36 +02:00
Henrik Rydgard
ad3d539451
ARM64: Attempt at lwl/lwr/swl/swr. The first two don't work
2015-04-06 18:13:35 +02:00
Henrik Rydgard
44286a2b37
ARM64: Accurate float->int conversion with rounding mode.
2015-04-06 18:13:34 +02:00
Henrik Rydgard
acf08eefa8
ARM64: Fix FCVTL, use it in v2hf
2015-04-06 18:13:33 +02:00
Henrik Rydgard
8eedcc7fb0
ARM64: Speedup fpu/vfpu load/stores too using "pointerification". Actually noticeable gain.
2015-04-06 18:13:32 +02:00
Henrik Rydgard
ad648baa9c
ARM64 regcache: Add support to "pointerify" registers. Use in load/store to cut down instructions.
2015-04-06 18:13:32 +02:00
Henrik Rydgard
2780eef595
ARM64: Another couple of VFPU ops
2015-04-06 18:13:31 +02:00
Henrik Rydgard
ca58f322e5
ARM64: Port over some missing VFPU instructions from ARM. Not much left now.
2015-04-06 18:13:30 +02:00
Henrik Rydgard
f06e9a9d18
ARM64: Even more VFPU instructions
2015-04-06 18:13:30 +02:00
Henrik Rydgard
1b1ab73b0f
ARM64: Enable some more VFPU instructions, some code cleanup
2015-04-06 18:13:29 +02:00
Henrik Rydgard
500ca94ab8
ARM64: Port over tons of VFPU code from ARM, leave most of it disabled.
2015-04-06 18:13:28 +02:00
Henrik Rydgard
8df8c210d1
ARM64: Start porting over VFPU stuff from ARM, fix regalloc bug
2015-04-06 18:13:28 +02:00
Henrik Rydgard
6cb107d6fc
ARM64: Fix LDP disassembly
2015-04-06 18:13:25 +02:00
Henrik Rydgard
34e61ab875
ARM64: More FPU instructions (int<->float convert), minor stuff
2015-04-06 18:13:25 +02:00
Henrik Rydgard
25ec85551f
ARM64: Implement FP compares, misc
2015-04-06 18:13:22 +02:00
Henrik Rydgard
ceb9f66502
ARM64: Fix bug in mult
2015-04-06 18:13:21 +02:00
Henrik Rydgard
1a02e32ad1
ARM64: Implement the multiplication instructions
2015-04-06 18:13:20 +02:00
Henrik Rydgard
a12e448fb4
ARM64: Stub vertex decoder jit, implementing just enough for the cube.elf cube.
2015-04-06 18:13:18 +02:00
Henrik Rydgard
acd9502b44
ARM64: stp/ldp disasm improvements
2015-04-06 18:13:17 +02:00
Henrik Rydgard
57e759a605
ARM64: Fix and turn on basic block linking
2015-04-06 18:13:17 +02:00
Henrik Rydgard
5dff3f8c89
ARM64: Implement scalar FMOV. This makes the FPU2op ops work.
2015-04-06 18:13:16 +02:00
Henrik Rydgard
4233921ab7
ARM64: Some more instructions, func replacements
2015-04-06 18:13:16 +02:00
Henrik Rydgard
9e2786b319
ARM64: Fix and enable a bunch more instructions. temporarily disable movz movn
2015-04-06 18:13:15 +02:00
Henrik Rydgard
2bca05c4f2
ARM64: implement shifts, movz/movn. Corresponding fixes to emitter/disasm
2015-04-06 18:13:14 +02:00
Henrik Rydgard
86ff2a2806
ARM64: Enable a bunch of arithmetic instructions that now work, thanks to emitter fixes
2015-04-06 18:13:13 +02:00
Henrik Rydgard
77501e220d
ARM64: Enable a few more instructions, more emitter/disasm unittests
2015-04-06 18:13:13 +02:00
Henrik Rydgard
0922db6062
ARM64: Some FP work.
2015-04-06 18:13:11 +02:00
Henrik Rydgard
d2c746dd64
ARM64: Get the FP reg cache working, implement some basic FP arith
2015-04-06 18:13:11 +02:00
Henrik Rydgard
d16bd1fd30
ARM64: Port over basic load/store from ARM. Works in FastMem only.
2015-04-06 18:13:10 +02:00
Henrik Rydgard
8dc77ff32e
ARM64: Turn off some debugging stuff, start implementing instructions. Something is wrong though, if I implement more than addiu things break..
2015-04-06 18:13:09 +02:00
Henrik Rydgard
cc722f09f6
Improve ARM64 disassembly by merging MOVZ+MOVK. Minor stuff.
2015-04-06 18:13:07 +02:00
Henrik Rydgard
58b059ca14
Some casting cleanup, misc
2015-04-06 18:13:06 +02:00
Henrik Rydgard
34ab532971
ARM64 jit: Fix some pointer truncations and other fun stuff..
2015-04-06 18:13:05 +02:00
Henrik Rydgard
e7e58591da
More JIT work, not quite there yet...
2015-04-06 18:13:04 +02:00
Henrik Rydgard
524583d53e
ARM64 emitter work, dispatcher work, etc. More work needed.
2015-04-06 18:13:03 +02:00
Henrik Rydgard
8945b2476d
Add the beginnings of a rudimentary ARM64 disassembler
2015-04-06 18:13:03 +02:00
Henrik Rydgard
b309c83973
Initial work on ARM64, based on the ARM jit.
2015-04-06 18:13:01 +02:00
Unknown W. Brackets
2450724be2
Make Memory::Memcpy() execute memchecks directly.
...
This makes it easier to handle breakpoints in HLE.
2015-04-05 18:09:20 -07:00
Unknown W. Brackets
bdd1db1fa2
x86jit: Handle vmin/vmax and vsge correctly.
...
Unfortunately, this boots vmin/vmax from simd, currently.
2015-03-29 12:24:49 -07:00
Henrik Rydgård
6b2acbae8f
Merge pull request #7613 from daniel229/replace_download_frame_in_gakuenheaven
...
Replace download frame in Gakuen Heaven.
2015-03-18 18:11:54 +01:00
Unknown W. Brackets
6c03fc4f01
Correct savestate interaction with proxy blocks.
...
At least, I think that's what's going wrong here. Either way, this is
safer and apparently fixes #7612 .
2015-03-17 23:50:20 -07:00
Unknown W. Brackets
9d52ee4e21
Fix cases where breakpoints were skipped.
...
After reset or savestate load.
2015-03-17 23:06:25 -07:00
daniel229
a4d8be5023
Fixes saveicon in Gakuen Heaven.
2015-03-18 11:43:31 +08:00
Unknown W. Brackets
98d7afae89
Switch to #pragma once in a few places.
...
Doesn't really affect git history much to change these.
2015-03-02 22:34:51 -08:00
Unknown W. Brackets
179e996b0b
jit: Discard unused regs before a syscall.
...
This is a pretty minor optimization, though.
2015-03-01 11:08:59 -08:00
Chin
37f50a3792
Change to pass some arguments by reference
2015-03-01 16:49:00 +01:00
Unknown W. Brackets
6cc84ffdbb
jit: fix invalidation of blocks with only jr.
...
We need to expand the range not to the latest exit, but to the size of the
block.
2015-02-28 15:09:41 -08:00
Henrik Rydgard
1ecfd6cebc
More replacement function accuracy improvements. Makes J&D happy, "fixing" #7502 .
2015-02-20 00:17:47 +01:00
Henrik Rydgard
23492d8d90
Jak and Daxter relies on implementation details of memcpy (scary!), fix our replacement. Fixes #7502
2015-02-19 11:16:16 +01:00
daniel229
aec9e25be9
Another replace frame download in Photo Kano.
2015-02-12 20:36:17 +08:00