Changeset 94 in dev for BasicCompiler64
- Timestamp:
- Apr 14, 2007, 8:36:04 PM (18 years ago)
- Location:
- BasicCompiler64
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler64/Compile_Object.cpp
r90 r94 19 19 20 20 if(bSomeObjects){ 21 SetError(); 21 22 //mov qword ptr[rsp+offset],rbx ※スタックフレームを利用 22 23 pobj_sf->push(REG_RBX); -
BasicCompiler64/Compile_ProcOp.cpp
r91 r94 845 845 } 846 846 847 //_System_TypeBase_InitializeUserTypesは一番最後にコンパイル 848 extern UserProc *pSubStaticMethod_System_TypeBase_InitializeUserTypes; 849 pSubStaticMethod_System_TypeBase_InitializeUserTypes->CompleteCompile(); 850 847 851 //_System_InitStaticLocalVariablesは一番最後にコンパイル 848 852 //※一般関数内の静的変数オブジェクトをすべて収集しなければならない … … 854 858 pSub_System_Call_Destructor_of_GlobalObject->CompleteCompile(); 855 859 856 Repeat:860 repeat: 857 861 for(i2=0;i2<MAX_HASH;i2++){ 858 862 pUserProc=ppSubHash[i2]; … … 863 867 } 864 868 865 //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合 866 for(i2=0;i2<MAX_HASH;i2++){ 867 pUserProc=ppSubHash[i2]; 868 while(pUserProc){ 869 if( pUserProc->IsUsing() && pUserProc->IsCompiled() == false ){ 870 goto Repeat; 871 } 872 873 pUserProc=pUserProc->pNextData; 869 if( IsNeedProcCompile() ){ 870 //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合 871 goto repeat; 872 } 873 874 //_System_TypeBase_InitializeUserTypesは最後のほうでコンパイル 875 pSubStaticMethod_System_TypeBase_InitializeUserTypes->KillCompileStatus(); 876 CompileBufferInProcedure( *pSubStaticMethod_System_TypeBase_InitializeUserTypes ); 877 878 if( IsNeedProcCompile() ){ 879 //プロシージャコンパイルによって、プロシージャコンパイルが必要になる場合 880 for(i2=0;i2<MAX_HASH;i2++){ 881 pUserProc=ppSubHash[i2]; 882 while(pUserProc){ 883 CompileBufferInProcedure( *pUserProc ); 884 pUserProc=pUserProc->pNextData; 885 } 874 886 } 875 887 } -
BasicCompiler64/NumOpe.cpp
r93 r94 249 249 // 同一の型、またはNothingに対するAsはAs演算子を呼び出さない 250 250 } 251 else if( idCalc == CALC_AS 252 && type_stack[sp-1] == ( DEF_OBJECT | FLAG_CAST ) 253 && ( ((CClass *)index_stack[sp-1])->IsEqualsOrSubClass( (CClass *)index_stack[sp-2] ) || ((CClass *)index_stack[sp-2])->IsEqualsOrSubClass( (CClass *)index_stack[sp-1] ) 254 )){ 255 // ダウンキャストを許可する 256 } 251 257 else{ 252 258 //オーバーロードされたオペレータを呼び出す
Note:
See TracChangeset
for help on using the changeset viewer.