Ignore:
Timestamp:
Nov 15, 2007, 3:18:41 AM (17 years ago)
Author:
dai_9181
Message:

COM修飾子に対応。COMインターフェイスを呼び出せるようにした

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/Compile_Func.cpp

    r359 r370  
    144144            }
    145145        }
     146        else if( pobj_c->IsComInterface() )
     147        {
     148            //仮想関数(オブジェクトメソッド)
     149            // pObj -> vtbl1 -> func1
     150            //               -> func2
     151            //               -> func3
     152
     153            int vtblMasterListIndex;
     154            pobj_c->GetVtblMasterListIndexAndVtblIndex( &userProc, vtblMasterListIndex, vtblIndex );
     155
     156            // vtblのポインタを取得
     157            //mov r11,qword ptr[rcx]
     158            compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RCX,0,MOD_BASE);
     159        }
    146160        else
    147161        {
     
    158172
    159173            // vtblマスターリストのポインタを取得
    160             //mov r11,qword ptr[rcx]
    161             compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RCX,0,MOD_BASE);
     174            //mov r11,qword ptr[rcx+sizeof(com_vtbl)]
     175            compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_R11,REG_RCX,PTR_SIZE,MOD_BASE_DISP8);
    162176
    163177            // vtblのポインタを取得
Note: See TracChangeset for help on using the changeset viewer.