Fixed the cascade bug that broke switches. The original cascade code
[sixpic.git] / TODO
blob00fec68ca696b302ea36e43cdb65508548424d5c
1 finish parser
2 add pointers
3 add main
4 forward declarations
5 real conditions (in if)
6 optimize stuff like : bra $4, 4: (jump to the next line)
7 eliminate dead code after branches before next label (should be generated at all, surprising, but look at asm from test6, label $5 has a return after a bra $4)
8 eliminate bbs that are a single jump, except if the previous one (in the code) needs that jump
10 make sure jump like this can't happen (from test5)
11 000012 0164                 cpfsgt  1
12 000014 01D0                 bra     $3
13 000016 01D0                 bra     $4
14                         $3:
15 000018 1200                 return  0
16                         $4:
17 00001A 0300                 sleep   
18 p-e s'arranger pour que bloc si vrai soit tjrs immediatement apres, donc si on a vrai, on skippe le jump. pour que ca marhe, il faudrait aussi eliminer les bra $4, $4:
20 revoir le systeme de conditions au complet, il est degeulasse
22 avoir vraie comparaison pour switch, egalite, pas inegalite louche
24 pour avoir comparaison d'egalite avec cste, load cste dans wreg, et CPFSEQ
27 TODO : donner code avec makefile qui execute les tests
28 remise ift6232 tp1
31 00000A 0150                 movf    1, w
32 00000C 006E                 movwf   0
33 plutot faire movff 1, 0 -- verifier que ca fait bien la meme chose
35 registres sont pas sauvegardes, donc adieu recursion, et p-e calls nestes, voir ex 8, qui ne fait pas ce qu'il devrait.
37 += is not supported, so probably neither are his brothers
39 test5 avec fall through au case 0
40                         $7:
41 000022 0150                 movf    1, w
42 000024 006E                 movwf   0
43 000026 002A                 incf    0
44 000028 0050                 movf    0, w
45 00002A 016E                 movwf   1
46 00002C 00D0                 bra     $9
47 grossierement inefficace