* moved generic code from n386cal to ncgcal, i386 now also

uses the generic ncgcal
This commit is contained in:
peter 2003-04-04 15:38:56 +00:00
parent 3c5e8e2b07
commit 6a16389f67
5 changed files with 611 additions and 1789 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1938,6 +1938,14 @@ type
tcallparanode(left).insert_typeconv(tparaitem(procdefinition.Para.first),true); tcallparanode(left).insert_typeconv(tparaitem(procdefinition.Para.first),true);
end; end;
{ direct call to inherited abstract method, then we
can already give a error in the compiler instead
of a runtime error }
if assigned(methodpointer) and
(methodpointer.nodetype=typen) and
(po_abstractmethod in procdefinition.procoptions) then
CGMessage(cg_e_cant_call_abstract_method);
errorexit: errorexit:
aktcallprocdef:=oldcallprocdef; aktcallprocdef:=oldcallprocdef;
end; end;
@ -2399,7 +2407,11 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.131 2003-03-17 18:54:23 peter Revision 1.132 2003-04-04 15:38:56 peter
* moved generic code from n386cal to ncgcal, i386 now also
uses the generic ncgcal
Revision 1.131 2003/03/17 18:54:23 peter
* fix missing self setting for method to procvar conversion in * fix missing self setting for method to procvar conversion in
tp_procvar mode tp_procvar mode

File diff suppressed because it is too large Load Diff

View File

@ -32,7 +32,7 @@ interface
type type
tppccallnode = class(tcgcallnode) tppccallnode = class(tcgcallnode)
function pass_1 : tnode;override; function pass_1 : tnode;override;
procedure load_framepointer;override; procedure push_framepointer;override;
end; end;
implementation implementation
@ -71,7 +71,7 @@ implementation
end; end;
end; end;
procedure tppccallnode.load_framepointer; procedure tppccallnode.push_framepointer;
begin begin
{ {
@ -111,7 +111,11 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.4 2002-12-05 14:28:12 florian Revision 1.5 2003-04-04 15:38:56 peter
* moved generic code from n386cal to ncgcal, i386 now also
uses the generic ncgcal
Revision 1.4 2002/12/05 14:28:12 florian
* some variant <-> dyn. array stuff * some variant <-> dyn. array stuff
Revision 1.3 2002/11/25 17:43:28 peter Revision 1.3 2002/11/25 17:43:28 peter

View File

@ -31,7 +31,7 @@ type
which is part of the stardrad calling mechanism. This function will do nothing. which is part of the stardrad calling mechanism. This function will do nothing.
the frame pointer register is the stack pointer register of the caller, and is the frame pointer register is the stack pointer register of the caller, and is
set when generating function prologue in cgcpu.tcgSPARC.g_stackframe_entry} set when generating function prologue in cgcpu.tcgSPARC.g_stackframe_entry}
procedure load_framepointer;override; procedure push_framepointer;override;
end; end;
implementation implementation
uses uses
@ -54,7 +54,7 @@ function TSparcCallNode.pass_1:TNode;
then then
TSparcProcInfo(procinfo).maxpushedparasize:=datasize; TSparcProcInfo(procinfo).maxpushedparasize:=datasize;
end; end;
procedure TSparcCallNode.load_framepointer; procedure TSparcCallNode.push_framepointer;
begin begin
InternalError(2002101000); InternalError(2002101000);
end; end;
@ -63,7 +63,11 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.8 2003-02-05 22:44:55 mazen Revision 1.9 2003-04-04 15:38:56 peter
* moved generic code from n386cal to ncgcal, i386 now also
uses the generic ncgcal
Revision 1.8 2003/02/05 22:44:55 mazen
* making UNIT lower case. * making UNIT lower case.
Revision 1.7 2003/02/04 21:50:54 mazen Revision 1.7 2003/02/04 21:50:54 mazen