[OSy] deleni/moduleni 64bitovych cisel

Martin Decky decky at dsrg.mff.cuni.cz
Wed Oct 22 23:00:02 CEST 2008


Hezky vecer,

> pri linkovani kernelu se mi dostalo chybovych hlasek (viz nize), ze
> kterych jsem usoudil, ze se jedna o problem s delenim a modulenim.
> Ukazalo se, ze jde o operace s 64bitovymi cisly. Chci se zeptat,
> jestli je to tedy tak, ze deleni a moduleni s 64bitovymi integery nas
> MIPS nepodporuje

Ano, skutecne je tomu tak, 32bitova varianta MIPSu deleni 64bitovych 
integeru neumi.

Reseni jsou v zasade dve:

a) 64bitove integery delit nebudete. Ve vetsine pripadu se bez toho da
    dost dobre obejit nebo vymyslet jiny algoritmus, ktery si vystaci jen
    s 32bitovymi cisly a nejakymi dalsimi jednoduchymi operacemi.

b) Prislusne funkce na 64bitove deleni a zbytek si sami
    naimplementujete. Inspiraci muzete hledat napriklad v HelenOSu:

http://trac.helenos.eu/trac.fcgi/browser/trunk/kernel/genarch/src/softint/division.c


M.D.




More information about the NSWI004 mailing list