18 #ifndef __IFACE_DECOMP__ 19 #define __IFACE_DECOMP__ 21 #include "ifaceterm.hh" 24 #include "callgraph.hh" 26 #ifdef CPUI_RULECOMPILE 27 #include "rulecompile.hh" 45 map<Funcdata*,PrototypePieces> prototypePieces;
46 void storePrototypePieces(
Funcdata *fd_in,
PrototypePieces pp_in ) { prototypePieces.insert(pair<Funcdata*,PrototypePieces>(fd_in,pp_in)); }
49 #ifdef CPUI_RULECOMPILE 50 string experimental_file;
57 void abortFunction(ostream &s);
58 void clearArchitecture(
void);
66 virtual void dump(
const Address &addr,
const string &mnem,
const string &body) {
69 for(int4 i=mnem.size();i<mnemonicpad;++i) *s <<
' ';
81 void iterateScopesRecursive(
Scope *scope);
82 void iterateFunctionsAddrOrder(
Scope *scope);
85 virtual string getModule(
void)
const {
return "decompile"; }
87 virtual void iterationCallback(
Funcdata *fd) {}
88 void iterateFunctionsAddrOrder(
void);
89 void iterateFunctionsLeafOrder(
void);
94 virtual void execute(istream &s);
99 virtual void execute(istream &s);
104 virtual void execute(istream &s);
109 virtual void execute(istream &s);
114 virtual void execute(istream &s);
119 virtual void execute(istream &s);
124 virtual void execute(istream &s);
129 virtual void execute(istream &s);
134 virtual void execute(istream &s);
139 virtual void execute(istream &s);
144 virtual void execute(istream &s);
149 virtual void execute(istream &s);
154 virtual void execute(istream &s);
159 virtual void execute(istream &s);
164 virtual void execute(istream &s);
169 virtual void execute(istream &s);
174 virtual void execute(istream &s);
179 virtual void execute(istream &s);
184 virtual void execute(istream &s);
189 virtual void execute(istream &s);
194 virtual void execute(istream &s);
199 virtual void execute(istream &s);
204 virtual void execute(istream &s);
209 virtual void execute(istream &s);
214 virtual void execute(istream &s);
215 virtual void iterationCallback(
Funcdata *fd);
220 virtual void execute(istream &s);
221 virtual void iterationCallback(
Funcdata *fd);
226 virtual void execute(istream &s);
231 virtual void execute(istream &s);
236 virtual void execute(istream &s);
241 virtual void execute(istream &s);
246 virtual void execute(istream &s);
251 virtual void execute(istream &s);
256 virtual void execute(istream &s);
261 virtual void execute(istream &s);
266 virtual void execute(istream &s);
271 virtual void execute(istream &s);
276 virtual void execute(istream &s);
281 virtual void execute(istream &s);
286 virtual void execute(istream &s);
290 virtual void execute(istream &s);
294 virtual void execute(istream &s);
299 virtual void execute(istream &s);
304 virtual void execute(istream &s);
309 virtual void execute(istream &s);
314 virtual void execute(istream &s);
319 virtual void execute(istream &s);
324 virtual void execute(istream &s);
329 virtual void execute(istream &s);
334 virtual void execute(istream &s);
339 virtual void execute(istream &s);
344 virtual void execute(istream &s);
349 virtual void execute(istream &s);
354 virtual void execute(istream &s);
359 virtual void execute(istream &s);
364 virtual void execute(istream &s);
369 virtual void execute(istream &s);
374 virtual void execute(istream &s);
379 virtual void execute(istream &s);
384 virtual void execute(istream &s);
389 virtual void execute(istream &s);
394 virtual void execute(istream &s);
399 virtual void execute(istream &s);
404 virtual void execute(istream &s);
409 virtual void execute(istream &s);
410 virtual void iterationCallback(
Funcdata *fd);
415 virtual void execute(istream &s);
420 virtual void execute(istream &s);
425 virtual void execute(istream &s);
430 virtual void execute(istream &s);
435 virtual void execute(istream &s);
440 virtual void execute(istream &s);
445 virtual void execute(istream &s);
450 virtual void execute(istream &s);
455 virtual void execute(istream &s);
460 virtual void execute(istream &s);
465 virtual void execute(istream &s);
466 virtual void iterationCallback(
Funcdata *fd);
471 virtual void execute(istream &s);
478 virtual void execute(istream &s);
479 virtual void iterationCallback(
Funcdata *fd);
483 virtual void execute(istream &s);
488 virtual void execute(istream &s);
495 virtual void execute(istream &s);
496 virtual void iterationCallback(
Funcdata *fd);
501 virtual void execute(istream &s);
506 virtual void execute(istream &s);
511 virtual void execute(istream &s);
516 virtual void execute(istream &s);
521 virtual void execute(istream &s);
526 virtual void execute(istream &s);
531 virtual void execute(istream &s);
536 virtual void execute(istream &s);
541 virtual void execute(istream &s);
546 virtual void execute(istream &s);
549 #ifdef CPUI_RULECOMPILE 552 virtual void execute(istream &s);
558 virtual void execute(istream &s);
561 #ifdef OPACTION_DEBUG 564 virtual void execute(istream &s);
569 virtual void execute(istream &s);
574 virtual void execute(istream &s);
579 virtual void execute(istream &s);
584 virtual void execute(istream &s);
589 virtual void execute(istream &s);
594 virtual void execute(istream &s);
Definition: ifacedecomp.hh:107
virtual void dump(const Address &addr, const string &mnem, const string &body)
The main disassembly emitting method.
Definition: ifacedecomp.hh:66
Definition: ifacedecomp.hh:524
Definition: interface.hh:62
Definition: ifacedecomp.hh:377
Definition: ifacedecomp.hh:482
Definition: ifacedecomp.hh:519
Definition: ifacedecomp.hh:556
Definition: ifacedecomp.hh:212
Definition: ifacedecomp.hh:428
Definition: ifacedecomp.hh:172
Definition: ifacedecomp.hh:92
Container for data structures associated with a single function.
Definition: funcdata.hh:45
Definition: ifacedecomp.hh:132
Definition: ifacedecomp.hh:182
Definition: ifacedecomp.hh:284
Definition: ifacedecomp.hh:322
Definition: ifacedecomp.hh:463
Definition: ifacedecomp.hh:509
void printRaw(ostream &s) const
Write a raw version of the address to a stream.
Definition: address.hh:276
Definition: ifacedecomp.hh:474
Definition: ifacedecomp.hh:486
Definition: ifacedecomp.hh:392
Definition: ifacedecomp.hh:347
Definition: ifacedecomp.hh:112
Definition: ifacedecomp.hh:162
Definition: ifacedecomp.hh:152
Definition: ifacedecomp.hh:264
Raw components of a function prototype (obtained from parsing source code)
Definition: fspec.hh:1127
Definition: ifacedecomp.hh:177
Definition: ifacedecomp.hh:197
Definition: ifacedecomp.hh:418
Definition: callgraph.hh:91
Definition: ifacedecomp.hh:352
Definition: ifacedecomp.hh:39
Definition: ifacedecomp.hh:30
Definition: ifacedecomp.hh:302
Definition: ifacedecomp.hh:288
Definition: ifacedecomp.hh:234
Definition: ifacedecomp.hh:224
A low-level machine address for labelling bytes and data.
Definition: address.hh:46
Definition: ifacedecomp.hh:372
Definition: ifacedecomp.hh:292
Definition: ifacedecomp.hh:157
Definition: ifacedecomp.hh:192
Definition: ifacedecomp.hh:254
Definition: ifacedecomp.hh:453
Manager for all the major decompiler subsystems.
Definition: architecture.hh:117
Definition: ifacedecomp.hh:342
Definition: ifacedecomp.hh:469
Definition: ifacedecomp.hh:137
Definition: ifacedecomp.hh:413
Definition: ifacedecomp.hh:438
Definition: ifacedecomp.hh:218
Definition: ifacedecomp.hh:61
Definition: ifacedecomp.hh:491
Definition: ifacedecomp.hh:102
Definition: ifacedecomp.hh:387
Definition: interface.hh:108
Definition: ifacedecomp.hh:448
Definition: ifacedecomp.hh:142
Definition: ifacedecomp.hh:539
Definition: ifacedecomp.hh:77
Definition: ifacedecomp.hh:207
Definition: ifacedecomp.hh:362
Definition: ifacedecomp.hh:443
Definition: ifacedecomp.hh:229
Definition: ifacedecomp.hh:397
Definition: ifacedecomp.hh:529
Definition: ifacedecomp.hh:187
Definition: interface.hh:67
Definition: ifacedecomp.hh:147
Definition: ifacedecomp.hh:269
Definition: ifacedecomp.hh:307
Definition: ifacedecomp.hh:534
Definition: ifacedecomp.hh:433
Definition: ifacedecomp.hh:244
Definition: ifacedecomp.hh:312
Definition: ifacedecomp.hh:317
Definition: ifacedecomp.hh:167
Definition: interface.hh:96
Definition: ifacedecomp.hh:249
Definition: ifacedecomp.hh:332
Abstract class for emitting disassembly to an application.
Definition: translate.hh:118
Definition: ifacedecomp.hh:297
Definition: ifacedecomp.hh:279
Definition: ifacedecomp.hh:259
Definition: ifacedecomp.hh:504
Definition: ifacedecomp.hh:274
Definition: ifacedecomp.hh:122
Definition: ifacedecomp.hh:337
Definition: ifacedecomp.hh:202
Definition: ifacedecomp.hh:357
Definition: ifacedecomp.hh:514
Definition: ifacedecomp.hh:423
Definition: ifacedecomp.hh:127
Definition: ifacedecomp.hh:117
Definition: ifacedecomp.hh:367
Definition: ifacedecomp.hh:97
Definition: ifacedecomp.hh:544
Definition: ifacedecomp.hh:382
A collection of Symbol objects within a single (namespace or functional) scope.
Definition: database.hh:413