1 |
$Id: TODO,v 1.166 2005/08/16 05:44:33 debug Exp $ |
$Id: TODO,v 1.175 2005/10/23 14:24:09 debug Exp $ |
2 |
|
|
3 |
=============================================================================== |
=============================================================================== |
4 |
|
|
5 |
High priority stuff: |
High priority stuff: |
6 |
|
|
7 |
|
|
8 |
MIPS bintrans: |
Old MIPS bintrans: |
|
x) call/return address cache? |
|
9 |
|
|
10 |
dyntrans: |
x) call/return address cache? |
|
x) memory write protection for ARM, but NOT for Alpha (because |
|
|
it has the IMB instruction... hm) |
|
11 |
|
|
12 |
x) call/return address cache |
x) Turn the MIPS cpu family stuff into dyntrans. |
13 |
|
|
|
x) instr_call sequence analysis support? (Useful for |
|
|
handtuning combinations.) |
|
14 |
|
|
15 |
x) opcode statistics support? |
Dyntrans: |
|
TODO: is instr_call statistics enough? |
|
16 |
|
|
17 |
x) support for archs that allow transparent unaligned load/stores |
x) Separate data and instruction translations? |
18 |
|
|
19 |
x) SMP: detect when an instruction such as ll/sc or cas is used, |
x) Generalize the inline quick_pc_to_pointers? |
|
and "synchronize" approximately the number of executed instructions |
|
|
(or cycles) across all CPUs. |
|
20 |
|
|
21 |
x) support for variable-length instructions (x86, m68k, ...) |
x) Call/return hints... |
|
Perhaps: don't increase the next_ic between every |
|
|
instruction, but let each instruction's handler do |
|
|
that for itself. |
|
|
Problem: what about instructions crossing a (virtual) |
|
|
page boundary? They cannot be translated once |
|
|
and for all :( and must be interpreted slowly! |
|
22 |
|
|
23 |
x) support for THUMB or MIPS16 (arm, mips) |
x) More 64-bit stuff. |
24 |
|
|
25 |
x) support for Delay slots! (mips, sparc, hppa) |
x) Lots of other stuff: see src/cpus/README_DYNTRANS |
26 |
|
|
|
x) Alpha: hahaha, zapnot and inserts/extracts don't |
|
|
compile into very nice code :-| fix this |
|
27 |
|
|
28 |
x) 64-bit virtual memory translation tables (PPC, etc) |
Userland emulation: |
29 |
|
|
30 |
x) x86: convert to dyntrans. LOTS of stuff to consider. |
x) Lots of stuff. |
31 |
|
|
32 |
|
x) Dynamic linking? Hm. |
33 |
|
|
34 |
=============================================================================== |
=============================================================================== |
35 |
|
|
116 |
Debugger: |
Debugger: |
117 |
o) Read function argument count and types from binaries? (ELF?) |
o) Read function argument count and types from binaries? (ELF?) |
118 |
o) Demangle C++ names. |
o) Demangle C++ names. |
119 |
|
o) see src/debugger.c for more stuff |
120 |
|
|
121 |
Userland ABI emulation: |
Userland ABI emulation: |
122 |
o) see src/useremul.c |
o) see src/useremul.c |
123 |
|
|
|
Terminal based interactive debugger: |
|
|
o) see src/debugger.c |
|
|
|
|
124 |
Terminal/console stuff: |
Terminal/console stuff: |
125 |
o) allow emulated serial ports to be connected to the outside |
o) allow emulated serial ports to be connected to the outside |
126 |
world in a more generic way, or even to other emulated |
world in a more generic way, or even to other emulated |