Ignore:
Timestamp:
Jul 25, 2007, 4:04:11 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler_Common/include
Files:
3 edited

Legend:

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

    r208 r232  
    7171    // 静的メソッド
    7272    Methods staticMethods;
     73
     74    //アラインメント値
     75    int fixedAlignment;
    7376
    7477    // XMLシリアライズ用
     
    9396        ar & BOOST_SERIALIZATION_NVP( vtblNum );
    9497        ar & BOOST_SERIALIZATION_NVP( staticMethods );
     98        ar & BOOST_SERIALIZATION_NVP( fixedAlignment );
    9599    }
    96100
    97101    bool isReady;
    98102public:
    99 
    100     //アラインメント値
    101     int iAlign;
    102103
    103104    CClass( const NamespaceScopes &namespaceScopes, const NamespaceScopesCollection &importedNamespaces, const string &name )
     
    107108        , pSuperClass( NULL )
    108109        , isReady( false )
    109         , iAlign( 0 )
     110        , fixedAlignment( 0 )
    110111        , ConstructorMemberSubIndex( -1 )
    111112        , DestructorMemberSubIndex( -1 )
     
    123124        , pSuperClass( NULL )
    124125        , isReady( false )
    125         , iAlign( 0 )
     126        , fixedAlignment( 0 )
    126127        , ConstructorMemberSubIndex( -1 )
    127128        , DestructorMemberSubIndex( -1 )
     
    320321    }
    321322
     323    // ユーザ指定のアラインメント固定値
     324    int GetFixedAlignment() const
     325    {
     326        return fixedAlignment;
     327    }
     328    void SetFixedAlignment( int fixedAlignment )
     329    {
     330        this->fixedAlignment = fixedAlignment;
     331    }
     332
    322333    // メンバの総合サイズを取得
    323334    int GetSize() const;
  • trunk/abdev/BasicCompiler_Common/include/CodeGenerator.h

    r230 r232  
    4141    void __jmp_op_format( char opcode, long offset, int op_size );
    4242public:
    43     void op_mov_RV                  (int op_size,int reg,long i32data);
     43    void op_mov_RV                  (int op_size,int reg,long i32data, Schedule::Type scheduleType = Schedule::None );
    4444    void op_mov_RV64                (int reg,_int64 i64data);
    4545    void op_mov_RM                  (int op_size,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None );
    4646    void op_mov_RM_ex               (int op_size,int reg,int base_reg1,int base_reg2,long offset,BOOL bUseOffset, Schedule::Type scheduleType = Schedule::None );
    47     void op_mov_MR                  (int op_size,int reg,int base_reg,long offset,char mod);
    48     void op_mov_MR_ex               (int op_size,int reg,int base_reg1,int base_reg2,long offset,BOOL bUseOffset);
     47    void op_mov_MR                  (int op_size,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None );
     48    void op_mov_MR_ex               (int op_size,int reg,int base_reg1,int base_reg2,long offset,BOOL bUseOffset, Schedule::Type scheduleType = Schedule::None );
    4949    void op_mov_MV                  (int op_size,int base_reg,int offset,BOOL bUseOffset,long i32data);
    5050    void op_mov_RR                  (int reg1,int reg2);
    51     void op_mov64_ToReg             (int reg,_int64 i64data);
    52     void op_mov64_ToReg             (int reg,long i32data);
    5351    void op_movsxd                  (int reg64,int reg32);
    5452    void op_movsx64_FromReg16       (int reg64,int reg16);
     
    6159    void op_dec                     (int reg);
    6260    void op_add_RM                  (int op_size,int reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    63     void op_add_RV                  (int reg,long offset);
     61    void op_add_RV                  (int reg,long offset, Schedule::Type scheduleType = Schedule::None );
    6462    void op_add_RR              (int reg1,int reg2);
    6563    void op_add32_reg               (int reg1,int reg2);
     
    8684    void op_cmp_value               (int op_size,int reg,char byte_data);
    8785    void op_setne                   (int reg);
    88     void op_movlpd_MR               (int xmm_reg,int base_reg,int offset,char mod);
    89     void op_movlpd_RM               (int xmm_reg,int base_reg,int offset,char mod);
     86    void op_movlpd_MR               (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
     87    void op_movlpd_RM               (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    9088    void op_movsd_RR                (int xmm_reg1,int xmm_reg2);
    91     void op_movsd_MR                (int xmm_reg,int base_reg,int offset,char mod);
     89    void op_movsd_MR                (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    9290    void op_movss_RR                (int xmm_reg1,int xmm_reg2);
    93     void op_movss_RM                (int xmm_reg,int base_reg,int offset,char mod);
    94     void op_movss_MR                (int xmm_reg,int base_reg,int offset,char mod);
     91    void op_movss_RM                (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
     92    void op_movss_MR                (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    9593    void op_movd_RX                 (int reg,int xmm_reg);
    9694    void op_cvtsd2ss                (int xmm_reg1,int xmm_reg2);
  • trunk/abdev/BasicCompiler_Common/include/NativeCode.h

    r228 r232  
    88
    99void AddLocalVarAddrSchedule();
     10void ObpPlus( int step = 1 );
    1011
    1112class Schedule
     
    137138        extern int obp;
    138139        memcpy( OpBuffer + obp, codeBuffer, size );
    139         obp += size;
     140        ObpPlus( size );
    140141    }
    141142    void Put( const NativeCode &nativeCode )
     
    180181        extern int obp;
    181182        *((long *)(OpBuffer+obp))=l;
    182         obp+=sizeof(long);
     183        ObpPlus( sizeof(long) );
    183184    }
    184185    void Put( short s )
     
    196197        extern char *OpBuffer;
    197198        extern int obp;
    198         OpBuffer[obp++]=c;
     199        OpBuffer[obp]=c;
     200        ObpPlus();
    199201    }
    200202};
Note: See TracChangeset for help on using the changeset viewer.