Changeset 308 in dev for trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp
- Timestamp:
- Aug 29, 2007, 9:05:22 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp
r266 r308 182 182 else bDebugSupportProc=0; 183 183 184 pUserProc->_beginOpAddressOld = obp;185 186 184 //コンパイル中の関数が属するクラス 187 185 compiler.pCompilingClass=pUserProc->GetParentClassPtr(); … … 211 209 212 210 //スタックフレーム管理用オブジェクトを初期化 213 extern CStackFrame *pobj_sf;214 pobj_sf=new CStackFrame();211 extern StackFrame *pobj_sf; 212 pobj_sf=new StackFrame(); 215 213 216 214 SystemProc(*pUserProc); … … 220 218 pobj_sf=0; 221 219 222 pUserProc->_endOpAddressOld = obp;223 220 return; 224 221 } … … 232 229 //プロシージャ抜け出しスケジュール(Exit Sub/Function) 233 230 compiler.codeGenerator.exitSubCodePositions.clear(); 234 compiler.codeGenerator._exitSubCodePositions_ObpOld.clear();235 231 236 232 //ラベル用のメモリを確保 … … 260 256 261 257 //レキシカルスコープ情報を初期化 262 compiler.codeGenerator.lexicalScopes.Init( obp);258 compiler.codeGenerator.lexicalScopes.Init( compiler.codeGenerator.GetNativeCodeSize() ); 263 259 264 260 … … 271 267 Parameter ¶m = *pUserProc->RealParams()[i3]; 272 268 273 Variable *pVar = new Variable( param.GetVarName(), param, false, param.IsRef(), "" );269 Variable *pVar = new Variable( param.GetVarName(), param, false, param.IsRef(), "", false ); 274 270 275 271 if( param.IsArray() ){ … … 307 303 308 304 //スタックフレーム管理用クラスを初期化 309 extern CStackFrame *pobj_sf;310 pobj_sf=new CStackFrame();305 extern StackFrame *pobj_sf; 306 pobj_sf=new StackFrame(); 311 307 312 308 … … 390 386 else{ 391 387 if( pUserProc->ReturnType().IsObject() ){ 392 sprintf(temporary,"%s=Nothing%c%c%s",temp,1,ESC_AS, Compiler::TypeToString( pUserProc->ReturnType() ).c_str() );388 sprintf(temporary,"%s=Nothing%c%c%s",temp,1,ESC_AS, compiler.TypeToString( pUserProc->ReturnType() ).c_str() ); 393 389 } 394 390 else{ 395 391 //戻り値用の変数の定義 396 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, Compiler::TypeToString( pUserProc->ReturnType() ).c_str() );392 sprintf(temporary,"%s%c%c%s",temp,1,ESC_AS, compiler.TypeToString( pUserProc->ReturnType() ).c_str() ); 397 393 } 398 394 … … 477 473 &compiler.pCompilingClass->GetSuperClass().GetConstructorMethod()->GetUserProc(), 478 474 0, 479 "", 480 0); 475 ""); 481 476 } 482 477 } … … 553 548 &method->GetUserProc(), 554 549 0, 555 "", 556 0); 550 ""); 557 551 } 558 552 } … … 612 606 else if(IsWholeNumberType(i3)){ 613 607 //整数型 614 SetReg_WholeVariable( i3,&RelativeVar,REG_RAX);608 SetReg_WholeVariable(Type(i3),&RelativeVar,REG_RAX); 615 609 } 616 610 else SetError(300,NULL,cp); … … 666 660 delete pobj_sf; 667 661 pobj_sf=0; 668 669 670 pUserProc->_endOpAddressOld = obp;671 662 672 663
Note:
See TracChangeset
for help on using the changeset viewer.