mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-21 03:49:18 +02:00
m68k: revert the r36568 and the followup fix attempts altogether, as they broke Amiga support entirely. there will be a cleanup before another fixing attempt
git-svn-id: trunk@36598 -
This commit is contained in:
parent
f3889a191b
commit
22ae3cd186
@ -372,7 +372,6 @@ unit cgcpu;
|
|||||||
|
|
||||||
var
|
var
|
||||||
len : tcgint;
|
len : tcgint;
|
||||||
ofs : tcgint;
|
|
||||||
href : treference;
|
href : treference;
|
||||||
begin
|
begin
|
||||||
{ cgpara.size=OS_NO requires a copy on the stack }
|
{ cgpara.size=OS_NO requires a copy on the stack }
|
||||||
@ -385,11 +384,8 @@ unit cgcpu;
|
|||||||
cgpara.check_simple_location;
|
cgpara.check_simple_location;
|
||||||
len:=align(cgpara.intsize,cgpara.alignment);
|
len:=align(cgpara.intsize,cgpara.alignment);
|
||||||
g_stackpointer_alloc(list,len);
|
g_stackpointer_alloc(list,len);
|
||||||
ofs:=0;
|
reference_reset_base(href,NR_STACK_POINTER_REG,0,cgpara.alignment,[]);
|
||||||
if cgpara.intsize<target_info.stackalign then
|
g_concatcopy(list,r,href,len);
|
||||||
ofs:=target_info.stackalign-cgpara.intsize;
|
|
||||||
reference_reset_base(href,NR_STACK_POINTER_REG,ofs,cgpara.alignment,[]);
|
|
||||||
g_concatcopy(list,r,href,cgpara.intsize);
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
|
@ -387,10 +387,10 @@ unit cpupara;
|
|||||||
begin
|
begin
|
||||||
paraloc^.reference.index:=NR_FRAME_POINTER_REG;
|
paraloc^.reference.index:=NR_FRAME_POINTER_REG;
|
||||||
inc(paraloc^.reference.offset,target_info.first_parm_offset);
|
inc(paraloc^.reference.offset,target_info.first_parm_offset);
|
||||||
|
{ M68K is a big-endian target }
|
||||||
|
if (paralen<target_info.stackalign{tcgsize2size[OS_INT]}) then
|
||||||
|
inc(paraloc^.reference.offset,target_info.stackalign-paralen);
|
||||||
end;
|
end;
|
||||||
{ M68K is a big-endian target }
|
|
||||||
if (paralen<target_info.stackalign{tcgsize2size[OS_INT]}) then
|
|
||||||
inc(paraloc^.reference.offset,target_info.stackalign-paralen);
|
|
||||||
inc(cur_stack_offset,align(paralen,target_info.stackalign));
|
inc(cur_stack_offset,align(paralen,target_info.stackalign));
|
||||||
paralen := 0;
|
paralen := 0;
|
||||||
|
|
||||||
@ -535,8 +535,6 @@ unit cpupara;
|
|||||||
paraloc^.reference.offset:=cur_stack_offset;
|
paraloc^.reference.offset:=cur_stack_offset;
|
||||||
if side=calleeside then
|
if side=calleeside then
|
||||||
inc(paraloc^.reference.offset,target_info.first_parm_offset);
|
inc(paraloc^.reference.offset,target_info.first_parm_offset);
|
||||||
if (paralen<target_info.stackalign) then
|
|
||||||
inc(paraloc^.reference.offset,varalign-paralen);
|
|
||||||
cur_stack_offset:=align(cur_stack_offset+paralen,varalign);
|
cur_stack_offset:=align(cur_stack_offset+paralen,varalign);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -577,8 +575,8 @@ unit cpupara;
|
|||||||
varalign:=used_align(size_2_align(l),paraalign,paraalign);
|
varalign:=used_align(size_2_align(l),paraalign,paraalign);
|
||||||
paraloc^.reference.offset:=cur_stack_offset;
|
paraloc^.reference.offset:=cur_stack_offset;
|
||||||
{ M68K is a big-endian target }
|
{ M68K is a big-endian target }
|
||||||
if (l<target_info.stackalign) then
|
if (paralen<tcgsize2size[OS_INT]) then
|
||||||
inc(paraloc^.reference.offset,varalign-l);
|
inc(paraloc^.reference.offset,4-paralen);
|
||||||
if side=calleeside then
|
if side=calleeside then
|
||||||
inc(paraloc^.reference.offset,target_info.first_parm_offset);
|
inc(paraloc^.reference.offset,target_info.first_parm_offset);
|
||||||
cur_stack_offset:=align(cur_stack_offset+l,varalign);
|
cur_stack_offset:=align(cur_stack_offset+l,varalign);
|
||||||
|
Loading…
Reference in New Issue
Block a user