Ignore:
Timestamp:
Jul 31, 2007, 4:30:31 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

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

    r253 r254  
    288288private:
    289289    void set_rex(int op_size,int reg,int index_reg,int base_reg);
    290     void set_mod_rm_sib_disp(char mod,int reg,int scale,int index_reg,int base_reg,long disp, Schedule::Type scheduleType = Schedule::None );
    291     void __op_format(int op_size,char op_prefix,char opcode1,char opcode2,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None );
     290    const PertialSchedule *set_mod_rm_sib_disp(char mod,int reg,int scale,int index_reg,int base_reg,long disp, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     291    const PertialSchedule *__op_format(int op_size,char op_prefix,char opcode1,char opcode2,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
    292292public:
    293293    void op_mov_RV                  (int op_size,int reg,long i32data, Schedule::Type scheduleType = Schedule::None );
    294294    void op_mov_RV64                (int reg,_int64 i64data);
    295     void op_mov_RM                  (int op_size,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None );
    296     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 );
    297     void op_mov_MR                  (int op_size,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None );
    298     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 );
    299     void op_mov_MV                  (int op_size,int base_reg,int offset, Schedule::Type offsetScheduleType, BOOL bUseOffset,long i32data);
     295    const PertialSchedule *op_mov_RM        (int op_size,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     296    const PertialSchedule *op_mov_RM_ex     (int op_size,int reg,int base_reg1,int base_reg2,long offset,BOOL bUseOffset, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     297    const PertialSchedule *op_mov_MR        (int op_size,int reg,int base_reg,long offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     298    const PertialSchedule *op_mov_MR_ex     (int op_size,int reg,int base_reg1,int base_reg2,long offset,BOOL bUseOffset, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     299    const PertialSchedule *op_mov_MV        (int op_size,int base_reg,int offset, Schedule::Type offsetScheduleType, bool isPertialSchedule, BOOL bUseOffset,long i32data);
    300300    void op_mov_RR                  (int reg1,int reg2);
    301301    void op_movsxd                  (int reg64,int reg32);
     
    308308    void op_inc                     (int reg);
    309309    void op_dec                     (int reg);
    310     void op_add_RM                  (int op_size,int reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    311     void op_add_RV                  (int reg,long offset, Schedule::Type scheduleType = Schedule::None );
     310    const PertialSchedule *op_add_RM        (int op_size,int reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     311    const PertialSchedule *op_add_RV        (int reg,long offset, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
    312312    void op_add_RR              (int reg1,int reg2);
    313313    void op_add32_reg               (int reg1,int reg2);
     
    334334    void op_cmp_value               (int op_size,int reg,char byte_data);
    335335    void op_setne                   (int reg);
    336     void op_movlpd_MR               (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    337     void op_movlpd_RM               (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
     336    const PertialSchedule *op_movlpd_MR     (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     337    const PertialSchedule *op_movlpd_RM     (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
    338338    void op_movsd_RR                (int xmm_reg1,int xmm_reg2);
    339     void op_movsd_MR                (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
     339    const PertialSchedule *op_movsd_MR      (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
    340340    void op_movss_RR                (int xmm_reg1,int xmm_reg2);
    341     void op_movss_RM                (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
    342     void op_movss_MR                (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None );
     341    const PertialSchedule *op_movss_RM      (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
     342    const PertialSchedule *op_movss_MR      (int xmm_reg,int base_reg,int offset,char mod, Schedule::Type scheduleType = Schedule::None, bool isPertialSchedule = false );
    343343    void op_movd_RX                 (int reg,int xmm_reg);
    344344    void op_cvtsd2ss                (int xmm_reg1,int xmm_reg2);
     
    448448        pNativeCode->Put( l, scheduleType );
    449449    }
     450    const PertialSchedule *PutOld( long l, bool isPertialSchedule )
     451    {
     452        const PertialSchedule *pPertialSchedule;
     453        if( isPertialSchedule )
     454        {
     455            pertialSchedules.push_back( new PertialSchedule( pNativeCode->GetSize(), sizeof(long) ) );
     456            pPertialSchedule = pertialSchedules.back();
     457        }
     458        pNativeCode->Put( l, Schedule::None );
     459        return pPertialSchedule;
     460    }
    450461    void PutOld( const NativeCode &nativeCode )
    451462    {
Note: See TracChangeset for help on using the changeset viewer.