mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 23:21:57 +02:00
+ vector unit window
This commit is contained in:
parent
6bae9c8f6d
commit
6c2ea3f2b4
@ -188,6 +188,7 @@ const
|
||||
cmRegisters = 242;
|
||||
cmFPURegisters = 243;
|
||||
cmDoReload = 244;
|
||||
cmVectorRegisters = 245;
|
||||
|
||||
cmNotImplemented = 1000;
|
||||
cmNewFromTemplate = 1001;
|
||||
@ -405,6 +406,7 @@ const
|
||||
hcBreakPointList = hcShift+cmBreakpointList;
|
||||
hcRegistersWindow = hcShift+cmRegisters;
|
||||
hcFPURegisters = hcShift+cmFPURegisters;
|
||||
hcVectorRegisters = hcShift+cmVectorRegisters;
|
||||
|
||||
hcOpenAtCursor = hcShift+cmOpenAtCursor;
|
||||
hcBrowseAtCursor = hcShift+cmBrowseAtCursor;
|
||||
@ -472,7 +474,10 @@ implementation
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.18 2004-12-30 16:14:13 florian
|
||||
Revision 1.19 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.18 2004/12/30 16:14:13 florian
|
||||
* ide version to 1.0.0 changed
|
||||
|
||||
Revision 1.17 2004/11/21 20:53:26 peter
|
||||
|
@ -549,6 +549,8 @@ procedure UpdateDebugViews;
|
||||
{$endif NODEBUG}
|
||||
If assigned(FPUWindow) then
|
||||
FPUWindow^.Update;
|
||||
If assigned(VectorWindow) then
|
||||
VectorWindow^.Update;
|
||||
DeskTop^.UnLock;
|
||||
{$ifdef SUPPORT_REMOTE}
|
||||
PopStatus;
|
||||
@ -3665,7 +3667,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.59 2004-12-22 15:24:06 peter
|
||||
Revision 1.60 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.59 2004/12/22 15:24:06 peter
|
||||
* fixed NODEBUG
|
||||
* set default target to the default target of the compiler
|
||||
|
||||
|
@ -392,6 +392,15 @@ begin
|
||||
end;
|
||||
W:=FPUWindow;
|
||||
end;
|
||||
hcVectorRegisters:
|
||||
begin
|
||||
if VectorWindow=nil then
|
||||
begin
|
||||
New(VectorWindow,Init);
|
||||
Desktop^.Insert(VectorWindow);
|
||||
end;
|
||||
W:=VectorWindow;
|
||||
end;
|
||||
hcRegistersWindow:
|
||||
begin
|
||||
if RegistersWindow=nil then
|
||||
@ -550,6 +559,7 @@ begin
|
||||
(P^.HelpCtx=hcStackWindow) or
|
||||
(P^.HelpCtx=hcRegistersWindow) or
|
||||
(P^.HelpCtx=hcFPURegisters) or
|
||||
(P^.HelpCtx=hcVectorRegisters) or
|
||||
(P^.HelpCtx=hcWatchesWindow) or
|
||||
(P^.HelpCtx=hcBreakpointListWindow) or
|
||||
(P^.HelpCtx=hcASCIITableWindow)
|
||||
@ -950,7 +960,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.13 2004-12-29 20:12:25 florian
|
||||
Revision 1.14 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.13 2004/12/29 20:12:25 florian
|
||||
* packed removed for sparc and co.
|
||||
|
||||
Revision 1.12 2004/12/22 15:24:07 peter
|
||||
|
@ -89,6 +89,7 @@ type
|
||||
procedure DoAddWatch;
|
||||
procedure DoShowRegisters;
|
||||
procedure DoShowFPU;
|
||||
procedure DoShowVector;
|
||||
function AskRecompileIfModified:boolean;
|
||||
procedure Messages;
|
||||
procedure Calculator;
|
||||
@ -377,21 +378,23 @@ begin
|
||||
{$ifdef SUPPORT_REMOTE}
|
||||
NewItem(menu_debug_remote,'', kbNoKey, cmTransferRemote, hcTransferRemote,
|
||||
{$endif SUPPORT_REMOTE}
|
||||
NewItem(menu_debug_registers,'', kbNoKey, cmRegisters, hcRegistersWindow,
|
||||
NewItem(menu_debug_fpu_registers,'', kbNoKey, cmFPURegisters, hcRegistersWindow,
|
||||
NewItem(menu_debug_addwatch,menu_key_debug_addwatch, kbCtrlF7, cmAddWatch, hcAddWatch,
|
||||
NewItem(menu_debug_watches,'', kbNoKey, cmWatches, hcWatchesWindow,
|
||||
NewItem(menu_debug_breakpoint,menu_key_debug_breakpoint, kbCtrlF8, cmToggleBreakpoint, hcToggleBreakpoint,
|
||||
NewItem(menu_debug_breakpointlist,'', kbNoKey, cmBreakpointList, hcBreakpointList,
|
||||
NewItem(menu_debug_callstack,menu_key_debug_callstack, kbCtrlF3, cmStack, hcStackWindow,
|
||||
NewLine(
|
||||
NewItem(menu_debug_disassemble,'', kbNoKey, cmDisassemble, hcStackWindow,
|
||||
NewItem(menu_debug_registers,'', kbNoKey, cmRegisters, hcRegistersWindow,
|
||||
NewItem(menu_debug_fpu_registers,'', kbNoKey, cmFPURegisters, hcFPURegisters,
|
||||
NewItem(menu_debug_vector_registers,'', kbNoKey, cmVectorRegisters, hcVectorRegisters,
|
||||
NewLine(
|
||||
NewItem(menu_debug_gdbwindow,'', kbNoKey, cmOpenGDBWindow, hcOpenGDBWindow,
|
||||
nil
|
||||
{$ifdef SUPPORT_REMOTE}
|
||||
)
|
||||
{$endif SUPPORT_REMOTE}
|
||||
)))))))))))))),
|
||||
)))))))))))))))),
|
||||
NewSubMenu(menu_tools, hcToolsMenu, NewMenu(
|
||||
NewItem(menu_tools_messages,menu_key_tools_messages, kbF11, cmToolsMessages, hcToolsMessages,
|
||||
NewItem(menu_tools_msgnext,menu_key_tools_msgnext, kbAltF8, cmToolsMsgNext, hcToolsMsgNext,
|
||||
@ -701,6 +704,7 @@ begin
|
||||
cmOpenGDBWindow : DoOpenGDBWindow;
|
||||
cmRegisters : DoShowRegisters;
|
||||
cmFPURegisters : DoShowFPU;
|
||||
cmVectorRegisters : DoShowVector;
|
||||
{ -- Options menu -- }
|
||||
cmSwitchesMode : SetSwitchesMode;
|
||||
cmCompiler : DoCompilerSwitch;
|
||||
@ -1246,7 +1250,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.36 2005-01-07 21:52:23 florian
|
||||
Revision 1.37 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.36 2005/01/07 21:52:23 florian
|
||||
* proper stepping in disassembler window now possible
|
||||
+ disassembler window to menu added
|
||||
|
||||
|
@ -172,6 +172,19 @@ begin
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
|
||||
procedure TIDEApp.DoShowVector;
|
||||
begin
|
||||
{$ifdef NODEBUG}
|
||||
NoDebugger;
|
||||
{$else}
|
||||
If not assigned(VectorWindow) then
|
||||
InitVectorWindow
|
||||
else
|
||||
VectorWindow^.MakeFirst;
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
procedure TIDEApp.DoShowBreakpointList;
|
||||
begin
|
||||
{$ifdef NODEBUG}
|
||||
@ -245,7 +258,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.7 2005-01-07 21:52:23 florian
|
||||
Revision 1.8 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.7 2005/01/07 21:52:23 florian
|
||||
* proper stepping in disassembler window now possible
|
||||
+ disassembler window to menu added
|
||||
|
||||
|
@ -86,6 +86,7 @@ begin
|
||||
hcStackWindow,
|
||||
hcRegistersWindow,
|
||||
hcFPURegisters,
|
||||
hcVectorRegisters,
|
||||
hcClipboardWindow,
|
||||
hcASCIITableWindow,
|
||||
hcUserScreenWindow,
|
||||
@ -258,7 +259,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.6 2004-11-08 20:28:26 peter
|
||||
Revision 1.7 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.6 2004/11/08 20:28:26 peter
|
||||
* Breakpoints are now deleted when removed from source, disabling is
|
||||
still possible from the breakpoint list
|
||||
* COMPILER_1_0, FVISION, GABOR defines removed, only support new
|
||||
|
414
ide/fpregs.pas
414
ide/fpregs.pas
@ -129,10 +129,70 @@ uses
|
||||
destructor Done; virtual;
|
||||
end;
|
||||
|
||||
tssereg = record
|
||||
case byte of
|
||||
1 : (bytearray : array[0..15] of byte);
|
||||
2 : (wordarray : array[0..7] of word);
|
||||
3 : (dwordarray : array[0..3] of dword);
|
||||
4 : (qwordarray : array[0..1] of qword);
|
||||
5 : (twordfield : array[0..1] of qword);
|
||||
6 : (singlearray : array[0..3] of single);
|
||||
7 : (doublearray : array[0..1] of double);
|
||||
end;
|
||||
|
||||
tmmxreg = record
|
||||
case byte of
|
||||
1 : (bytearray : array[0..7] of byte);
|
||||
2 : (wordarray : array[0..3] of word);
|
||||
3 : (dwordarray : array[0..1] of dword);
|
||||
4 : (qwordfield : qword);
|
||||
6 : (singlearray : array[0..1] of single);
|
||||
end;
|
||||
|
||||
TVectorRegs = record
|
||||
{$ifndef test_generic_cpu}
|
||||
{$ifdef I386}
|
||||
xmm : array[0..7] of string;
|
||||
mmx : array[0..7] of string;
|
||||
mxcsr : string;
|
||||
{$endif I386}
|
||||
{$endif not test_generic_cpu}
|
||||
{$ifndef cpu_known}
|
||||
vreg : array [0..MaxRegs-1] of string;
|
||||
{$endif not cpu_known}
|
||||
end;
|
||||
|
||||
|
||||
PVectorView = ^TVectorView;
|
||||
TVectorView = object(TView)
|
||||
NewReg,OldReg : TVectorRegs;
|
||||
InDraw : boolean;
|
||||
GDBCount : longint;
|
||||
{$ifndef cpu_known}
|
||||
UseInfoFloat : boolean;
|
||||
{$endif not cpu_known}
|
||||
constructor Init(var Bounds: TRect);
|
||||
procedure Draw;virtual;
|
||||
destructor Done; virtual;
|
||||
end;
|
||||
|
||||
PVectorWindow = ^TVectorWindow;
|
||||
TVectorWindow = Object(TFPDlgWindow)
|
||||
RV : PVectorView;
|
||||
Constructor Init;
|
||||
constructor Load(var S: TStream);
|
||||
procedure Store(var S: TStream);
|
||||
procedure Update; virtual;
|
||||
destructor Done; virtual;
|
||||
end;
|
||||
|
||||
|
||||
procedure InitRegistersWindow;
|
||||
procedure DoneRegistersWindow;
|
||||
procedure InitFPUWindow;
|
||||
procedure DoneFPUWindow;
|
||||
procedure InitVectorWindow;
|
||||
procedure DoneVectorWindow;
|
||||
|
||||
procedure RegisterFPRegsViews;
|
||||
|
||||
@ -146,9 +206,7 @@ uses
|
||||
{$endif NODEBUG}
|
||||
App,Menus,
|
||||
WViews,WEditor,
|
||||
{$ifdef powerpc}
|
||||
wutils, { for inttostr }
|
||||
{$endif powerpc}
|
||||
wutils,
|
||||
FPConst,FPVars,
|
||||
FPString,
|
||||
FPDebug;
|
||||
@ -183,6 +241,13 @@ Const
|
||||
Store: @TFPUView.Store
|
||||
);
|
||||
|
||||
RVectorView: TStreamRec = (
|
||||
ObjType: 1715;
|
||||
VmtLink: Ofs(TypeOf(TVectorView)^);
|
||||
Load: @TVectorView.Load;
|
||||
Store: @TVectorView.Store
|
||||
);
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
TRegistersView
|
||||
@ -1025,6 +1090,320 @@ Const
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
TVectorView
|
||||
****************************************************************************}
|
||||
|
||||
function GetVectorRegs(var rs : TVectorRegs
|
||||
{$ifndef cpu_known}
|
||||
; UseInfoFloat : boolean
|
||||
{$endif not cpu_known}
|
||||
) : boolean;
|
||||
|
||||
var
|
||||
p,po : pchar;
|
||||
p1 : pchar;
|
||||
{$ifndef NODEBUG}
|
||||
reg,value : string;
|
||||
buffer : array[0..255] of char;
|
||||
v : string;
|
||||
res : cardinal;
|
||||
i : longint;
|
||||
err : word;
|
||||
{$endif}
|
||||
|
||||
begin
|
||||
GetVectorRegs:=false;
|
||||
{$ifndef NODEBUG}
|
||||
{$ifndef cpu_known}
|
||||
if UseInfoFloat then
|
||||
begin
|
||||
Debugger^.Command('info vector');
|
||||
if Debugger^.Error then
|
||||
begin
|
||||
UseInfofloat:=false;
|
||||
Debugger^.Command('info all');
|
||||
end;
|
||||
end
|
||||
else
|
||||
{$endif not cpu_known}
|
||||
Debugger^.Command('info vector');
|
||||
if Debugger^.Error then
|
||||
exit
|
||||
else
|
||||
begin
|
||||
po:=StrNew(Debugger^.GetOutput);
|
||||
p:=po;
|
||||
{$ifndef cpu_known}
|
||||
i:=0;
|
||||
{$endif not cpu_known}
|
||||
if assigned(p) then
|
||||
begin
|
||||
fillchar(rs,sizeof(rs),0);
|
||||
p1:=strscan(p,' ');
|
||||
while assigned(p1) do
|
||||
begin
|
||||
strlcopy(buffer,p,p1-p);
|
||||
reg:=strpas(buffer);
|
||||
{$ifndef cpu_known}
|
||||
p1:=strscan(p,#10);
|
||||
if assigned(p1) then
|
||||
begin
|
||||
strlcopy(buffer,p,p1-p);
|
||||
rs.freg[i]:=ExtractTabs(strpas(buffer),8);
|
||||
if i<MaxRegs-1 then
|
||||
inc(i);
|
||||
end;
|
||||
{$else cpu_known}
|
||||
p:=p1;
|
||||
while p^=' ' do
|
||||
inc(p);
|
||||
if p^='$' then
|
||||
p1:=strscan(p,#9)
|
||||
else
|
||||
p1:=strscan(p,#10);
|
||||
strlcopy(buffer,p,p1-p);
|
||||
v:=strpas(buffer);
|
||||
for i:=1 to length(v) do
|
||||
if v[i]=#9 then
|
||||
v[i]:=' ';
|
||||
val(v,res,err);
|
||||
{$ifdef i386}
|
||||
if reg[1]='x' then
|
||||
for i:=0 to 7 do
|
||||
begin
|
||||
if reg='xmm'+inttostr(i) then
|
||||
rs.xmm[i]:=v
|
||||
end
|
||||
else if reg='mxcsr' then
|
||||
rs.mxcsr:=v
|
||||
else if reg[1]='m' then
|
||||
for i:=0 to 7 do
|
||||
begin
|
||||
if reg='mm'+inttostr(i) then
|
||||
rs.mmx[i]:=v;
|
||||
end;
|
||||
{$endif i386}
|
||||
{$ifdef powerpc}
|
||||
{ !!!! fixme }
|
||||
if reg[1]='v' then
|
||||
for i:=0 to 31 do
|
||||
if reg='v'+inttostr(i) then
|
||||
rs.f[i]:=v;
|
||||
{$endif powerpc}
|
||||
{$endif cpu_known}
|
||||
p:=strscan(p1,#10);
|
||||
if assigned(p) then
|
||||
begin
|
||||
p1:=strscan(p,' ');
|
||||
inc(p);
|
||||
end
|
||||
else
|
||||
break;
|
||||
end;
|
||||
{ free allocated memory }
|
||||
strdispose(po);
|
||||
end
|
||||
else
|
||||
exit;
|
||||
end;
|
||||
{ do not open a messagebox for such errors }
|
||||
Debugger^.got_error:=false;
|
||||
GetVectorRegs:=true;
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
constructor TVectorView.Init(var Bounds: TRect);
|
||||
|
||||
begin
|
||||
inherited init(Bounds);
|
||||
GrowMode:=gfGrowHiX or GfGrowHiY;
|
||||
InDraw:=false;
|
||||
FillChar(OldReg,Sizeof(oldreg),#0);
|
||||
FillChar(NewReg,Sizeof(newreg),#0);
|
||||
GDBCount:=-1;
|
||||
{$ifndef cpu_known}
|
||||
UseInfoFloat:=true;
|
||||
{$endif not cpu_known}
|
||||
end;
|
||||
|
||||
procedure TVectorView.Draw;
|
||||
|
||||
var
|
||||
rs : tVectorregs;
|
||||
top : byte;
|
||||
color :byte;
|
||||
ok : boolean;
|
||||
i : byte;
|
||||
const
|
||||
TypeStr : Array[0..3] of string[6] =
|
||||
('Valid ','Zero ','Spec ','Empty ');
|
||||
|
||||
procedure SetColor(Const x,y : string);
|
||||
begin
|
||||
if x=y then
|
||||
color:=7
|
||||
else
|
||||
color:=8;
|
||||
end;
|
||||
|
||||
procedure SetIColor(Const x,y : cardinal);
|
||||
begin
|
||||
if x=y then
|
||||
color:=7
|
||||
else
|
||||
color:=8;
|
||||
end;
|
||||
|
||||
begin
|
||||
inherited draw;
|
||||
{$ifdef NODEBUG}
|
||||
WriteStr(1,0,'<no values available>',7);
|
||||
{$else NODEBUG}
|
||||
If not assigned(Debugger) then
|
||||
begin
|
||||
WriteStr(1,0,'<no values available>',7);
|
||||
exit;
|
||||
end;
|
||||
if InDraw then
|
||||
exit;
|
||||
InDraw:=true;
|
||||
if GDBCount<>Debugger^.RunCount then
|
||||
begin
|
||||
OldReg:=NewReg;
|
||||
OK:=GetVectorRegs(rs
|
||||
{$ifndef cpu_known}
|
||||
,UseInfoFloat
|
||||
{$endif not cpu_known}
|
||||
);
|
||||
NewReg:=rs;
|
||||
GDBCount:=Debugger^.RunCount;
|
||||
end
|
||||
else
|
||||
begin
|
||||
rs:=newreg;
|
||||
OK:=true;
|
||||
end;
|
||||
if OK then
|
||||
begin
|
||||
{$ifdef cpu_known}
|
||||
{$ifdef i386}
|
||||
for i:=0 to 7 do
|
||||
begin
|
||||
SetColor(rs.xmm[i],OldReg.xmm[i]);
|
||||
WriteStr(1,i,'xmm'+IntToStr(i)+' '+rs.xmm[i],color);
|
||||
end;
|
||||
|
||||
SetColor(rs.mxcsr,OldReg.mxcsr);
|
||||
WriteStr(1,i,'mxcsr'+IntToStr(i)+' '+rs.mxcsr,color);
|
||||
|
||||
for i:=0 to 7 do
|
||||
begin
|
||||
SetColor(rs.mmx[i],OldReg.mmx[i]);
|
||||
WriteStr(1,i+8,'mmx'+IntToStr(i)+' '+rs.mmx[i],color);
|
||||
end;
|
||||
{$endif i386}
|
||||
{$ifdef powerpc}
|
||||
for i:=0 to 31 do
|
||||
begin
|
||||
SetColor(rs.f[i],OldReg.f[i]);
|
||||
if i<10 then
|
||||
WriteStr(1,i,'f'+IntToStr(i)+' '+rs.f[i],color)
|
||||
else
|
||||
WriteStr(1,i,'f'+IntToStr(i)+' '+rs.f[i],color);
|
||||
end;
|
||||
{$endif powerpc}
|
||||
{$else not cpu_known}
|
||||
for i:=0 to MaxRegs-1 do
|
||||
begin
|
||||
SetColor(rs.freg[i],OldReg.freg[i]);
|
||||
WriteStr(1,i,rs.freg[i],color);
|
||||
end;
|
||||
{$endif cpu_known}
|
||||
end
|
||||
else
|
||||
WriteStr(0,0,'<debugger error>',7);
|
||||
InDraw:=false;
|
||||
{$endif NODEBUG}
|
||||
end;
|
||||
|
||||
destructor TVectorView.Done;
|
||||
|
||||
begin
|
||||
inherited done;
|
||||
end;
|
||||
|
||||
{****************************************************************************
|
||||
TVectorWindow
|
||||
****************************************************************************}
|
||||
|
||||
constructor TVectorWindow.Init;
|
||||
|
||||
var
|
||||
R : TRect;
|
||||
|
||||
begin
|
||||
Desktop^.GetExtent(R);
|
||||
{$ifdef i386}
|
||||
R.A.X:=R.B.X-60;
|
||||
R.B.Y:=R.A.Y+19;
|
||||
{$endif i386}
|
||||
{$ifdef m68k}
|
||||
R.A.X:=R.B.X-60;
|
||||
R.B.Y:=R.A.Y+14;
|
||||
{$endif m68k}
|
||||
{$ifdef powerpc}
|
||||
R.A.X:=R.B.X-60;
|
||||
R.B.Y:=R.A.Y+33;
|
||||
{$endif powerpc}
|
||||
{$ifndef cpu_known}
|
||||
R.A.X:=R.B.X-60;
|
||||
R.B.Y:=R.A.Y+33;
|
||||
{$endif cpu_known}
|
||||
inherited Init(R,dialog_Vector, wnNoNumber);
|
||||
Flags:=wfClose or wfMove or wfgrow;
|
||||
Palette:=wpCyanWindow;
|
||||
HelpCtx:=hcVectorRegisters;
|
||||
R.Assign(1,1,Size.X-2,Size.Y-2);
|
||||
RV:=new(PVectorView,init(R));
|
||||
Insert(RV);
|
||||
If assigned(VectorWindow) then
|
||||
dispose(VectorWindow,done);
|
||||
VectorWindow:=@Self;
|
||||
Update;
|
||||
end;
|
||||
|
||||
constructor TVectorWindow.Load(var S: TStream);
|
||||
|
||||
begin
|
||||
inherited load(S);
|
||||
GetSubViewPtr(S,RV);
|
||||
If assigned(VectorWindow) then
|
||||
dispose(VectorWindow,done);
|
||||
VectorWindow:=@Self;
|
||||
end;
|
||||
|
||||
procedure TVectorWindow.Store(var S: TStream);
|
||||
|
||||
begin
|
||||
inherited Store(s);
|
||||
PutSubViewPtr(S,RV);
|
||||
end;
|
||||
|
||||
procedure TVectorWindow.Update;
|
||||
|
||||
begin
|
||||
ReDraw;
|
||||
end;
|
||||
|
||||
destructor TVectorWindow.Done;
|
||||
|
||||
begin
|
||||
VectorWindow:=nil;
|
||||
inherited done;
|
||||
end;
|
||||
|
||||
|
||||
procedure InitRegistersWindow;
|
||||
begin
|
||||
if RegistersWindow=nil then
|
||||
@ -1034,6 +1413,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure DoneRegistersWindow;
|
||||
begin
|
||||
if assigned(RegistersWindow) then
|
||||
@ -1043,6 +1423,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure InitFPUWindow;
|
||||
begin
|
||||
if FPUWindow=nil then
|
||||
@ -1052,6 +1433,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure DoneFPUWindow;
|
||||
begin
|
||||
if assigned(FPUWindow) then
|
||||
@ -1062,12 +1444,33 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure InitVectorWindow;
|
||||
begin
|
||||
if VectorWindow=nil then
|
||||
begin
|
||||
new(VectorWindow,init);
|
||||
DeskTop^.Insert(VectorWindow);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure DoneVectorWindow;
|
||||
begin
|
||||
if assigned(VectorWindow) then
|
||||
begin
|
||||
DeskTop^.Delete(VectorWindow);
|
||||
VectorWindow:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure RegisterFPRegsViews;
|
||||
begin
|
||||
RegisterType(RRegistersWindow);
|
||||
RegisterType(RRegistersView);
|
||||
RegisterType(RFPUWindow);
|
||||
RegisterType(RFPUView);
|
||||
RegisterType(RVectorView);
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -1075,7 +1478,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 2004-12-22 15:24:07 peter
|
||||
Revision 1.6 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.5 2004/12/22 15:24:07 peter
|
||||
* fixed NODEBUG
|
||||
* set default target to the default target of the compiler
|
||||
|
||||
|
@ -109,6 +109,7 @@ const
|
||||
menu_debug_remote = '~S~end to remote';
|
||||
menu_debug_registers = '~R~egisters';
|
||||
menu_debug_fpu_registers = '~F~loating Point Unit';
|
||||
menu_debug_vector_registers = '~V~ector Unit';
|
||||
menu_debug_addwatch = '~A~dd Watch';
|
||||
menu_debug_watches = '~W~atches';
|
||||
menu_debug_breakpointlist = 'Breakpoint ~L~ist';
|
||||
@ -327,6 +328,7 @@ const
|
||||
dialog_registers = 'Register View';
|
||||
|
||||
dialog_fpu = 'FPU View';
|
||||
dialog_vector = 'Vector Unit View';
|
||||
|
||||
dialog_callstack = 'Call Stack';
|
||||
|
||||
@ -1061,7 +1063,10 @@ const
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.26 2005-01-07 21:52:23 florian
|
||||
Revision 1.27 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.26 2005/01/07 21:52:23 florian
|
||||
* proper stepping in disassembler window now possible
|
||||
+ disassembler window to menu added
|
||||
|
||||
|
@ -67,6 +67,7 @@ const ClipboardWindow : PClipboardWindow = nil;
|
||||
StackWindow : PStackWindow = nil;
|
||||
RegistersWindow : PRegistersWindow = nil;
|
||||
FPUWindow : PFPUWindow = nil;
|
||||
VectorWindow : PVectorWindow = nil;
|
||||
{$endif NODEBUG}
|
||||
UserScreenWindow : PScreenWindow = nil;
|
||||
|
||||
@ -127,7 +128,10 @@ implementation
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.10 2004-12-22 15:24:07 peter
|
||||
Revision 1.11 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.10 2004/12/22 15:24:07 peter
|
||||
* fixed NODEBUG
|
||||
* set default target to the default target of the compiler
|
||||
|
||||
|
@ -675,6 +675,7 @@ begin
|
||||
(P^.HelpCtx=hcWatchesWindow) or
|
||||
(P^.HelpCtx=hcRegistersWindow) or
|
||||
(P^.HelpCtx=hcFPURegisters) or
|
||||
(P^.HelpCtx=hcVectorRegisters) or
|
||||
(P^.HelpCtx=hcStackWindow) or
|
||||
(P^.HelpCtx=hcBreakpointListWindow) or
|
||||
(P^.HelpCtx=hcASCIITableWindow)
|
||||
@ -737,6 +738,7 @@ begin
|
||||
(P^.HelpCtx <> hcWatchesWindow) and
|
||||
(P^.HelpCtx <> hcStackWindow) and
|
||||
(P^.HelpCtx <> hcRegistersWindow) and
|
||||
(P^.HelpCtx <> hcVectorRegisters) and
|
||||
(P^.HelpCtx <> hcFPURegisters);
|
||||
end;
|
||||
begin
|
||||
@ -1907,6 +1909,7 @@ begin
|
||||
(F^.HelpCtx = hcWatchesWindow) or
|
||||
(F^.HelpCtx = hcStackWindow) or
|
||||
(F^.HelpCtx = hcRegistersWindow) or
|
||||
(F^.HelpCtx = hcVectorRegisters) or
|
||||
(F^.HelpCtx = hcFPURegisters)) do
|
||||
F:=F^.NextView;
|
||||
if F<>@Self then
|
||||
@ -4490,7 +4493,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.54 2005-01-07 19:09:28 florian
|
||||
Revision 1.55 2005-01-08 11:43:18 florian
|
||||
+ vector unit window
|
||||
|
||||
Revision 1.54 2005/01/07 19:09:28 florian
|
||||
* highlight keywords of all language modes
|
||||
|
||||
Revision 1.53 2004/12/22 15:24:07 peter
|
||||
|
Loading…
Reference in New Issue
Block a user