Changeset 68


Ignore:
Timestamp:
Oct 11, 2015, 6:28:24 PM (9 years ago)
Author:
chronos
Message:
  • Modified: Used jump instructions parameter instead of special sourcejump auxiliary array.
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormMain.lfm

    r67 r68  
    11object FormMain: TFormMain
    2   Left = 408
     2  Left = 490
    33  Height = 586
    4   Top = 311
     4  Top = 315
    55  Width = 860
    66  Caption = 'LazFuck'
  • trunk/LazFuckIDE.lpi

    r67 r68  
    107107        <HasResources Value="True"/>
    108108        <ResourceBaseClass Value="Form"/>
    109         <UnitName Value="UFormMain"/>
    110109      </Unit1>
    111110      <Unit2>
     
    115114        <HasResources Value="True"/>
    116115        <ResourceBaseClass Value="Form"/>
    117         <UnitName Value="UFormOptions"/>
    118116      </Unit2>
    119117      <Unit3>
     
    123121        <HasResources Value="True"/>
    124122        <ResourceBaseClass Value="Form"/>
    125         <UnitName Value="UFormCPU"/>
    126123      </Unit3>
    127124      <Unit4>
     
    135132        <Filename Value="UTarget.pas"/>
    136133        <IsPartOfProject Value="True"/>
    137         <UnitName Value="UTarget"/>
    138134      </Unit5>
    139135      <Unit6>
    140136        <Filename Value="Target\UTargetC.pas"/>
    141137        <IsPartOfProject Value="True"/>
    142         <UnitName Value="UTargetC"/>
    143138      </Unit6>
    144139      <Unit7>
    145140        <Filename Value="Target\UTargetDelphi.pas"/>
    146141        <IsPartOfProject Value="True"/>
    147         <UnitName Value="UTargetDelphi"/>
    148142      </Unit7>
    149143      <Unit8>
    150144        <Filename Value="Target\UTargetInterpretter.pas"/>
    151145        <IsPartOfProject Value="True"/>
    152         <UnitName Value="UTargetInterpretter"/>
    153146      </Unit8>
    154147      <Unit9>
    155148        <Filename Value="Target\UTargetPHP.pas"/>
    156149        <IsPartOfProject Value="True"/>
    157         <UnitName Value="UTargetPHP"/>
    158150      </Unit9>
    159151      <Unit10>
     
    163155        <HasResources Value="True"/>
    164156        <ResourceBaseClass Value="Form"/>
    165         <UnitName Value="UFormOutput"/>
    166157      </Unit10>
    167158      <Unit11>
     
    171162        <HasResources Value="True"/>
    172163        <ResourceBaseClass Value="Form"/>
    173         <UnitName Value="UFormInput"/>
    174164      </Unit11>
    175165      <Unit12>
     
    179169        <HasResources Value="True"/>
    180170        <ResourceBaseClass Value="Form"/>
    181         <UnitName Value="UFormMemory"/>
    182171      </Unit12>
    183172      <Unit13>
     
    186175        <ComponentName Value="FormMessages"/>
    187176        <ResourceBaseClass Value="Form"/>
    188         <UnitName Value="UFormMessages"/>
    189177      </Unit13>
    190178      <Unit14>
    191179        <Filename Value="Target\UTargetJava.pas"/>
    192180        <IsPartOfProject Value="True"/>
    193         <UnitName Value="UTargetJava"/>
    194181      </Unit14>
    195182      <Unit15>
     
    199186        <HasResources Value="True"/>
    200187        <ResourceBaseClass Value="Form"/>
    201         <UnitName Value="UFormSourceCode"/>
    202188      </Unit15>
    203189      <Unit16>
     
    207193        <HasResources Value="True"/>
    208194        <ResourceBaseClass Value="Form"/>
    209         <UnitName Value="UFormTargetCode"/>
    210195      </Unit16>
    211196      <Unit17>
     
    215200        <HasResources Value="True"/>
    216201        <ResourceBaseClass Value="Form"/>
    217         <UnitName Value="UFormTargetOptions"/>
    218202      </Unit17>
    219203      <Unit18>
     
    223207        <HasResources Value="True"/>
    224208        <ResourceBaseClass Value="DataModule"/>
    225         <UnitName Value="UCore"/>
    226209      </Unit18>
    227210      <Unit19>
    228211        <Filename Value="Target\UTargetFPC.pas"/>
    229212        <IsPartOfProject Value="True"/>
    230         <UnitName Value="UTargetFPC"/>
    231213      </Unit19>
    232214      <Unit20>
     
    236218        <HasResources Value="True"/>
    237219        <ResourceBaseClass Value="Form"/>
    238         <UnitName Value="UFormLog"/>
    239220      </Unit20>
    240221      <Unit21>
    241222        <Filename Value="UProject.pas"/>
    242223        <IsPartOfProject Value="True"/>
    243         <UnitName Value="UProject"/>
    244224      </Unit21>
    245225      <Unit22>
    246226        <Filename Value="UBFTarget.pas"/>
    247227        <IsPartOfProject Value="True"/>
    248         <UnitName Value="UBFTarget"/>
    249228      </Unit22>
    250229    </Units>
  • trunk/Target/UTargetInterpretter.pas

    r66 r68  
    5555  public
    5656    FProgramBreakpoints: array of Boolean;
    57     SourceJump: array of Integer;
    5857    SourceBreakpoint: array of Boolean;
    5958    Memory: array of Integer;
     
    176175  I: Integer;
    177176begin
    178   SetLength(SourceJump, Length(FProgram));
    179   //FillChar(Pointer(SourceJump)^, Length(SourceJump), 0);
    180   for I := 0 to Length(FProgram) - 1 do
    181     SourceJump[I] := 0;
    182177  SetLength(Loop, 0);
    183178  for I := 0 to Length(FProgram) - 1 do begin
     
    188183      end;
    189184      cmLoopEnd: begin
    190         if SourceJump[I] > 0 then raise Exception.Create(SJumpTableColision);
    191         SourceJump[I] := Loop[High(Loop)];
    192         if SourceJump[Loop[High(Loop)]] > 0 then raise Exception.Create(SJumpTableColision);
    193         SourceJump[Loop[High(Loop)]] := I;
     185        if FProgram[I].Parameter > 0 then
     186          raise Exception.Create(SJumpTableColision);
     187        FProgram[I].Parameter := Loop[High(Loop)];
     188        if FProgram[Loop[High(Loop)]].Parameter > 0 then
     189          raise Exception.Create(SJumpTableColision);
     190        FProgram[Loop[High(Loop)]].Parameter := I;
    194191        SetLength(Loop, Length(Loop) - 1);
    195192      end;
     
    221218begin
    222219  if Memory[MemoryPosition] = 0 then
    223     FProgramIndex := SourceJump[FProgramIndex];
     220    FProgramIndex := FProgram[FProgramIndex].Parameter;
    224221end;
    225222
     
    227224begin
    228225  if Memory[MemoryPosition] > 0 then
    229     FProgramIndex := SourceJump[FProgramIndex] - 1;
     226    FProgramIndex := FProgram[FProgramIndex].Parameter - 1;
    230227end;
    231228
     
    347344    if Step.Operation = soStepOut then begin
    348345      BreakPoints.SetSystem(Step.TargetPosition + 1);
    349       Step := DebugSteps.SearchByTargetPos(SourceJump[Step.TargetPosition]);
     346      Step := DebugSteps.SearchByTargetPos(FProgram[Step.TargetPosition].Parameter);
    350347      BreakPoints.AddSystem(Step.TargetPosition);
    351348    end else
    352349    if Step.Operation = soStepIn then begin
    353350      BreakPoints.SetSystem(Step.TargetPosition + 1);
    354       Step := DebugSteps.SearchByTargetPos(SourceJump[Step.TargetPosition]);
     351      Step := DebugSteps.SearchByTargetPos(FProgram[Step.TargetPosition].Parameter);
    355352      BreakPoints.AddSystem(Step.TargetPosition);
    356353    end else BreakPoints.SetSystem(Step.TargetPosition + 1);
     
    369366    if Step.Operation = soStepOut then begin
    370367      BreakPoints.SetSystem(Step.TargetPosition + 1);
    371       Step := DebugSteps.SearchByTargetPos(SourceJump[Step.TargetPosition]);
     368      Step := DebugSteps.SearchByTargetPos(FProgram[Step.TargetPosition].Parameter);
    372369      BreakPoints.AddSystem(Step.TargetPosition);
    373370    end else
    374371    if Step.Operation = soStepIn then begin
    375       Step := DebugSteps.SearchByTargetPos(SourceJump[Step.TargetPosition]);
     372      Step := DebugSteps.SearchByTargetPos(FProgram[Step.TargetPosition].Parameter);
    376373      BreakPoints.SetSystem(Step.TargetPosition + 1);
    377374    end else BreakPoints.SetSystem(Step.TargetPosition + 1);
  • trunk/UProject.pas

    r62 r68  
    2626{ TProject }
    2727
    28 
    2928procedure TProject.SetOpenned(AValue: Boolean);
    3029begin
Note: See TracChangeset for help on using the changeset viewer.