Commit Graph
4695 Commits
Author SHA1 Message Date
Henrik Rydgard df3765a320 Arm jit: optimize ES, NS conditions in vcmp. Bugfix TR. 2013-11-12 14:43:12 +01:00
Henrik Rydgard a2e0a4d9bf x86 jit: Optimize ES, NS (is-nan-or-inf) conditions in vcmp 2013-11-12 14:07:48 +01:00
Henrik Rydgard 84f20a1cad Small optimizations 2013-11-12 14:05:50 +01:00
Henrik Rydgård efc35103e5 Merge pull request #4483 from xekarfwtos/tsa
Fixes issue #4477 : ULUS10419 : Tenchu: Shadow Assassins hangs the emu.
2013-11-12 04:33:24 -08:00
Unknown W. Brackets f4b5e8a4c1 Merge pull request #4518 from hrydgard/fpcond
ARMJIT: Cache fpcond in a register to avoid store/load between compare and branch
2013-11-12 01:50:16 -08:00
Henrik Rydgård 66581c4d83 Merge pull request #4517 from Kingcom/SaveDialog
Partially implement SCE_UTILITY_SAVEDATA_FOCUS_NAME
2013-11-12 01:42:20 -08:00
Henrik Rydgård 17074f5a7f Cache fpcond in a register to avoid store/load between compare and branch 2013-11-12 10:33:38 +01:00
Kingcom 7f9182033e Partially implement SCE_UTILITY_SAVEDATA_FOCUS_NAME 2013-11-12 10:10:56 +01:00
Henrik Rydgård e111034b53 Merge pull request #4516 from unknownbrackets/armjit-minor
Improve spilling regs on ARM
2013-11-12 01:01:19 -08:00
Unknown W. Brackets a334aaf6ca x86jit: Refactor and skip flushes in branch cont.
Still not faster, but at least the code isn't as messy.
2013-11-12 00:45:28 -08:00
Sacha 3e762f2864 Make !USE_FFMPEG savestates compatible. 2013-11-12 18:06:43 +10:00
Unknown W. Brackets 32504ed46e armjit: Prioritize spilling regs not used soon.
This may improve trashing.
2013-11-12 00:03:39 -08:00
Sacha efad755ccc Buildfix !USE_FFMPEG 2013-11-12 17:52:43 +10:00
Unknown W. Brackets 1bfce12fdd armjit: Report some unexpected situations. 2013-11-11 23:41:18 -08:00
Unknown W. Brackets ac5aacbd16 armjit: Spill an imm armreg back to an imm.
We might be able to avoid the store or etc.
2013-11-11 23:39:13 -08:00
Unknown W. Brackets 7e19933f64 x86jit: Try predicting branch continues.
Still doesn't seem to work.  Something like a 4% gain in Star Ocean was
the best I saw...
2013-11-10 22:50:23 -08:00
papel 38a5233dd4 Fix GetBufferInfoForResetting 2013-11-11 08:49:15 +02:00
Unknown W. Brackets bb960480c8 x86/armjit: Stop compiling on a jump to invalid. 2013-11-10 21:59:50 -08:00
Unknown W. Brackets fd38b10ab6 x86jit: Rename imm funcs to match armjit. 2013-11-10 21:59:49 -08:00
Unknown W. Brackets 359110f010 x86/armjit: Add jump following (off by default.)
Inlines function calls up to a certain extent.  Allows us to get
immediates all the way to a syscall, for example, usually.

Not sure if faster.
2013-11-10 21:59:49 -08:00
Unknown W. Brackets aacb31bc18 armjit: Copy over (disabled) immbranch optim.
This does a little loop unrolling.  Costs a bit more cache space, but
avoids flushing regs for longer.

Not enabled.
2013-11-10 21:59:48 -08:00
Unknown W. Brackets 92ecff4396 armjit: keep track of instructions in jitstate.
To match x86.
2013-11-10 21:59:48 -08:00
Unknown W. Brackets 8ceaafc159 armjit: Verify free space while compiling. 2013-11-10 21:59:48 -08:00
Unknown W. Brackets ca7b2b554b armjit: fix major typo breaking mult/multu. 2013-11-10 21:54:44 -08:00
Henrik Rydgård a1196399ef Merge pull request #4503 from unknownbrackets/armjit-imms
Retain immediates in the armjit, optimize similar imms
2013-11-10 17:22:20 -08:00
Unknown W. Brackets e1fffdb37a armjit: Don't reload an armreg ptr marked noinit. 2013-11-10 16:43:38 -08:00
Unknown W. Brackets 67eaa2fd1c armjit: Optimize immediate load/stores in a row. 2013-11-10 16:32:48 -08:00
Unknown W. Brackets bc0a846475 armjit: Optimize imm addresses (could do better...) 2013-11-10 16:30:20 -08:00
Unknown W. Brackets c63560c0dd armjit: Try to find imms to optimize a reg load.
This way we skip the MOVW/MOVT and go for one op only.
2013-11-10 16:20:34 -08:00
Unknown W. Brackets 7e46ee0b0f armjit: Replace MOVI2R with using the regcache.
So that it can optimize the value with existing imms.

Not actually optimizing yet.
2013-11-10 15:50:45 -08:00
Unknown W. Brackets d092f7dd2d armjit: Remember reg imm values even after flush.
This way, we can base other imm values off them, or even do imm math using
them.  We can also avoid re-flushing an imm.
2013-11-10 15:50:14 -08:00
Unknown W. Brackets 7f9cbc0f10 armjit: Minor cleanup and logging tweaks. 2013-11-10 15:12:40 -08:00
Unknown W. Brackets 455a7e090d Compile the cache instruction to nothing.
Was showing up in a few profiles, does nothing currently.
2013-11-10 14:38:10 -08:00
Unknown W. Brackets 1cc68f50ca armjit: Small optimization to syscall instr. 2013-11-10 14:38:10 -08:00
Unknown W. Brackets b30928036e armjit: Avoid flushing an imm in beq/bne/etc.
We might be able to STMIA it instead.
2013-11-10 14:38:10 -08:00
Unknown W. Brackets 285ec1fad5 armjit: Implement mult/multu for immediates.
Uncommon, but may reduce instructions a bit.
2013-11-10 14:38:09 -08:00
Unknown W. Brackets 3a8f0598c4 x86jit: Implement wsbh/wsbw. 2013-11-10 14:38:09 -08:00
Unknown W. Brackets 9bec82873c armjit: inline byteswaps of imm values. 2013-11-10 14:38:08 -08:00
Unknown W. Brackets 06c8cb9174 armjit: Do shifts with imms as much as possible.
This may even make an imm operand2 safe that wasn't before.
2013-11-10 14:38:08 -08:00
Sacha f29d9c0bf9 Blackberry: fix freezing due to overflow of nanoseconds in timer. 2013-11-11 04:53:08 +10:00
Unknown W. Brackets b2c2a87511 Fix omitted CC_AL reset, fixes #4498.
Was breaking non-fastmem lwl/lwr/etc.
2013-11-10 09:24:40 -08:00
Henrik Rydgård cc23635843 Merge pull request #4495 from unknownbrackets/multithread
Fix some issues in multithreading on Android
2013-11-10 01:56:50 -08:00
Unknown W. Brackets d6048dc646 Don't burn the cpu while idle in multithread. 2013-11-09 23:08:45 -08:00
Unknown W. Brackets 113146302b Don't schedule a finish event when not running.
Otherwise it'll get it when it does run, and stop early.
2013-11-09 23:08:44 -08:00
Unknown W. Brackets afafa5fcd6 Make sure the gpu thread has a chance to run.
If the scheduler puts it on the same core, it may not even do anything
before we check if the framebuffer is dirty, so SyncThread will quit since
it's not even running.

Instead, let's wait until it's at least done something.
2013-11-09 23:08:28 -08:00
Unknown W. Brackets 879060f008 Use a CORE_POWERUP state when starting.
Otherwise, we could startup in CORE_POWERDOWN in a second game, which is
confusing.
2013-11-09 23:07:52 -08:00
shenweip 0a9cf9b1bc Turn up logging. 2013-11-10 10:40:56 +08:00
Unknown W. Brackets b310edc5f8 Fix typo in ARM debug build. 2013-11-09 15:58:27 -08:00
Henrik Rydgard d1c012d75e ARM: Open up all 32 accessible VFP registers if NEON is available. 2013-11-09 20:18:20 +01:00
Henrik Rydgård 70a239ba47 Merge pull request #4486 from unknownbrackets/debugger
Use a shortcut for copying instructions, enable G3D log always
2013-11-09 11:08:12 -08:00