Changeset 55 in dev for BasicCompiler32/NumOpe.cpp


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
  • BasicCompiler32/NumOpe.cpp

    r51 r55  
    3939        op_push(REG_EAX);
    4040    }
    41     else if(type==DEF_INTEGER){
     41    else if(type==DEF_INTEGER || (isUnicode&&type==DEF_CHAR)){
    4242        //movsx ebx,ax
    4343        OpBuffer[obp++]=(char)0x0F;
     
    4848        op_push(REG_EBX);
    4949    }
    50     else if(type==DEF_CHAR){
     50    else if(type==DEF_SBYTE || (isUnicode==false&&type==DEF_CHAR)){
    5151        //movsx ebx,al
    5252        OpBuffer[obp++]=(char)0x0F;
     
    418418                            PushLongVariable(&RelativeVar);
    419419                        }
    420                         else if(i2==DEF_INTEGER){
     420                        else if(i2==DEF_INTEGER || (isUnicode&&i2==DEF_CHAR)){
    421421                            PushIntegerVariable(&RelativeVar);
    422422                        }
     
    424424                            PushWordVariable(&RelativeVar);
    425425                        }
    426                         else if(i2==DEF_CHAR){
     426                        else if(i2==DEF_SBYTE || (isUnicode==false&&i2==DEF_CHAR)){
    427427                            PushCharVariable(&RelativeVar);
    428428                        }
     
    739739            i3=(long)i64data;
    740740
    741             if(i2==DEF_CHAR||i2==DEF_BYTE||i2==DEF_BOOLEAN) i3=i3&0x000000FF;
    742             if(i2==DEF_INTEGER||i2==DEF_WORD) i3=i3&0x0000FFFF;
     741            if(i2==DEF_SBYTE||i2==DEF_BYTE||i2==DEF_BOOLEAN || (isUnicode==false&&i2==DEF_CHAR)) i3=i3&0x000000FF;
     742            if(i2==DEF_INTEGER||i2==DEF_WORD || (isUnicode&&i2==DEF_CHAR)) i3=i3&0x0000FFFF;
    743743
    744744            //push term
Note: See TracChangeset for help on using the changeset viewer.