/[gxemul]/trunk/TODO
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/TODO

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 12 by dpavlin, Mon Oct 8 16:18:38 2007 UTC revision 20 by dpavlin, Mon Oct 8 16:19:23 2007 UTC
# Line 1  Line 1 
1  $Id: TODO,v 1.166 2005/08/16 05:44:33 debug Exp $  $Id: TODO,v 1.176 2005/11/13 00:14:05 debug Exp $
2    
3  ===============================================================================  NOTE: This TODO is hopefully out-of-date. I don't keep it updated.
   
 High priority stuff:  
4    
5    ===============================================================================
6    
7  MIPS bintrans:  Old MIPS bintrans:
8          x)  call/return address cache?          x)  call/return address cache?
9            x)  Turn the MIPS cpu family stuff into dyntrans.
10    
11  dyntrans:  Dyntrans:
12          x)  memory write protection for ARM, but NOT for Alpha (because          x)  Separate data and instruction translations?
13                  it has the IMB instruction... hm)          x)  Generalize the inline quick_pc_to_pointers?
14            x)  Call/return hints...
15          x)  call/return address cache          x)  More 64-bit stuff.
16            x)  Lots of other stuff: see src/cpus/README_DYNTRANS
17          x)  instr_call sequence analysis support? (Useful for  
18                  handtuning combinations.)  Userland emulation:
19            x)  Lots of stuff.
20          x)  opcode statistics support?          x)  Dynamic linking? Hm.
                 TODO: is instr_call statistics enough?  
   
         x)  support for archs that allow transparent unaligned load/stores  
   
         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)  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)  
   
         x)  support for Delay slots!  (mips, sparc, hppa)  
   
         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)  
   
         x)  x86: convert to dyntrans. LOTS of stuff to consider.  
   
   
 ===============================================================================  
   
 Lower priority, but still important:  
21    
22    Misc:
23          Redesign the entire "mainbus" concept:          Redesign the entire "mainbus" concept:
24                  o)  Easily configurable interrupt routing in SMP systems.                  o)  Easily configurable interrupt routing in SMP systems.
25                  o)  Specific clock/bus speeds, cpu speeds etc.                  o)  Specific clock/bus speeds, cpu speeds etc.
# Line 131  Lower priority, but still important: Line 101  Lower priority, but still important:
101          Debugger:          Debugger:
102                  o)  Read function argument count and types from binaries? (ELF?)                  o)  Read function argument count and types from binaries? (ELF?)
103                  o)  Demangle C++ names.                  o)  Demangle C++ names.
104                    o)  see src/debugger.c for more stuff
105    
106          Userland ABI emulation:          Userland ABI emulation:
107                  o)  see src/useremul.c                  o)  see src/useremul.c
108    
         Terminal based interactive debugger:  
                 o)  see src/debugger.c  
   
109          Terminal/console stuff:          Terminal/console stuff:
110                  o)  allow emulated serial ports to be connected to the outside                  o)  allow emulated serial ports to be connected to the outside
111                      world in a more generic way, or even to other emulated                      world in a more generic way, or even to other emulated

Legend:
Removed from v.12  
changed lines
  Added in v.20

  ViewVC Help
Powered by ViewVC 1.1.26