mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:29:21 +02:00
* fixed linux entry/exit code generation
This commit is contained in:
parent
45b9d59df5
commit
e02ecef001
@ -1011,12 +1011,12 @@ const
|
|||||||
r.number:=NR_R11;
|
r.number:=NR_R11;
|
||||||
a_reg_alloc(list,r);
|
a_reg_alloc(list,r);
|
||||||
{ save end of fpr save area }
|
{ save end of fpr save area }
|
||||||
list.concat(taicpu.op_reg_reg_const(A_ORI,r,rsp,0));
|
list.concat(taicpu.op_reg_reg(A_MR,r,rsp));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ calculate the size of the locals }
|
{ calculate the size of the locals }
|
||||||
if usesgpr then
|
if usesgpr then
|
||||||
inc(localsize,(NR_R31-firstreggpr.number+1)*4);
|
inc(localsize,((NR_R31-firstreggpr.number) shr 8+1)*4);
|
||||||
if usesfpr then
|
if usesfpr then
|
||||||
inc(localsize,(ord(R_F31)-ord(firstregfpu.enum)+1)*8);
|
inc(localsize,(ord(R_F31)-ord(firstregfpu.enum)+1)*8);
|
||||||
|
|
||||||
@ -1075,7 +1075,7 @@ const
|
|||||||
}
|
}
|
||||||
r.enum:=R_INTREGISTER;
|
r.enum:=R_INTREGISTER;
|
||||||
r.number:=NR_R11;
|
r.number:=NR_R11;
|
||||||
reference_reset_base(href,r,-((NR_R31-firstreggpr.number) div (NR_R1-NR_R0)+1)*4);
|
reference_reset_base(href,r,-((NR_R31-firstreggpr.number) shr 8+1)*4);
|
||||||
list.concat(taicpu.op_reg_ref(A_STMW,firstreggpr,href));
|
list.concat(taicpu.op_reg_ref(A_STMW,firstreggpr,href));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1168,7 +1168,7 @@ const
|
|||||||
{
|
{
|
||||||
a_call_name(objectlibrary.newasmsymbol('_restgpr_14');
|
a_call_name(objectlibrary.newasmsymbol('_restgpr_14');
|
||||||
}
|
}
|
||||||
reference_reset_base(href,r2,-(ord(R_31)-ord(firstreggpr.enum)+1)*4);
|
reference_reset_base(href,r2,-((NR_R31-ord(firstreggpr.number)) shr 8+1)*4);
|
||||||
list.concat(taicpu.op_reg_ref(A_LMW,firstreggpr,href));
|
list.concat(taicpu.op_reg_ref(A_LMW,firstreggpr,href));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2199,7 +2199,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.75 2003-03-19 14:26:26 jonas
|
Revision 1.76 2003-03-22 18:01:13 jonas
|
||||||
|
* fixed linux entry/exit code generation
|
||||||
|
|
||||||
|
Revision 1.75 2003/03/19 14:26:26 jonas
|
||||||
* fixed R_TOC bugs introduced by new register allocator conversion
|
* fixed R_TOC bugs introduced by new register allocator conversion
|
||||||
|
|
||||||
Revision 1.74 2003/03/13 22:57:45 olle
|
Revision 1.74 2003/03/13 22:57:45 olle
|
||||||
|
Loading…
Reference in New Issue
Block a user