Ignore:
Timestamp:
Jan 20, 2007, 4:55:26 AM (17 years ago)
Author:
dai_9181
Message:

Boolean型に対応。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler32/NumOpe_Relation.cpp

    r3 r36  
    8484        OpBuffer[obp++]=(char)0xE0;
    8585
    86         //mov ecx,0xFFFFFFFF
    87         OpBuffer[obp++]=(char)0xB9;
    88         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     86        //mov ecx,1
     87        OpBuffer[obp++]=(char)0xB9;
     88        *((long *)(OpBuffer+obp))=1;
    8989        obp+=sizeof(long);
    9090
     
    166166        OpBuffer[TrueSchedule]=obp-(TrueSchedule+1);
    167167
    168         //mov eax,0FFFFFFFFh
     168        //mov eax,1
    169169        OpBuffer[obp++]=(char)0xB8;
    170         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     170        *((long *)(OpBuffer+obp))=1;
    171171        obp+=sizeof(long);
    172172
     
    199199        op_sub_esp(4);
    200200
    201         //mov ecx,0FFFFFFFFh
    202         OpBuffer[obp++]=(char)0xB9;
    203         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     201        //mov ecx,1
     202        OpBuffer[obp++]=(char)0xB9;
     203        *((long *)(OpBuffer+obp))=1;
    204204        obp+=sizeof(long);
    205205
     
    235235
    236236    sp--;
    237     type_stack[sp-1]=DEF_LONG;
     237    type_stack[sp-1]=DEF_BOOLEAN;
    238238
    239239    *pStackPointer=sp;
     
    320320        OpBuffer[obp++]=(char)0xE0;
    321321
    322         //mov ecx,0xFFFFFFFF
    323         OpBuffer[obp++]=(char)0xB9;
    324         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     322        //mov ecx,1
     323        OpBuffer[obp++]=(char)0xB9;
     324        *((long *)(OpBuffer+obp))=1;
    325325        obp+=sizeof(long);
    326326
     
    404404        OpBuffer[TrueSchedule]=obp-(TrueSchedule+1);
    405405
    406         //mov eax,0FFFFFFFFh
     406        //mov eax,1
    407407        OpBuffer[obp++]=(char)0xB8;
    408         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     408        *((long *)(OpBuffer+obp))=1;
    409409        obp+=sizeof(long);
    410410
     
    437437        op_sub_esp(4);
    438438
    439         //mov ecx,0FFFFFFFFh
    440         OpBuffer[obp++]=(char)0xB9;
    441         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     439        //mov ecx,1
     440        OpBuffer[obp++]=(char)0xB9;
     441        *((long *)(OpBuffer+obp))=1;
    442442        obp+=sizeof(long);
    443443
     
    473473
    474474    sp--;
    475     type_stack[sp-1]=DEF_LONG;
     475    type_stack[sp-1]=DEF_BOOLEAN;
    476476
    477477    *pStackPointer=sp;
     
    561561        OpBuffer[obp++]=(char)0xE0;
    562562
    563         //mov ecx,0xFFFFFFFF
    564         OpBuffer[obp++]=(char)0xB9;
    565         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     563        //mov ecx,1
     564        OpBuffer[obp++]=(char)0xB9;
     565        *((long *)(OpBuffer+obp))=1;
    566566        obp+=sizeof(long);
    567567
     
    656656        OpBuffer[TrueSchedule2]=obp-(TrueSchedule2+1);
    657657
    658         //mov eax,0FFFFFFFFh
     658        //mov eax,1
    659659        OpBuffer[obp++]=(char)0xB8;
    660         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     660        *((long *)(OpBuffer+obp))=1;
    661661        obp+=sizeof(long);
    662662
     
    678678        op_sub_esp(4);
    679679
    680         //mov ecx,0FFFFFFFFh
    681         OpBuffer[obp++]=(char)0xB9;
    682         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     680        //mov ecx,1
     681        OpBuffer[obp++]=(char)0xB9;
     682        *((long *)(OpBuffer+obp))=1;
    683683        obp+=sizeof(long);
    684684
     
    714714
    715715    sp--;
    716     type_stack[sp-1]=DEF_LONG;
     716    type_stack[sp-1]=DEF_BOOLEAN;
    717717
    718718    *pStackPointer=sp;
     
    798798        OpBuffer[obp++]=(char)0xE0;
    799799
    800         //mov ecx,0xFFFFFFFF
    801         OpBuffer[obp++]=(char)0xB9;
    802         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     800        //mov ecx,1
     801        OpBuffer[obp++]=(char)0xB9;
     802        *((long *)(OpBuffer+obp))=1;
    803803        obp+=sizeof(long);
    804804
     
    893893        OpBuffer[TrueSchedule2]=obp-(TrueSchedule2+1);
    894894
    895         //mov eax,0FFFFFFFFh
     895        //mov eax,1
    896896        OpBuffer[obp++]=(char)0xB8;
    897         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     897        *((long *)(OpBuffer+obp))=1;
    898898        obp+=sizeof(long);
    899899
     
    915915        op_sub_esp(4);
    916916
    917         //mov ecx,0FFFFFFFFh
    918         OpBuffer[obp++]=(char)0xB9;
    919         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     917        //mov ecx,1
     918        OpBuffer[obp++]=(char)0xB9;
     919        *((long *)(OpBuffer+obp))=1;
    920920        obp+=sizeof(long);
    921921
     
    947947
    948948    sp--;
    949     type_stack[sp-1]=DEF_LONG;
     949    type_stack[sp-1]=DEF_BOOLEAN;
    950950
    951951    *pStackPointer=sp;
     
    10291029        OpBuffer[obp++]=(char)0xE0;
    10301030
    1031         //mov ecx,0xFFFFFFFF
    1032         OpBuffer[obp++]=(char)0xB9;
    1033         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     1031        //mov ecx,1
     1032        OpBuffer[obp++]=(char)0xB9;
     1033        *((long *)(OpBuffer+obp))=1;
    10341034        obp+=sizeof(long);
    10351035
     
    10961096        OpBuffer[TrueSchedule2]=obp-(TrueSchedule2+1);
    10971097
    1098         //mov eax,0FFFFFFFFh
     1098        //mov eax,1
    10991099        OpBuffer[obp++]=(char)0xB8;
    1100         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     1100        *((long *)(OpBuffer+obp))=1;
    11011101        obp+=sizeof(long);
    11021102
     
    11261126        OpBuffer[obp++]=(char)0x05;
    11271127
    1128         //mov eax,0FFFFFFFFh
     1128        //mov eax,1
    11291129        OpBuffer[obp++]=(char)0xB8;
    1130         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     1130        *((long *)(OpBuffer+obp))=1;
    11311131        obp+=sizeof(long);
    11321132
     
    11381138
    11391139    sp--;
    1140     type[sp-1]=DEF_LONG;
     1140    type[sp-1]=DEF_BOOLEAN;
    11411141
    11421142    *pStackPointer=sp;
     
    12201220        OpBuffer[obp++]=(char)0xE0;
    12211221
    1222         //mov ecx,0xFFFFFFFF
    1223         OpBuffer[obp++]=(char)0xB9;
    1224         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     1222        //mov ecx,1
     1223        OpBuffer[obp++]=(char)0xB9;
     1224        *((long *)(OpBuffer+obp))=1;
    12251225        obp+=sizeof(long);
    12261226
     
    12761276        obp++;
    12771277
    1278         //mov eax,0FFFFFFFFh
     1278        //mov eax,1
    12791279        OpBuffer[obp++]=(char)0xB8;
    1280         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
     1280        *((long *)(OpBuffer+obp))=1;
    12811281        obp+=sizeof(long);
    12821282
     
    13131313        OpBuffer[obp++]=(char)0xC3;
    13141314
    1315         //jz 5(次のmovを飛び越す)
     1315        //jnz 4(次のxorとjmpを飛び越す)
    13161316        OpBuffer[obp++]=(char)0x74;
     1317        OpBuffer[obp++]=(char)0x04;
     1318
     1319        //xor eax,eax
     1320        OpBuffer[obp++]=(char)0x33;
     1321        OpBuffer[obp++]=(char)0xC0;
     1322
     1323        //jmp 5
     1324        OpBuffer[obp++]=(char)0xEB;
    13171325        OpBuffer[obp++]=(char)0x05;
    13181326
    1319         //mov eax,0FFFFFFFFh
     1327        //mov eax,1
    13201328        OpBuffer[obp++]=(char)0xB8;
    1321         *((long *)(OpBuffer+obp))=0xFFFFFFFF;
    1322         obp+=sizeof(long);
    1323 
    1324         //not eax
    1325         OpBuffer[obp++]=(char)0xF7;
    1326         OpBuffer[obp++]=(char)0xD0;
     1329        *((long *)(OpBuffer+obp))=1;
     1330        obp+=sizeof(long);
    13271331
    13281332        //mov dword ptr[esp],eax
     
    13331337
    13341338    sp--;
    1335     type[sp-1]=DEF_LONG;
     1339    type[sp-1]=DEF_BOOLEAN;
    13361340
    13371341    *pStackPointer=sp;
Note: See TracChangeset for help on using the changeset viewer.