Ignore:
Timestamp:
Jul 18, 2007, 4:23:29 AM (17 years ago)
Author:
dai_9181
Message:

[64bitコンパイラ] スタックフレームが128ビット境界ラインにならないバグを修正

File:
1 edited

Legend:

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

    r206 r220  
    1212    lowest_sp=0;
    1313    now_sp=0;
    14     local_parm_size=0;
    1514    max_parm_size=0;
    1615}
     
    1918    error_check();
    2019}
    21 void CStackFrame::SetLocalParmSize(int size){
    22     local_parm_size=size;
    23 }
    24 int CStackFrame::GetFrameSize(){
     20int CStackFrame::GetFrameSize( int localParamSize ){
    2521    int answer_sp;
    2622
    2723    answer_sp=lowest_sp-max_parm_size;
    2824
    29     if((local_parm_size%0x10)==0){
     25    if((localParamSize%0x10)){
    3026        if((answer_sp%0x10)==0){
    3127            //関数のエントリポイントで128ビット境界ラインに合わせるため
     
    142138    if(max_parm_size<size) max_parm_size=size;
    143139}
    144 void CStackFrame::RunningSchedule(void){
    145     int i;
    146     int all_size;
    147     all_size=GetFrameSize();
    148     for(i=0;i<num;i++){
    149         *((long *)(OpBuffer+pObpValues[i]))+=all_size;
     140void CStackFrame::RunningSchedule( int stackFrameSize ){
     141    for(int i=0;i<num;i++){
     142        *((long *)(OpBuffer+pObpValues[i])) += stackFrameSize;
    150143    }
    151144}
Note: See TracChangeset for help on using the changeset viewer.