hrydgard/ppsspp — pull request #4636 by Kingcom (2013-11-25 13:42:34+00:00)
Title: Disassembler overhaul

I'm not quite done with it, but I thought it might be good to hear some opinions on it. A few things don't work properly yet (like stepping), and I'll clean it up a bit before it's merged.

Basically, this changes the way the disassembly handles its lines. Previously, it would disassemble every 4 bytes into one line, which was always one opcode. This adds a seperate manager, which analyzes the data, keeps track of it, and then feeds it to the disassembly on request. In the disassembly, everything relative is now only addressed as "x lines before/after". So to the disassembly, it doesn't matter anymore how long each line is. It could be a single opcode, a macro (a few of them are identified already), or it could be a 512kb data definition.

So far it only supports identifying macros (and only does so if they change only a single register), but in the future I'd like to display data directives similar to no$gba (see: http://nocash.emubase.de/gba-640x.gif).

The DisassemblyManager is decoupled from the Windows debugger, so it could also be used by the Qt version, if @Bigpet is interested.

Here's a picture of how it looks now:
![psp9](https://f.cloud.github.com/assets/4809758/1613314/56c9060a-55d6-11e3-91c4-38aa79499149.png)