Condition system partially fixed.
[sixpic.git] / TODO
blobf1306a490ad877dde1dfe17bc51a1b64a75bcffd
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)
9 make sure jump like this can't happen (from test5)
10 000012 0164                 cpfsgt  1
11 000014 01D0                 bra     $3
12 000016 01D0                 bra     $4
13                         $3:
14 000018 1200                 return  0
15                         $4:
16 00001A 0300                 sleep   
17 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:
19 revoir le systeme de conditions au complet, il est degeulasse
21 pour avoir comparaison d'egalite avec cste, load cste dans wreg, et CPFSEQ
24 00000A 0150                 movf    1, w
25 00000C 006E                 movwf   0
26 plutot faire movff 1, 0 -- verifier que ca fait bien la meme chose
28 registres sont pas sauvegardes, donc adieu recursion, et p-e calls nestes, voir ex 8, qui ne fait pas ce qu'il devrait.
30 += is not supported, so probably neither are his brothers
32 test5 avec fall through au case 0
33                         $7:
34 000022 0150                 movf    1, w
35 000024 006E                 movwf   0
36 000026 002A                 incf    0
37 000028 0050                 movf    0, w
38 00002A 016E                 movwf   1
39 00002C 00D0                 bra     $9
40 grossierement inefficace
42 utiliser instructions speciales du 4550 ? voir datasheet
45 != does not seem to work
46 postinc/dec in an expression does not work (sigma example had res = res + n--, gave the decremented value)