Commit Graph

33 Commits

Author SHA1 Message Date
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
b021573a70 GekkoDisassembler: fix rld* 2020-08-23 13:55:14 -07:00
ce30efc6cf Common/GekkoDisassembler: Don't print out '\0' as a character
Prevents a few instructions from having mangled names in some cases.
2019-07-03 20:12:50 -04:00
188234b4cd Common/GekkoDisassembler: Use std::string_view where applicable
Avoids the use of the null pointer to represent an empty string.
Instead, we can simply pass an empty string_view instance. Using
std::string_view enforces this invariant at the API level.
2019-06-16 19:51:23 -04:00
d8c3f09c9f Common/GekkoDisassembler: Amend disassembly of operations expecting a character literal
Due to the lack of cast here, this will actually print out the ascii
value, rather than the character itself, due to promoting to integral
values. Instead, we can eliminate the use of character operands and just
print the value itself directly, given it's equivalent behavior with
less code.
2019-06-16 19:33:28 -04:00
0cde8ab9e8 Common/GekkoDisassembler: Make all lookup tables immutable
Allows these arrays to be placed within the read-only segment (and
enforces the immutability in the code itself). While we're at it, we can
make use of std::array here.
2019-06-16 19:21:07 -04:00
9952dfe293 GekkoDisassmbler: Amend erroneous formatting specifiers
fmt diverges from printf in that '.' as a precision specifier may only
be used for floating-point values (makes sense, given it's indicating
precision after the decimal point).
2019-06-16 02:05:16 -04:00
5b92d5076a Common: Use fmt where applicable
Begins the transition to using fmt for string formatting where
applicable. Given fmt supports formatting std::string instances out of
the box, we can remove now-unnecessary calls to .c_str() and .data().

Note that this change does not touch the actual logging subsystem aside
from converting the final StringFromFormat call in the process over to
fmt::format. Given our logging system is heavily used throughout the
entire codebase, and converting that over will be quite a large change
by itself, this will be tackled near the end of the conversion process.
2019-06-14 15:04:09 -04:00
ff972e3673 Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
c110ffcdaa Remove redundant initialization 2019-04-30 01:22:24 +02:00
b37886580b GekkoDisassembler: fix mtfsf yet again 2018-10-08 02:43:34 +01:00
29c271d0eb GekkoDisassembler: fix disassembly of mtfsf
This fixes https://dolp.in/i11411.
2018-10-07 17:27:02 +01:00
b60ad2425d Common: Namespace GekkoDisassembler.cpp/.h
Moves more common code into the Common namespace where it belongs
2018-05-25 16:55:09 -04:00
27515f4c9b Merge pull request #6626 from lioncash/dcbz_l-disasm
GekkoDisassembler: Fix disassembly of dcbz_l
2018-04-12 22:18:56 +01:00
40bb9974f2 Reformat all the things! 2018-04-12 21:28:39 +02:00
1c17329e2f GekkoDisassembler: Fix disassembly of dcbz_l
Previously this would fall through and disassemble as a generic "ps_[number]" junk instruction.
2018-04-10 11:22:01 -04:00
de82330a74 GekkoDisassembler: Correct disassembly of fabs, fnabs, and fneg
These three instructions use the B field (bits 16-20 of the opcode)
to determine what the operand register is. However, the code was
using the path that uses the C field (bits 21-25).

This amends the code to use the B field (and also fixes the 64-bit PPC
opcodes, because why not?).

Fixes issue 10683.
2017-12-04 00:02:35 -05:00
2f5d00450a Add precision about the names of r1, r2 and r13 for the register view
In the code view, it would never say r1 or r2, but rather sp (stack pointer) and rtoc (register of the table of content) respectively.  In the register view, all it says is the register number.  This is an inconvenience considering it might not be obvious which register belongs to which of these terms.

Also make r13 named the "sda" for small data area with the same convention as above.
2016-11-02 01:13:00 -04:00
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
db8dbae131 Fix some very minor spelling mistakes
Found by Lintian https://lintian.debian.org/
2016-02-19 01:48:10 +00:00
268f52e054 Add missing license headers 2015-05-25 13:11:47 +02:00
88e1850231 GekkoDisassembler: Fix typecast for the second printf param for mtfsf 2015-05-24 01:54:04 -04:00
612118e8e5 GekkoDisassembler: Fix disassembly of mtfsf's FM field 2015-05-24 01:51:07 -04:00
87dcda5785 Remove remnants of old fake opcodes.
These are illegal opcodes, and should be treated as such.
2015-03-14 16:59:12 -07:00
dc95ea2ce6 Minor fix with psq_st{u,}x disassembly. 2015-01-19 10:12:23 -06:00
596d3fd5f2 Fixes disassembly of paired store instructions.
Someone thought it would be a good idea to have the location as the first argument on the instruction.
Changed it to how it is supposed to be disassembled.
2015-01-18 16:37:43 -06:00
8a6ea918b6 GekkoDisassembler: fix display of CRs in branch operations 2015-01-03 19:53:55 -08:00
4d931c16ad Silence a few "zero as null pointer" warnings. 2014-11-24 12:36:46 -06:00
c102fed36a GekkoDisassembler: show W and I in psq_l/psq_st disassembly 2014-09-28 17:01:35 -07:00
9c4407fb80 Disassembler: fix disassembly of some twi instructions 2014-09-21 08:17:41 -07:00
d3dee1d7ed GekkoDisassembler: fix some float opcodes 2014-09-16 02:06:40 -07:00
7368c2ee9e GekkoDisassembler: fix/improve disassembly for a few instructions 2014-09-15 18:48:54 -07:00
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