JosJuice
dd8e504c80
JitArm64: Use STP for pc/npc
2021-01-30 11:56:25 +01:00
Markus Wick
b22073ef59
Merge pull request #9484 from JosJuice/jitarm64-ps-stp
...
JitArm64: Use STP for (parts of) ppcState.ps
2021-01-30 08:51:56 +01:00
JosJuice
91b55824f9
JitArm64: Use STP for (parts of) ppcState.ps
...
The savestate incompatibility problem mentioned in a comment
was solved by d266be5
.
2021-01-30 01:01:01 +01:00
JosJuice
2d9ea42df2
Arm64Emitter: Add asserts for LDP/STP imm out of range
2021-01-30 00:25:33 +01:00
Sintendo
ecbf6fff74
Jit64: boolX - Mark locals as const
2021-01-28 23:52:21 +01:00
Sintendo
2d3c7fca8d
Jit64: boolX - Optimize or for size
...
OR allows for a more compact representation for constants that can be
represented by a signed 8-bit integer, while MOV does not. By letting
MOV handle the larger constants we can occasionally save a byte.
Before:
45 8B F5 mov r14d,r13d
41 81 CE 00 80 01 00 or r14d,18000h
After:
41 BE 00 80 01 00 mov r14d,18000h
45 0B F5 or r14d,r13d
2021-01-28 23:16:48 +01:00
Sintendo
62f80a008c
Jit64: boolX - Special case or with 0
...
Bitwise or with zero is just a fancy MOV, really.
- Example 1
Before:
41 BA 00 00 00 00 mov r10d,0
45 0B D1 or r10d,r9d
After:
45 8B D1 mov r10d,r9d
- Example 2
Before:
41 83 CA 00 or r10d,0
After:
Nothing!
2021-01-28 23:16:48 +01:00
Sintendo
356172bc98
Jit64: boolX - Optimize and for size
...
AND allows for a more compact representation for constants that can be
represented by a signed 8-bit integer, while MOV does not. By letting
MOV handle the larger constants we can occasionally save a byte.
Before:
41 8B FE mov edi,r14d
81 E7 FF FE FF FF and edi,0FFFFFEFFh
After:
BF FF FE FF FF mov edi,0FFFFFEFFh
41 23 FE and edi,r14d
2021-01-28 23:16:48 +01:00
Sintendo
b760a56a9a
Jit64: boolX - Special case and with 0xFFFFFFFF
...
Bitwise and with all ones doesn't accomplish much.
Before:
41 8B F5 mov esi,r13d
83 E6 FF and esi,0FFFFFFFFh
After:
41 8B F5 mov esi,r13d
2021-01-28 23:16:48 +01:00
Sintendo
34dbfd92db
Jit64: boolX - Special case and with 0
...
Bitwise and with zero is always zero.
Before:
45 8B F8 mov r15d,r8d
41 83 E7 00 and r15d,0
After:
Nothing, register a is set to constant 0.
2021-01-28 23:16:48 +01:00
Sintendo
131163d33b
Jit64: boolX - Remove andcx immediate checks
...
All cases involving immediate values are now guaranteed to be handled
elsewhere, making these checks redundant.
2021-01-28 23:16:48 +01:00
Sintendo
845d7cd51f
Jit64: boolX - Optimize xor for size
...
XOR allows for a more compact representation for constants that can be
represented by a signed 8-bit integer, while MOV does not. By letting
MOV handle the larger constants we can occasionally save a byte.
Before:
44 89 F7 mov edi,r14d
81 F7 A0 52 57 01 xor edi,15752A0h
After:
BF A0 52 57 01 mov edi,15752A0h
41 33 FE xor edi,r14d
2021-01-28 23:16:48 +01:00
Sintendo
c3775588df
Jit64: boolX - Special case xor with 0xFFFFFFFF
...
Ever so slightly shorter.
When the condition register needs updating, we still prefer xor over
not+test.
Before:
45 8B F5 mov r14d,r13d
41 83 F6 FF xor r14d,0FFFFFFFFh
After:
45 8B F5 mov r14d,r13d
41 F7 D6 not r14d
2021-01-28 23:16:31 +01:00
Sintendo
c9011e9d2c
Jit64: boolX - Special case xor with 0
...
No computation necessary, but we may need a MOV.
Before:
8B FE mov edi,esi
83 F7 00 xor edi,0
After:
8B FE mov edi,esi
2021-01-28 23:09:14 +01:00
Sintendo
3677a5035c
Jit64: boolX - Precompute complement for eqvx
...
In the case of eqvx, the final complement can always be baked directly
into the immediate value.
Before:
45 8B EF mov r13d,r15d
41 F7 D5 not r13d
41 83 F5 04 xor r13d,4
After:
45 8B EF mov r13d,r15d
41 83 F5 FB xor r13d,0FFFFFFFBh
2021-01-28 23:06:00 +01:00
Sintendo
26f70657bc
Jit64: boolX - Precompute complement of b
...
PowerPC instructions andcx and orcx complement the value of register b
before performing their respective bitwise operation. If this register
happens to contain a known value, we can precompute the complement,
allowing us to generate simpler code.
- andcx
Before:
BF 00 01 00 00 mov edi,100h
F7 D7 not edi
41 23 FE and edi,r14d
After:
41 8B FE mov edi,r14d
81 E7 FF FE FF FF and edi,0FFFFFEFFh
- orc
Before:
41 BE 04 00 00 00 mov r14d,4
41 F7 D6 not r14d
45 0B F5 or r14d,r13d
After:
45 8B F5 mov r14d,r13d
41 83 CE FB or r14d,0FFFFFFFBh
2021-01-28 23:04:35 +01:00
Admiral H. Curtiss
dc2d234284
GCMemcardUtils: Fix typo in comment.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
e47eb16641
GCMemcardManager: Detect attempt to import multiple save files with the same internal name.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
74b56a8c7f
GCMemcardManager: Add filename column.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
9acbe1aced
GCMemcardManager: Make columns sortable.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
42f4ee629b
GCMemcardManager: Make columns resizable by the user.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
7cf991bd8a
GCMemcardManager: Small cleanups.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
e00e6e1a8c
GCMemcardManager: Replace remaining panic alert with ModalMessageBox.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
daa76183ed
GCMemcard: Let ImportFile() take a Savefile instead of a direntry and a vector of blocks.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
c95f3cbb61
GCMemcard: Remove obsolete methods.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
645cb2f3d1
GCMemcardDirectory: Rewrite migration logic without ExportGci().
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
e8b99d3afd
GCMemcardManager: Rewrite file deleting logic to provide a better user experience.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
6e96f95432
GCMemcardManager: Rewrite file copying logic to provide a better user experience.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
08dccb8727
GCMemcardManager: Rewrite file importing logic to provide a better user experience.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
3286d2df3d
Common/VariantUtil: Add 'overloaded' helper struct for use with std::variant.
2021-01-28 22:01:32 +01:00
Admiral H. Curtiss
87ae7ccd75
GCMemcardManager: Rewrite file exporting logic to provide a better user experience.
2021-01-28 22:01:32 +01:00
Admiral H. Curtiss
7bb7aa16c2
GCMemcardManager: Relayout file table for a more compact design.
2021-01-28 22:01:32 +01:00
Admiral H. Curtiss
ec4fc7171f
GCMemcardUtils: Implement GenerateFilename() as a cleaner variant of GCMemcard::GCI_FileName().
2021-01-28 22:01:30 +01:00
Admiral H. Curtiss
3e7f537a9d
GCMemcard: Implement ExportFile() to get a file on a card with a single method call.
2021-01-28 22:00:33 +01:00
Admiral H. Curtiss
9b14cc8ea2
GCMemcard: Implement utility functions to read saves from and write saves to files, without involving a memory card.
2021-01-28 22:00:28 +01:00
Sepalani
b363962757
BreakpointWidget: Remove unnecessary code
...
PPCDebugInterface.Clear() is called by Core on shutdown instead
2021-01-28 21:23:18 +04:00
Sepalani
289637f92f
NetworkCaptureLogger: Move SSL logging
2021-01-28 21:23:18 +04:00
Shawn Hoffman
6829775fac
msbuild: re-enable HAS_OPENGL and HAS_VULKAN
2021-01-27 19:10:53 -08:00
Léo Lam
c386c5acc2
Merge pull request #9366 from iwubcode/freelook_camera_quaternion
...
VideoCommon: allow Free Look to be manipulated by a quaternion
2021-01-28 01:34:09 +01:00
Léo Lam
9ca24ae8e0
Merge pull request #9092 from shuffle2/vshack
...
msbuild: Merge "Core" libs into single DolphinLib
2021-01-28 01:33:46 +01:00
iwubcode
586c689d63
VideoCommon: use Quaternion for Free Look orientation
2021-01-27 18:22:10 -06:00
iwubcode
d35287b6e4
Common: update Quaternion to allow rotating pitch, yaw, and roll all at once
2021-01-27 18:22:10 -06:00
iwubcode
544692f96a
Common: add convenience function to convert a Quaternion to a Matrix44
2021-01-27 18:22:10 -06:00
SirMangler
9f6d88880e
MemoryWidget: Add 'Offset' and General Improvements
2021-01-28 01:04:09 +01:00
Shawn Hoffman
500a694ca8
msbuild: bundle all dolphin "core" code into single library
2021-01-27 14:29:49 -08:00
Shawn Hoffman
5770ff01f3
rename D3DCommon/Common to D3DCommon/D3DCommon
2021-01-27 14:29:48 -08:00
Shawn Hoffman
527b5a9761
normalize common filenames in VideoBackends/D3D12
2021-01-27 14:29:48 -08:00
Shawn Hoffman
a0aeb5b0b9
normalize common filenames in VideoBackends/D3D
2021-01-27 14:29:48 -08:00
Shawn Hoffman
d7fd892fde
normalize common filenames in VideoBackends/Vulkan
2021-01-27 14:29:48 -08:00
Shawn Hoffman
ef70fe05bf
normalize common filenames in VideoBackends/Null
2021-01-27 14:29:48 -08:00