Commit Graph

33894 Commits

Author SHA1 Message Date
Simonx22
8f2a2f3cda Android: Update Gradle Plugin to 4.1.1 2021-01-15 19:53:08 -05:00
LC
aba179e4ba
Merge pull request #9385 from MerryMage/more-bmi2
Jit_Integer: Use SHLX, SHRX, SARX
2021-01-14 21:40:45 -05:00
LC
0c2bc3582d
Merge pull request #9425 from Sintendo/jit64subfx
Jit64: subfx optimizations
2021-01-14 21:40:05 -05:00
LC
8f67a1961f
Merge pull request #9442 from Stevoisiak/patch-1
Contributing.md: Code comment for do-while sample
2021-01-14 18:45:00 -05:00
Stevoisiak
c121dc3410
Contributing.md: Code comment for do-while sample 2021-01-14 13:58:55 -05:00
LC
7fdd4afd9c
Merge pull request #9437 from Pokechu22/GX_CMD_UNKNOWN_METRICS
Use GX_CMD_UNKNOWN_METRICS instead of magic number 0x44
2021-01-12 04:09:54 -05:00
Pokechu22
d55f9369c7 Use GX_CMD_UNKNOWN_METRICS instead of magic number 0x44 2021-01-11 12:41:04 -08:00
LC
79a234eff7
Merge pull request #9435 from shuffle2/constexpr-error
BitUtils: cleanup constexpr usage for msvc clz
2021-01-10 14:58:20 -05:00
Shawn Hoffman
fc65f65891 BitUtils: cleanup constexpr usage for msvc clz 2021-01-10 10:06:30 -08:00
LC
87debc6641
Merge pull request #9433 from shuffle2/constexpr-error
BitUtils: loosen clz to inline on msvc/arm64
2021-01-10 03:45:59 -05:00
Shawn Hoffman
65ecf1e43e BitUtils: loosen clz to inline on msvc/arm64 2021-01-09 23:44:00 -08:00
LC
a613c2a5e4
Merge pull request #9429 from Sintendo/jit64fixoverflow
Jit64: Fix FinalizeCarryOverflow XER[OV/SO]
2021-01-10 01:58:06 -05:00
LC
59fa613020
Merge pull request #9431 from shuffle2/msvc-gdbstub
msbuild: enable USE_GDBSTUB
2021-01-10 01:56:46 -05:00
LC
75e19a0c29
Merge pull request #9430 from shuffle2/vsupdate
Bump msvc version check and revert a msvc workaround
2021-01-10 01:46:28 -05:00
LC
1f0e3371a3
Merge pull request #9432 from shuffle2/constexpr-error
BitUtils: initialize variables
2021-01-10 01:44:58 -05:00
Shawn Hoffman
f0a6244768 msbuild: enable USE_GDBSTUB
this does nothing about it actually being usable
2021-01-09 22:26:55 -08:00
Shawn Hoffman
1e5e5ea855 BitUtils: initialize variables
fixes C3615 on some msvc/cmake configs
2021-01-09 22:18:29 -08:00
Shawn Hoffman
cce275c16e Revert "msvc: temporary workaround for C4789 false positive"
This reverts commit deb73d0167.
2021-01-09 19:22:36 -08:00
Shawn Hoffman
c8316f70a4 msvc: bump _MSC_FULL_VER check to 192829335 2021-01-09 19:21:03 -08:00
Sintendo
305cd31bd9 Jit64: Fix FinalizeCarryOverflow XER[OV/SO]
FinalizeCarryOverflow didn't maintain XER[OV/SO] properly due to an
oversight. Here's the code it would generate:

0:  9c                      pushf
1:  80 65 3b fe             and    BYTE PTR [rbp+0x3b],0xfe
5:  71 04                   jno    b <jno>
7:  c6 45 3b 03             mov    BYTE PTR [rbp+0x3b],0x3
000000000000000b <jno>:
b:  9d                      popf

At first glance it seems reasonable. The host flags are carefully
preserved with PUSHF. The AND instruction clears XER[OV]. Next, an
conditional branch checks the host's overflow flag and, if needed, skips
over a MOV that sets XER[OV/SO]. Finally, host flags are restored with
POPF.

However, the AND instruction also clears the host's overflow flag. As a
result, the branch that follows it is always taken and the MOV is always
skipped. The end result is that XER[OV] is always cleared while XER[SO]
is left unchanged.

Putting POPF immediately after the AND would fix this, but we already
have GenerateOverflow doing it correctly (and without the PUSHF/POPF
shenanigans too). So let's just use that instead.
2021-01-09 22:52:18 +01:00
Léo Lam
0776263c5e
Merge pull request #9428 from JosJuice/tv-folder-picker
Android: Use old folder picker on Android TV
2021-01-09 11:54:02 +01:00
JosJuice
116a5a79da Android: Use old folder picker on Android TV
See the comment I added to the code. This is a rather serious
issue for Android TV users from what I've heard.
2021-01-08 16:27:33 +01:00
Léo Lam
4cdcbb6ab2
Merge pull request #9308 from smurf3tte/re23_patch
Patches for Resident Evil 2/3 audio issues
2021-01-06 01:52:15 +01:00
Léo Lam
0b1db65aa1
Merge pull request #9405 from Filoppi/patch-7
Rename "Use Fullscreen" setting to "Start in Fullscreen"
2021-01-06 01:44:46 +01:00
Pierre Bourdon
27013e8d18
Merge pull request #9300 from leoetlino/ncd-wd-fixes
IOS: WD and NCD fixes
2021-01-06 00:51:33 +01:00
Sintendo
df70077e6b JitArm64: subfx - Special case a == b 2021-01-05 18:52:24 +01:00
Léo Lam
eafb9de047
Merge pull request #9323 from waddlesplash/haiku
Rehabilitate Haiku support.
2021-01-05 16:09:43 +01:00
Léo Lam
840ecfb32f
Merge pull request #9409 from AdmiralCurtiss/wii-save-import-tmd
Make WiiSave::Import() behave closer to the Wii System Menu's SD Card save copying.
2021-01-05 15:36:36 +01:00
Léo Lam
e48377dfc6
Merge pull request #9404 from Filoppi/patch-5
Fix typos and code coding conventions
2021-01-05 15:33:43 +01:00
Filippo Tarpini
a5a6ef8512
Fix a couple of typos
[committer note: fixed commit message style]
2021-01-05 15:24:21 +01:00
Filippo Tarpini
0805b58302
DolphinQt: Remove some useless includes
[committer note: fixed commit message style]
2021-01-05 15:24:13 +01:00
Filippo Tarpini
3acd1726b9
Core: Fix variable naming conventions
[committer note: squashed two commits]
2021-01-05 15:23:40 +01:00
Léo Lam
ee25f03ff9
Merge pull request #9418 from Filoppi/patch-10
Fix DualShockUDP not adding/removing devices correctly
2021-01-05 15:15:53 +01:00
Léo Lam
9069ad6cce
Merge pull request #9420 from MerryMage/ext
Externals: Link against required libraries
2021-01-05 15:15:15 +01:00
Pierre Bourdon
bd89523e63
Merge pull request #9392 from smurf3tte/audio_wmask
DSP: Fix write masks on AUDIO_*/AR_* MMIO registers
2021-01-05 15:08:06 +01:00
Sintendo
c0be34aa81 Jit64: subfx - Special case a == b
Soul Calibur II does this.

Before:
2B F6                sub         esi,esi

After:
Nothing!
2021-01-05 00:26:26 +01:00
Sintendo
b0be20560f Jit64: subfx - Special case b == 0
Happens in Super Mario Sunshine. You could probably do something similar
for b == -1 (like we do for subfic), but I couldn't find any titles that
do this.

- Case 1: d == a

Before:
41 8B C7             mov         eax,r15d
41 BF 00 00 00 00    mov         r15d,0
44 2B F8             sub         r15d,eax

After:
41 F7 DF             neg         r15d

- Case 2: d != a

Before:
BF 00 00 00 00       mov         edi,0
41 2B FD             sub         edi,r13d

After:
41 8B FD             mov         edi,r13d
F7 DF                neg         edi
2021-01-05 00:11:16 +01:00
Sintendo
57548b456b Jit64: subfx - Special case a == 0
Occurs a bunch of times in Super Mario Sunshine.

Before:
41 83 EE 00          sub         r14d,0

After:
Nothing!
2021-01-04 23:54:15 +01:00
Sintendo
b805223108 Jit64: subfx - Optimize more constant a cases
Consider the case where d and a refer to the same PowerPC register,
which is known to hold an immediate value by the RegCache. We place a
ReadWrite constraint on this register and bind it to an x86 register.
The RegCache then allocates a new register, initializes it with the
immediate, and returns a RCX64Reg for both d and a.

At this point information about the immediate value becomes unreachable.
In the case of subfx, this generates suboptimal code:

Before 1:
BF 1E 00 00 00       mov         edi,1Eh       <- done by RegCache
8B C7                mov         eax,edi
8B FE                mov         edi,esi
2B F8                sub         edi,eax

Before 2:
BE 00 AC 3F 80       mov         esi,803FAC00h <- done by RegCache
8B C6                mov         eax,esi
8B 75 EC             mov         esi,dword ptr [rbp-14h]
2B F0                sub         esi,eax

The solution is to explicitly handle the constant a case before having
the RegCache allocate registers for us.

After 1:
8D 7E E2             lea         edi,[rsi-1Eh]

After 2:
8B 75 EC             mov         esi,dword ptr [rbp-14h]
81 EE 00 AC 3F 80    sub         esi,803FAC00h
2021-01-04 23:02:22 +01:00
Filippo Tarpini
1e4a1bee43 Fix DualShockUDP not adding/removing devices correctly
-If adding 2 devices with the same name, they their unique id wouldn't be increased, causing a conflict.
-Removing a device wouldn't actually remove it from the internal devices list because the list of devices had already been updated when going through it.
-It was possible to remove devices belonging to other sources by adding a device with the same name and then removing it.
2021-01-03 21:06:06 +02:00
JosJuice
e957ed0809
Merge pull request #9422 from MerryMage/__builtin_clz
BitUtils: __builtin_clz is undefined when value == 0
2021-01-03 18:53:25 +01:00
MerryMage
6106d6481f BitUtils: __builtin_clz is undefined when value == 0 2021-01-03 17:35:15 +00:00
LC
4b9259d691
Merge pull request #9415 from Filoppi/patch-8
Fix cursor going to +infinite if the window size was 0
2021-01-03 11:26:11 -05:00
LC
f477a10e65
Merge pull request #9421 from MerryMage/JitBlockData
JitArm64: Do not use offsetof on non-standard-layout types
2021-01-03 11:25:04 -05:00
MerryMage
8ae0bf93e7 JitArm64: Do not use offsetof on non-standard-layout types
Applying PR #8687 to Arm64 JIT.
2021-01-03 15:26:01 +00:00
MerryMage
14c03388b3 Externals: Link against required libraries
* curl requires zlib
* hidapi when not using libudev requires libusb
2021-01-03 14:26:38 +00:00
waddlesplash
2df11d3911 Rehabilitate Haiku support. 2021-01-02 16:54:24 -05:00
Filippo Tarpini
8813ba69f5 Fix Quartz cursor going to +infinite if the window size was 0 2021-01-02 19:55:19 +02:00
Admiral H. Curtiss
2932b5f8cd Qt: Give better error messages when Wii save importing fails. 2021-01-02 17:46:12 +01:00
Admiral H. Curtiss
d9c686db30 WiiSave: Delete existing save, if any, before importing one. 2021-01-02 17:46:12 +01:00