Ignore:
Timestamp:
Jul 22, 2007, 4:58:47 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/NumOpe_TypeOperation.cpp

    r224 r226  
    1111    if(type==DEF_LONG){
    1212        //movsxd reg64,reg32
    13         op_movsxd(reg,reg);
     13        compiler.codeGenerator.op_movsxd(reg,reg);
    1414    }
    1515    else if(type==DEF_DWORD){
     
    1818    else if(type==DEF_INTEGER || (Smoothie::IsUnicode()&&type==DEF_CHAR)){
    1919        //movsx reg64,reg16
    20         op_movsx64_FromReg16(reg,reg);
     20        compiler.codeGenerator.op_movsx64_FromReg16(reg,reg);
    2121    }
    2222    else if(type==DEF_WORD){
    2323        //and reg,000000000000FFFFh
    24         op_and64_value(reg,(int)0xFFFF);
     24        compiler.codeGenerator.op_and64_value(reg,(int)0xFFFF);
    2525    }
    2626    else if(type==DEF_SBYTE || (Smoothie::IsUnicode()==false&&type==DEF_CHAR)){
    2727        //movsx reg64,reg8
    28         op_movsx64_FromReg8(reg,reg);
     28        compiler.codeGenerator.op_movsx64_FromReg8(reg,reg);
    2929    }
    3030    else if(type==DEF_BYTE || type==DEF_BOOLEAN){
    3131        //and reg,00000000000000FFh
    32         op_and64_value(reg,(int)0x00FF);
     32        compiler.codeGenerator.op_and64_value(reg,(int)0x00FF);
    3333    }
    3434}
     
    3636    if(type==DEF_INTEGER || (Smoothie::IsUnicode()&&type==DEF_CHAR)){
    3737        //movsx reg32,reg16
    38         op_movsx32_FromReg16(reg,reg);
     38        compiler.codeGenerator.op_movsx32_FromReg16(reg,reg);
    3939    }
    4040    else if(type==DEF_WORD){
    4141        //and reg,0000FFFFh
    42         op_and32_value(reg,(int)0xFFFF);
     42        compiler.codeGenerator.op_and32_value(reg,(int)0xFFFF);
    4343    }
    4444    else if(type==DEF_SBYTE || (Smoothie::IsUnicode()==false&&type==DEF_CHAR)){
    4545        //movsx reg32,reg8
    46         op_movsx32_FromReg8(reg,reg);
     46        compiler.codeGenerator.op_movsx32_FromReg8(reg,reg);
    4747    }
    4848    else if(type==DEF_BYTE || type==DEF_BOOLEAN){
    4949        //and reg,000000FFh
    50         op_and32_value(reg,(int)0xFF);
     50        compiler.codeGenerator.op_and32_value(reg,(int)0xFF);
    5151    }
    5252}
     
    5454    if(type==DEF_SBYTE || (Smoothie::IsUnicode()==false&&type==DEF_CHAR)){
    5555        //movsx reg16,reg8
    56         op_movsx16_FromReg8(reg,reg);
     56        compiler.codeGenerator.op_movsx16_FromReg8(reg,reg);
    5757    }
    5858    else if(type==DEF_BYTE){
    5959        //and reg,000000FFh
    60         op_and32_value(reg,(int)0xFF);
     60        compiler.codeGenerator.op_and32_value(reg,(int)0xFF);
    6161    }
    6262}
     
    7070
    7171        //cvtss2sd
    72         op_cvtss2sd(xmm_reg,xmm_reg);
     72        compiler.codeGenerator.op_cvtss2sd(xmm_reg,xmm_reg);
    7373    }
    7474    else if(Is64Type(type)){
     
    7676
    7777        //cvtsi2sd xmm_reg,reg
    78         op_cvtsi2sd_reg(sizeof(_int64),xmm_reg,general_reg);
     78        compiler.codeGenerator.op_cvtsi2sd_reg(sizeof(_int64),xmm_reg,general_reg);
    7979
    8080        if(type==DEF_QWORD){
     
    8282
    8383            //test reg,reg
    84             op_test(general_reg,general_reg);
     84            compiler.codeGenerator.op_test(general_reg,general_reg);
    8585
    8686            //jge 9
     
    109109
    110110        //cvtsi2sd xmm_reg,reg
    111         op_cvtsi2sd_reg(sizeof(_int64),xmm_reg,general_reg);
     111        compiler.codeGenerator.op_cvtsi2sd_reg(sizeof(_int64),xmm_reg,general_reg);
    112112    }
    113113    else{
     
    118118
    119119        //cvtsi2sd xmm_reg,reg
    120         op_cvtsi2sd_reg(sizeof(long),xmm_reg,general_reg);
     120        compiler.codeGenerator.op_cvtsi2sd_reg(sizeof(long),xmm_reg,general_reg);
    121121    }
    122122}
     
    126126
    127127        //cvtsd2ss
    128         op_cvtsd2ss(xmm_reg,xmm_reg);
     128        compiler.codeGenerator.op_cvtsd2ss(xmm_reg,xmm_reg);
    129129    }
    130130    else if(type==DEF_SINGLE){
     
    135135
    136136        //cvtsi2ss xmm_reg,reg
    137         op_cvtsi2ss_reg(sizeof(_int64),xmm_reg,general_reg);
     137        compiler.codeGenerator.op_cvtsi2ss_reg(sizeof(_int64),xmm_reg,general_reg);
    138138
    139139        if(type==DEF_QWORD){
     
    141141
    142142            //test reg,reg
    143             op_test(general_reg,general_reg);
     143            compiler.codeGenerator.op_test(general_reg,general_reg);
    144144
    145145            //jge 9
     
    168168
    169169        //cvtsi2ss xmm_reg,reg
    170         op_cvtsi2ss_reg(sizeof(_int64),xmm_reg,general_reg);
     170        compiler.codeGenerator.op_cvtsi2ss_reg(sizeof(_int64),xmm_reg,general_reg);
    171171    }
    172172    else{
     
    177177
    178178        //cvtsi2ss xmm_reg,reg
    179         op_cvtsi2ss_reg(sizeof(long),xmm_reg,general_reg);
     179        compiler.codeGenerator.op_cvtsi2ss_reg(sizeof(long),xmm_reg,general_reg);
    180180    }
    181181}
     
    185185        if(Is64Type(NewType)){
    186186            //cvttsd2si reg,xmm_reg
    187             op_cvttsd2si_xmm(sizeof(_int64),reg,xmm_reg);
     187            compiler.codeGenerator.op_cvttsd2si_xmm(sizeof(_int64),reg,xmm_reg);
    188188        }
    189189        else{
    190190            //cvttsd2si reg,xmm_reg
    191             op_cvttsd2si_xmm(sizeof(long),reg,xmm_reg);
     191            compiler.codeGenerator.op_cvttsd2si_xmm(sizeof(long),reg,xmm_reg);
    192192        }
    193193    }
     
    195195        if(Is64Type(NewType)){
    196196            //cvttss2si reg,xmm_reg
    197             op_cvttss2si_xmm(sizeof(_int64),reg,xmm_reg);
     197            compiler.codeGenerator.op_cvttss2si_xmm(sizeof(_int64),reg,xmm_reg);
    198198        }
    199199        else{
    200200            //cvttss2si reg,xmm_reg
    201             op_cvttss2si_xmm(sizeof(long),reg,xmm_reg);
     201            compiler.codeGenerator.op_cvttss2si_xmm(sizeof(long),reg,xmm_reg);
    202202        }
    203203    }
Note: See TracChangeset for help on using the changeset viewer.