Ignore:
Timestamp:
Feb 13, 2007, 3:14:57 AM (17 years ago)
Author:
dai_9181
Message:

・コマンドラインオプション "/unicode" に対応。
・Unicode文字セットを使用する場合に "UNICODE" が自動的に#defineされるようにしました。
・SByte型(8ビット符号付き整数型)を追加。
・Char型を文字型に変更。
・プロジェクトオプションから「Unicode文字セットを使用する」チェックを選択できるようにしました。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/NumOpe_TypeOperation.cpp

    r36 r55  
    1010        //and reg,00000000FFFFFFFFh
    1111    }
    12     else if(type==DEF_INTEGER){
     12    else if(type==DEF_INTEGER || (isUnicode&&type==DEF_CHAR)){
    1313        //movsx reg64,reg16
    1414        op_movsx64_FromReg16(reg,reg);
     
    1818        op_and64_value(reg,(int)0xFFFF);
    1919    }
    20     else if(type==DEF_CHAR){
     20    else if(type==DEF_SBYTE || (isUnicode==false&&type==DEF_CHAR)){
    2121        //movsx reg64,reg8
    2222        op_movsx64_FromReg8(reg,reg);
     
    2828}
    2929void ExtendTypeTo32(int type,int reg){
    30     if(type==DEF_INTEGER){
     30    if(type==DEF_INTEGER || (isUnicode&&type==DEF_CHAR)){
    3131        //movsx reg32,reg16
    3232        op_movsx32_FromReg16(reg,reg);
     
    3636        op_and32_value(reg,(int)0xFFFF);
    3737    }
    38     else if(type==DEF_CHAR){
     38    else if(type==DEF_SBYTE || (isUnicode==false&&type==DEF_CHAR)){
    3939        //movsx reg32,reg8
    4040        op_movsx32_FromReg8(reg,reg);
     
    4646}
    4747void ExtendTypeTo16(int type,int reg){
    48     if(type==DEF_CHAR){
     48    if(type==DEF_SBYTE || (isUnicode==false&&type==DEF_CHAR)){
    4949        //movsx reg16,reg8
    5050        op_movsx16_FromReg8(reg,reg);
Note: See TracChangeset for help on using the changeset viewer.