Override tcallnode.pass_1 for use of got for cdecl'ared functions (assuming it can be PIC code)

git-svn-id: trunk@21797 -
This commit is contained in:
pierre 2012-07-05 21:18:16 +00:00
parent c53d07f741
commit 56b4977858

View File

@ -26,10 +26,11 @@ unit ncpucall;
interface
uses
ncgcal;
node, ncgcal;
type
tMIPSELcallnode = class(tcgcallnode)
function pass_1 : tnode; override;
procedure extra_call_code; override;
procedure extra_post_call_code; override;
end;
@ -38,11 +39,20 @@ type
implementation
uses
cpubase,
globtype,cpubase,procinfo,
aasmtai,aasmcpu,aasmdata,
paramgr,
ncal;
function TMIPSELcallnode.pass_1 : tnode;
begin
pass_1 := inherited pass_1;
if assigned(current_procinfo) and
assigned(procdefinition) and
(procdefinition.proccalloption=pocall_cdecl) then
include(current_procinfo.flags,pi_needs_got);
end;
procedure tMIPSELcallnode.extra_call_code;
begin
{ MIPS functions should never modify the stack pointer