m68k: try to fix some breakages caused by r36568

git-svn-id: trunk@36569 -
This commit is contained in:
Károly Balogh 2017-06-22 02:11:42 +00:00
parent 23f4304881
commit 8ed84afdd4
2 changed files with 7 additions and 3 deletions

View File

@ -372,6 +372,7 @@ unit cgcpu;
var
len : tcgint;
ofs : tcgint;
href : treference;
begin
{ cgpara.size=OS_NO requires a copy on the stack }
@ -384,7 +385,10 @@ unit cgcpu;
cgpara.check_simple_location;
len:=align(cgpara.intsize,cgpara.alignment);
g_stackpointer_alloc(list,len);
reference_reset_base(href,NR_STACK_POINTER_REG,cgpara.location^.reference.offset,cgpara.alignment,[]);
ofs:=0;
if cgpara.intsize<target_info.stackalign then
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
else

View File

@ -531,8 +531,8 @@ unit cpupara;
varalign:=used_align(size_2_align(l),paraalign,paraalign);
paraloc^.reference.offset:=cur_stack_offset;
{ M68K is a big-endian target }
if (paralen<tcgsize2size[OS_INT]) then
inc(paraloc^.reference.offset,4-paralen);
if (paralen<target_info.stackalign{tcgsize2size[OS_INT]}) then
inc(paraloc^.reference.offset,target_info.stackalign-paralen);
if side=calleeside then
inc(paraloc^.reference.offset,target_info.first_parm_offset);
cur_stack_offset:=align(cur_stack_offset+l,varalign);