Commit Graph

27 Commits

Author SHA1 Message Date
Ryan Houdek
59e2225f7d Remove ARMv7 support. 2015-06-07 22:44:13 -05:00
Ryan Houdek
d0ae3f7d24 Break out the disassembler code from the WXWidgets UI.
This cleans up some of the code between core and UI for disassembling and dumping code blocks.
Should help the QT UI in bringing up its debug UI since it won't have to deal with this garbage now.
2015-05-31 18:16:59 -05:00
Tillmann Karras
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Lioncash
a7e9aea797 DolphinWX: Remove unnecessary includes 2015-05-08 12:39:26 -04:00
Ryan Houdek
95ac48d605 Improve the LLVM disassembler in the debug window.
There are a couple things in this PR.
Fixes a bug where if we hit an invalid instruction we would infinite loop.
Fixes an issue where on AArch64 it would show invalid instructions for all NEON instructions.
This was due to asimd and crc being optional extensions and LLVM not enabling them by default.
So we have to specify a CPU which has the feature. LLVM 3.6 will let us select by features instead of CPUs, but we don't have a release of that quite
yet.

If we are on an architecture that has a known instruction size, we will continue onward after hitting the invalid instruction. If we don't have a
known instruction size like on x86, we will instead just dump the rest of the block.
2015-01-18 15:31:40 -06:00
Stevoisiak
6ad5e54970 DolphinWX/Globals: Variable naming consistency 2014-12-20 21:43:11 -05:00
Lioncash
ee22d091a0 DolphinWX: Eliminate most usages of event tables in the debugger.
Moves things over to Bind.
2014-11-05 23:03:06 -05:00
Ryan Houdek
cb10bef9a4 Implements LLVM based disassembler for the debugger.
This will work for all of our platforms, x86, ARMv7, and AArch64.
Main issue with this is that LLVM's cmake files aren't correctly finding the LLVM install.
Not sure if this is Ubuntu's issue or not, it may just work on other operating systems.

We could potentially improve this, you can pass in a specific CPU in to the LLVM disassembler. This would probably affect latency times that are
reported by LLVM's disassembly? This needs to be further investigated later.
2014-10-24 18:10:21 -05:00
Ryan Houdek
ecf65d6f1f Cleans up the JIT block viewer in the WX UI.
This code was an absolute mess. It had allocated an arbitrarily large string buffer to hold instructions that were disassembled.

Strip out all of the nasty raw C string manipulation and replaces it with ostringstream usage.
Fixes an issue where if you didn't have a JIT recompiler running then Dolphin would instantly crash if you tried comparing PPC to x86 code.
Changed the disassembly of the host side code from being inline to the function to instead being in a class, this will be required when I add support
for ARMv7 and AArch64 to this window.
2014-10-21 12:27:59 -05:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Lioncash
8553b0f27b DolphinWX: Clean up brace placements 2014-08-30 18:06:48 -04:00
Dolphin Bot
1d88091e0b Merge pull request #821 from FioraAeterna/fixjitcompare
Debugger: fix JIT block viewer PPC view
2014-08-17 07:29:25 +02:00
Fiora
a317dac089 Debugger: fix JIT block viewer PPC view
The JIT block compare code didn't set the same options for the PPCAnalyzer
as the actual JIT did, which made the PPC side of the JIT block viewer stop
at the first branch instead of the end of the block.
2014-08-16 22:25:49 -07:00
Fiora
56cc0227c3 Debugger: fix blowup calculation again
Wasn't quiiite right in 3c2567 either.
2014-08-15 10:24:35 -07:00
Fiora
6741cdbe84 Debugger: fix blowup calculation 2014-08-14 13:40:34 -07:00
Lioncash
0718937237 Common: Introduce the new Gekko disassembler to Common.
This moves the Gekko disassembler to Common where it should be. Having it in the Bochs disassembly Externals is incorrect.

Unlike the PowerPC disassembler prior however, this one is updated to have an API that is more fitting for C++. e.g. Not needing to specify a string buffer and size. It does all of this under the hood.

This modifies all the DebuggingInterfaces as necessary to handle this.
2014-08-04 00:45:07 -04:00
Ryan Houdek
21ee61d7fc Remove x86_32 from DolphinWX. 2014-08-03 13:44:37 -05:00
Lioncash
75cb8a7452 Fix a typo in the JIT debugger window 2014-05-18 10:31:39 -04:00
Lioncash
e1359382be Kill off _T and wxT macros
Minor other alterations that relate to above as well.

Also added the PanicAlertT version of alerts for some error messages that
use PanicAlert. We want the user to actually understand why the error
occurred.
2014-05-17 16:25:51 -04:00
Ryan Houdek
c794dc8085 Move the JitWindow debugging window over to using the new PPCAnalyzer class. 2014-04-30 10:49:39 -05:00
Ryan Houdek
4f02132f93 Make our architecture defines less stupid.
Our defines were never clear between what meant 64bit or x86_64
This makes a clear cut between bitness and architecture.
This commit also has the side effect of bringing up aarch64 compiling support.
2014-03-04 09:36:59 -06:00
Pierre Bourdon
f344a43657 Make DolphinWX/ mostly IWYU clean. 2014-02-23 00:27:27 +01:00
Pierre Bourdon
592ebc5262 Fix more header sorting issues in DolphinWX/ (now check-includes clean). 2014-02-20 01:01:10 +01:00
Lioncash
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash
3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
Jasper St. Pierre
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00