Jako chapu autorovu potrebu mit testovaci sadu, a z duvodu dvojite chyby by takovy test mel napsat nekdo jinej nez on. A az budou mit oba hotovo, tak to muzou poustet behem vyvoj dokola a dokola.. a odhalovat pripadne regrese v kodu.
Nakonec to asi budu muset naprogramovat sam. Zvazuju jestli mam vubec resit PF. A jestli ma smysl AF. V target kodu se myslim ani jedno nepouziva, ale muzu se samozrejme plest. PF vyresit muzu celkem snadno tim, ze si nekam po ukonceni translace basic bloku NEBO informaci ze potrebuju plne flagy ulozim vysledek a pak pouziju lookup table, to same na ten AF, jen to jsou uplne zbytecne cykly navic.
K otestovani jsou:
- vypocty EA
- prehozy mezi registry: pushpop, segmentove
- ALU operace rozdelen i na 8 / 16 / 32 bitu a ruzne formaty zapisu X testy ruznych flagu x ruzne vstupy (rozdily horniho bitu, preteceni, apod.).
Prvni reseni bude asi udelat nejakou tabulku, ktera bude obsahovat tyhle ruzne vektory a pak nejspis pres random nagenerovat sadu testu, kde si treba na stacku budu naxorovavat vysledky, a srovnam realne CPU vs. translaci. Sice to neni idelani, ale odhali to asi spoustu chyb. Nektere vyzivnejsi sady si ulozim jako testvektory.
Jsem zvedav, jestli najdu i nejakou chybu v nejakych emulatorech a jestli to treba dobehne dobre na Win/ARM
.