mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-04-15 04:08:38 +01:00
Endian swapping functions converted to assembly.
IC_QUE -> IC_QUEUE
This commit is contained in:
parent
e34c2bca35
commit
c08e36e6f4
24 changed files with 694 additions and 659 deletions
src
Binary file not shown.
Binary file not shown.
|
@ -375,7 +375,7 @@ U0 ICQueueIns(CIntermediateCode *tmpi,I64 rip2)
|
|||
ICMov(tmpi,MDF_DISP+RT_I64,REG_RBX,sizeof(U8 *),MDF_REG+RT_I64,r2,0,rip2);
|
||||
}
|
||||
|
||||
U0 ICQueueInsRev(CIntermediateCode *tmpi,I64 rip2)
|
||||
U0 ICQueueInsertRev(CIntermediateCode *tmpi,I64 rip2)
|
||||
{
|
||||
I64 r1,r2;
|
||||
if (tmpi->arg2.type==MDF_REG+RT_I64 && tmpi->arg2.reg!=REG_RDX)
|
||||
|
|
Binary file not shown.
|
@ -74,17 +74,17 @@ $LK,"LexExpressionI64",A="FL:::/Compiler/ParseExp.CC,1140",BI=54$
|
|||
$LK,"LexExpression",A="FL:::/Compiler/ParseExp.CC,1168",BI=55$
|
||||
$LK,"LexInStr",A="FL:::/Compiler/Lex.CC,367",BI=56$
|
||||
$LK,"internal_types_table",A="FL:::/Compiler/CInit.CC,6"$
|
||||
$LK,"ICQueueInsRev",A="FL:::/Compiler/BackC.CC,378",BI=57$
|
||||
$LK,"CN_INST",A="FL:::/Compiler/BackFA.CC,3"$
|
||||
$LK,"CmdLinePrompt",A="FL:::/Compiler/CMisc.CC,127",BI=58$
|
||||
$LK,"ParseClassNew",A="FL:::/Compiler/ParseLib.CC,40",BI=59$
|
||||
$LK,"OptPass3",A="FL:::/Compiler/OptPass3.CC,1",BI=60$
|
||||
$LK,"CmdLinePrompt",A="FL:::/Compiler/CMisc.CC,127",BI=57$
|
||||
$LK,"ParseClassNew",A="FL:::/Compiler/ParseLib.CC,40",BI=58$
|
||||
$LK,"OptPass3",A="FL:::/Compiler/OptPass3.CC,1",BI=59$
|
||||
$LK,"comp_templates_dont_push2",A="FL:::/Compiler/CExterns.CC,44"$
|
||||
$LK,"OptPass4",A="FL:::/Compiler/OptPass4.CC,133",BI=61$
|
||||
$LK,"OptPass5",A="FL:::/Compiler/OptPass5.CC,1",BI=62$
|
||||
$LK,"OptPass6",A="FL:::/Compiler/OptPass6.CC,96",BI=63$
|
||||
$LK,"OptPass4",A="FL:::/Compiler/OptPass4.CC,133",BI=60$
|
||||
$LK,"OptPass5",A="FL:::/Compiler/OptPass5.CC,1",BI=61$
|
||||
$LK,"OptPass6",A="FL:::/Compiler/OptPass6.CC,96",BI=62$
|
||||
$LK,"MODR_REG",A="FL:::/Compiler/BackLib.CC,126"$
|
||||
$LK,"Echo",A="FL:::/Compiler/CMisc.CC,63",BI=64$
|
||||
$LK,"Echo",A="FL:::/Compiler/CMisc.CC,63",BI=63$
|
||||
$LK,"ICQueueInsertRev",A="FL:::/Compiler/BackC.CC,378",BI=64$
|
||||
$LK,"ICQueueInit",A="FL:::/Compiler/BackC.CC,340",BI=65$
|
||||
$LK,"ICAddRSP",A="FL:::/Compiler/BackLib.CC,59",BI=66$
|
||||
$LK,"ICDiv",A="FL:::/Compiler/BackA.CC,355",BI=67$
|
||||
|
@ -382,9 +382,9 @@ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.CC,1",BI=269$
|
|||
í
|
||||
599MU^fkq‡—¬±Êâæùùùþ- BMSkƒˆ“§¯¸ÀÂÈÚêÿ
2
6
6
J
R
[
c
h
o
…
•
ª
¯
È
à
ä
÷
÷
÷
ü
+@KQi<00><00><00><00>“<00>¨ºÊáø&&9TTTu…““œ¦³ÍÛâõ÷%=Mgg€2D‚<00>ÞÞî##'*23\Ob؊؊øŠ‹‹‹‹!‹-‹2‹7‹7‹H‹L‹T‹l‹o‹{‹4<00>á÷÷ '2HHZss~‚<00>º¡”Éàñ #;@HL^Q}‘••š¸«óÚÍ +1E]bv~‡<00>”›½ÓÕî
|
||||
|
||||
7<DHWJvŠŽ<00><00><00><00>°¶ÀÇÚõõ!//CQ_t‡Œ«º³Òâéú FHtttŒ½ÂÍÓÞ)@Ql€„‰§šÉ¼ñÞ)/C[`t|…<00>’™«»ÑÓì*CW[jjj}ƒ<00>”§ÂÂÂÞîüü7,J]b<00><00>‰¨¸Éçç 333S50üvåvåå„å<00>å”å–å›å6Dt<00>††–ª³¹ËËÏÒÚ7<<00>›66FW`fju84o¸GG>GAGEGRG[GfGvG~GˆG°G°GÀGÅGÅGÕGÚGÚGêGïGïGÿGHHHHH)H.H.H>HCHCHSHXHXHhHmHmHmHpHyH’H H·HÊHÌHÒHÔH×HèHíHíHóHIIII+ICIKIQIQIeIeInIqI1J9lz‘<00>~<00>~¥~´~¹~Î~»~Ý~à~à~í~ï~0Ib{”ž:¼ª7474C4W4t44©4Ù4Û4õ4 55+5=5D5K5_5f5f5u5ƒ5’5ª5¹5Æ5É5â5å5ê566!6%6,6j6;d(=ŠŠŠ(Š+Š?ŠGŠKŠUŠ_ŠgŠjŠpŠ<Ä n‡¬‡¬¤¬¬¬¯¬½¬Ë¬à¬é¬/:KOadox„—Ƚ£Øï®®®>®S®w®‹®<00>®®®”®É®Ì®Ñ®Ô®Ô®Û®ñ®ø®¯
|
||||
¯¯&¯9¯9¯Q¯U¯‚¯‚¯š¯Ÿ¯Ÿ¯¯¯³¯Ä¯Î¯ß¯é¯ü¯°°°°&°0°A°K°^°j°o°o°o°‘°¢°§°´°É°É°Î°Ø°ç°ì°ò°÷°÷°ü°±±± ±%±%±+±1±6±6±>±Q±]±j±v±…±<00>±•±ž±µ±É±Ú±ç±ì±²².²;²C²R²\²b²k²t²t²y²y²y²y²y²‰²‰²‰²¡²·²¿²Ú²ë²ø²ú²³³³³³%³*³*³1³?³D³\³h³z³†³Œ³”³š³£³É³Õ³Û³á³ð³ø³´-´>´K´M´[´[´`´`´g´u´z´<00>´™´¥´«´±´º´¿´¿´¿´¿´¿´×´Ü´Ü´Ü´Ü´Ü´í´í´í´í´í´í´í´í´í´í´µµ#µ>µOµ\µ^µkµ{µ€µ€µ€µ‰µ£µ¯µ´µÖµâµâµçµçµçµçµçµçµçµçµüµ¶¶¶¶¶¶¶)¶;¶S¶h¶‰¶ª¶µ¶Æ¶Ë¶Ë¶Ë¶Ô¶ú¶···;·T·\·d·r·œ·¥·«·Ì·å·å·å·å·å·¸@¸I¸O¸U¸Z¸c¸l¸q¸q¸q¸q¸€¸”¸²¸Â¸È¸Í¸Í¸à¸ô¸¹-¹3¹3¹8¹8¹G¹[¹y¹‰¹<00>¹”¹”¹§¹»¹á¹ô¹ú¹ú¹ÿ¹ÿ¹ÿ¹º-º5ºPºaºnºpºº<00>º<00>º<00>º<00>º<00>º•º•º•º•º•º•º•º•º•º•º•º•º•º•º•º•º¤º³º¾ºÀºÀºÉºËºËºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºáºáºøº»»»»»%»A»Y»h»t»Š»¤»§»±»½»ã»¼#¼G¼I¼\¼Š¼b¼¥¼¥¼¨¼¸¼À¼Û¼ì¼ï¼ ½½#½;½;½f½i½x½Œ½½Á½Ý½É½ù½¾,¾a¾_¾T¾I¾:¾o¾o¾o¾r¾w¾z¾”¾¢¾Ð¾ò¾ò¾¿ ¿/¿C¿d¿x¿”¿€¿°¿°¿Î¿ÀÀö¿ë¿Ü¿ÀÀÀÀÀÀ À0ÀQÀ]À²Ã=Ä…²7È7ÈMÈQÈ\ÈcÈnȂȂÈ<00>ȞȥȲȾÈËÈÏÈàÈàÈéÈîÈöÈÉÉ#É.ÉAÉAÉYÉYÉtÉ É É´É¶É¶ÉÀÉÈÉÈÉÒÉÚÉÚÉÚÉëÉëÉëÉñÉùÉÿÉÊÊ
|
||||
ÊÊÊÊ!Ê!Ê7ÊGÊQÊ`ÊeÊmÊmÊrÊrÊyÊ<00>ÊŸÊ©Ê±Ê·ÊÆÊËÊÓÊÙÊÙÊÞÊåÊðÊ$Ë3Ë=ËEËKË`ËfËkËkËkËkËkËkËkËkËkËv˄˔˚ˢ˱˶ËÃËËËÐËÐËÐËØËáËêË÷ËÿËÌÌJÌRÌaÌkÌ…Ì‹Ì<00>Ì<00>̗̪̲ÌÇÌÏÌ×ÌìÌîÌùÌÍÍÍÍ/Í7Í>ÍDÍJÍNÍWÍ\Í€ÍŒÍ”Í©ÍµÍºÍÆÍÑÍÖÍÖÍÖÍìÍ ÎÎÎ'Î/Î7ÎLÎQÎ\ÎdÎyÎ~Î~΢ήζÎËÎ×ÎÜÎèÎóÎøÎøÎøÎøÎøÎøÎÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Ï.Ï>ÏDÏLÏ[Ï`ÏhÏpÏrÏzωÏ<00>Ï—ÏŸÏ¡Ï©ÏÆÏÏÏ×ÏßÏæÏúÏÐÐÐÐ(Ð0Ð>ÐCÐHÐZЎЖХЯÐÉÐÑÐÖÐÖÐÖÐßÐèÐëÐõÐÑÑÑ)Ñ;Ñ;Ñ;ÑFÑKÑhÑmÑmÑvÑ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{цђѪѽÑÅÑÔÑÙÑáÑèÑõÑþÑÒÒÒÒÒ#Ò+ÒIÒQÒTÒVÒfÒpÒpÒpÒrÒ‡Ò˜Ò›ÒžÒ¦Ò«Ò«Ò´Ò¹ÒÁÒÈÒÕÒêÒñÒÓÓ+ÓDÓYÓnÓuÓuÓzÓzÓzÓzÓzÓzÓzÓ‚Ó<00>Ó™Ó¨ÓÓÓµÓ½ÓÊÓÏÓÏÓÏÓÓÓØÓØÓèÓíÓíÓíÓùÓÔÔÔÔ,Ô;ÔCÔTÔ\ÔԅԌԎԔԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛÔ<00>Ô<00>Ô¸ÔÂÔÐÔÐÔÕÔàÔçÔÕÕÕÕÕÕ=ÕKÕC×>x[G×G×]×d×k×v×}׎טןש׼×Ä×Ä×ß×ù×ÿ×ØØØØ&Ø-Ø0Ø5Ø@ØJØ\ØbØxØØ‡Ø<00>ؤؤؤزØÙØâØêØüØÙÙÙÙÙ+Ù1ÙGÙNÙVÙ]Ùrككييي٘ٿÙÌÙÕÙÝÙïÙ÷Ù÷Ù÷ÙÚ
Ú
ÚÚÚ5ÚAÚˆÚ?x`ºŸÝŸÝ·ÝÇÝÎÝÕÝàÝóÝöÝþÝÞÞÞ&Þ1Þ<Þ?ÞJÞ`ÞkÞvÞ<00>ތޓަ޲ÞÏÞØÞàÞßß ßßß#ß+ß:ß@ßHßHßTßbßqßy߈ß<00>߳߹߿ßÁßÇßÍßÍßÍßòß÷ßàààà+à/à:àTà`àpàƒàŸà´à¼àÆàåàùàùàoá@ ?CŸ1Ÿ1©1±1¶1ADTaÿ|ÿ|} }6}"}E}G}_}w}}B;z×â×âöâÿâãã*ã,ã5ã:ã[ãyãˆã¦ãºãÒãÙãÿãä,äIäZäqäuäuäyä~äƒä<00>ä<00>äšäŸä¸ä»ä»ä»ä»äÀäÆäâäðäüäåå!å*åFåQå]åfåzåzå‰åŽåŽåœåCPcsWAWAxAeAšA‡A©A¸AÀAËAÍAØAãAãABBDPµÅ×û×ûëûðûÿûÿûü3üIü5üfüXü~ü†üED$ss%s/s9sIsNsWscseswswsys©sFŒ•´WúWúŠú¶ú¶úÉúÍúïúÿúûûûûû0û<ûMûRûcûwû|û~û~û~ûšû¸û¸ûÕûG¨.ÆïÆïÎïÒïÞïïïñïððð)ð4ðCðTð[ðtðxð‰ð‰ð“ðšðð¶ð½ðØðçðþðþðññKñHè700:0=0@0F0K0b0y0<00>0´0Ð0Ó0ò011+1A1R1W1b1j1j1t1t11„1™1Ÿ1¾1Ý1ß1ô1ú1282@2K2K2U2U2g2¥2½2Ï2I$ '['[R[;[\[d[JTHYÐeÐeâeäeíeöef ffff(f2f5f?fK¨!G(d(d8dAdTdadmdyd…d‘d¨d¨d·dÂdËdÒdÛdòd ee e/e;eMeMeVeyeye{eŽe<00>eªe¶e¹eÐeLlõŒÀpÀpÙpäpôp=qDqXq_qgqoqxq€qˆqŠq’qšq¡q¨qÇqßqèqèqrGrPrrrŒr©rÓrßrss
|
||||
7<DHWJvŠŽ<00><00><00><00>°¶ÀÇÚõõ!//CQ_t‡Œ«º³Òâéú FHtttŒ½ÂÍÓÞ)@Ql€„‰§šÉ¼ñÞ)/C[`t|…<00>’™«»ÑÓì*CW[jjj}ƒ<00>”§ÂÂÂÞîüü7,J]b<00><00>‰¨¸Éçç 333S50üvåvåå„å<00>å”å–å›å6Dt<00>††–ª³¹ËËÏÒÚ7<<00>›66FW`fju84o¸GG>GAGEGRG[GfGvG~GˆG°G°GÀGÅGÅGÕGÚGÚGêGïGïGÿGHHHHH)H.H.H>HCHCHSHXHXHhHmHmHmHpHyH’H H·HÊHÌHÒHÔH×HèHíHíHóHIIII+ICIKIQIQIeIeInIqI1J9¼ª7474C4W4t44©4Ù4Û4õ4 55+5=5D5K5_5f5f5u5ƒ5’5ª5¹5Æ5É5â5å5ê566!6%6,6j6:d(=ŠŠŠ(Š+Š?ŠGŠKŠUŠ_ŠgŠjŠpŠ;Ä n‡¬‡¬¤¬¬¬¯¬½¬Ë¬à¬é¬/:KOadox„—Ƚ£Øï®®®>®S®w®‹®<00>®®®”®É®Ì®Ñ®Ô®Ô®Û®ñ®ø®¯
|
||||
¯¯&¯9¯9¯Q¯U¯‚¯‚¯š¯Ÿ¯Ÿ¯¯¯³¯Ä¯Î¯ß¯é¯ü¯°°°°&°0°A°K°^°j°o°o°o°‘°¢°§°´°É°É°Î°Ø°ç°ì°ò°÷°÷°ü°±±± ±%±%±+±1±6±6±>±Q±]±j±v±…±<00>±•±ž±µ±É±Ú±ç±ì±²².²;²C²R²\²b²k²t²t²y²y²y²y²y²‰²‰²‰²¡²·²¿²Ú²ë²ø²ú²³³³³³%³*³*³1³?³D³\³h³z³†³Œ³”³š³£³É³Õ³Û³á³ð³ø³´-´>´K´M´[´[´`´`´g´u´z´<00>´™´¥´«´±´º´¿´¿´¿´¿´¿´×´Ü´Ü´Ü´Ü´Ü´í´í´í´í´í´í´í´í´í´í´µµ#µ>µOµ\µ^µkµ{µ€µ€µ€µ‰µ£µ¯µ´µÖµâµâµçµçµçµçµçµçµçµçµüµ¶¶¶¶¶¶¶)¶;¶S¶h¶‰¶ª¶µ¶Æ¶Ë¶Ë¶Ë¶Ô¶ú¶···;·T·\·d·r·œ·¥·«·Ì·å·å·å·å·å·¸@¸I¸O¸U¸Z¸c¸l¸q¸q¸q¸q¸€¸”¸²¸Â¸È¸Í¸Í¸à¸ô¸¹-¹3¹3¹8¹8¹G¹[¹y¹‰¹<00>¹”¹”¹§¹»¹á¹ô¹ú¹ú¹ÿ¹ÿ¹ÿ¹º-º5ºPºaºnºpºº<00>º<00>º<00>º<00>º<00>º•º•º•º•º•º•º•º•º•º•º•º•º•º•º•º•º¤º³º¾ºÀºÀºÉºËºËºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºßºáºáºøº»»»»»%»A»Y»h»t»Š»¤»§»±»½»ã»¼#¼G¼I¼\¼Š¼b¼¥¼¥¼¨¼¸¼À¼Û¼ì¼ï¼ ½½#½;½;½f½i½x½Œ½½Á½Ý½É½ù½¾,¾a¾_¾T¾I¾:¾o¾o¾o¾r¾w¾z¾”¾¢¾Ð¾ò¾ò¾¿ ¿/¿C¿d¿x¿”¿€¿°¿°¿Î¿ÀÀö¿ë¿Ü¿ÀÀÀÀÀÀ À0ÀQÀ]À²Ã<Ä…²7È7ÈMÈQÈ\ÈcÈnȂȂÈ<00>ȞȥȲȾÈËÈÏÈàÈàÈéÈîÈöÈÉÉ#É.ÉAÉAÉYÉYÉtÉ É É´É¶É¶ÉÀÉÈÉÈÉÒÉÚÉÚÉÚÉëÉëÉëÉñÉùÉÿÉÊÊ
|
||||
ÊÊÊÊ!Ê!Ê7ÊGÊQÊ`ÊeÊmÊmÊrÊrÊyÊ<00>ÊŸÊ©Ê±Ê·ÊÆÊËÊÓÊÙÊÙÊÞÊåÊðÊ$Ë3Ë=ËEËKË`ËfËkËkËkËkËkËkËkËkËkËv˄˔˚ˢ˱˶ËÃËËËÐËÐËÐËØËáËêË÷ËÿËÌÌJÌRÌaÌkÌ…Ì‹Ì<00>Ì<00>̗̪̲ÌÇÌÏÌ×ÌìÌîÌùÌÍÍÍÍ/Í7Í>ÍDÍJÍNÍWÍ\Í€ÍŒÍ”Í©ÍµÍºÍÆÍÑÍÖÍÖÍÖÍìÍ ÎÎÎ'Î/Î7ÎLÎQÎ\ÎdÎyÎ~Î~΢ήζÎËÎ×ÎÜÎèÎóÎøÎøÎøÎøÎøÎøÎÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Ï.Ï>ÏDÏLÏ[Ï`ÏhÏpÏrÏzωÏ<00>Ï—ÏŸÏ¡Ï©ÏÆÏÏÏ×ÏßÏæÏúÏÐÐÐÐ(Ð0Ð>ÐCÐHÐZЎЖХЯÐÉÐÑÐÖÐÖÐÖÐßÐèÐëÐõÐÑÑÑ)Ñ;Ñ;Ñ;ÑFÑKÑhÑmÑmÑvÑ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{Ñ{цђѪѽÑÅÑÔÑÙÑáÑèÑõÑþÑÒÒÒÒÒ#Ò+ÒIÒQÒTÒVÒfÒpÒpÒpÒrÒ‡Ò˜Ò›ÒžÒ¦Ò«Ò«Ò´Ò¹ÒÁÒÈÒÕÒêÒñÒÓÓ+ÓDÓYÓnÓuÓuÓzÓzÓzÓzÓzÓzÓzÓ‚Ó<00>Ó™Ó¨ÓÓÓµÓ½ÓÊÓÏÓÏÓÏÓÓÓØÓØÓèÓíÓíÓíÓùÓÔÔÔÔ,Ô;ÔCÔTÔ\ÔԅԌԎԔԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛԛÔ<00>Ô<00>Ô¸ÔÂÔÐÔÐÔÕÔàÔçÔÕÕÕÕÕÕ=ÕKÕC×=x[G×G×]×d×k×v×}׎טןש׼×Ä×Ä×ß×ù×ÿ×ØØØØ&Ø-Ø0Ø5Ø@ØJØ\ØbØxØØ‡Ø<00>ؤؤؤزØÙØâØêØüØÙÙÙÙÙ+Ù1ÙGÙNÙVÙ]Ùrككييي٘ٿÙÌÙÕÙÝÙïÙ÷Ù÷Ù÷ÙÚ
Ú
ÚÚÚ5ÚAÚˆÚ>x`ºŸÝŸÝ·ÝÇÝÎÝÕÝàÝóÝöÝþÝÞÞÞ&Þ1Þ<Þ?ÞJÞ`ÞkÞvÞ<00>ތޓަ޲ÞÏÞØÞàÞßß ßßß#ß+ß:ß@ßHßHßTßbßqßy߈ß<00>߳߹߿ßÁßÇßÍßÍßÍßòß÷ßàààà+à/à:àTà`àpàƒàŸà´à¼àÆàåàùàùàoá? ?CŸ1Ÿ1©1±1¶1@lz‘<00>~<00>~¥~´~¹~Î~»~Ý~à~à~í~ï~0Ib{”žADTaÿ|ÿ|} }6}"}E}G}_}w}}B;z×â×âöâÿâãã*ã,ã5ã:ã[ãyãˆã¦ãºãÒãÙãÿãä,äIäZäqäuäuäyä~äƒä<00>ä<00>äšäŸä¸ä»ä»ä»ä»äÀäÆäâäðäüäåå!å*åFåQå]åfåzåzå‰åŽåŽåœåCPcsWAWAxAeAšA‡A©A¸AÀAËAÍAØAãAãABBDPµÅ×û×ûëûðûÿûÿûü3üIü5üfüXü~ü†üED$ss%s/s9sIsNsWscseswswsys©sFŒ•´WúWúŠú¶ú¶úÉúÍúïúÿúûûûûû0û<ûMûRûcûwû|û~û~û~ûšû¸û¸ûÕûG¨.ÆïÆïÎïÒïÞïïïñïððð)ð4ðCðTð[ðtðxð‰ð‰ð“ðšðð¶ð½ðØðçðþðþðññKñHè700:0=0@0F0K0b0y0<00>0´0Ð0Ó0ò011+1A1R1W1b1j1j1t1t11„1™1Ÿ1¾1Ý1ß1ô1ú1282@2K2K2U2U2g2¥2½2Ï2I$ '['[R[;[\[d[JTHYÐeÐeâeäeíeöef ffff(f2f5f?fK¨!G(d(d8dAdTdadmdyd…d‘d¨d¨d·dÂdËdÒdÛdòd ee e/e;eMeMeVeyeye{eŽe<00>eªe¶e¹eÐeLlõŒÀpÀpÙpäpôp=qDqXq_qgqoqxq€qˆqŠq’qšq¡q¨qÇqßqèqèqrGrPrrrŒr©rÓrßrss
|
||||
sss4sPsws“sºsÖsýst@t\tƒtŸtÆtÆtÕtâtçtçtötuuuuu,uDu\utuvuvuvu}u}uŠu<00>u<00>u<00>u u®uÁuÖuvvvv!v>vLvjvsv|v‰v—v±vÍvÍvÍvßvív w'w'w'w2w5wdwfw}wƒw”w<00>wŸw¬w®w»w½wÊwÊwîwðw÷wxxx!x#x1x3xAxAxaxaxaxax<00>xµxÛxãxçxïxóxyyyyy!y)y7yEyEy_yjy€y”y´yÍyØyâyéyzzz.z.z@zEzGzMz^zoz~z…z–zŸz¡z¯z±z¿zÁzÏzÏzÏzózóz{{ {#{/{2{@{D{R{V{d{h{h{<00>{ˆ{<00>{›{®{µ{Ð{ð{|||#|%|4|>|>|L|U|k|r|—|œ|Å|õ|ú|}
|
||||
}}!};}=}?}F}W}`}b}p}r}€}‚}<00>}<00>}°}°}°}°}°}Ï}Ï}Ï}Ú}ö}~4~9~9~9~[~`~`~`~€~…~…~…~¤~©~©~°~²~²~º~¼~¼~Ã~Ã~Æ~Ë~ê~%AUZZu‚„“œ¶¸¸½¸Þààèã#€#€#€B€B€B€c€h€h€h€Š€<00>€<00>€<00>€¯€´€´€´€Ó€Ø€Ø€ó€<01><03><12><1B>5<>7<>7<><<3C>7<>]<5D>_<>_<>g<>b<>¢<>¢<>¢<><><>×<>×<>‚‚1‚<‚R‚f‚‚—‚¯‚͂ςà‚ý‚ƒƒ‡M„7GéGéeésé‰é£é±éÏéÚéöéöéöéêê ê ê ê-êHêJêJêXêeê€ê€ê¥ê©ê½êÏêNæd^Ý^ÝxÝ<00>ݡݡݧݯݷݿÝÇÝÍÝÚÝÚÝôÝùÝùÝÿÝÞÞ
|
||||
ÞÞÞÞÞÞ2ÞEÞKÞPÞPÞYÞyÞyÞyÞ€Þ‚Þ‚Þ‰Þ‹Þ‹Þ‘Þ‘Þ˜ÞšÞšÞ Þ Þ§Þ©Þ©Þ¯Þ¯Þ¶Þ¶Þ¾ÞÄÞÊÞÒÞÒÞÒÞÒÞÞÞæÞîÞöÞþÞßßß,ß;ßEßHßHßRßXß^ß^ßbßjßqßuß}߅ߋߓߚߢߪ߮ߴ߿ßÅßÒßÞßäßìßðß÷ßÿßàààà à(à0à4à:àEàJà`àqàvàyàáOLœ«è‡è‡ˆˆ
|
||||
|
|
|
@ -169,10 +169,10 @@ class CIntermediateStruct
|
|||
#define IC_BSF 0x7E
|
||||
#define IC_BSR 0x7F
|
||||
|
||||
#define IC_QUE_INIT 0x80
|
||||
#define IC_QUE_INS 0x81
|
||||
#define IC_QUE_INS_REV 0x82
|
||||
#define IC_QUE_REM 0x83
|
||||
#define IC_QUEUE_INIT 0x80
|
||||
#define IC_QUEUE_INSERT 0x81
|
||||
#define IC_QUEUE_INSERT_REV 0x82
|
||||
#define IC_QUEUE_REMOVE 0x83
|
||||
|
||||
#define IC_STRLEN 0x84
|
||||
|
||||
|
|
|
@ -1240,10 +1240,10 @@ args.
|
|||
case IC_BTS:
|
||||
case IC_BTR:
|
||||
case IC_BTC:
|
||||
case IC_QUE_INIT:
|
||||
case IC_QUE_REM:
|
||||
case IC_QUE_INS:
|
||||
case IC_QUE_INS_REV:
|
||||
case IC_QUEUE_INIT:
|
||||
case IC_QUEUE_REMOVE:
|
||||
case IC_QUEUE_INSERT:
|
||||
case IC_QUEUE_INSERT_REV:
|
||||
case IC_OUT_U32:
|
||||
case IC_OUT_U16:
|
||||
case IC_OUT_U8:
|
||||
|
|
|
@ -456,10 +456,10 @@ here1:
|
|||
case IC_SWAP_U16:
|
||||
case IC_SWAP_U32:
|
||||
case IC_SWAP_I64:
|
||||
case IC_QUE_INIT:
|
||||
case IC_QUE_INS:
|
||||
case IC_QUE_INS_REV:
|
||||
case IC_QUE_REM:
|
||||
case IC_QUEUE_INIT:
|
||||
case IC_QUEUE_INSERT:
|
||||
case IC_QUEUE_INSERT_REV:
|
||||
case IC_QUEUE_REMOVE:
|
||||
case IC_IN_U32:
|
||||
case IC_IN_U16:
|
||||
case IC_IN_U8:
|
||||
|
|
|
@ -643,10 +643,10 @@ p4_sib:
|
|||
case IC_SWAP_U16:
|
||||
case IC_SWAP_U32:
|
||||
case IC_SWAP_I64:
|
||||
case IC_QUE_INIT:
|
||||
case IC_QUE_INS:
|
||||
case IC_QUE_INS_REV:
|
||||
case IC_QUE_REM:
|
||||
case IC_QUEUE_INIT:
|
||||
case IC_QUEUE_INSERT:
|
||||
case IC_QUEUE_INSERT_REV:
|
||||
case IC_QUEUE_REMOVE:
|
||||
case IC_IN_U32:
|
||||
case IC_IN_U16:
|
||||
case IC_IN_U8:
|
||||
|
|
|
@ -890,16 +890,16 @@ cc->pass==10 is final pass, code is placed into buf.
|
|||
case IC_SWAP_I64:
|
||||
ICSwap(tmpi,rip2);
|
||||
break;
|
||||
case IC_QUE_INIT:
|
||||
case IC_QUEUE_INIT:
|
||||
ICQueueInit(tmpi,rip2);
|
||||
break;
|
||||
case IC_QUE_INS:
|
||||
case IC_QUEUE_INSERT:
|
||||
ICQueueIns(tmpi,rip2);
|
||||
break;
|
||||
case IC_QUE_INS_REV:
|
||||
ICQueueInsRev(tmpi,rip2);
|
||||
case IC_QUEUE_INSERT_REV:
|
||||
ICQueueInsertRev(tmpi,rip2);
|
||||
break;
|
||||
case IC_QUE_REM:
|
||||
case IC_QUEUE_REMOVE:
|
||||
ICQueueRemove(tmpi,rip2);
|
||||
break;
|
||||
case IC_STRLEN:
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
#define IC_XOR_XOR 0x42
|
||||
|
||||
#define IC_COLON 0x43
|
||||
#define IC_QUESTION 0x44
|
||||
#define IC_QUEUESTION 0x44
|
||||
|
||||
#define IC_ASSIGN 0x45
|
||||
#define IC_ASSIGN_PP 0x46
|
||||
|
@ -162,9 +162,9 @@
|
|||
#define IC_BSF 0x8B
|
||||
#define IC_BSR 0x8C
|
||||
|
||||
#define IC_QUE_INS 0x8D
|
||||
#define IC_QUE_INS_REV 0x8E
|
||||
#define IC_QUE_REM 0x8F
|
||||
#define IC_QUEUE_INSERT 0x8D
|
||||
#define IC_QUEUE_INSERT_REV 0x8E
|
||||
#define IC_QUEUE_REMOVE 0x8F
|
||||
|
||||
#define IC_STRLEN 0x90
|
||||
#define IC_MEMCPY 0x91
|
||||
|
|
|
@ -1,17 +1,10 @@
|
|||
/*ZenithOS has a feature that allows
|
||||
access to bytes and words of larger
|
||||
ints.
|
||||
/*ZenithOS has a feature that allows access to bytes and words of larger ints.
|
||||
|
||||
See $LK,"U64i union",A="FF:::/Kernel/KernelA.HH,U64i union"$.
|
||||
|
||||
The versions with "i" are internal data types.
|
||||
Use "I64" instead of "U64i" and you
|
||||
will have access to subbytes and
|
||||
subwords.
|
||||
The versions with "i" are internal data types. Use "I64" instead of "U64i" and you will have access to subbytes and subwords.
|
||||
|
||||
Unfortunately, byte access causes the
|
||||
compiler to not use a reg for the
|
||||
variable.
|
||||
Unfortunately, byte access causes the compiler to not use a reg for the variable.
|
||||
|
||||
See $LK,"::/Demo/Lectures/FixedPoint.CC"$.
|
||||
*/
|
||||
|
@ -27,3 +20,4 @@ q1=q.i32[1].u8[2];
|
|||
"q.i32[1].u8[2]\t=%016X\n",q1;
|
||||
q1=q.i32[0].i8[1];
|
||||
"q.i32[0].i8[1]\t=%016X\n",q1;
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
$TR,"Zenith"$
|
||||
$ID,2$$TR,"SysMessageFlags"$
|
||||
$ID,2$sys_message_flags[0]=0;
|
||||
$ID,-2$$TR,"SysRegVer"$
|
||||
$ID,2$registry_version=0.100;
|
||||
$ID,-2$$ID,-2$$TR,"Once"$
|
||||
$ID,2$$TR,"Zenith"$
|
||||
$ID,2$$ID,-2$$TR,"User"$
|
||||
$ID,2$$ID,-2$$ID,-2$$TR,"AutoComplete"$
|
||||
$ID,2$ac.col=50;ac.row=15;$ID,-2$
|
BIN
src/Kernel.BIN.C
BIN
src/Kernel.BIN.C
Binary file not shown.
|
@ -4,39 +4,7 @@ U0 PortNop()
|
|||
InU8(0x21);
|
||||
}
|
||||
|
||||
U16 EndianU16(U16 d)
|
||||
{//Swap big<-->little endian.
|
||||
I64 res=0;
|
||||
res.u8[1]=d.u8[0];
|
||||
res.u8[0]=d.u8[1];
|
||||
return res;
|
||||
}
|
||||
|
||||
U32 EndianU32(U32 d)
|
||||
{//Swap big<-->little endian.
|
||||
I64 res=0;
|
||||
res.u8[3]=d.u8[0];
|
||||
res.u8[2]=d.u8[1];
|
||||
res.u8[1]=d.u8[2];
|
||||
res.u8[0]=d.u8[3];
|
||||
return res;
|
||||
}
|
||||
|
||||
I64 EndianI64(I64 d)
|
||||
{//Swap big<-->little endian.
|
||||
U64 res;
|
||||
res.u8[7]=d.u8[0];
|
||||
res.u8[6]=d.u8[1];
|
||||
res.u8[5]=d.u8[2];
|
||||
res.u8[4]=d.u8[3];
|
||||
res.u8[3]=d.u8[4];
|
||||
res.u8[2]=d.u8[5];
|
||||
res.u8[1]=d.u8[6];
|
||||
res.u8[0]=d.u8[7];
|
||||
return res;
|
||||
}
|
||||
|
||||
I64 BCount(I64 d)
|
||||
I64 BCount(I64 d)
|
||||
{//Count set bits in I64.
|
||||
I64 res=0,i;
|
||||
for (i=0;i<8;i++)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
asm {
|
||||
/***********************************/
|
||||
_MEMSET::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -12,6 +13,8 @@ _MEMSET::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
|
||||
/***********************************/
|
||||
_MEMSET_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -25,6 +28,7 @@ _MEMSET_U16::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_MEMSET_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -38,6 +42,7 @@ _MEMSET_U32::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_MEMSET_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -51,6 +56,7 @@ _MEMSET_I64::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_MEMCOPY::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -66,6 +72,7 @@ _MEMCOPY::
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_MEMCOMPARE::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -85,6 +92,7 @@ _MEMCOMPARE::
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_BEQUAL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -100,6 +108,7 @@ _BEQUAL::
|
|||
@@10: ADC AL,0
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_LBEQUAL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -117,6 +126,7 @@ _LBEQUAL::
|
|||
@@10: ADC AL,0
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_CLAMP_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -129,6 +139,7 @@ _CLAMP_I64::
|
|||
CMOVG RAX,RDX
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_CLAMP_U64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -141,6 +152,7 @@ _CLAMP_U64::
|
|||
CMOVA RAX,RDX
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_CALL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -150,6 +162,7 @@ _CALL::
|
|||
CALL RAX
|
||||
@@05: POP RBP
|
||||
RET1 8
|
||||
/***********************************/
|
||||
_BIT_FIELD_OR_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -163,6 +176,7 @@ _BIT_FIELD_OR_U32::
|
|||
OR U64 [RBX],RAX
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_BIT_FIELD_EXT_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -180,6 +194,7 @@ _BIT_FIELD_EXT_U32::
|
|||
AND RAX,RDX
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_XCHG_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -188,6 +203,7 @@ _XCHG_I64::
|
|||
XCHG U64 [RDX],RAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_XCHG_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -196,6 +212,7 @@ _XCHG_U32::
|
|||
XCHG U32 [RDX],EAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_XCHG_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -204,6 +221,7 @@ _XCHG_U16::
|
|||
XCHG U16 [RDX],AX
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_XCHG_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -212,7 +230,7 @@ _XCHG_U8::
|
|||
XCHG U8 [RDX],AL
|
||||
POP RBP
|
||||
RET1 16
|
||||
|
||||
/***********************************/
|
||||
_LXCHG_I64::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -222,6 +240,7 @@ _LXCHG_I64::
|
|||
XCHG U64 [RDX],RAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_LXCHG_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -231,6 +250,7 @@ _LXCHG_U32::
|
|||
XCHG U32 [RDX],EAX
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_LXCHG_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -240,6 +260,7 @@ _LXCHG_U16::
|
|||
XCHG U16 [RDX],AX
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_LXCHG_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -249,6 +270,31 @@ _LXCHG_U8::
|
|||
XCHG U8 [RDX],AL
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_ENDIAN_U16::
|
||||
PUSH RBP
|
||||
MOV RBP, RSP
|
||||
MOVZX RAX, U16 SF_ARG1[RBP]
|
||||
XCHG AL, AH
|
||||
POP RBP
|
||||
RET1 8
|
||||
/***********************************/
|
||||
_ENDIAN_U32::
|
||||
PUSH RBP
|
||||
MOV RBP, RSP
|
||||
MOV RAX, SF_ARG1[RBP]
|
||||
BSWAP EAX
|
||||
POP RBP
|
||||
RET1 8
|
||||
/***********************************/
|
||||
_ENDIAN_U64::
|
||||
PUSH RBP
|
||||
MOV RBP, RSP
|
||||
MOV RAX, SF_ARG1[RBP]
|
||||
BSWAP RAX
|
||||
POP RBP
|
||||
RET1 8
|
||||
/***********************************/
|
||||
_REP_IN_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -260,6 +306,7 @@ _REP_IN_U32::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_REP_IN_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -271,6 +318,7 @@ _REP_IN_U16::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_REP_IN_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -282,6 +330,7 @@ _REP_IN_U8::
|
|||
POP RDI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_REP_OUT_U32::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -293,6 +342,7 @@ _REP_OUT_U32::
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_REP_OUT_U16::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -304,6 +354,7 @@ _REP_OUT_U16::
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_REP_OUT_U8::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -315,6 +366,7 @@ _REP_OUT_U8::
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET1 24
|
||||
/***********************************/
|
||||
_CPUID::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -329,14 +381,15 @@ _CPUID::
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_CALL_IND:: //See $LK,"_LAST_FUN",A="MN:_LAST_FUN"$
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
SHL RCX,3
|
||||
SUB RSP,RCX
|
||||
MOV RDI,RSP
|
||||
|
@ -350,7 +403,7 @@ _CALL_IND:: //See $LK,"_LAST_FUN",A="MN:_LAST_FUN"$
|
|||
POP RBP
|
||||
RET
|
||||
|
||||
@@05: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
@@05: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
SHL RCX,3
|
||||
ADD RSP,RCX
|
||||
XOR RAX,RAX
|
||||
|
@ -358,14 +411,15 @@ _CALL_IND:: //See $LK,"_LAST_FUN",A="MN:_LAST_FUN"$
|
|||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
/***********************************/
|
||||
_CALLEXTNUM::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
SHL RCX,3
|
||||
SUB RSP,RCX
|
||||
MOV RDI,RSP
|
||||
|
@ -381,20 +435,21 @@ _CALLEXTNUM::
|
|||
POP RBP
|
||||
RET
|
||||
|
||||
@@05: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
@@05: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
SHL RCX,3
|
||||
ADD RSP,RCX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
/***********************************/
|
||||
_CALLEXTSTR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
PUSH RSI
|
||||
PUSH RDI
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
LEA RSI,U64 SF_ARG3[RBP] //argv
|
||||
SHL RCX,3
|
||||
SUB RSP,RCX
|
||||
MOV RDI,RSP
|
||||
|
@ -422,13 +477,14 @@ _CALLEXTSTR::
|
|||
POP RBP
|
||||
RET
|
||||
|
||||
@@15: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
@@15: MOV RCX,U64 SF_ARG2[RBP] //argc
|
||||
SHL RCX,3
|
||||
ADD RSP,RCX
|
||||
POP RDI
|
||||
POP RSI
|
||||
POP RBP
|
||||
RET
|
||||
/***********************************/
|
||||
SET_GS_BASE::
|
||||
PUSH RAX
|
||||
PUSH RCX
|
||||
|
@ -441,6 +497,7 @@ SET_GS_BASE::
|
|||
POP RCX
|
||||
POP RAX
|
||||
RET
|
||||
/***********************************/
|
||||
SET_FS_BASE::
|
||||
PUSH RAX
|
||||
PUSH RCX
|
||||
|
@ -452,8 +509,10 @@ SET_FS_BASE::
|
|||
POP RDX
|
||||
POP RCX
|
||||
POP RAX
|
||||
/***********************************/
|
||||
_RET::
|
||||
RET
|
||||
/***********************************/
|
||||
_SET_MSR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
|
@ -464,6 +523,7 @@ _SET_MSR::
|
|||
WRMSR
|
||||
POP RBP
|
||||
RET1 16
|
||||
/***********************************/
|
||||
_SYS_HLT::
|
||||
CLI
|
||||
@@05: HLT
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -63,7 +63,7 @@ extern class CTask;
|
|||
whole if no member is specified,
|
||||
similar to bit fields.
|
||||
|
||||
See $LK,"EndianI64",A="MN:EndianI64"$() and $LK,"::/Demo/SubIntAccess.CC"$.
|
||||
See $LK,"::/Demo/SubIntAccess.CC"$.
|
||||
*/
|
||||
U16i union U16
|
||||
{
|
||||
|
@ -2277,7 +2277,7 @@ class CUAsmGlobals
|
|||
};
|
||||
|
||||
#help_index "Devices;PCI"
|
||||
|
||||
|
||||
//PCI Registers, used with $LK,"PCIRead",A="MN:PCIReadU16"$ functions.
|
||||
#define PCIR_VENDOR_ID 0x00
|
||||
#define PCIR_DEVICE_ID 0x02
|
||||
|
|
|
@ -62,11 +62,11 @@ public _intern IC_STRLEN I64 StrLen(U8 *st); //String length.
|
|||
|
||||
#help_index "Data Types/Circular Queue"
|
||||
#help_file "::/Doc/Queue"
|
||||
public _intern IC_QUE_INIT U0 QueueInit(CQueue *head); //Init queue head links.
|
||||
public _intern IC_QUE_INS U0 QueueInsert(CQueue *entry,CQueue *pred);//Insert item into que after predecessor.
|
||||
public _intern IC_QUE_INS_REV U0 QueueInsRev(CQueue *entry,CQueue *succ);//Revd insert into que.
|
||||
//Ins item into que before successor.
|
||||
public _intern IC_QUE_REM U0 QueueRemove(CQueue *entry); //Remove item from queue.
|
||||
public _intern IC_QUEUE_INIT U0 QueueInit(CQueue *head); //Init queue head links.
|
||||
public _intern IC_QUEUE_INSERT U0 QueueInsert(CQueue *entry,CQueue *pred);//Insert item into que after predecessor.
|
||||
public _intern IC_QUEUE_INSERT_REV U0 QueueInsertRev(CQueue *entry,CQueue *succ);//Revd insert into que.
|
||||
//Ins item into que before successor.
|
||||
public _intern IC_QUEUE_REMOVE U0 QueueRemove(CQueue *entry); //Remove item from queue.
|
||||
|
||||
#help_index "I/O;Processor/IO Port"
|
||||
public _intern IC_IN_U16 U16 InU16(I64 port); //Read U16 from I/O port.
|
||||
|
@ -253,14 +253,15 @@ public _intern IC_SET_RAX U0 SetRAX(I64 d); //Set RAX register value.
|
|||
public _intern IC_SET_RBP U0 SetRBP(U8 *d); //Set RBP register value.
|
||||
public _intern IC_SET_RFLAGS U0 SetRFlags(I64 d); //Set RFlags register value.
|
||||
public _intern IC_SET_RSP U0 SetRSP(U8 *d); //Set RSP register value.
|
||||
public _extern _CPUID U0 CPUId(
|
||||
U32 rax,CRAXRBCRCXRDX *res); //Do CPUID inst.
|
||||
public _extern _CPUID U0 CPUId(U32 rax,CRAXRBCRCXRDX *res); //Do CPUID inst.
|
||||
public _extern _ENDIAN_U16 U16 EndianU16(U16 val); //Swap big<-->little endian U16.
|
||||
public _extern _ENDIAN_U32 U32 EndianU32(U32 val); //Swap big<-->little endian U32.
|
||||
public _extern _ENDIAN_U64 U64 EndianU64(U64 val); //Swap big<-->little endian U64.
|
||||
public _extern _LXCHG_I64 I64 LXchgI64(I64 *dst,I64 d); //Locked eXchange I64s.
|
||||
public _extern _LXCHG_U16 U16 LXchgU16(U16 *dst,U16 d); //Locked eXchange U16s.
|
||||
public _extern _LXCHG_U32 U32 LXchgU32(U32 *dst,U32 d); //Locked eXchange U32s.
|
||||
public _extern _LXCHG_U8 U8 LXchgU8(U8 *dst,U8 d); //Locked eXchange U8s.
|
||||
public _extern _SET_MSR U0 SetMSR(
|
||||
I64 model_specific_reg,I64 val); //Model Specific Reg See $LK,"MSRs",A="MN:IA32_EFER"$.
|
||||
public _extern _SET_MSR U0 SetMSR(I64 model_specific_reg,I64 val); //Model Specific Reg See $LK,"MSRs",A="MN:IA32_EFER"$.
|
||||
public _extern _SYS_HLT U0 SysHlt(); //Loops doing HLT inst.
|
||||
public _extern _XCHG_I64 I64 XchgI64(I64 *dst,I64 d); //eXchange I64s.
|
||||
public _extern _XCHG_U16 U16 XchgU16(U16 *dst,U16 d); //eXchange U16s.
|
||||
|
|
|
@ -596,9 +596,6 @@ public extern I64 ScanMessage(I64 *_arg1=NULL,I64 *_arg2=NULL,
|
|||
I64 mask=~1,CTask *task=NULL);
|
||||
|
||||
#help_index "Misc"
|
||||
public extern I64 EndianI64(I64 d);
|
||||
public extern U16 EndianU16(U16 d);
|
||||
public extern U32 EndianU32(U32 d);
|
||||
public extern U0 QuickSort(U8 *base,I64 num, I64 width,
|
||||
I64 (*fp_compare)(U8 *e1,U8 *e2));
|
||||
public extern U0 QuickSortI64(I64 *base,I64 num,
|
||||
|
|
|
@ -10,9 +10,9 @@ Bool Mem32DevIns(CMemRange *tmpmr)
|
|||
tmpmr2->flags=0;
|
||||
tmpmr2->base=tmpmr1->base;
|
||||
tmpmr2->size=tmpmr->base-tmpmr1->base;
|
||||
QueueInsRev(tmpmr2,tmpmr1);
|
||||
QueueInsertRev(tmpmr2,tmpmr1);
|
||||
}
|
||||
QueueInsRev(tmpmr,tmpmr1);
|
||||
QueueInsertRev(tmpmr,tmpmr1);
|
||||
tmpmr1->size=tmpmr1->base+tmpmr1->size-
|
||||
(tmpmr->base+tmpmr->size);
|
||||
tmpmr1->base=tmpmr->base+tmpmr->size;
|
||||
|
@ -184,4 +184,4 @@ I64 Seg2Linear(U32 *ptr)
|
|||
{//Convert 32-bit segmented farptr to linear address. Modify in place.
|
||||
*ptr = *ptr >> 16 << 4 + *ptr & 0xFFFF;
|
||||
return *ptr;
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -501,7 +501,7 @@ public Bool DocRecalc(CDoc *doc,I64 recalc_flags=RECALCt_NORMAL)
|
|||
if (doc_e->type_u8==DOCT_TEXT && doc->cur_col>=k)
|
||||
QueueInsert(doc_e2,doc_e);
|
||||
else
|
||||
QueueInsRev(doc_e2,doc_e);
|
||||
QueueInsertRev(doc_e2,doc_e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1150,7 +1150,7 @@ rc_skip:
|
|||
if (doc->cur_entry==doc && recalc_flags&RECALCF_ADD_CURSOR) {
|
||||
doc_e2=DocEntryNewBase(doc,DOCT_CURSOR,,x,y,doc->page_line_num);
|
||||
MemCopy(&doc_e2->settings,s,sizeof(CDocSettings));
|
||||
QueueInsRev(doc_e2,doc);
|
||||
QueueInsertRev(doc_e2,doc);
|
||||
}
|
||||
|
||||
if (doc->min_x>doc->max_x) {
|
||||
|
|
|
@ -58,7 +58,7 @@ U0 DocBorderListDraw(CDoc *doc)
|
|||
while (tmpl && tmpl->doc_signature==DOC_SIGNATURE_VAL) {
|
||||
ch=tmpl->desc;
|
||||
i=(Bsr(ch)+7)>>3; //StrLen
|
||||
ch=EndianI64(ch<<((8-i)<<3));
|
||||
ch=EndianU64(ch<<((8-i)<<3));
|
||||
attr=win_task->border_attr<<8;
|
||||
while (i-- && y>0) {
|
||||
TextChar(win_task,TRUE,-1,--y,attr+ch&0xFF);
|
||||
|
|
Loading…
Reference in a new issue