|
@@ -45,7 +45,7 @@ implementation
|
|
globtype,globals,verbose,
|
|
globtype,globals,verbose,
|
|
systems,cpuinfo,
|
|
systems,cpuinfo,
|
|
{ aasm }
|
|
{ aasm }
|
|
- cpubase,aasmbase,aasmtai,aasmcpu,
|
|
|
|
|
|
+ cpubase,aasmbase,aasmtai,
|
|
{ symtable }
|
|
{ symtable }
|
|
symconst,symbase,symtype,symdef,symsym,symtable,defutil,defcmp,
|
|
symconst,symbase,symtype,symdef,symsym,symtable,defutil,defcmp,
|
|
paramgr,
|
|
paramgr,
|
|
@@ -56,8 +56,7 @@ implementation
|
|
scanner,
|
|
scanner,
|
|
pbase,pexpr,
|
|
pbase,pexpr,
|
|
{ codegen }
|
|
{ codegen }
|
|
- procinfo,tgobj,rgobj,cgbase
|
|
|
|
- ,ncgutil
|
|
|
|
|
|
+ procinfo,rgobj,cgbase
|
|
,radirect
|
|
,radirect
|
|
{$ifdef i386}
|
|
{$ifdef i386}
|
|
{$ifndef NoRa386Int}
|
|
{$ifndef NoRa386Int}
|
|
@@ -1067,12 +1066,6 @@ implementation
|
|
if not is_void(current_procinfo.procdef.rettype.def) then
|
|
if not is_void(current_procinfo.procdef.rettype.def) then
|
|
symtablestack.rename(current_procinfo.procdef.resultname,'$hiddenresult');
|
|
symtablestack.rename(current_procinfo.procdef.resultname,'$hiddenresult');
|
|
|
|
|
|
- { force the asm statement }
|
|
|
|
- if token<>_ASM then
|
|
|
|
- consume(_ASM);
|
|
|
|
- include(current_procinfo.flags,pi_is_assembler);
|
|
|
|
- p:=_asm_statement;
|
|
|
|
-
|
|
|
|
{ assembler routines use stdcall instead of register }
|
|
{ assembler routines use stdcall instead of register }
|
|
{$warning Temporary hack for force stdcall for assembler}
|
|
{$warning Temporary hack for force stdcall for assembler}
|
|
if (po_assembler in current_procinfo.procdef.procoptions) and
|
|
if (po_assembler in current_procinfo.procdef.procoptions) and
|
|
@@ -1085,6 +1078,12 @@ implementation
|
|
not(po_hascallingconvention in current_procinfo.procdef.procoptions) then
|
|
not(po_hascallingconvention in current_procinfo.procdef.procoptions) then
|
|
current_procinfo.procdef.proccalloption:=pocall_register;
|
|
current_procinfo.procdef.proccalloption:=pocall_register;
|
|
|
|
|
|
|
|
+ { force the asm statement }
|
|
|
|
+ if token<>_ASM then
|
|
|
|
+ consume(_ASM);
|
|
|
|
+ include(current_procinfo.flags,pi_is_assembler);
|
|
|
|
+ p:=_asm_statement;
|
|
|
|
+
|
|
{$ifndef sparc}
|
|
{$ifndef sparc}
|
|
if (po_assembler in current_procinfo.procdef.procoptions) then
|
|
if (po_assembler in current_procinfo.procdef.procoptions) then
|
|
begin
|
|
begin
|
|
@@ -1129,7 +1128,10 @@ implementation
|
|
end.
|
|
end.
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.112 2003-10-02 21:15:59 peter
|
|
|
|
|
|
+ Revision 1.113 2003-10-07 20:06:37 peter
|
|
|
|
+ * set calling convention before assembler block is parsed
|
|
|
|
+
|
|
|
|
+ Revision 1.112 2003/10/02 21:15:59 peter
|
|
* delphi mode uses register calling by default for assembler
|
|
* delphi mode uses register calling by default for assembler
|
|
|
|
|
|
Revision 1.111 2003/10/01 20:34:49 peter
|
|
Revision 1.111 2003/10/01 20:34:49 peter
|