Changeset 19 in dev for BasicCompiler64/Compile_Var.cpp


Ignore:
Timestamp:
Dec 26, 2006, 8:17:10 AM (17 years ago)
Author:
dai_9181
Message:

64ビットコンパイラでローカル変数の0初期化に対応。
raxまたはrdxを一時保存レジスタとして利用する際に、Mod演算子、\演算子が正常に動作しないバグを修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/Compile_Var.cpp

    r18 r19  
    11811181            }
    11821182            else{
    1183                 //0初期化未完成
     1183                //0初期化
     1184
     1185                //mov r8, 0
     1186                op_zero_reg( REG_R8 );
     1187
     1188                //mov rdx, VarSize
     1189                op_mov_RV( sizeof(_int64), REG_RDX, VarSize );
     1190
     1191                //mov rcx, rsp
     1192                op_mov_RR( REG_RCX, REG_RSP );
     1193
     1194                //add rcx, offset
     1195                op_add64_value( REG_RCX, -pVar->offset );
     1196                obp-=sizeof(long);
     1197                AddLocalVarAddrSchedule();
     1198                obp+=sizeof(long);
     1199
     1200                //call FillMemory
     1201                DECLAREINFO *pdi;
     1202                pdi=GetDeclareHash("FillMemory");
     1203                op_call( pdi );
    11841204            }
    11851205        }
Note: See TracChangeset for help on using the changeset viewer.