8dc96fce4d
Merge pull request #4776 from lioncash/dspemitter
...
DSPEmitter: Convert a C array to a std::array
2017-03-01 08:11:26 -08:00
4260afc848
DSPCore: Make g_cycles_left a regular member variable of DSPEmitter
...
Gets rid of a global within the DSP core.
2017-02-07 21:56:57 -05:00
063e4df5a1
DSPCore: Convert the DSPCoreState enum into an enum class
2017-02-06 11:47:19 -05:00
2ad62bf5df
Merge pull request #4777 from lioncash/dspstack
...
DSPCore: Convert DSP stack register enum into an enum class
2017-02-04 08:27:11 +01:00
a9db9fd217
DSPDisassembler: Make constructor explicit
2017-01-30 18:17:48 -05:00
546cd5d4be
DSPAssembler: Make constructor explicit
2017-01-30 18:16:59 -05:00
10d73988e7
DSPCore: Convert DSP stack register enum into an enum class
...
Makes it more self-documenting which stack is being loaded or stored to,
as C, D, and magic numbers are extremely vague. It also enforces a
strongly-typed API instead of accepting arbitrary integral values.
It also adds the two other missing stack register names -- loop address
and loop counter.
2017-01-28 09:17:27 -05:00
4846f26916
DSPEmitter: Convert a C array to a std::array
2017-01-28 07:39:22 -05:00
7959f900ed
DSPEmitter: Remove unused class member variable
2017-01-28 06:36:54 -05:00
04c3db8bfa
Merge pull request #4771 from lioncash/dspemitter
...
DSPCore: Move emitter cycle code into DSPEmitter itself
2017-01-28 12:25:34 +01:00
be3f9f7431
DSPEmitter: Fix -Wreorder warnings
2017-01-28 06:07:25 -05:00
f5fe387a20
DSPEmitter: Make emitter dispatcher pointers private
2017-01-28 03:55:56 -05:00
0d42cbc923
DSPCore: Move JIT cycle code to DSPEmitter
...
Moves x86-specific emitter code out of DSPCore.
2017-01-28 03:55:40 -05:00
4003360bcb
DSPCore: Move CompileCurrent to the DSPEmitter
...
This is only ever used here.
2017-01-27 01:36:29 -05:00
06728ad687
Merge pull request #4757 from lioncash/dsptables
...
DSPTables: Hide remaining opcode tables
2017-01-27 18:17:36 +13:00
be52fcf651
DSPEmitter: Make most public variables private
...
Dispatchers and m_unresolved_jumps is utilized in code outside of the
emitter, so these are left as is for the time being.
2017-01-26 20:32:57 -05:00
970d969f63
DSPEmitter: Make conditional JIT functions in DSPJitBranch part of the emitter
...
These quite clearly have a dependency on the emitter itself, so these
should be a part of the emitter itself.
The template function can be modified to just simply take functions as a
parameter.
2017-01-26 20:32:34 -05:00
16aac00b8a
DSPEmitter: Move private variables below function declarations
2017-01-26 19:25:49 -05:00
ef52451954
DSPJitRegCache: Convert DSPJitSignExtend into an enum class
...
Prevents general names like SIGN, ZERO, and NONE from polluting the
surrounding namespace.
2017-01-26 18:33:50 -05:00
bdd7034fcb
DSPJitRegCache: Move allocation order array to the cpp file
...
As it's a private static implementation detail that doesn't rely on any
other internals of DSPJitRegCache, it can be hidden.
2017-01-26 17:12:55 -05:00
8f5ce50a25
DSPAssembler: Migrate VerifyParams over to an OpcodeType param instead of bool
2017-01-26 05:17:05 -05:00
6cb6707a4e
DSPTables: Hide remaining exposed opcode tables
...
All opcode tables are now internal.
2017-01-26 05:17:01 -05:00
0a07df13d2
Merge pull request #4753 from lioncash/dspjit
...
DSPEmitter: Amend member variable naming
2017-01-26 10:33:03 +01:00
f4415dd99c
DSPEmitter: Amend member variable naming
...
Amends the variable names to follow our coding style.
2017-01-25 19:26:57 -05:00
c2e3bd8d2f
DSPAssembler: Amend printf specifiers in ShowError
...
code_line is a u32.
2017-01-25 17:20:25 -05:00
992b7f7ac0
DSPAssembler: Replace char buffer + sprintf with StringFromFormat
2017-01-25 17:20:21 -05:00
3c184dcf8d
Merge pull request #4742 from lioncash/dspasm
...
DSPAssembler: Replace malloced output buffer with std::vector
2017-01-25 14:49:36 +01:00
3734d6f16c
DSPJitRegCache: Make GetReg return by value
...
Using out-references for this sort of thing is a C++03-ism.
2017-01-24 23:10:34 -05:00
ed627a8cff
DSPAssembler: Replace malloced output buffer with std::vector
...
Same thing, less manual memory management.
2017-01-23 22:03:40 -05:00
d6bdbfe90e
DSPAssembler: Use std::string instead of malloced char buffers in AssembleFile
2017-01-22 01:15:36 -05:00
cbe1ec51df
DSPAssembler: Make AssembleFile take a std::string
...
File paths passed to it would have been implicitly converted to std::strings
prior to this function being reached, so it gets rid of some string churn.
It also makes it safer since nullptr can't be passed in.
2017-01-22 01:15:31 -05:00
c73f4bd226
DSPTables: Hide main opcode tables
...
Hides the opcode tables that the interpreter and JIT interface with to
execute instructions.
This does not, however, hide the read-only tables that the assembler and
disassembler use.
2017-01-19 17:46:07 -05:00
2b5b21f2a4
DSPAssembler: Rename FindOpcode parameters
...
Having opcod and opcode as parameter names is kind of silly.
2017-01-19 17:46:01 -05:00
14f0e66809
DSPTables: Use std::array instead of C arrays
2017-01-19 17:07:31 -05:00
35cc4a4202
DSPInterpreter: Get rid of a #define constant
...
This constant isn't particularly helpful, mainly because it's not
applicable to all DSP instructions. Some instructions don't have encoding
space for registers, and not all instructions that do encode registers
have one at the first five bits.
This change also has the benefit of removing all includes to the
interpreter within the JIT code, which keeps them fully separate from one
another. Changes to the interpreter header won't require some of the JIT
code to be rebuilt.
2017-01-12 20:36:52 -05:00
c33c9532a7
Merge pull request #4594 from lioncash/regcache
...
DSPJitRegCache: Make single argument constructor explicit
2017-01-06 13:01:40 +01:00
23d99f2f2c
specify custom brace style to fix unions
...
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
2cfc0dc8b6
DSPDisassembler: directly initialize AssemblerSettings struct members
...
Same thing, less code.
2017-01-04 12:53:22 -05:00
342b76a594
DSPJitRegCache: Make single argument constructor explicit
...
Prevents implicit conversions.
2017-01-02 15:03:31 -05:00
3b4290b5b7
DSPJitRegCache: Make class variables conform to the coding style
2017-01-02 12:16:29 -05:00
3eb25cea6f
DSP: Namespace remaining un-namespaced DSP code
2016-12-31 17:20:14 -05:00
efbf261e97
DSPAnalyzer: Fix two clang warnings about sign mismatched types
2016-12-29 10:10:38 -05:00
2aefa29941
DSP: Add the interpreter to the DSP namespace
2016-12-29 07:05:17 -05:00
c79cc3f470
DSP: Namespace the JIT
2016-12-28 20:38:41 -05:00
5c938ed41f
DSPTables: Move function type aliases into DSPOPCTemplate
...
Gets two typedefs out of global scope
2016-12-27 18:31:42 -05:00
12e335025d
DSPEmitter: Make FlagsNeeded() a const member function
...
This doesn't modify any class data.
2016-12-26 21:18:24 -05:00
a8459fc189
DSPAnalyzer: Hide implementation details
...
Makes accessing flags a part of the function interface instead of exposing
an internal variable.
2016-12-26 21:18:18 -05:00
50b1fcb1ed
DSPEmitter: Initialize compileSR in the initializer list
2016-12-26 19:42:09 -05:00
f3d353a85d
DSPEmitter: Move typedefs into DSPEmitter
...
Keeps them associated with the emitter itself, rather than just letting
them sit in global scope.
2016-12-26 19:19:39 -05:00
646d96a216
DSPEmitter: Convert defines into typed constants
...
Also moves them into more qualified scopes where possible.
2016-12-26 19:16:01 -05:00