1 |
$Id: README_DYNTRANS,v 1.6 2005/11/24 01:15:06 debug Exp $ |
$Id: README_DYNTRANS,v 1.9 2006/03/15 20:34:05 debug Exp $ |
2 |
|
|
3 |
------------------------------------------------------------------- |
------------------------------------------------------------------- |
4 |
|
|
5 |
PPC optimizations TODO: |
PPC optimizations TODO: |
6 |
|
|
7 |
find high-level bottlenecks! |
find high-level bottlenecks! |
8 |
|
|
9 |
inline cr0 field calculation |
inline cr0 field calculation |
10 |
inline pc to pointers calculation |
|
11 |
load/store with r1 as base |
load/store with r1 as base? |
12 |
multiple load/stores in a row |
|
13 |
all forms of branches, similar optimizations as with ARM |
multiple load/stores in a row (especially with base = r1) |
14 |
(conditional, link etc) |
|
15 |
|
almost all branches are of the "general" form now, they don't |
16 |
|
need to be. |
17 |
|
|
18 |
|
combinations of compare + branch, similar to arm? |
19 |
|
|
20 |
------------------------------------------------------------------- |
------------------------------------------------------------------- |
21 |
|
|
30 |
------ ------- ----- ----- |
------ ------- ----- ----- |
31 |
Alpha 32-bit 64 no |
Alpha 32-bit 64 no |
32 |
ARM 32-bit, 16-bit (Thumb) 32 no |
ARM 32-bit, 16-bit (Thumb) 32 no |
33 |
Atmel AVR 16-bit 8 no |
Atmel AVR 16-bit + variable 8 no |
34 |
F-CPU ? ? ? |
F-CPU ? ? ? |
35 |
|
H8 16-bit 8/16 no |
36 |
HPPA 32-bit 64/32 yes |
HPPA 32-bit 64/32 yes |
37 |
i960 32-bit + variable 32 ? |
i960 32-bit + variable 32 ? |
38 |
IA64 128-bit 64 no |
IA64 128-bit 64 no |
56 |
|
|
57 |
x) opcode statistics support? |
x) opcode statistics support? |
58 |
TODO: is instr_call statistics enough? |
TODO: is instr_call statistics enough? |
|
TODO: a command line option to turn off instruction |
|
|
combinations (for debugging) |
|
59 |
|
|
60 |
x) load/stores: |
x) load/stores: |
61 |
|
o) perhaps refactor/reuse common load/store code? |
62 |
o) support for archs that allow transparent |
o) support for archs that allow transparent |
63 |
unaligned load/stores (ppc, x86 etc) |
unaligned load/stores (ppc, x86 etc) |
64 |
o) alignment checks ==> exceptions |
o) alignment checks ==> exceptions |
84 |
|
|
85 |
x) various register-window archs (SPARC etc) |
x) various register-window archs (SPARC etc) |
86 |
|
|
|
x) Atmel AVR etc? |
|
|
|
|
87 |
x) Alpha: hahaha, zapnot and inserts/extracts don't |
x) Alpha: hahaha, zapnot and inserts/extracts don't |
88 |
compile into very nice code :-| fix this |
compile into very nice code :-| fix this |
89 |
Solution: if short assembly language snippets can be |
Solution: if short assembly language snippets can be |
90 |
compiled on the current host, then compile such snippets |
compiled on the current host, then compile such snippets |
91 |
for alpha_instr_zapnot etc. |
for alpha_instr_zapnot etc. |
92 |
|
|
|
x) 64-bit virtual memory translation tables (PPC, Alpha, MIPS, |
|
|
HPPA, sh, amd64, etc) |
|
|
|
|
93 |
x) x86: convert to dyntrans. LOTS of stuff to consider. |
x) x86: convert to dyntrans. LOTS of stuff to consider. |
94 |
|
|
95 |
x) 88k? vax? pc532? 6502? 6800? etc |
x) 88k? vax? pc532? 6502? 6800? etc |