Ignore:
Timestamp:
Aug 12, 2007, 1:25:20 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler_Common/include
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/include/CodeGenerator.h

    r263 r276  
    1010#endif
    1111
    12 void ReallocNativeCodeBuffer();
    13 
    1412// コード生成時の部分的なスケジューリング
    1513class PertialSchedule
     
    1816    int typeSize;   // 対象サイズ(一般的には8bit/32bit)
    1917
    20     int _obpOld;    // 未完成
    2118public:
    2219    PertialSchedule( int codePos, int typeSize )
     
    2421        , typeSize( typeSize )
    2522    {
    26         extern int obp;
    27         _obpOld = obp;
    2823    }
    2924    ~PertialSchedule()
     
    3833    {
    3934        return typeSize;
    40     }
    41     int GetObpOld() const
    42     {
    43         return _obpOld;
    4435    }
    4536};
     
    201192    // Continue用のコード位置情報の管理
    202193    std::vector<long> continueCodePositions;
    203     std::vector<long> _continueCodePositions_ObpOld;
    204194
    205195public:
     
    210200    // Exit Subスケジュールの管理
    211201    std::vector<long> exitSubCodePositions;
    212     std::vector<int> _exitSubCodePositions_ObpOld;
    213202
    214203    // Gotoスケジュールの管理
     
    239228        pNativeCode = &nativeCode;
    240229    }
     230    long GetNativeCodeSize() const
     231    {
     232        return pNativeCode->GetSize();
     233    }
    241234
    242235    void NextSourceLine()
     
    256249    {
    257250        continueCodePositions.clear();
    258         _continueCodePositions_ObpOld.clear();
    259251    }
    260252    void ContinueAreaBegin()
    261253    {
    262254        continueCodePositions.push_back( pNativeCode->GetSize() );
    263 
    264         extern int obp;
    265         _continueCodePositions_ObpOld.push_back( obp );
    266255    }
    267256    void ContinueAreaEnd()
    268257    {
    269258        continueCodePositions.pop_back();
    270         _continueCodePositions_ObpOld.pop_back();
    271     }
    272     long GetContinueCodePosOld() const
    273     {
    274         if( _continueCodePositions_ObpOld.size() == 0 )
    275         {
    276             return -1;
    277         }
    278         return _continueCodePositions_ObpOld[_continueCodePositions_ObpOld.size()-1];
    279259    }
    280260   
     
    489469    void PutOld( const NativeCode &nativeCode )
    490470    {
    491         pNativeCode->Put( nativeCode, true );
     471        pNativeCode->Put( nativeCode );
    492472    }
    493473    void PutOld( char c )
  • trunk/abdev/BasicCompiler_Common/include/NativeCode.h

    r273 r276  
    66
    77#include <BoostSerializationSupport.h>
    8 
    9 void ObpPlus( int step = 1 );
    108
    119class UserProc;
     
    270268    {
    271269    }
    272     NativeCode( const NativeCode &nativeCode, bool isOpBuffer )
     270    NativeCode( const NativeCode &nativeCode )
    273271        : allocateSize( 8192 )
    274272        , codeBuffer( (char *)malloc( allocateSize ) )
    275273        , size( 0 )
    276274    {
    277         Put( nativeCode, isOpBuffer );
    278     }
    279     NativeCode( const char *codeBuffer, int size, bool isOpBuffer )
     275        Put( nativeCode );
     276    }
     277    NativeCode( const char *codeBuffer, int size )
    280278        : allocateSize( 8192 )
    281279        , codeBuffer( (char *)malloc( allocateSize ) )
    282280        , size( 0 )
    283281    {
    284         Put( codeBuffer, size, isOpBuffer );
     282        Put( codeBuffer, size );
    285283    }
    286284    ~NativeCode()
     
    296294    {
    297295        Clear();
    298         Put( nativeCode, false );
     296        Put( nativeCode );
    299297    }
    300298
     
    316314        return *(long *)(this->codeBuffer+codePos);
    317315    }
    318     long _GetLong_ObpOld( int _obpOld ) const
    319     {
    320         extern char *OpBuffer;
    321         return *(long *)(OpBuffer+_obpOld);
    322     }
    323316
    324317    void Overwrite( int codePos, char c )
     
    326319        codeBuffer[codePos] = c;
    327320    }
    328     void OverwriteOld( int _obpOld, char c )
    329     {
    330         // 未完成
    331         extern char *OpBuffer;
    332         OpBuffer[_obpOld] = c;
    333     }
    334321    void Overwrite( int codePos, long newLongValue )
    335322    {
    336323        *(long *)(this->codeBuffer+codePos) = newLongValue;
    337324    }
    338     void OverwriteOld( int _obpOld, long newLongValue )
    339     {
    340         // 未完成
    341         extern char *OpBuffer;
    342         *(long *)(OpBuffer+_obpOld) = newLongValue;
    343     }
    344 
    345     void Put( const char *codeBuffer, int size, bool isOpBuffer = true )
     325
     326    void Put( const char *codeBuffer, int size )
    346327    {
    347328        Realloc( this->size + size );
     
    349330        memcpy( this->codeBuffer + this->size, codeBuffer, size );
    350331        this->size += size;
    351 
    352         // 未完成
    353         if( isOpBuffer )
    354         {
    355             extern char *OpBuffer;
    356             extern int obp;
    357             memcpy( OpBuffer + obp, codeBuffer, size );
    358             ObpPlus( size );
    359         }
    360     }
    361     void Put( const NativeCode &nativeCode, bool isOpBuffer );
     332    }
     333    void Put( const NativeCode &nativeCode );
    362334    void Put( _int64 i64data )
    363335    {
     
    373345        *((long *)(codeBuffer+size))=l;
    374346        size += sizeof(long);
    375 
    376 
    377 
    378         // 未完成
    379         switch( scheduleType )
    380         {
    381         case Schedule::None:
    382             // 何もしない
    383             break;
    384         case Schedule::GlobalVar:
    385             extern CSchedule *pobj_GlobalVarSchedule;
    386             pobj_GlobalVarSchedule->add();
    387             break;
    388         case Schedule::DataTable:
    389             extern CSchedule *pobj_DataTableSchedule;
    390             pobj_DataTableSchedule->add();
    391             break;
    392         case Schedule::Relocation:
    393             // 未完成
    394             break;
    395         default:
    396             Jenga::Throw( "scheduleTypeが無効な値を保持している" );
    397             break;
    398         }
    399         extern char *OpBuffer;
    400         extern int obp;
    401         *((long *)(OpBuffer+obp))=l;
    402         ObpPlus( sizeof(long) );
    403347    }
    404348    void PutUserProcSchedule( const UserProc *pUserProc, bool isCall );
     
    412356        Realloc( size + 1 );
    413357        codeBuffer[size++] = c;
    414 
    415 
    416 
    417         // 未完成
    418         extern char *OpBuffer;
    419         extern int obp;
    420         OpBuffer[obp]=c;
    421         ObpPlus();
    422358    }
    423359
  • trunk/abdev/BasicCompiler_Common/include/Procedure.h

    r271 r276  
    373373        return *pCompilingUserProc;
    374374    }
    375 
    376 
    377 
    378     mutable long _beginOpAddressOld;
    379     mutable long _endOpAddressOld;
    380375};
    381376
  • trunk/abdev/BasicCompiler_Common/include/Prototype.h

    r215 r276  
    3030    {
    3131        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Symbol );
     32        ar & BOOST_SERIALIZATION_NVP( isUsing );
    3233    }
    3334
  • trunk/abdev/BasicCompiler_Common/include/option.h

    r270 r276  
    3434
    3535    // モジュールサイズに関するログを生成する
    36     //#define USE_TRACE_FOR_SIZE
     36    #define USE_TRACE_FOR_SIZE
    3737
    3838    // XMLシリアライズに関するログを生成する
Note: See TracChangeset for help on using the changeset viewer.