summaryrefslogtreecommitdiff
path: root/Source/Core/Common/x64Emitter.cpp
AgeCommit message (Collapse)Author
2015-09-17x64Emitter: Remove pointer castLioncash
No more ubsan asserts in the JIT and x64 emitter code paths when running starfield.
2015-09-11Partially revert "General: Toss out PRI macro usage"Lioncash
2015-09-05General: Toss out PRI macro usageLioncash
Now that VS supports more printf specifiers, these aren't necessary
2015-08-26Jit64: some byte-swapping changesTillmann Karras
2015-08-23x64Emitter: add RCPPS and RCPSS SSE instructionsaroulin
2015-08-21x64Emitter: Remove pointer casts from Write{8,16,32,64} functionsLioncash
This also silences quite a few ubsan asserts from firing when the emitter is being used.
2015-08-20x64Emitter: Remove unused codeLioncash
2015-08-14x64Emitter: don't check flags for most BMI2 opsTillmann Karras
With the exception of BZHI, BMI2 instructions don't affect flags, so don't check if they're locked.
2015-08-14x64Emitter: check for immediates in BMI opsTillmann Karras
2015-08-06x64Emitter: add MOVSLDUP/MOVSHDUPTillmann Karras
2015-06-07zfreeze: cache vertex positionsTillmann Karras
Suggested by degasus.
2015-06-02XEmitter: add FMA4 instructionsTillmann Karras
2015-05-29x64Emitter: Pass some OpArg parameters by const referenceLioncash
Considering OpArg is a struct, passing by value creates unnecessary copies.
2015-05-29x64Emitter: Remove 'Gen::' namespace prefix from some parametersLioncash
The emitter is already within the Gen namespace, so this isn't necessary.
2015-05-29x64Emitter: Adjust position of reference and pointer indicatorsLioncash
Matches the coding style.
2015-05-25Merge pull request #2421 from Tilka/jit_stuffRyan Houdek
Jit64: fixes + less code
2015-05-25Set copyright year to when a file was createdTillmann Karras
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-05-21XEmitter: add BLENDPS/BLENDPDTillmann Karras
2015-05-20XEmitter: fix L bit in VEX prefixTillmann Karras
2015-05-17XEmitter: restructure WriteVEXOp wrappersTillmann Karras
2015-05-17XEmitter: add VBLENDVPD and VCMPPDTillmann Karras
2015-05-17XEmitter: rename WriteVex to WriteVEXTillmann Karras
2015-05-17XEmitter: rename WriteRex to WriteREXTillmann Karras
2015-04-23Merge pull request #2088 from Sintendo/diecmpcomex
Emit 'TEST reg, reg' for 'CMP reg, 0' automatically
2015-04-23Merge pull request #2223 from phire/immcomex
Cleanup OpArg, make immediates more explicit.
2015-03-22Add function to emit CMP, or TEST when possibleSintendo
Also, a spelling mistake.
2015-03-20Merge pull request #2240 from lioncash/emittermagumagu
x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
2015-03-20x64Emitter: Remove emitter pointer parameter from WriteNormalOp.Lioncash
It only ever passed the equivalent of the class' this pointer. May as well get rid of it.
2015-03-18XEmitter: add PUNPCKLQDQTillmann Karras
2015-03-17Make OpArg.offset and operandReg private.Scott Mansell
Also cleaned up WriteRest function.
2015-01-21Merge pull request #1869 from Stevoisiak/GeneralConsistencyRyan Houdek
Minor consistency changes
2015-01-18Move MOVBE wrappers directly into XEmitter classTillmann Karras
2015-01-18XEmitter: overload MOVBE()Tillmann Karras
2015-01-12Minor consistency changesStevoisiak
Mostly small changes, like capitalization and spelling
2015-01-07x64Emitter: add MOVLPS/MOVHPSTillmann Karras
2015-01-07x64Emitter: fix MOVLPD/MOVHPDTillmann Karras
These instructions were using the wrong prefix which turned MOVLPD(reg, mem) into MOVDDUP(reg, mem) and made the rest of them invalid.
2014-12-06x64Emitter: fix bitwise AVX opcodesTillmann Karras
The reason this didn't break is that bitwise instructions like VPAND, VANDPS, and VANDPD do the exact same thing. The only difference is the data type they are intended for.
2014-11-13Various formatting and consistency fixesStevoisiak
2014-11-09JIT: add 64-bit write support to FIFO functionsFiora
Also fix 64-bit values passed to CallAC and otherwise correct immediate handling in FIFO writes. Fixes 007 Nightfire.
2014-10-12Merge pull request #995 from FioraAeterna/fmaskidau
Add FMA support to emitter and use it in the JIT
2014-10-10Be consistent with braces.Henrik Rydgård
2014-10-10x64 emitter: Add some more missing ops (MOVDQA, MOVDQU, PSHUFHW)Henrik Rydgård
Also constify some pointers.
2014-10-10x64 emitter: Add a few missing instructionsHenrik Rydgård
2014-10-07X64Emitter: add FMA3 supportFiora
2014-10-03x64Emitter: refactor, add some new AVX instructionsFiora
2014-09-26JIT+Emitter: support locking flagsFiora
This helps us avoid accidentally clobbering flags between two instructions when the flags are expected to be maintained. Dolphin will of course crash immediately, but at least it will crash loudly and alert us of the mistake, instead of forcing hours of bisecting to find the subtle way in which the JIT has managed to sneak a flag-modifying instruction where there shouldn't be one.
2014-09-18X64Emitter: add MOVHLPS/MOVLHPSFiora
2014-09-17Be pedantic about stack overflow on Linux and OS X.comex
Add some magic to the fault handler to handle stack overflow due to BLR optimization, and disable the optimization if fastmem is not enabled.
2014-09-15x64Emitter: fix silent failure if WriteNormalOp is passed two memory operandsFiora
Should now fail loudly and clearly instead.