fpc/compiler/mips/ncpucall.pas
Jonas Maebe 4c68ea1000 * use pocalls_cdecl and cstylearrayofconst more consistently instead of
ad hoc set constants containing varying number cdecl-like calling
    conventions
   o added pocall_sysv_abi_cdecl and pocall_ms_abi_cdecl to cstylearrayofconst
   o also allow C-style blocks with mwpascal instead of cdecl (mwpascal = cdecl
     with "const" = "constref" for record parameters)
   o did not touch cases related to name mangling and import/export names,
     because those are a real mess and easily break things left and right :/

git-svn-id: trunk@35479 -
2017-02-25 11:46:35 +00:00

59 lines
1.4 KiB
ObjectPascal

{
Copyright (c) 1998-2009 by Florian Klaempfl and David Zhang
Generate MIPSEL assembler for in call nodes
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
****************************************************************************
}
unit ncpucall;
{$i fpcdefs.inc}
interface
uses
node, ncgcal;
type
tMIPSELcallnode = class(tcgcallnode)
function pass_1 : tnode; override;
end;
implementation
uses
globtype,cpubase,procinfo,
symconst,
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 in cdecl_pocalls) then
include(current_procinfo.flags,pi_needs_got);
end;
begin
ccallnode := TMIPSELCallNode;
end.