Commit Graph

97 Commits

Author SHA1 Message Date
Unknown W. Brackets
f32f89dd90 Global: Remove some unused variables. 2021-02-15 11:59:45 -08:00
Henrik Rydgård
20d579c3b8 Cleaner way to flush the instruction cache on Mac ARM64 2020-12-02 19:15:08 +01:00
Henrik Rydgård
886a8b1ac6 Remove Timer.cpp/h. Move various collections into Common/Data/Collections. 2020-10-05 21:05:23 +02:00
Henrik Rydgård
989e353482 Common.h shouldn't include Log.h.
Buildfixes

More buildfixes. Move JSON code to common.
2020-10-04 11:42:14 +02:00
Henrik Rydgård
3162f30158 Merge base/basictypes.h into Common/Common.h (mostly). 2020-09-29 15:51:51 +02:00
Henrik Rydgård
c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Unknown W. Brackets
7910b4029a arm64jit: Track writable and non-writable pointers.
Switch uses different memory regions.  We can handle this, might as well
cleanup some const abuse.
2020-05-17 00:15:12 -07:00
Unknown W. Brackets
bab907f792 arm64jit: Minor cleanup. 2020-05-16 21:12:31 -07:00
Henrik Rydgård
f76e5e70a7 Enable FlushInstructionCache on UWP, it's been allowed finally.
Minor warning fixes, UWP buildfix

Retarget UWP project to latest SDK.
2018-03-20 20:30:33 +01:00
Unknown W. Brackets
9ff812b313 arm64jit: Negate in ADDI2R/SUBI2R as well.
Should've done this at the same time as CMN.  It's not as common, mostly
catches addu calls, but it's good to have these generic for other uses.
2017-12-30 11:11:04 -08:00
Unknown W. Brackets
c00044c5d8 arm64jit: Avoid arithmetic movs.
ORR is the preferred encoding and may be faster on some chips.
2017-12-29 17:30:18 -08:00
Unknown W. Brackets
b59c0d0b45 arm64jit: Use CMN for CMPI2R if possible.
It's not hit all that often, but it is hit.
2017-12-29 17:30:13 -08:00
Unknown W. Brackets
1ecce2a2e1 arm64jit: Reuse code in I2R funcs. 2017-12-29 17:30:07 -08:00
Unknown W. Brackets
b21af3321a arm64jit: Allow ANDI2R/etc. with zero.
Since they're all possible anyway, and it's easy to forget to special case
0.
2017-12-28 14:36:37 -08:00
Unknown W. Brackets
6fd17fb026 arm64jit: Use reg sum for LDR/STR.
Skips an add, and should be less ops anyway.
2017-12-28 10:19:55 -08:00
Unknown W. Brackets
4a27e99ee9 arm64jit: Remove buggy icache invalidate.
This is always of size 0, and crashes on iOS anyway...
2017-12-27 19:30:10 -08:00
Henrik Rydgård
e07861991b Apply a fix to the ARM64 emitter ported over from Dolphin 2017-12-10 02:05:25 +01:00
Henrik Rydgård
4129459495 Avoid an assert in ARM64 emitter, seen in Google Play crash logs 2017-11-29 21:31:42 +01:00
Henrik Rydgård
0ec1e5e3b2 Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708 2017-05-26 15:48:03 +02:00
Henrik Rydgård
29ad3180a0 Add hack to make the JIT stable(r) on UWP ARM. Can't make it right without FlushInstructionCache which is not available. Sigh... 2017-03-23 10:02:29 +01:00
Henrik Rydgård
c4bac2d379 ABI: Switch to paired load/stores of floats too 2017-01-27 14:56:38 +01:00
Henrik Rydgård
e1bae9aa67 Follow the ARM64 ABI better (update the frame pointer). 2017-01-27 14:19:03 +01:00
Henrik Rydgard
a1ec735f6c ARM64Emitter: Implement instructions to move data to/from SP 2017-01-26 14:23:42 +01:00
Henrik Rydgård
56acafdb52 Fix page size for page-aligning generated code 2017-01-25 20:39:16 +01:00
Henrik Rydgard
6e7e62f3d5 Fix compiler check in Arm64Emitter.cpp. Should help #9104 2016-10-31 22:34:15 +01:00
Florent Castelli
83aaf30207 cmake: Use preprocessor for conditional compilation in Common
CommonExtra is gone!
Still need to fix CommonFake later though.
2016-10-11 16:55:29 +02:00
Henrik Rydgard
2adec71f87 Be completely safe on Exynos even if future OS:es start running the big and LITTLE cores simultaneously (don't know if they already do) 2016-09-12 22:19:52 +02:00
Henrik Rydgard
edae55d827 Revert "ARM64 icache flush: Don't bother with the minimum cache line size, just use the current."
(In case big and LITTLE cores are used at the same time on some chips,
this might still help, at least in theory)

This reverts commit 0b8a3e8c26.
2016-09-12 22:09:05 +02:00
Henrik Rydgard
0b8a3e8c26 ARM64 icache flush: Don't bother with the minimum cache line size, just use the current. 2016-09-10 17:21:11 +02:00
Henrik Rydgard
03279e1212 Port over the Exynos cacheline size fix from Dolphin. Thanks to lewurm of the mono project for the discovery and original fix.
See https://github.com/dolphin-emu/dolphin/pull/4204 and https://github.com/mono/mono/pull/3549
2016-09-10 09:25:06 +02:00
Unknown W. Brackets
4113fd940c Add ugly invalidation workaround for SGS7s.
Otherwise they just crash, and crash often.  Special thanks to Jaaan for
numerous trials to try to find the best way to solve the crashes.
2016-05-23 21:35:28 -07:00
Henrik Rydgard
ffe4c266ef Add CodeBlockCommon base class to remove further arch-specificity in JitBlockCache
Remove unused ArmThunk.
2016-05-01 11:40:00 +02:00
Henrik Rydgård
0c1e7dcc18 Use the OS to clear the CPU cache instead of the gcc builtin. Experiment for the S7 issues. 2016-04-09 16:16:45 +02:00
latot
afeb012d04 Add missing include files to unittest 2015-10-24 13:24:05 -03:00
Henrik Rydgård
a71fbccfbc Warning fixes for new LLVM on mac (warns on inconsistent usage of override) 2015-09-17 20:29:37 +02:00
Unknown W. Brackets
0c1a5324fb Merge pull request #7956 from unknownbrackets/arm64-minor
Unknown's min/max unordered-float fix for ARM64
2015-09-12 11:59:05 -07:00
Henrik Rydgard
62b348452d Add ARM64 emitter bugfix by HdkR. 2015-09-10 18:52:31 +02:00
Unknown W. Brackets
1fba38fd41 arm64: Add TST alias to the emitter. 2015-09-08 20:06:53 -07:00
Henrik Rydgard
1c67de0c21 We don't need a third set of sized integer typedefs, get rid of it. 2015-09-06 19:10:08 +02:00
Lioncash
959e4e70c0 Arm64Emitter: Fix FCMEQ instruction encoding 2015-08-10 21:12:08 -04:00
Ryan Houdek
f67abeeb2e Arm64Emitter: Fix FCMGE instruction encoding 2015-08-10 21:10:31 -04:00
Henrik Rydgard
f42f81a4da ARM64: Optimize small adjustments of pointerified registers 2015-07-11 16:59:11 +02:00
Henrik Rydgard
28456bef90 ARM64: Add NEON EOR encoding 2015-07-11 12:36:44 +02:00
Henrik Rydgard
72651835c3 A bunch more ARM64 encodings (*MIN,*MAX,XTN,SHRN, etc) 2015-07-11 12:16:56 +02:00
Unknown W. Brackets
2c6278501a arm64: Correct emitter for LDP/STP. 2015-07-04 07:18:58 -07:00
Unknown W. Brackets
7a7d8b6489 Buildfix for Windows.
Oops, forgot to recompile this file in Visual Studio after update.
2015-07-04 06:57:12 -07:00
Unknown W. Brackets
75c8ccd2c1 arm64: Update emitter from Dolphin.
From dolphin-emu/dolphin@d09d59007a.
2015-07-04 00:00:28 -07:00
Unknown W. Brackets
3780b6c0a5 arm64: Verify offset is aligned. 2015-07-02 20:31:36 -07:00
Unknown W. Brackets
31a5227076 arm64: Add umull alias. 2015-07-02 20:31:35 -07:00
Unknown W. Brackets
f355600c20 arm64: Handle negative MOVI2F more correctly.
Both -0.0 and some negated constant values were handled wrong.
2015-06-27 20:13:41 -07:00