--- trunk/TODO 2007/10/08 16:18:38 12 +++ trunk/TODO 2007/10/08 16:18:51 14 @@ -1,50 +1,27 @@ -$Id: TODO,v 1.166 2005/08/16 05:44:33 debug Exp $ +$Id: TODO,v 1.173 2005/09/17 17:14:25 debug Exp $ =============================================================================== High priority stuff: -MIPS bintrans: - x) call/return address cache? - -dyntrans: - x) memory write protection for ARM, but NOT for Alpha (because - it has the IMB instruction... hm) - - x) call/return address cache - - x) instr_call sequence analysis support? (Useful for - handtuning combinations.) +Old MIPS bintrans: - x) opcode statistics support? - TODO: is instr_call statistics enough? - - x) support for archs that allow transparent unaligned load/stores + x) call/return address cache? - x) SMP: detect when an instruction such as ll/sc or cas is used, - and "synchronize" approximately the number of executed instructions - (or cycles) across all CPUs. + x) Turn the MIPS cpu family stuff into dyntrans. - x) support for variable-length instructions (x86, m68k, ...) - 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! - x) support for THUMB or MIPS16 (arm, mips) +Dyntrans: - x) support for Delay slots! (mips, sparc, hppa) + x) Lots of stuff: see src/cpus/README_DYNTRANS - x) Alpha: hahaha, zapnot and inserts/extracts don't - compile into very nice code :-| fix this - x) 64-bit virtual memory translation tables (PPC, etc) +Userland emulation: - x) x86: convert to dyntrans. LOTS of stuff to consider. + x) Lots of stuff. + x) Dynamic linking? Hm. =============================================================================== @@ -131,13 +108,11 @@ Debugger: o) Read function argument count and types from binaries? (ELF?) o) Demangle C++ names. + o) see src/debugger.c for more stuff Userland ABI emulation: o) see src/useremul.c - Terminal based interactive debugger: - o) see src/debugger.c - Terminal/console stuff: o) allow emulated serial ports to be connected to the outside world in a more generic way, or even to other emulated