summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_jit_x64_compiler.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-02-03ShaderJIT: add 16 dummy bytes at the bottom of the stackwwylele1-2/+5
2017-01-31shader_jit_x64_compiler: esi and edi should be persistent (#2500)Merry1-0/+2
2017-01-26shader_jit_x64: Don't read program from global stateYuri Kunde Schlesner1-20/+16
2017-01-26VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}Yuri Kunde Schlesner1-1/+1
2016-12-16VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner1-2/+2
2016-12-16Remove unnecessary castYuri Kunde Schlesner1-3/+1
2016-12-16VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffsetYuri Kunde Schlesner1-5/+3
2016-12-15shader_jit_x64: Use LOOPCOUNT_REG as a 64-bit reg when indexingYuri Kunde Schlesner1-1/+1
2016-12-15shader_jit_x64: Use Reg32 for LOOP* registers, eliminating castsYuri Kunde Schlesner1-16/+16
2016-12-15VideoCore: Convert x64 shader JIT to use Xbyak for assemblyYuri Kunde Schlesner1-214/+218
2016-12-04shader_jit: Fix non-SSE4.1 path where FLR would not truncateJannik Vogel1-1/+1
2016-12-02shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shiftedJannik Vogel1-6/+9
2016-09-21Remove special rules for Windows.h and library includesYuri Kunde Schlesner1-1/+1
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-5/+1
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner1-2/+1
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-99/+113
2016-05-13Refactor access to state in shader-jitJannik Vogel1-16/+16
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot1-1/+9
2016-04-24shader: Shader size is long uint, not uint.Sam Spilsbury1-1/+1
2016-04-24shader: Handle non-CALL opcodes with a breakSam Spilsbury1-0/+2
2016-04-24shader: Format string must be provided inline and not as a variableSam Spilsbury1-1/+1
2016-04-14shader_jit_x64: Rename RuntimeAssert to Compile_Assert.bunnei1-4/+4
2016-04-14shader_jit_x64.cpp: Rename JitCompiler to JitShader.bunnei1-87/+87
2016-04-14shader_jit_x64: Free memory that's no longer needed after compilation.bunnei1-0/+6
2016-04-14shader_jit_x64: Use a sorted vector instead of a set for keeping track of return addresses.bunnei1-3/+6
2016-04-14shader_jit_x64: Use CALL/RET instead of JMP for subroutines.bunnei1-17/+7
2016-04-14shader_jit_x64: Separate initialization and code generation for readability.bunnei1-9/+8
2016-04-14shader_jit_x64: Get rid of unnecessary last_program_counter variable.bunnei1-5/+2
2016-04-14shader_jit_x64: Execute certain asserts at runtime.bunnei1-5/+13
- This is because we compile the full shader code space, and therefore its common to compile malformed instructions.
2016-04-14shader_jit_x64: Specify shader main offset at runtime.bunnei1-3/+1
2016-04-14shader_jit_x64: Allocate each program independently and persist for emu session.bunnei1-9/+8
2016-04-14shader_jit_x64: Rewrite flow control to support arbitrary CALL and JMP instructions.bunnei1-30/+92
2016-04-14shader_jit_x64: Fix strict memory aliasing issues.bunnei1-1/+3
2016-03-15PICA: Fix MAD/MADI encodingJannik Vogel1-27/+28
2016-03-12shader_jit_x64: Clear cache after code space fills up.bunnei1-1/+1
2016-03-12shader_jit_x64: Make assert outputs more useful & cleanup formatting.bunnei1-4/+7
2016-03-03Add immediate mode vertex submissionDwayne Slater1-0/+2
2016-01-25Shader: Implement "invert condition" feature of IFU instructionYuri Kunde Schlesner1-1/+3
If the bit 0 of the JMPU instruction is set, then the jump condition will be inverted. That is, a jump will happen when the boolean is false instead of when it is true.
2016-01-24Shader JIT: Fix off-by-one error when compiling JMPsYuri Kunde Schlesner1-5/+5
There was a mistake in the JMP code which meant that one instruction at the destination would be skipped when the jump was taken. This commit also changes the meaning of the culprit parameter to make it less confusing and avoid similar mistakes in the future.
2015-09-10video_core: Remove unused variablesLioncash1-1/+0
2015-09-07Shader JIT: Use SCALE constant from emitteraroulin1-4/+4
2015-09-07Shader: Fix size_t to int casts of register offsetsaroulin1-9/+15
2015-09-02video_core: Fix format specifiers warningsaroulin1-1/+2
2015-09-01x64: Proper stack alignment in shader JIT function callsaroulin1-26/+17
Import Dolphin stack handling and register saving routines Also removes the x86 parts from abi files
2015-08-31Shader JIT: Fix SGE/SGEI NaN behavioraroulin1-3/+3
SGE was incorrectly emulated w.r.t. NaN behavior as the CMPSS SSE instruction was used with NLT
2015-08-27Shader JIT: Fix float to integer rounding in MOVAaroulin1-2/+2
MOVA converts new address register values from floats to integers using truncation
2015-08-24Shader JIT: Tiny micro-optimization in DPHYuri Kunde Schlesner1-4/+4
2015-08-24Shaders: Fix multiplications between 0.0 and infYuri Kunde Schlesner1-39/+39
The PICA200 semantics for multiplication are so that when multiplying inf by exactly 0.0, the result is 0.0, instead of NaN, as defined by IEEE. This is relied upon by games. Fixes #1024 (missing OoT interface items)
2015-08-24Shaders: Explicitly conform to PICA semantics in MAX/MINYuri Kunde Schlesner1-0/+2
2015-08-24Shader JIT: Add name to second scratch register (XMM4)Yuri Kunde Schlesner1-3/+5
2015-08-24shader_jit: Replace two MDisp usages with MatRLioncash1-2/+2
2015-08-24Shader JIT: Fix CMP NaN behavior to match hardwareYuri Kunde Schlesner1-8/+23
2015-08-23Shader: RCP and RSQ computes only the 1st componentaroulin1-4/+6
2015-08-22Shader: implement DPH/DPHI in JITaroulin1-2/+35
2015-08-19Shader: implement SGE, SGEI and SLT in JITaroulin1-14/+34
2015-08-19Shader: Save caller-saved registers in JIT before a CALLaroulin1-0/+30
2015-08-17Shader: implement EX2 and LG2 in JITaroulin1-2/+20
2015-08-16Introduce a shader tracer to allow inspection of input/output values for each processed instruction.Tony Wasserka1-4/+4
2015-08-16Shader: Use a POD struct for registers.bunnei1-6/+6
2015-08-16Common: Cleanup CPU capability detection code.bunnei1-5/+5
2015-08-16Common: Move cpu_detect to x64 directory.bunnei1-2/+1
2015-08-16x64: Refactor to remove fake interfaces and general cleanups.bunnei1-6/+14
2015-08-16JIT: Support negative address offsets.bunnei1-26/+25
2015-08-16Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei1-0/+669
- Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT.