Lioncash
34ec64233a
macro-interpreter: Resolve -Wself-assign-field warning
This was assigning the field to itself, which is a no-op. The size
doesn't change between its initial assignment and this one, so this is a
safe change to make.
6 years ago
Lioncash
e17fb5ee97
video_core: Remove unused variables
Silences several compiler warnings about unused variables.
6 years ago
Lioncash
c0650cd82c
macro_hle: Remove unnecessary static keywords
These functions are already in an anonymous namespace which makes the
functions internally linked.
6 years ago
Lioncash
be6b7591d9
macro_hle: Simplify shift expression in HLE_771BB18C62444DA0()
Given the expression involves a 32-bit value, this simplifies down to
just: 0x3ffffff. This is likely a remnant from testing that was never
cleaned up.
Resolves a -Wshift-overflow warning.
6 years ago
Lioncash
cc935d997b
macro_hle: Remove unnecessary std::make_pair calls
The purpose of make_pair is generally to deduce the types within the
pair without explicitly specifying the types, so these usages were
generally unnecessary, particularly when the type is enforced by the
array declaration.
6 years ago
Lioncash
502dbfb9eb
macro: Resolve missing parameter in doxygen comment
Resolves a -Wdocumentation warning.
6 years ago
David
7c970132b5
macro: Add support for "middle methods" on the code cache ( #4112 )
Macro code is just uploaded sequentially from a starting address, however that does not mean the entry point for the macro is at that address. This PR adds preliminary support for executing macros in the middle of our cached code.
6 years ago
David Marcec
f5e2aec422
addressed issues
6 years ago
David Marcec
52340e94ac
clear mme draw mode
We already draw, so we can clear it
6 years ago
David Marcec
fabdf5d385
Addressed issues
6 years ago
David Marcec
74b4334d51
Fix constbuffer for 0217920100488FF7
6 years ago
David Marcec
6ce5f3120b
Macro HLE support
6 years ago
MerryMage
c12eb814b4
macro_jit_x64: Use ecx for shift register
shl/shr only accept cl as their second argument
6 years ago
Lioncash
5a4e89b901
macro_jit_x64: Correct readability of Compile_ExtractShiftLeftImmediate()
Previously dst wasn't being used.
6 years ago
Lioncash
140f953b6a
macro_jit_x64: Correct readability of Compile_ExtractShiftLeftRegister()
Previously dst wasn't being used.
6 years ago
Lioncash
8ea749c1ca
macro_jit_x64: Remove unused variable
Removes a completely unused label and marks another variable as unused,
given it seems like it has potential uses in the future.
6 years ago
Lioncash
811bff009e
macro_jit_x64: Eliminate variable shadowing in Compile_ProcessResult()
We can reduce the capture scope so that it's not possible for both "reg"
variables to clash with one another.
While we're at it, we can prevent unnecessary copies while we're at it.
6 years ago
MerryMage
977ceb4056
macro_jit_x64: Remove unused function Read
6 years ago
MerryMage
44f10d9b9f
macro_jit_x64: Inline Engines::Maxwell3D::GetRegisterValue
6 years ago
MerryMage
c409722435
macro_jit_x64: Optimization implicitly assumes same destination
6 years ago
MerryMage
a6ddd7c382
macro_jit_x64: Should not skip zero registers for certain ALU ops
The code generated for these ALU ops assume src_a and src_b are always valid.
6 years ago
MerryMage
cf0aad7d6a
macro_jit_x64: Remove NEXT_PARAMETER
Not required, as PARAMETERS can just be incremented directly.
6 years ago
MerryMage
1799f4e774
macro_jit_x64: Remove unused function Compile_WriteCarry
6 years ago
MerryMage
c09a9e5cc7
macro_jit_x64: Select better registers
All registers are now callee-save registers.
RBX and RBP selected for STATE and RESULT because these are most commonly accessed; this is to avoid the REX prefix.
RBP not used for STATE because there are some SIB restrictions, RBX emits smaller code.
6 years ago
MerryMage
79aa7b3ace
macro_jit_x64: Remove REGISTERS
Unnecessary since this is just an offset from STATE.
6 years ago
MerryMage
35db6e1c68
macro_jit_x64: Remove JITState::parameters
This can be passed in as an argument instead.
6 years ago
MerryMage
389549b80d
macro_jit_x64: Remove METHOD_ADDRESS_64
Unnecessary variable.
6 years ago
MerryMage
a6a43a5ae0
macro_jit_x64: Remove RESULT_64
This Reg64 codepath has the exact same behaviour as the Reg32 one.
6 years ago
MerryMage
d563017dfe
xbyak_abi: Remove *GPS variants of stack manipulation functions
6 years ago
ReinUsesLisp
6e5d8aac4d
video_core/macro_jit_x64: Remove initializer in member variable
Fix build time issues on gcc. Confirmed through asan that avoiding this
initialization is safe.
6 years ago
David Marcec
eca3d16e54
Default init labels and use initializer list for macro engine
6 years ago
David Marcec
411f5527d4
Mark parameters as const
6 years ago
David Marcec
3a20e74f40
Pass by reference instead of copying parameters
6 years ago
David Marcec
8118ea160b
Favor switch case over jump table
Easier to read and will emit a jump table automatically.
6 years ago
David Marcec
b032ebdfee
Implement macro JIT
6 years ago