Ignore:
Timestamp:
Jul 21, 2007, 11:47:40 PM (17 years ago)
Author:
dai_9181
Message:

CodeGeneratorクラスのベースを実装

File:
1 edited

Legend:

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

    r206 r225  
    1515    //call _System_GetEip
    1616    extern const UserProc *pSub_System_GetEip;
    17     op_call(pSub_System_GetEip);
     17    compiler.codeGenerator.op_call(pSub_System_GetEip);
    1818
    1919    //push eax
    20     op_push(REG_EAX);
     20    compiler.codeGenerator.op_push(REG_EAX);
    2121
    2222    //push ebp
    23     op_push(REG_EBP);
     23    compiler.codeGenerator.op_push(REG_EBP);
    2424
    2525    //call _DebugSys_SaveContext
    2626    extern const UserProc *pSub_DebugSys_SaveContext;
    27     op_call(pSub_DebugSys_SaveContext);
     27    compiler.codeGenerator.op_call(pSub_DebugSys_SaveContext);
    2828}
    2929
     
    260260
    261261        //push object_size
    262         op_push_V(object_size);
     262        compiler.codeGenerator.op_push_V(object_size);
    263263
    264264        //call calloc
    265265        extern const UserProc *pSub_calloc;
    266         op_call(pSub_calloc);
     266        compiler.codeGenerator.op_call(pSub_calloc);
    267267
    268268        //push eax
    269         op_push(REG_EAX);
     269        compiler.codeGenerator.op_push(REG_EAX);
    270270    }
    271271
     
    297297
    298298                // 参照を実体ポインタにする
    299                 op_mov_RM( sizeof(long), REG_ECX, REG_EAX, 0, MOD_BASE );
     299                compiler.codeGenerator.op_mov_RM( sizeof(long), REG_ECX, REG_EAX, 0, MOD_BASE );
    300300            }
    301301        }
     
    306306
    307307                //mov ecx,dword ptr[esp+ParmSize]
    308                 op_mov_RM( sizeof(long), REG_ECX, REG_ESP, ParmSize + tempSize, MOD_BASE_DISP32 );
     308                compiler.codeGenerator.op_mov_RM( sizeof(long), REG_ECX, REG_ESP, ParmSize + tempSize, MOD_BASE_DISP32 );
    309309            }
    310310            else{
     
    315315
    316316        //push ecx
    317         op_push(REG_ECX);
     317        compiler.codeGenerator.op_push(REG_ECX);
    318318    }
    319319
     
    347347
    348348        //call ProcAddr
    349         op_call(pUserProc);
     349        compiler.codeGenerator.op_call(pUserProc);
    350350    }
    351351
    352352    if(pUserProc->IsCdecl()){
    353353        //add esp,ParmSize
    354         op_add_esp(ParmSize);
     354        compiler.codeGenerator.op_add_esp(ParmSize);
    355355    }
    356356
     
    408408    if(pDllProc->IsCdecl()){
    409409        //add esp,ParmSize
    410         op_add_esp(ParmSize);
     410        compiler.codeGenerator.op_add_esp(ParmSize);
    411411    }
    412412
Note: See TracChangeset for help on using the changeset viewer.