mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-08 04:02:18 +01:00
* Fixed internalerror 7843 issue
This commit is contained in:
parent
f574af7331
commit
436e47a87d
@ -818,7 +818,8 @@ implementation
|
|||||||
(methodpointer.resulttype.def.deftype=classrefdef) and
|
(methodpointer.resulttype.def.deftype=classrefdef) and
|
||||||
is_class(tclassrefdef(methodpointer.resulttype.def).pointertype.def) then
|
is_class(tclassrefdef(methodpointer.resulttype.def).pointertype.def) then
|
||||||
cg.a_param_const(exprasmlist,OS_INT,1,paramanager.getintparaloc(1));
|
cg.a_param_const(exprasmlist,OS_INT,1,paramanager.getintparaloc(1));
|
||||||
r.enum:=self_pointer_reg;
|
r.enum:=R_INTREGISTER;
|
||||||
|
r.number:=NR_SELF_POINTER_REG;
|
||||||
cg.a_param_reg(exprasmlist,OS_ADDR,r,paramanager.getintparaloc(1));
|
cg.a_param_reg(exprasmlist,OS_ADDR,r,paramanager.getintparaloc(1));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -1314,7 +1315,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.82 2003-02-19 22:00:15 daniel
|
Revision 1.83 2003-03-06 11:35:50 daniel
|
||||||
|
* Fixed internalerror 7843 issue
|
||||||
|
|
||||||
|
Revision 1.82 2003/02/19 22:00:15 daniel
|
||||||
* Code generator converted to new register notation
|
* Code generator converted to new register notation
|
||||||
- Horribily outdated todo.txt removed
|
- Horribily outdated todo.txt removed
|
||||||
|
|
||||||
|
|||||||
@ -1140,7 +1140,8 @@ implementation
|
|||||||
(inlined or
|
(inlined or
|
||||||
(right=nil)) then
|
(right=nil)) then
|
||||||
begin
|
begin
|
||||||
r.enum:=self_pointer_reg;
|
r.enum:=R_INTREGISTER;
|
||||||
|
r.number:=NR_SELF_POINTER_REG;
|
||||||
cg.a_param_reg(exprasmlist,OS_ADDR,r,paramanager.getintparaloc(1));
|
cg.a_param_reg(exprasmlist,OS_ADDR,r,paramanager.getintparaloc(1));
|
||||||
reference_reset_base(href,r,0);
|
reference_reset_base(href,r,0);
|
||||||
tmpreg:=cg.get_scratch_reg_address(exprasmlist);
|
tmpreg:=cg.get_scratch_reg_address(exprasmlist);
|
||||||
@ -1372,8 +1373,10 @@ implementation
|
|||||||
(methodpointer.nodetype<>typen) then
|
(methodpointer.nodetype<>typen) then
|
||||||
begin
|
begin
|
||||||
objectlibrary.getlabel(constructorfailed);
|
objectlibrary.getlabel(constructorfailed);
|
||||||
r.enum:=self_pointer_reg;
|
r.enum:=R_INTREGISTER;
|
||||||
r2.enum:=accumulator;
|
r.number:=NR_SELF_POINTER_REG;
|
||||||
|
r2.enum:=R_INTREGISTER;
|
||||||
|
r2.number:=NR_ACCUMULATOR;
|
||||||
cg.a_cmp_const_reg_label(exprasmlist,OS_ADDR,OC_EQ,0,r,constructorfailed);
|
cg.a_cmp_const_reg_label(exprasmlist,OS_ADDR,OC_EQ,0,r,constructorfailed);
|
||||||
cg.a_param_reg(exprasmlist,OS_ADDR,r2,paramanager.getintparaloc(1));
|
cg.a_param_reg(exprasmlist,OS_ADDR,r2,paramanager.getintparaloc(1));
|
||||||
reference_reset_base(href,r,0);
|
reference_reset_base(href,r,0);
|
||||||
@ -1400,7 +1403,8 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
{$ifdef i386}
|
{$ifdef i386}
|
||||||
r.enum:=R_ESP;
|
r.enum:=R_INTREGISTER;
|
||||||
|
r.number:=NR_ESP;
|
||||||
if pop_size>0 then
|
if pop_size>0 then
|
||||||
emit_const_reg(A_ADD,S_L,pop_size,r);
|
emit_const_reg(A_ADD,S_L,pop_size,r);
|
||||||
{$endif i386}
|
{$endif i386}
|
||||||
@ -1662,7 +1666,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.39 2003-02-19 22:00:14 daniel
|
Revision 1.40 2003-03-06 11:35:50 daniel
|
||||||
|
* Fixed internalerror 7843 issue
|
||||||
|
|
||||||
|
Revision 1.39 2003/02/19 22:00:14 daniel
|
||||||
* Code generator converted to new register notation
|
* Code generator converted to new register notation
|
||||||
- Horribily outdated todo.txt removed
|
- Horribily outdated todo.txt removed
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user