summaryrefslogtreecommitdiff
path: root/Source/Core/DSPCore
AgeCommit message (Collapse)Author
2011-01-29Core and DSPCore now have mutual dependencies, which breaks theSoren Jorvang
assumption on the part of many linkers that static libraries make up a DAG, so merge libdspcore into libcore. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6967 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-29DSPLLE - JIT SUBARN is back on and should be fixed.mylek4
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6954 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-28Linux build fix.Glenn Rice
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6950 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-28Some preliminary cleanup of the global namespace for LTO.Soren Jorvang
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6942 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-27Added "DebugFast" configs to vs2010 projects. Removed solution folders.(vs ↵Jordan Woyak
express doesn't like them) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6931 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-27Various minor fixes to allow building with clang on OS X.Soren Jorvang
Fixes issue 3992. wxWidgets patch at http://trac.wxwidgets.org/ticket/12332 . git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6929 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-27Committing Visual Studio 2010 solution/project files. (not switching from ↵Jordan Woyak
2008 just yet, just making 2010 an option) Still need to add a "DebugFast" config and change optimization settings. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6927 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-26Disabled the JIT'd version of SUBARNskidau
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6920 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-25Enabled save-state support for the DSP LLE plug-in.skidau
Disabled the SUBARN jitted instruction because it is causing issues with the NTSC IPL. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6918 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-16Added a critical section around the external_interrupt_waiting variable, to ↵skidau
be safe. Also, commit a file I missed in r6859. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6860 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-16Fixed the DSPLLE on thread option. Works with DSP JIT, DSP Interpreter, AX ↵skidau
and Zelda ucodes. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6859 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-16LLE JIT: Changed the ASM dispatcher so that it jumps to the blocks instead ↵skidau
of calling them. This removes the need to push and pop all of the registers at each block, speeding up the JIT. Changed the cycle counting to work off memory accesses instead of a register. Removed the C++ JIT dispatcher because it will no longer work with this new format. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6858 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-14Core/DSPCore: Consolidation of register accesses(except for the four hwpierre
stacks), addition of a register cache(currently accumulators on 64bit only). It feels a bit slower, but the numbers are about the same. Caching accumulators doesn't change speed either. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6848 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-14dsp cleaningMarko Pusljar
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6846 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-13Check DSP ROM hashes. Fix the ROMs not actually being write protected.Shawn Hoffman
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6839 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-13Removed my previous PanicAlert translation hack. Fixed with a better method ↵Glenn Rice
suggested by BhaaL. The translation is done by a callback in the MsgHandler routine that is set at program start. Added macros PanicAlertT, SuccessAlertT, PanicYesNoT, and AskYesNoT that are identical to the non T versions except those strings will be added by gettext to the po files to be translated. These can and should be used anywhere in the code for strings that should be translated. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6838 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-12Switched the DSP DMA transfers to unaligned versions of the SSSE3 instructionsskidau
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6823 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-12Used SSSE3 instructions to swap16 and memcpy the DSP DMA transfers for a ↵skidau
speed up git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6822 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-10LLE JIT: The block linker will now recompile all blocks that it encounters ↵skidau
immediately. Gives a speed boost in some games. Also removed an extraneous check for external exceptions. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6801 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-04small fix for lle-intMarko Pusljar
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6739 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-04Retire the workaround for wxWidgets using the Objective-C reservedSoren Jorvang
keyword "id" in the public auibar.h header. You now need at least r66546 of wxWidgets to build on OS X. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6735 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-03LLE JIT: Minimised exception checking. Instructions which need to check for ↵skidau
exceptions are now marked in the analyser. Moved the checking for external interrupts to the point where the CPU writes to the control register. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6729 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-03LLE JIT: Reworked the block linking code. It now keeps track of what each ↵skidau
block is waiting on, minimising the amount of recompiling. Both jumps and calls can now become linked. The code also checks the cycle count before jumping to the linked block. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6728 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-01Avoid shadowing variables.Soren Jorvang
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6712 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-01Fix for r6707. Looks like I tried to do some invalid 16 bit addressing.mylek4
Also a small change to the mixer. This should fix audio throttling in cases where num_samples > RESERVED_SAMPLES. This seems to happen now with zelda ucode games, possibly others. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6711 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-01LLE JIT:mylek4
Applied the logic from r6691 to the LLE dec/add/sub functions so they work without ToMask. This should give a modest speedup for these. Pierre's AR inc was already perfect and I only adjusted its logic a bit for visual consistency between the interpreter and JIT code. Also applied Pierre's optimization from the LLE inc to the Int inc. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6707 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-30LLE Int: (addr add/sub/inc/dec)mylek4
Adjusted the code work without ToMask. This code should be functionally identical for all inputs to the previous code. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6691 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-30LLE JIT:skidau
* Optimised out the R11 ImmPtr instructions * Made the whitespacing a little more consistent * Disabled block linking while it is being reworked git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6688 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-29Core/DSPCore: Changed g_dsp._r back to g_dsp.r. Removed the check*Excludepierre
functions accidentally added. Fixed the jitted ar register arithmetic. Added a CMakeList.txt for the UnitTests, but did not add the subdirectory to Source/CMakeLists.txt. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6687 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-29LLE JIT:skidau
* Fixed a bug in the JCC instruction. * Changed the cycle count from u32 to u16. * Added cycle counting to the block linker. * Optimised the branch exit slightly. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6681 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-29Core/DSPCore: Reorganize register layout for accessing accumulatorspierre
(acc and ax) and product register with one read/write. Gives a minuscule speedup of not more than 4%. In exchange, breaks all your out-of-tree changes to dsp. Tests are not building again, yet. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6680 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-28LLE JIT: Completed the remaining JIT DSP instructions (lrrn, srrn, ilrrn).skidau
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6675 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-27LLE JIT: Completed the JIT versions of the DSP Branch instructions (added ↵skidau
ifcc, ret, rti and halt). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6674 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-27Core/DSPCore: Improve Interpreter address register add/sub, convert topierre
assembler for JIT. Replace JIT ToMask() with a different variant. Remove superfluous zeroWriteBackLog calls(added by me). Core/Common: Don't bother creating a string and calling into a Logs trigger() when there is noone listening. Change AtomicLoadAcquire for gcc to just make the compiler not reorder memory accesses around it instead of doing a full memory barrier, per the comment in the win32 variant. Core/AudioCommon: Fix a use of uninitialized variable inside libalsa. Microbenchmarking results for ToMask variants:(1 000 000 000 iterations): cpu\variant| shifts | bit scan intel mobile C2D@2.5GHz | 5.5s | 4.0s amd athlon64x2@3GHz | 6.1s | 6.4s (including some constant overhead identical to both variants) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6667 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-26LLE JIT: Added the loop instructions to the JIT. Added ASM version of ↵skidau
HandleLoop. Both x86 and x64 versions have been added. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6659 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-26LLE JIT:skidau
* Completed the JIT versions of the DSP Multiplier instructions (5 instructions added). * Bug fixed the dec and lsr16 instructions. * Minor code clean-up. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6657 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-23LLE JIT: Fixed the shift direction of the lsrnrx, asrnrx, lsrnr and asrnr ↵skidau
instructions. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6653 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-23LLE JIT:skidau
* Completed the JIT versions of the DSP arithmetic instructions (28 instructions added). * Added JIT versions of maddx and msubx (thanks to LM1234). x64 only git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6652 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-21LLE JIT:skidau
* Added 21 Arithmetic instructions to the JIT * Used the DSPAnalyser to identify arithmetic/multiplier instructions that precede a conditional branch. This allows the JIT to skip updating the SR when nothing would read from it. Marked all arithmetic/multiplier instructions in the DSPTable for this purpose. * Converted CheckExternalInterrupt into ASM * Fixed a couple instructions in DSP Load/Store git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6633 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-19Avoid shadowing variables.Soren Jorvang
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6613 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-17LLE JIT: Added another 9 DSP Load/Store instructions to the JIT. Fixed a ↵skidau
couple bugs in the 32bit and Linux builds. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6599 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-16Helps to add the new code to the repository.skidau
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6597 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-16LLE JIT:skidau
* Added jit versions of 5 DSP LoadStore instructions: srs, lrs, lr, sr, si * Renamed MainOpFallback to Default for consistency in naming with JIT64 * Made ext_dmem_read and ext_dmem_write more generic for wider use * Optimised dmem_read and dmem_write slightly * Added dmem_read_imm and dmem_write_imm optimised versions git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6596 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-16Core/DSPCore: Fix more memory accesses for linux x64pierre
Core/Common: Add more asserts for too large displacements git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6595 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-15LLE JIT: Used a reiterative approach to linking blocks. The JIT flags ↵skidau
blocks that have calls to blocks which have not yet been compiled. After more blocks have been compiled, the JIT reattempts to link the flagged blocks. This is repeated until the minimum number of unlinked blocks are left. This increases the success rate of the block linker and resultant speed up. Based on an idea by nakee. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6589 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-15Build fix for OSX.skidau
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6586 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-15LLE JIT: Added simple block linking at immediate CALL's and JUMP's. The ↵skidau
code checks if the block being jump to has already been compiled and jumps there if it has, bypassing the dispatcher. This results in a speed-up of around 7 - 10%. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6585 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-15Linux build fix.Glenn Rice
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6583 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-15LLE JIT:skidau
* Optimised the updating of g_dsp.pc in the compile loop (code by kiesel-stein) * Added JIT version of LRI (code by kiesel-stein) * Added JIT versions of the branch instructions (code by Jack Frost) * DSP_SendAIBuffer fix (code by Mylek) * Marked instructions that update g_dsp.pc in the DSP table and updated PC based on the table (speed up) * Fixed the signed bits not being set properly in the addr instruction * Created a MainOpFallback function to use interpreted versions of the instructions if necessary (code by kiesel-stein) * Disabled the jit versions of subarn and addarn as they are slowing down NSMBW The above work in both x86 and x64 modes. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6582 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-12-14Remove LOGGING from the DSPCore vcproj. It isn't really used like that ↵Shawn Hoffman
anymore. This commit doesn't really change anything... git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6577 8ced0084-cf51-0410-be5f-012b33b47a6e