Changeset 294 in dev for trunk/abdev/BasicCompiler32


Ignore:
Timestamp:
Aug 22, 2007, 11:23:28 PM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler32
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/BasicCompiler.vcproj

    r288 r294  
    7676            <Tool
    7777                Name="VCLinkerTool"
    78                 AdditionalDependencies="comctl32.lib psapi.lib commond.lib smoothied.lib"
     78                AdditionalDependencies="comctl32.lib psapi.lib commond.lib smoothied.lib imagehlp.lib"
    7979                OutputFile="../ActiveBasic/BasicCompiler32.exe"
    8080                LinkIncremental="2"
     
    179179            <Tool
    180180                Name="VCLinkerTool"
    181                 AdditionalDependencies="comctl32.lib psapi.lib common.lib smoothie.lib"
     181                AdditionalDependencies="comctl32.lib psapi.lib common.lib smoothie.lib imagehlp.lib"
    182182                OutputFile="../ActiveBasic/BasicCompiler32.exe"
    183183                LinkIncremental="1"
  • trunk/abdev/BasicCompiler32/Compile_CallProc.cpp

    r292 r294  
    135135        else{
    136136            if(dwFlags&PROCFLAG_NEW){
     137                GetVarType( ObjectName, leftType, false );
     138
    137139                //New演算子によるコンストラクタ呼び出し
    138140                pobj_c=pUserProc->GetParentClassPtr();
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r290 r294  
    507507                compiler.codeGenerator.op_mov_RV_vtbl( REG_EAX, compiler.pCompilingClass );
    508508
    509                 /* TODO: 消す
    510                 //関数テーブルに値をセット
    511                 int offset = (int)compiler.pCompilingClass->GetVtblGlobalOffset();
    512 
    513                 //mov eax,offset
    514                 compiler.codeGenerator.op_mov_RV( REG_EAX, offset, Schedule::DataTable );
    515                 */
    516 
    517509                //Thisポインタをecxにコピー
    518510                SetThisPtrToReg(REG_ECX);
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r290 r294  
    22
    33#include <jenga/include/common/Environment.h>
     4#include <jenga/include/common/Path.h>
     5#include <jenga/include/common/Directory.h>
    46
    57#include <jenga/include/smoothie/Smoothie.h>
     
    381383
    382384
    383 
    384         //push ebp
    385         compiler.codeGenerator.op_push(REG_EBP);
    386 
    387         if(bDebugCompile){
    388             //デバッグ用の変数を定義
    389             // TODO: 暫定処理なので下のif文は正しくない
    390             //if( compiler.IsStaticLibrary() )
     385        if( compiler.IsCore() )
     386        {
     387            // コアモジュール(basic.sbp)をコンパイルするとき
     388
     389            //push ebp
     390            compiler.codeGenerator.op_push(REG_EBP);
     391
     392            if(bDebugCompile)
    391393            {
     394                //デバッグ用の変数を定義
    392395                DebugVariable();
    393396            }
    394         }
    395 
    396         //GC用の変数を定義
    397         InitGCVariables();
    398 
    399         //if( compiler.IsStaticLibrary() )
    400         {
     397
     398            //GC用の変数を定義
     399            InitGCVariables();
     400
    401401            //_System_StartupProgramの呼び出し
    402402            compiler.codeGenerator.op_call(pSub_System_StartupProgram);
     
    497497        // 静的リンクライブラリ
    498498
     499        // 格納先ディレクトリを作る
     500        Jenga::Common::Path path( OutputFileName );
     501        Jenga::Common::Directory dir( path.GetDriveName() + path.GetDirName(), true );
     502
     503        // 書き込む
    499504        if( !compiler.GetObjectModule().Write( OutputFileName ) )
    500505        {
Note: See TracChangeset for help on using the changeset viewer.