Ignore:
Timestamp:
Sep 9, 2007, 12:37:48 PM (17 years ago)
Author:
dai_9181
Message:

GCのバグをいくつか修正

File:
1 edited

Legend:

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

    r308 r319  
    200200
    201201
     202    //仮想関数テーブルを初期化
     203    if( classObj.IsExistVirtualFunctions()
     204        && !classObj.IsAbstract() )
     205    {
     206        // mov rcx,vtblAddress
     207        compiler.codeGenerator.op_mov_RV_vtbl( REG_RCX, &classObj );
     208
     209        //mov qword ptr[rax],rcx
     210        compiler.codeGenerator.op_mov_MR(sizeof(_int64),REG_RCX,REG_RAX,0,MOD_BASE);
     211
     212
     213        // 仮想関数になるメソッドに使用チェックをつける
     214        BOOST_FOREACH( const CMethod *pMethod, classObj.GetMethods() )
     215        {
     216            if( pMethod->IsVirtual() )
     217            {
     218                pMethod->GetUserProc().Using();
     219            }
     220        }
     221    }
     222
     223
    202224    /////////////////////////////////////////////////////////////////////
    203225
Note: See TracChangeset for help on using the changeset viewer.