Wunkolo
fba23e3e75
[x64] Add kX64EmitGFNI emitter feature-flag
...
This determines support for the `gf2p8affineqb` instruction. Even though `GFNI` is typically found with AVX512-enabled chips, it _is_ possible for there to be a chip with `GFNI` but does not support `AVX` or `AVX2` of any sort. An example of this is Tremont(Lakefield) chips as well as Jasper Lake.
13df339fe7/GenuineIntel/GenuineIntel00806A1_Lakefield_LC_InstLatX64.txt (L1297-L1299)
13df339fe7/GenuineIntel/GenuineIntel00906C0_JasperLake_InstLatX64.txt (L1252-L1254)
2022-01-13 15:32:55 -06:00
Wunkolo
233ed107fe
[CPU] Remove use_haswell_instructions in favor of x64_extension_mask
...
Rather than having a single bool to conditionally detect haswell-level
instruction features. The granularity is increased with a new
`x64_extension_mask` where individual features within the x64 backend
can be turned on or off in a bit-mask manner. Since we have an ARM
backend on the horizon, I've added this to the new `x64`
configuration-group rather than `CPU`. This new pattern will hopefully
allow for testing to be more targetted to certain processor features and
allows the user to determine if they want certain features to be enabled
or disabled(such as avoiding BMI2 on certain AMD processors due to
pdep/pext being incredibly slow). The default configuration is to detect
and utilize all available features.
2022-01-11 03:57:32 -06:00
Joel Linn
fa7f292432
[CPU] ResolveFunction() Fix declaration mismatch
2021-06-02 22:28:43 -05:00
gibbed
814728ebbe
[x64] Space r/xmm regs in thunk emitter.
2020-04-13 12:57:14 -05:00
Prism Tutaj
1cce25d5e7
[CPU] Change thunk layout and fix Linux thunk misalignment
2020-02-05 09:49:29 -06:00
gibbed
24321dbcd9
[x64] Fix up offset of stack alloc in prolog for unwind info.
...
- [x64] Track offset of stack alloc in prolog within emitted functions.
- [x64] Don't use hardcoded offset of stack alloc in prolog in generated
unwind info.
2019-08-23 06:12:22 -05:00
gibbed
0dc4a13db3
[x64] Fix up unwind info for emitted functions.
...
- [x64] Track size of code within emitted functions (prolog, body, epilog).
- [x64] Don't use hardcoded prolog size in generated unwind info.
- [x64] Update URLs to MSDN documentation on UNWIND_INFO/UNWIND_CODE.
2019-08-23 06:12:22 -05:00
gibbed
b2f62b1982
Clean up cvars (rename, recategorize).
2019-08-03 23:46:03 -05:00
Jonathan Goyvaerts
c1af632562
Replace all gflag implementations with cvar implementations
2019-08-03 02:34:07 +02:00
Margen67
aea0d8d6b3
[third_party] Update capstone to latest stable
2019-06-24 23:15:28 -07:00
gibbed
593a871c84
[x64] Use vmovaps instead of movaps in emitted function prolog/epilog.
2019-04-18 09:36:06 -05:00
Dr. Chat
b3d509eb01
[x64] Swap to using anchor variables instead of dummy function calls
2018-11-23 18:02:04 -06:00
Dr. Chat
384ec98a42
[x64] Allow the JIT to use volatile registers
2018-11-23 18:02:04 -06:00
Dr. Chat
b57bb74965
[x64] Change the parameters to host_to_guest_thunk
...
Shuffle some code around in x64_backend.cc
Add GetNativeParam to avoid hardcoding parameters
2018-11-23 18:02:04 -06:00
Margen67
896ac4a682
Update documentation.
...
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06:00
Dr. Chat
198cc9b9b9
[CPU] Print a message and crash if the CPU does not support AVX.
2018-05-03 22:12:36 -05:00
DrChat
d43e2c7ff8
xenia-cpu-ppc-tests is now building on linux
2017-02-10 23:54:10 -06:00
Dr. Chat
803f0be049
Linux header fixes
2017-02-05 22:45:01 -06:00
Dr. Chat
52c75c8dbc
x64 backend: Pass guest return address as first argument to guest functions.
2016-08-26 13:46:21 -05:00
Dr. Chat
7683069f6c
Set context/membase registers to rsi/rdi respectively.
...
Use offsetof for the backend thunks.
2016-08-26 11:00:42 -05:00
Dr. Chat
5f4416ee2f
x64 backend: Save nonvolatile XMM registers on host -> guest transitions
...
Define the context and membase registers in the x64 emitter.
2016-08-22 14:55:16 -05:00
Dr. Chat
e3fdb08ad7
x64 JIT: Allocate constant data outside of the guest heap.
2016-08-18 18:26:55 -05:00
Ben Vanik
6777ce6668
Reconcile debugger and save state stuff into a single implementation.
...
Fixes #497 and fixes #496 .
Still rough edges, but at least less duplication.
2016-01-18 11:48:21 -08:00
Dr. Chat
1442f50058
X64Backend: Take a reference of the pair rather than a copy (and formatting)
2015-12-29 13:09:40 -08:00
Dr. Chat
67a45203e3
Uninstall the X64 backend exception callback on exit.
2015-12-29 12:35:56 -08:00
Dr. Chat
41d5b41523
Automatically install any CPU breakpoints in any newly-defined functions if necessary.
2015-12-29 12:32:01 -08:00
Dr. Chat
d09e3b7953
Fix incorrect backend breakpoints implementation
2015-12-29 12:32:00 -08:00
Dr. Chat
e383e2f101
Processor breakpoint support
2015-12-29 12:28:56 -08:00
Ben Vanik
a668556d7f
Fixing Windows build.
2015-08-18 14:45:49 -07:00
Ben Vanik
8b0d4fb51c
Linux tweaks.
2015-08-18 14:18:00 -07:00
Ben Vanik
5e08889d93
More style cleanup.
2015-08-06 20:17:01 -07:00
Ben Vanik
eaa1a8ee3a
Refactoring SymbolInfo/FunctionInfo/Function into Symbol/Function.
2015-08-05 21:50:02 -07:00
Ben Vanik
e657276996
Mostly working stack walking (besides issue #372 ).
2015-07-29 00:15:52 -07:00
Ben Vanik
352bae30cb
Removing win32 code from X64CodeCache.
...
Fixes #349 .
2015-07-19 10:33:00 -07:00
Ben Vanik
dec0d12cc9
Replacing includes of windows headers with base/platform.h.
2015-07-01 09:02:04 -07:00
Ben Vanik
3745746fcc
Shuffling around thunk emitter.
...
Progress on #291 .
2015-06-28 12:01:45 -07:00
Ben Vanik
5f33087a12
Adding mmap for code cache and exposing cache properties.
2015-06-16 20:13:39 -07:00
Ben Vanik
c34db170f5
Adding fallback for pre-MOVBE-supporting processors.
2015-06-16 20:06:50 -07:00
Ben Vanik
0ffd8bbedd
Place all XMM constants in memory so we can avoid clobbering rax.
2015-06-15 18:59:27 -07:00
Ben Vanik
fc4727c339
Changing calls/jmps to use the indirection table. Most games seem faster.
2015-05-21 00:12:28 -07:00
Ben Vanik
5e5eb47789
Rewriting code cache to put everything at fixed addresses.
2015-05-20 19:23:46 -07:00
Ben Vanik
ade5388728
bool-ifying xe::cpu
2015-05-05 18:52:54 -07:00
Ben Vanik
78921c1a7e
Merging Runtime into Processor.
2015-05-03 22:28:25 -07:00
Ben Vanik
9281d62106
Moving cpu/runtime/ to cpu/.
2015-03-24 08:25:58 -07:00
Ben Vanik
29912f44c0
Moving alloy/ into xenia/cpu/ to start simplifying things.
2015-03-24 07:46:18 -07:00