Commit Graph

6918 Commits

Author SHA1 Message Date
Unknown W. Brackets
0000be1bb2 x86jit: Add a MAP_NOLOCK flag to not lock.
Only for MapRegs*.  And then lock all by default, including
TryMapRegsVS().
2014-11-30 10:36:44 -08:00
Unknown W. Brackets
52cfe4a8a3 x86jit: Avoid MOVSS into self. 2014-11-30 10:35:26 -08:00
Henrik Rydgard
466cdb8ddf x86 Jit: Basic implementation of SIMD vmmul. Can be improved. 2014-11-30 19:27:43 +01:00
Henrik Rydgard
74e70f1159 Fix silly typo 2014-11-30 17:24:56 +01:00
Henrik Rydgard
ac772f25ff x86 JIT: Join adjacent vrot calls together to avoid redundant sin/cos calls. Add a prototype, fix minor issues. 2014-11-30 11:04:13 +01:00
Henrik Rydgård
7deb8055ee Merge pull request #7117 from unknownbrackets/jit-simd
x86jit: Implement vmmov using SIMD
2014-11-30 09:24:22 +01:00
Unknown W. Brackets
679a824487 x86jit: when reusing a reg, don't zap slot.
If we returned the same reg it was in before, don't zap the slots because
slot #1 may be valid.
2014-11-29 23:11:50 -08:00
Unknown W. Brackets
c3578bd8eb x86jit: Find the correct available regs.
If there aren't n available regs, they may not of course be in slots 0 and
1.  Have to go and find them.
2014-11-29 22:12:40 -08:00
Unknown W. Brackets
df6a07f24e x86jit: Allow only one reg for sequential load. 2014-11-29 22:11:52 -08:00
Unknown W. Brackets
bb26e4f7d0 x86jit: Implement vmmov using SIMD.
4x -> 87x in microbenchmarking.
2014-11-29 18:46:38 -08:00
Kingcom
6b29fe9d60 Change VROT disassembly 2014-11-29 18:33:33 +01:00
Unknown W. Brackets
67608639c5 x86jit: Oops, can't have loaded regs here yet. 2014-11-29 09:07:25 -08:00
Henrik Rydgard
8bd20ed8d1 x86 jit: Implement matrix init ops in SIMD. Turn off SIMD again by default (oops) 2014-11-29 12:30:21 +01:00
Henrik Rydgard
8f016d3e48 Merge some matrix utils and stuff from the NEON branch 2014-11-29 11:37:45 +01:00
Henrik Rydgård
ae15722a2e Merge pull request #7112 from unknownbrackets/jit-simd
jit: MAP_NOINIT should always mean MAP_DIRTY
2014-11-29 10:19:33 +01:00
Unknown W. Brackets
f6f943de63 jit: MAP_NOINIT should always mean MAP_DIRTY. 2014-11-29 00:14:08 -08:00
Henrik Rydgard
32c81c3265 x86 jit vcrsp.t: Oops, don't "SimpleReg" before doing the SIMD solution.. 2014-11-28 01:06:32 +01:00
Henrik Rydgard
344f71b092 x86 jit: Commit commented-out haddps-based vdot.q as reminder not to use haddps... 2014-11-28 00:19:11 +01:00
Henrik Rydgård
6ea5f6ab02 Merge pull request #7104 from Kingcom/Assembler
Replace assembler with a submodule
2014-11-27 23:56:49 +01:00
Henrik Rydgard
8f4d322dc6 Another oops... 2014-11-27 23:33:03 +01:00
Henrik Rydgard
bcdfb496a0 Oops, bad merge 2014-11-27 23:12:57 +01:00
Henrik Rydgard
c5bf3adec0 x86 jit: use the correct fp move instruction, minor optimization in vdot 2014-11-27 23:08:15 +01:00
Unknown W. Brackets
0839ce59e1 x86jit: Apply dirty when reusing 1-reg VS. 2014-11-27 01:05:11 -08:00
Unknown W. Brackets
bbeb5758b7 x86jit: Simplify VS() / VSX() usage. 2014-11-27 00:07:17 -08:00
Unknown W. Brackets
039510a3e3 x86jit: Respect dirty even for non-simd. 2014-11-26 23:29:20 -08:00
Unknown W. Brackets
f63c165f64 x86jit: Fix several cases of missing dirty checks. 2014-11-26 23:28:14 -08:00
Henrik Rydgard
acb711007f x86 jit: SIMD-ify cross product 2014-11-27 00:18:19 +01:00
Henrik Rydgard
5033babb10 x86 Jit: SIMD-ify vdot 2014-11-26 23:47:18 +01:00
Henrik Rydgard
bbd0afd148 x86 jit: Disable SIMD by default, needs just a little more debugging.. 2014-11-26 22:30:41 +01:00
Henrik Rydgard
4b25afb7b4 x86 Jit: SIMD some more instructions 2014-11-26 22:30:06 +01:00
Henrik Rydgard
becdb14a3f x86 jit: Fix a couple issues in simd storefromregister 2014-11-26 22:25:18 +01:00
Henrik Rydgård
80797dc723 Merge pull request #7108 from unknownbrackets/jit-simd
Fix the simd issue at least for Wipeout
2014-11-26 21:42:02 +01:00
Unknown W. Brackets
abd425d9f1 x86jit: Re-enable the simd optimization. 2014-11-26 09:21:15 -08:00
Unknown W. Brackets
e5dabaabe2 x86jit: Optimize simd->non for 1-lane a little. 2014-11-26 09:20:50 -08:00
Unknown W. Brackets
5d0c32d1e6 x86jit: Assume non-simd regs are dirty. 2014-11-26 09:19:50 -08:00
Henrik Rydgard
804de50711 x86 jit: SIMD-ify VFPU register file writebacks where possible 2014-11-26 01:33:05 +01:00
Henrik Rydgard
b3c8a82c49 x86 jit: SIMD-ify some more 2014-11-25 23:56:46 +01:00
Henrik Rydgard
b5ee47a80c x86 jit: SIMD-ify lv.q and sv.q 2014-11-25 23:28:29 +01:00
Henrik Rydgård
4db6b7f3e2 SIMD-ify a couple instructions a bit 2014-11-25 22:47:26 +01:00
Unknown W. Brackets
ced555ee47 Oops, fix a mistake in umd replacement. 2014-11-25 12:03:16 -08:00
Unknown W. Brackets
efd7f1cc36 Fix a few warnings, cleanup. 2014-11-25 11:58:03 -08:00
Unknown W. Brackets
53c3841698 Buildfix for Linux and Symbian. 2014-11-25 11:48:08 -08:00
Unknown W. Brackets
aeb3a327f0 Oops, typo. 2014-11-25 11:39:34 -08:00
Unknown W. Brackets
0d8dc48200 Don't try to close invalid files. 2014-11-25 11:34:39 -08:00
Unknown W. Brackets
0551773599 Add an interface to retry HTTP requests.
They could fail / be spotty in some situations.  A little retry can go a
long way.
2014-11-25 09:16:47 -08:00
Unknown W. Brackets
53e6d49568 Shortcut a read outside the file.
This happened to me.
2014-11-25 09:16:17 -08:00
Unknown W. Brackets
99b422aa0a Add more verbose logging in case of error. 2014-11-25 08:59:29 -08:00
Unknown W. Brackets
6d9ff8fac4 Fix disconnect order. 2014-11-25 00:33:23 -08:00
Unknown W. Brackets
219d546b79 Handle case in HTTP headers better. 2014-11-25 00:30:48 -08:00
Unknown W. Brackets
df5020c439 Treat generation 0 a bit specially.
I guess we could always check gen 0 first, that'd be readahead/backfill.
2014-11-24 14:11:24 -08:00
Unknown W. Brackets
27eb38df8d Fix a possible leak.
Can definitely see this happening.
2014-11-24 14:08:21 -08:00
Unknown W. Brackets
824e8cf17c Add a readahead cache for HTTP.
So the only other thing it could do is idle backfill...
2014-11-24 01:08:30 -08:00
Unknown W. Brackets
49a5394b93 Oops, don't try to read past end of file. 2014-11-24 00:19:13 -08:00
Unknown W. Brackets
4e11f7c182 Implement a simple recently used cache for HTTP. 2014-11-23 23:35:20 -08:00
Unknown W. Brackets
6dca6ad9bd Add an HTTP transport for loading isos.
Not exposed in UI yet, but you can use command line.
2014-11-23 16:14:11 -08:00
Unknown W. Brackets
b620070fa6 Kill FileLoader::Reopen()...
Was a bad idea.
2014-11-23 14:08:14 -08:00
Unknown W. Brackets
fd2d7406d1 Make LocalFileLoader essentially private. 2014-11-23 14:02:35 -08:00
Unknown W. Brackets
967b589778 Consistently use FileLoader for standard ISOs. 2014-11-23 13:59:56 -08:00
Unknown W. Brackets
102b7b03fa Add an interface to load files with.
This allows loading from other than raw files.
2014-11-23 13:25:32 -08:00
Kingcom
f6cedcbff5 Replace assembler with a submodule 2014-11-23 21:09:40 +01:00
Unknown W. Brackets
a4b9122943 x86jit: Use NS instead of NBE for checked entries.
This may cause us to more correctly bail on linked blocks in some cases.
2014-11-23 11:05:49 -08:00
Unknown W. Brackets
fe525a52f9 Update native (shutdown crash) + comment. 2014-11-23 11:04:07 -08:00
Unknown W. Brackets
473f388088 Disable the simd stuff for now.
Won't have time to look at this for a bit...
2014-11-20 14:07:56 -08:00
Henrik Rydgård
811a27a6e6 Merge pull request #7069 from level99procrastinator/depth-range-hack-for-psp2
Workaround for graphics glitch in Phantasy Star Portable 2
2014-11-20 14:09:30 +01:00
xSacha
88b1c00a67 MIPS: Complete MIPSX rename for buildfix. 2014-11-19 07:55:44 +10:00
Henrik Rydgård
6a49337a0c Merge pull request #7096 from unknownbrackets/jit-simd
x86jit: Add basic support for mapping SIMD
2014-11-18 18:25:39 +01:00
Sacha
65e008f053 Implement a MipsJit. 2014-11-18 08:40:57 -08:00
xSacha
3172fa22e2 Integrate new MIPS emitter. 2014-11-18 08:40:57 -08:00
Unknown W. Brackets
ab7dd0df25 x86jit: Add an option to enable/disable vpfu simd. 2014-11-17 20:37:27 -08:00
Henrik Rydgard
4ed97f9c60 Don't msgbox on game exit (homebrew can legitimately do this) 2014-11-17 21:25:08 +01:00
Henrik Rydgard
53b5d331b4 Assorted minor optimizations 2014-11-17 21:21:44 +01:00
Henrik Rydgard
3298c1143f Arm disasm: Coalesce multiple "BKPT 1" like we do on x86 for INT 3 2014-11-17 21:21:44 +01:00
Henrik Rydgard
74d8a9bdba Clean up after the block linker. armdis: add BKPT 2014-11-17 21:21:34 +01:00
Unknown W. Brackets
921b39ebf5 x86jit: Optimize a 2-reg simd load. 2014-11-16 15:05:17 -08:00
Unknown W. Brackets
e68eb0a292 x86jit: Load sequential regs in one shot. 2014-11-16 15:05:17 -08:00
Unknown W. Brackets
ed501302a2 x86jit: Add a check to see if we can map simd. 2014-11-16 15:05:16 -08:00
Unknown W. Brackets
27148d3712 x86jit: Add some helpers to check state. 2014-11-16 13:33:16 -08:00
Unknown W. Brackets
de566be2ce x86jit: Split out the logic for loading simd regs. 2014-11-16 13:33:15 -08:00
Unknown W. Brackets
5347431c20 x86jit: Initial simd for VecDo3(). Broken.
I'm not sure why/where it's broken...
2014-11-16 13:33:15 -08:00
Unknown W. Brackets
aad505e7b3 x86jit: Add a TryMapDirtyInInVS() for 3-op. 2014-11-16 13:33:14 -08:00
Unknown W. Brackets
88a753eff3 x86jit: Add an invariant contract to the fpu cache.
This should help catch things better in debug mode.
2014-11-16 13:33:14 -08:00
Unknown W. Brackets
39afeb490f x86jit: Add some typesafety. 2014-11-16 13:33:13 -08:00
Unknown W. Brackets
4335bf3346 x86jit: Add basic mapping of SIMD regs.
Not tested yet, just sketched out.  All very suboptimal.
2014-11-16 13:33:13 -08:00
Unknown W. Brackets
9429359b47 x86jit: Add fallbacks when moving from VS -> V. 2014-11-16 13:33:12 -08:00
Unknown W. Brackets
2862367927 x86jit: Add force-non-simd to all current ops.
Unless they already use MapRegs, because that will automatically handle
it.
2014-11-16 13:33:12 -08:00
Unknown W. Brackets
4cf0913692 x86jit: Sketch some initial SIMD apis. 2014-11-16 13:33:07 -08:00
Henrik Rydgard
e43c7af32c ARM Jit: Implement quaternion multiplication 2014-11-16 19:12:00 +01:00
Henrik Rydgard
bfcd3690b6 x86 jit: Fix+enable quaternion product, optimize "sw zero, *" 2014-11-16 18:37:38 +01:00
Henrik Rydgard
28ca8d4818 x86 jit: Use LEA to emulate addu but only when it can save a few bytes 2014-11-16 17:39:47 +01:00
Henrik Rydgard
1c78e29c79 x86 jit: For clarity, use TEMPREG where it doesn't matter that it's EAX.
Might have missed a few places.
2014-11-16 17:38:26 +01:00
Henrik Rydgard
8b90f881b8 x86 jit: A tiny optimization and a tiny bugfix 2014-11-16 16:46:35 +01:00
sum2012
395ff97ecf Fix min mac problem 2014-11-13 23:57:16 +08:00
sum2012
feb23d717d Fix Wrong MAC address by old version by "Change MAC address" 2014-11-13 23:56:08 +08:00
Sacha
a95500c930 Successful build on GCW-Zero. 2014-11-14 01:41:43 +10:00
Henrik Rydgård
653ac91d6a Merge pull request #7089 from sum2012/MAC
Fix Wrong MAC address by "Change MAC address"
2014-11-13 16:05:55 +01:00
sum2012
486c32b91b Fix 0A to 0F 2014-11-13 22:57:57 +08:00
sum2012
05b293c632 No need bracket 2014-11-13 22:20:29 +08:00
sum2012
122c3b866e Fix Wrong MAC address by "Change MAC address"
Part 1 of 7088
2014-11-13 22:13:57 +08:00
xSacha
57e4088216 Introduce fake vertex decoder JIT as well.
Compiles and links on CI20 but gets unknown crash in GL driver.
2014-11-13 17:10:29 +10:00
Sacha
c421617c84 Fix Qt build by building Arm disassembler for all platforms. 2014-11-13 00:55:00 +10:00
Sacha
a0086f6412 Introduce a Fake JIT for generic builds. 2014-11-13 00:09:51 +10:00
Kingcom
479c8646a2 Change vpfxs/r/t disassembly syntax 2014-11-12 00:09:57 +01:00
Henrik Rydgård
a8b310ed34 Merge pull request #7078 from unknownbrackets/jit-minor
x86jit: Use simd for vcmp comparisons where possible
2014-11-11 14:58:21 +01:00
Sacha
1ba9103cef Better support for new archs. 2014-11-11 22:55:49 +10:00
Unknown W. Brackets
096b41cceb x86jit: Interleave reg usage in vcmp. 2014-11-10 23:22:04 -08:00
Unknown W. Brackets
0e1aa35e84 x86jit: Just do the ES/NS compare once. 2014-11-10 23:04:38 -08:00
Unknown W. Brackets
2758e8fa3c x86jit: Optimize vcmp for single and simd. 2014-11-10 23:04:37 -08:00
Unknown W. Brackets
94e29da6c4 Fix a typo in the mips assembler.
Oops, this should be a unique value of course.
2014-11-10 09:13:11 -08:00
Unknown W. Brackets
01c2b88911 Avoid signed ints, seems to cause clang errors. 2014-11-09 16:49:24 -08:00
Henrik Rydgård
7fbe8ba898 Merge pull request #7076 from unknownbrackets/debugger
Add VFPU instructions to the mips asm tables
2014-11-10 00:57:08 +01:00
Unknown W. Brackets
370fb86379 Add VFPU instructions to the mips asm tables. 2014-11-09 15:14:07 -08:00
Unknown W. Brackets
86e3739a3e x86jit: Optimize some cases of ins/ext.
They happen but are minor.
2014-11-09 09:22:29 -08:00
Unknown W. Brackets
e05263af32 x86jit: Allow EBX sign extension for 32-bit. 2014-11-09 09:07:52 -08:00
Unknown W. Brackets
8dbd3c3b9c x86jit: Don't lie about ZERO when it's not an imm. 2014-11-09 08:27:02 -08:00
Unknown W. Brackets
d0a2ced2f9 x86jit: Flip cc in stl* to avoid reg loads.
Unfortunately, this zero thing is now concerning me...
2014-11-09 08:15:39 -08:00
Unknown W. Brackets
59f491eddb x86jit: Micro optimize slt* a bit.
This improves their performance and hopefully latency.  It also avoids
filling registers that are not likely to be used again.

Fixed a small mistake.
2014-11-09 07:23:44 -08:00
Henrik Rydgard
18495a452d Rename an enum 2014-11-09 14:55:23 +01:00
Henrik Rydgard
a19d0b648a x86 jit: Add a simple speedhack (ignore masking stack pointers) but disable due to low impact. 2014-11-09 14:54:39 +01:00
Henrik Rydgard
a528921f3c x86 JIT: EBX was free in 32-bit mode, let's use it in the regcache. 2014-11-09 12:55:17 +01:00
Henrik Rydgard
1eec10b614 Properly prevent loading ISO to RAM in 32-bit mode (could have been enabled in 64-bit mode where the UI exists) 2014-11-09 12:53:31 +01:00
Henrik Rydgard
db853d8513 Collapse sequences of "int3" (padding after block linking) in x86 disassembly. 2014-11-09 12:10:37 +01:00
Henrik Rydgard
5888b3bdc4 Revert "x86jit: Micro optimize slt* a bit."
This reverts commit ee66596b8d.

Broke a lot of games, probably some small bug.

Conflicts:
	Core/MIPS/x86/CompALU.cpp
2014-11-09 12:07:21 +01:00
Henrik Rydgard
5bcdecc26b unittest: Have the JIT harness print disassembly, to make it easy to inspect results. 2014-11-09 12:03:04 +01:00
Unknown W. Brackets
313d9e95c7 Clarify a comment. 2014-11-09 01:05:03 -08:00
Unknown W. Brackets
ee66596b8d x86jit: Micro optimize slt* a bit.
This improves their performance and hopefully latency.  It also avoids
filling registers that are not likely to be used again.
2014-11-08 22:54:03 -08:00
Unknown W. Brackets
27d8108bb2 x86jit: Optimize loads of 0 into fp regs. 2014-11-08 18:41:16 -08:00
Unknown W. Brackets
7d8858687e x86jit: Avoid speculative loads in mtc1/mfc1. 2014-11-08 18:35:15 -08:00
Unknown W. Brackets
57caa95273 x86jit: Implement round.w.s and friends.
They are not terribly fast, though, updating MXCSR.
2014-11-08 17:59:38 -08:00
Unknown W. Brackets
3908e0f445 x86jit: Small optimization for add.s f1, f2, f2.
Doubles the speed of that particular case.  Biggest difference is not
loading fd for no reason.
2014-11-08 17:32:53 -08:00
Unknown W. Brackets
f9893c29ce x86jit: Very small optimization to c.nge.s. 2014-11-08 17:01:02 -08:00
Unknown W. Brackets
78dfe43776 x86jit: Optimize neg.s and abs.s a tiny bit.
Same reg is probably a common case, improves micro benchmark.
2014-11-08 16:50:41 -08:00
Unknown W. Brackets
bed0d0b059 x86jit: Improve cvt.w.s when fd is loaded or fs.
We have no need to store it.
2014-11-08 16:40:54 -08:00
Unknown W. Brackets
1917d946ea x86jit: Micro optimize cvt.s.w a bit.
This implementation is about 5x faster for micro benchmarks.  Little
impact to overall perf in games I tested, though.
2014-11-08 13:30:38 -08:00
Unknown W. Brackets
671dee85c7 x86jit: Micro optimize vi2f a little bit.
This didn't help overall perf much but micro benchmarks are better.
2014-11-08 13:07:01 -08:00
Unknown W. Brackets
c29b126357 x86jit: Oops, can't have an imm here. 2014-11-08 12:41:48 -08:00
Unknown W. Brackets
c0be19edb6 x86jit: Simplify vavg a bit. 2014-11-08 12:40:04 -08:00
Unknown W. Brackets
761e269e5f x86jit: Avoid some regcache pollution. 2014-11-08 12:38:08 -08:00
Unknown W. Brackets
bc7497857a x86jit: Micro optimize vi2x a bit with ssse3/sse4.
Both are small wins.
2014-11-08 12:13:26 -08:00
Unknown W. Brackets
0e646f748a x86jit: Implement vi2x instructions.
Also, my opcodes were wrong in the test (shifted the pair bit the wrong
way, oops.)

AFAICT, there's no reason PSRAD/etc. were not encoding REX...
2014-11-08 12:13:26 -08:00
Unknown W. Brackets
ddc90ee550 x86jit: Implement vfad and vavg. 2014-11-08 12:13:25 -08:00
Unknown W. Brackets
5ae43defd9 Oops, these should be signed. 2014-11-08 09:39:17 -08:00
level99procrastinator
a98980d28b Workaround for graphics glitch in Phantasy Star Portable 2 2014-11-08 20:31:17 +08:00
Henrik Rydgård
f7d86f2210 Merge pull request #7068 from unknownbrackets/jit-minor
x86jit: Implement other forms of vx2i
2014-11-08 10:58:48 +01:00
Unknown W. Brackets
316e923b40 x86jit: Implement other forms of vx2i.
Gains 3.2% performance in Grand Knights History.
2014-11-08 00:39:40 -08:00
sum2012
758ddffc37 Prevent unknown getpointer in sceKernelMemset
Fix #7064
2014-11-08 06:49:24 +08:00
Henrik Rydgård
517ca0569e Merge pull request #7058 from unknownbrackets/io-minor
Handle negative read sizes more correctly
2014-11-07 12:16:09 +01:00
Henrik Rydgård
4eb9dc05c0 Merge pull request #7055 from unknownbrackets/reloc-fix
Correct unload of imported vars
2014-11-07 12:15:50 +01:00
Unknown W. Brackets
097a483d77 x86jit: Micro optimize vs2i a bit. 2014-11-06 22:45:54 -08:00
Unknown W. Brackets
79ff697f9d Return an error code for negative file sizes. 2014-11-06 08:45:45 -08:00
Unknown W. Brackets
c085b9c082 Don't try to read negative file sizes. 2014-11-06 08:45:33 -08:00
Unknown W. Brackets
49aff7c75d Correct unload of imported vars.
From level99procrastinator, just slightly adjusted.
2014-11-05 22:57:25 -08:00
Unknown W. Brackets
7819b97c9a iOS buildfix. 2014-11-04 08:32:43 -08:00
TwistedUmbrella
6797044476 Correct a namespace typo 2014-11-04 05:10:22 -05:00
Unknown W. Brackets
3061e89250 Fix copy/paste mistake. 2014-11-04 01:41:17 -08:00
Unknown W. Brackets
0d36d4e082 Add a helper to reduce duplicate code.
This is not performance critical.  I wonder if compilers can inline
closures?
2014-11-03 23:50:23 -08:00
Unknown W. Brackets
16ca2b0155 x86jit: Fix trig vv2ops on 32-bit, arg. 2014-11-03 23:43:18 -08:00
Unknown W. Brackets
5ef2df7ebd Fix a small warning on 32-bit.
Would only practically matter for very very large reads on very very large
csos.
2014-11-03 23:32:25 -08:00
Unknown W. Brackets
3e95763a3f x86jit: Implement other rounding modes in vf2i.
3% improvement in Grand Knights History.  I know other games use these
too.
2014-11-03 23:27:05 -08:00
Unknown W. Brackets
717cf25f0d x86jit: Use our sincos funcs for VV2Op as well.
Small (0.7%) speedup in Gods Eater Burst.  There's probably SSE
approximations we could use instead, but those will also need at least xmm
reg flushing/thunking.

At least this avoids flushing gprs, etc.  The sin and cos ops are fairly
common.
2014-11-03 22:13:38 -08:00
Unknown W. Brackets
014445655d Actually clear the hash->func map on forget.
Better not to have dangling pointers.
2014-11-03 13:49:45 -08:00
Unknown W. Brackets
10bcb323ac Oops, forgot to free up zlib resources. 2014-11-03 13:40:09 -08:00
Henrik Rydgård
f1d43e7e90 Merge pull request #7046 from unknownbrackets/perf
Improve load and shutdown performance a bit
2014-11-03 21:50:10 +01:00
Unknown W. Brackets
b279b6d461 Typo. 2014-11-03 09:00:20 -08:00
Unknown W. Brackets
ad6b176e11 Naturally, modern C++ would not build on Symbian. 2014-11-03 08:56:45 -08:00
Unknown W. Brackets
61c21340fb Warning fixes. 2014-11-03 08:34:34 -08:00
Unknown W. Brackets
9d86d3ca9b Use std::unordered_multimaps in a few places. 2014-11-03 08:31:52 -08:00
Unknown W. Brackets
67a7205bdd Switch to a multimap for the hash->function map. 2014-11-03 07:59:56 -08:00
Unknown W. Brackets
8a57e37f33 Minor tweak to avoid some function call overhead. 2014-11-03 07:36:17 -08:00
Unknown W. Brackets
28b3b841d5 Implement optimized multi-block reads for iso/cso.
This of course means less fread() calls, and is faster.  It improves load
time even on my desktop.
2014-11-02 21:43:27 -08:00
Unknown W. Brackets
9c5ad44000 Add an interface to read multiple blocks at once. 2014-11-02 19:54:13 -08:00
Unknown W. Brackets
bf50baf698 Cleanup some old typedefs. 2014-11-02 18:46:12 -08:00
Unknown W. Brackets
a391296c17 Small optimization to func/var import.
Should compare the nid first, of course, faster and less likely to match
anyway.
2014-11-02 17:53:46 -08:00
Unknown W. Brackets
2d5733407b Small optimization to __PPGeInit().
Small factor in startup time.
2014-11-02 17:44:24 -08:00
Unknown W. Brackets
56322bdad4 Improve performance of ForgetFunctions().
Mostly matters during shutdown, but also module unload.
2014-11-02 17:32:04 -08:00
Unknown W. Brackets
dd497e5a02 Show an error when savedata can't be written.
Normally we'll log when the disk is full for files, but if we can't even
create the folder, we'll get errors trying to write into a non-existing
directory.
2014-11-02 13:30:00 -08:00
Unknown W. Brackets
f3f7fb2648 Show an on screen message when disk full is hit. 2014-11-02 13:29:25 -08:00
Unknown W. Brackets
24f365d94c Return an error for new savedata on a full stick. 2014-11-02 12:47:09 -08:00
Unknown W. Brackets
a6a234add1 Return errors on disk full for file creation. 2014-11-02 12:40:31 -08:00
Unknown W. Brackets
d4e8bd96af Handle disk full more properly in sceIoWrite(). 2014-11-02 10:55:27 -08:00
Unknown W. Brackets
24ce3d11ed Another typo. 2014-11-02 08:12:29 -08:00
Henrik Rydgård
d1dbd47172 Merge pull request #7039 from xsacha/symbian_free_space
Check free disk space on Symbian too.
2014-11-02 09:58:32 +01:00
Sacha
b7f2de7d29 Check free disk space on Symbian too. 2014-11-02 12:27:20 +10:00
Unknown W. Brackets
f55f69c07d Fix dumb typo in space formatting func. 2014-11-01 19:19:06 -07:00
Unknown W. Brackets
9511fd81f1 Warning fix. 2014-11-01 00:33:20 -07:00
Unknown W. Brackets
f687613d68 Check disk space on Posix/Android systems also.
Android apparently decided to skip statvfs() and only implement the older,
os-dependent statfs().
2014-11-01 00:33:20 -07:00
Unknown W. Brackets
2958c575a1 Check actual free disk space when games ask.
Windows only for the moment.
2014-11-01 00:33:19 -07:00
Henrik Rydgard
f5c9235640 Buildfix (needed an include in the header on some platforms so let's move to the cpp file) 2014-10-31 00:35:39 +01:00
Henrik Rydgard
291e5e53c0 Add feature to cache ISOs in RAM to avoid I/O stutters. 64-bit only. Loading gets slow though.
TODO: Make it cache in the background on load. Allow on 32-bit for small ISOs.
2014-10-31 00:14:00 +01:00
Unknown W. Brackets
258b7c9a7c jit: Use the end just to be safe.
In case clearing near the end of a block.
2014-10-27 19:05:52 -07:00
Unknown W. Brackets
5bb9d32eaa jit: Fix partial invalidation of larger blocks.
Fixes #7031.
2014-10-27 19:04:19 -07:00
Unknown W. Brackets
2b16b5b79b Use XXH64 on 64-bit systems.
I'm not able to reproduce any real performance difference, but I know
there are some games which do more hashing and it may help there.
2014-10-26 17:49:24 -07:00
Unknown W. Brackets
734c81223e Support cso files with larger block sizes.
Calling them "frames" just to quell the confusion level in the code.
2014-10-25 21:18:12 -07:00
Unknown W. Brackets
100afc07a2 x86jit: Fix andLink cases of imm blezl, etc. 2014-10-24 08:57:56 -07:00
Unknown W. Brackets
0c1dcfeacf Avoid comparing invalidated iterators. 2014-10-22 00:50:39 -07:00
Unknown W. Brackets
65ecc9a464 jit: Use an exclusive end in the block map.
Simpler, was not consistent before, oops.
2014-10-21 11:52:19 -07:00
Henrik Rydgard
e6334dd9d8 Display .7z files in file listings. Can't decompress them though. 2014-10-21 00:09:24 +02:00
Henrik Rydgard
d24abb3af0 More GetPointer cleanup. memCardDirectory->memStickDirectory. 2014-10-19 23:20:51 +02:00
BlackDog
f7e8ca486c add lwc1 lwc2 swc1 swc2 opcodes 2014-10-19 20:42:12 +02:00
Unknown W. Brackets
ef6d583542 x86jit: Oops, don't pad INT3s in prelinked blocks.
Fixes #7007.
2014-10-15 22:07:56 -07:00
Unknown W. Brackets
b53f13480a x86jit: Centralize continuing logic. 2014-10-12 19:01:04 -07:00