Changeset 259 in dev for trunk/abdev/BasicCompiler32


Ignore:
Timestamp:
Aug 3, 2007, 3:24:22 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler32
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_Object.cpp

    r253 r259  
    1616    //をセットしておかなければならない
    1717
    18     //jnzのジャンプ先番地
     18/*  //jnzのジャンプ先番地
    1919    extern int obp;
    20     int jnz_back = obp;
     20    int jnz_back = obp;*/
    2121
    2222    if(bSomeObjects){
     
    2424
    2525        //push ebx
    26         compiler.codeGenerator.op_push(REG_EBX);
     26        //compiler.codeGenerator.op_push(REG_EBX);
    2727    }
    2828
     
    7878
    7979    if(bSomeObjects){
     80        /*
    8081        //pop ebx
    8182        compiler.codeGenerator.op_pop(REG_EBX);
     
    8990        //jne ↑
    9091        compiler.codeGenerator.op_jne( jnz_back-obp, sizeof(long), false, true );
     92        */
    9193    }
    9294}
     
    261263
    262264    //jnzの番地
    263     extern int obp;
    264     int jnz_back = obp;
     265    /*extern int obp;
     266    int jnz_back = obp;*/
    265267
    266268    //push ecx
     
    289291
    290292    //jne ↑
    291     compiler.codeGenerator.op_jne( jnz_back-obp, sizeof(long), false, true );
     293    //compiler.codeGenerator.op_jne( jnz_back-obp, sizeof(long), false, true );
    292294
    293295
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r256 r259  
    264264
    265265    extern int obp;
    266     pUserProc->SetBeginOpAddress( obp );
     266    pUserProc->_beginOpAddressOld = obp;
    267267
    268268    //コンパイル中の関数が属するクラス
     
    294294        SystemProc(*pUserProc);
    295295
    296         pUserProc->SetEndOpAddress( obp );
     296        pUserProc->_endOpAddressOld = obp;
    297297        return;
    298298    }
     
    737737
    738738
    739     pUserProc->SetEndOpAddress( obp );
     739    pUserProc->_endOpAddressOld = obp;
    740740
    741741
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r258 r259  
    554554    vector<ObjectModule *> masterObjectModules;
    555555    masterObjectModules.push_back( &compiler.objectModule );
    556     //compiler.linker.Link( masterObjectModules );
     556    compiler.linker.Link( masterObjectModules );
    557557
    558558
     
    704704
    705705            if( pUserProc->GetName() == "DllMain" ){
    706                 DllMain_EntryPoint=pUserProc->GetBeginOpAddress();
     706                DllMain_EntryPoint=pUserProc->_beginOpAddressOld;
    707707            }
    708708
    709709            lpdwExportAddressTable=(DWORD *)HeapReAlloc(hHeap,0,lpdwExportAddressTable,(ExportNum+1)*sizeof(DWORD));
    710             lpdwExportAddressTable[ExportNum]=pUserProc->GetBeginOpAddress();
     710            lpdwExportAddressTable[ExportNum]=pUserProc->_beginOpAddressOld;
    711711
    712712            lpdwExportNamePointerTable=(DWORD *)HeapReAlloc(hHeap,0,lpdwExportNamePointerTable,(ExportNum+1)*sizeof(DWORD));
     
    11771177    // プロシージャポインタスケジュール
    11781178    for(i=0;i<pobj_SubAddrSchedule->num;i++){
    1179         if(pobj_SubAddrSchedule->ppsi[i]->GetBeginOpAddress()==0
    1180             &&pobj_SubAddrSchedule->ppsi[i]->GetEndOpAddress()==0){
     1179        if(pobj_SubAddrSchedule->ppsi[i]->_beginOpAddressOld==0
     1180            &&pobj_SubAddrSchedule->ppsi[i]->_endOpAddressOld==0){
    11811181            SetError(300,NULL,-1);
    11821182        }
     
    11841184        if(pobj_SubAddrSchedule->pbCall[i]){
    11851185            *((long *)(OpBuffer+pobj_SubAddrSchedule->pObpValues[i]))=
    1186                 pobj_SubAddrSchedule->ppsi[i]->GetBeginOpAddress()-(pobj_SubAddrSchedule->pObpValues[i]+sizeof(long));
     1186                pobj_SubAddrSchedule->ppsi[i]->_beginOpAddressOld-(pobj_SubAddrSchedule->pObpValues[i]+sizeof(long));
    11871187        }
    11881188        else{
    11891189            *((long *)(OpBuffer+pobj_SubAddrSchedule->pObpValues[i]))=
    1190                 pobj_SubAddrSchedule->ppsi[i]->GetBeginOpAddress()+ImageBase+MemPos_CodeSection;
     1190                pobj_SubAddrSchedule->ppsi[i]->_beginOpAddressOld+ImageBase+MemPos_CodeSection;
    11911191        }
    11921192    }
  • trunk/abdev/BasicCompiler32/NumOpe.cpp

    r256 r259  
    677677    //リテラル値のみの計算かどうかを判別するためのフラグ
    678678    BOOL bLiteralCalculation=1;
    679 
    680     //リテラル演算の場合を考慮した演算前のバッファ位置
    681     extern int obp;
    682     int BeforeObp = obp;
    683679
    684680    //リテラル演算の場合を考慮した演算前のプロシージャスケジュール位置
Note: See TracChangeset for help on using the changeset viewer.