84ed196c14
x64Emitter: Adjust position of reference and pointer indicators
...
Matches the coding style.
2015-05-29 01:04:45 -04:00
7c04c76a26
Merge pull request #2421 from Tilka/jit_stuff
...
Jit64: fixes + less code
2015-05-25 23:08:24 -04:00
30ebb2459e
Set copyright year to when a file was created
2015-05-25 13:22:31 +02:00
cefcb0ace9
Update license headers to GPLv2+
2015-05-25 13:22:31 +02:00
6593ba7ecc
XEmitter: add BLENDPS/BLENDPD
2015-05-21 12:33:36 +02:00
ad6b522c3b
XEmitter: fix L bit in VEX prefix
2015-05-20 09:34:27 +02:00
c2c31086ae
XEmitter: restructure WriteVEXOp wrappers
2015-05-17 18:44:56 +02:00
ae8efaa6a3
XEmitter: add VBLENDVPD and VCMPPD
2015-05-17 18:42:36 +02:00
18e9241637
XEmitter: rename WriteVex to WriteVEX
2015-05-17 09:35:53 +02:00
9e3f4df733
XEmitter: rename WriteRex to WriteREX
2015-05-17 09:35:53 +02:00
b3aaa46d42
Merge pull request #2088 from Sintendo/diecmp
...
Emit 'TEST reg, reg' for 'CMP reg, 0' automatically
2015-04-23 16:34:23 -04:00
ad95454d04
Merge pull request #2223 from phire/imm
...
Cleanup OpArg, make immediates more explicit.
2015-04-23 01:53:18 -04:00
c19482c9a3
Add function to emit CMP, or TEST when possible
...
Also, a spelling mistake.
2015-03-22 17:22:27 +01:00
52aeab3d0e
Merge pull request #2240 from lioncash/emitter
...
x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
2015-03-20 22:09:11 -07:00
fab7add718
x64Emitter: Remove emitter pointer parameter from WriteNormalOp.
...
It only ever passed the equivalent of the class' this pointer. May as well get rid of it.
2015-03-20 23:28:36 -04:00
9793fed742
XEmitter: add PUNPCKLQDQ
2015-03-18 12:09:06 +01:00
858ff69c01
Make OpArg.offset and operandReg private.
...
Also cleaned up WriteRest function.
2015-03-17 18:49:30 +13:00
80e6367e46
Merge pull request #1869 from Stevoisiak/GeneralConsistency
...
Minor consistency changes
2015-01-21 13:46:53 -06:00
e80b657cf4
Move MOVBE wrappers directly into XEmitter class
2015-01-18 13:29:34 +01:00
eb13aa43fe
XEmitter: overload MOVBE()
2015-01-18 12:59:33 +01:00
cb86db7b68
Minor consistency changes
...
Mostly small changes, like capitalization and spelling
2015-01-12 15:18:18 -05:00
1efa9b8b72
x64Emitter: add MOVLPS/MOVHPS
2015-01-07 11:23:52 +01:00
3daa6ab259
x64Emitter: fix MOVLPD/MOVHPD
...
These instructions were using the wrong prefix which turned
MOVLPD(reg, mem) into MOVDDUP(reg, mem) and made the rest of them
invalid.
2015-01-07 11:23:52 +01:00
986d19b9d5
x64Emitter: fix bitwise AVX opcodes
...
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-12-06 22:28:03 +01:00
b25e1a2eb4
Various formatting and consistency fixes
2014-11-13 22:42:18 -05:00
6603f98d04
JIT: add 64-bit write support to FIFO functions
...
Also fix 64-bit values passed to CallAC and otherwise correct immediate
handling in FIFO writes.
Fixes 007 Nightfire.
2014-11-09 21:24:30 -08:00
9ddbdeb39f
Merge pull request #995 from FioraAeterna/fma
...
Add FMA support to emitter and use it in the JIT
2014-10-12 13:56:18 +11:00
877081c7df
Be consistent with braces.
2014-10-10 22:34:03 +02:00
9bca1a00d7
x64 emitter: Add some more missing ops (MOVDQA, MOVDQU, PSHUFHW)
...
Also constify some pointers.
2014-10-10 18:30:05 +02:00
a2c46665c5
x64 emitter: Add a few missing instructions
2014-10-10 18:30:04 +02:00
019657cd93
X64Emitter: add FMA3 support
2014-10-07 18:21:07 -07:00
7a2dd3a3c6
x64Emitter: refactor, add some new AVX instructions
2014-10-03 10:05:10 -07:00
ac1fc9ad03
JIT+Emitter: support locking flags
...
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-26 20:47:06 -07:00
3c49200b22
X64Emitter: add MOVHLPS/MOVLHPS
2014-09-18 17:57:27 -07:00
7ad9027593
Be pedantic about stack overflow on Linux and OS X.
...
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-17 20:08:09 -04:00
02dce5dbbf
x64Emitter: fix silent failure if WriteNormalOp is passed two memory operands
...
Should now fail loudly and clearly instead.
2014-09-15 07:08:08 -07:00
997c5c2d0e
x64Emitter: add LZCNT/TZCNT support and detection
...
Also add a unit test.
2014-09-14 05:31:22 -07:00
18d83a310e
X64Emitter: support shorter mov reg, imm opcodes
...
Also refactor WriteNormalOp a little bit and add comments.
2014-09-11 11:40:30 -07:00
fbc64984ca
Include CommonTypes.h instead of Common.h.
2014-09-08 15:39:58 -04:00
629ceaf2b1
Split some parts of UpdateBoundingBox into multiple lines. Also,
...
fix issues causing failure on Lint.
2014-09-06 09:49:27 -05:00
1ecb318bcc
Fix some formatting (new lines on collapsed single-line conditionals,
...
new lines for opening braces).
2014-09-06 01:23:05 -05:00
5088a2b4e2
x64Emitter: add BMI1/BMI2 support
...
TZCNT and LZCNT use a completely different encoding scheme, so they should
probably go in a separate patch.
Also add some tests.
2014-09-03 10:04:01 -07:00
532b7bb7da
Merge pull request #893 from rohitnirmal/scan-build-fixes
...
Scan build fixes
2014-09-02 23:15:18 -07:00
9e4419e786
x64Emitter: add support for shorter EAX forms of instructions
...
Should save a few bytes of code size here and there.
2014-09-02 21:52:41 -07:00
e72146d19c
x64Emitter: Do not assert-fail on redundant MOVs, instead show an error log
2014-09-02 10:17:32 +02:00
cc0b048c0b
x64Emitter: Support FLD/FSTP with 80 bits operands
2014-09-02 09:52:59 +02:00
f99f302c91
x64Emitter: assert instead of crashing when generating MOVZX with a wrong size
2014-09-02 09:52:04 +02:00
b1738b60fc
x64Emitter: Fix MUL with AH/BH/CH/DH registers.
2014-09-02 09:52:04 +02:00
f0e8b1fda8
x64Emitter: Error out on 8 bits CMOV, and emit 16 bits CMOV properly
2014-09-02 09:52:04 +02:00
d4ec9737bd
x64Emitter: Assert when using an invalid POP instead of generating an INT3
2014-09-02 09:52:04 +02:00