/[gxemul]/trunk/src/cpus/README_DYNTRANS
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/src/cpus/README_DYNTRANS

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

revision 24 by dpavlin, Mon Oct 8 16:19:56 2007 UTC revision 42 by dpavlin, Mon Oct 8 16:22:32 2007 UTC
# Line 1  Line 1 
1  $Id: README_DYNTRANS,v 1.9 2006/03/15 20:34:05 debug Exp $  $Id: README_DYNTRANS,v 1.17 2007/05/12 08:25:43 debug Exp $
   
 -------------------------------------------------------------------  
   
 PPC optimizations TODO:  
   
         find high-level bottlenecks!  
   
         inline cr0 field calculation  
   
         load/store with r1 as base?  
   
         multiple load/stores in a row (especially with base = r1)  
   
         almost all branches are of the "general" form now, they don't  
                 need to be.  
   
         combinations of compare + branch, similar to arm?  
   
 -------------------------------------------------------------------  
2    
3    This README is old. Hm.
4    
5    ---------------------
6    
7  Dyntrans TODO:  Dyntrans TODO:
8    
# Line 30  Dyntrans TODO: Line 13  Dyntrans TODO:
13          ------          -------                         -----           -----          ------          -------                         -----           -----
14          Alpha           32-bit                          64              no          Alpha           32-bit                          64              no
15          ARM             32-bit, 16-bit (Thumb)          32              no          ARM             32-bit, 16-bit (Thumb)          32              no
16          Atmel AVR       16-bit + variable               8               no          AVR             16-bit + variable               8               no
17            AVR32           16-bit + variable               32              ?
18          F-CPU           ?                               ?               ?          F-CPU           ?                               ?               ?
19          H8              16-bit                          8/16            no          H8              16-bit                          8/16            no
20          HPPA            32-bit                          64/32           yes          HPPA            32-bit                          64/32           yes
21            i860            ?                               ?               yes(?)
22          i960            32-bit + variable               32              ?          i960            32-bit + variable               32              ?
23          IA64            128-bit                         64              no          IA64            128-bit                         64              no
24          M68K            16-bit + variable               32              no          M68K            16-bit + variable               32              no
25          M88K            ?                               32 (?)          ?          M88K            32-bit                          32              yes
26          MIPS            32-bit, 16-bit (MIPS16)         64/32           yes          MIPS            32-bit, 16-bit (MIPS16)         64/32           yes
27          OpenRISC        ?                               ?               ?          OpenRISC        ?                               ?               ?
28          PC532           ?                               32 (?)          ?          PC532           ?                               32 (?)          ?
29          POWER/PPC       32-bit                          64/32           no          POWER/PPC       32-bit                          64/32           no
30            RCA180x         8-bit (+ variable on 1805)      8-16 (?)        no
31          SH              32-bit, 16-bit (SHcompact)      64/32           yes(*)          SH              32-bit, 16-bit (SHcompact)      64/32           yes(*)
32          SPARC           32-bit                          64/32           yes          SPARC           32-bit                          64/32           yes
33          x86             8-bit + variable                64/32/16        no          Transputer      8-bit                           32/16           no
34            x86/AMD64       8-bit + variable                64/32/16        no
35            Z80000          16-bit + variable               32              no(?)
36          VAX             8-bit + variable                32              no          VAX             8-bit + variable                32              no
37    
38          (*) Delay slot in SHcompact?          (*) Delay slot in SHcompact/32-bit-mode
   
   
   x)  call/return address cache?  
   
   x)  instr_call sequence analysis support? (For handtuning combinations.)  
   
   x)  opcode statistics support?  
                 TODO: is instr_call statistics enough?  
   
   x)  load/stores:  
                 o)  perhaps refactor/reuse common load/store code?  
                 o)  support for archs that allow transparent  
                     unaligned load/stores (ppc, x86 etc)  
                 o)  alignment checks ==> exceptions  
                 o)  native byte order ==> faster loads, etc.  
   
   x)  actual cache emulation  
   
   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, i960, ...)  
                 Solution:  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, MIPS16, userland SH  (arm, mips, sh)  
   
   x)  support for Delay slots!  (mips, sparc, hppa, SHcompact?)  
   
   x)  various register-window archs (SPARC etc)  
   
   x)  Alpha: hahaha, zapnot and inserts/extracts don't  
             compile into very nice code :-|  fix this  
                 Solution: if short assembly language snippets can be  
                 compiled on the current host, then compile such snippets  
                 for alpha_instr_zapnot etc.  
   
   x)  x86: convert to dyntrans. LOTS of stuff to consider.  
   
   x)  88k? vax? pc532? 6502? 6800? etc  
39    

Legend:
Removed from v.24  
changed lines
  Added in v.42

  ViewVC Help
Powered by ViewVC 1.1.26