Don't generate function preamble on naked functions

This commit is contained in:
Adrian Graber 2018-07-08 18:00:15 +02:00
parent 000b4d52b9
commit 0c9ddcfad1
No known key found for this signature in database
GPG Key ID: 531D686ED6B93B02
3 changed files with 7 additions and 5 deletions

View File

@ -640,7 +640,7 @@ SC_FUNC void setlinedirect(int line);
SC_FUNC void setlineconst(int line);
SC_FUNC void setlabel(int index);
SC_FUNC void markexpr(optmark type,const char *name,cell offset);
SC_FUNC void startfunc(char *fname);
SC_FUNC void startfunc(char *fname,int generateproc);
SC_FUNC void endfunc(void);
SC_FUNC void alignframe(int numbytes);
SC_FUNC void rvalue(value *lval);

View File

@ -3798,7 +3798,7 @@ static int newfunc(char *firstname,int firsttag,int fpublic,int fstatic,int stoc
ptr=ptr->next;
} /* while */
} /* if */
startfunc(sym->name); /* creates stack frame */
startfunc(sym->name,(sym->flags & flagNAKED)==0); /* creates stack frame */
insert_dbgline(funcline);
setline(FALSE);
if (sc_alignnext) {

View File

@ -343,9 +343,12 @@ SC_FUNC void markexpr(optmark type,const char *name,cell offset)
*
* Global references: funcstatus (referred to only)
*/
SC_FUNC void startfunc(char *fname)
SC_FUNC void startfunc(char *fname,int generateproc)
{
if (generateproc) {
stgwrite("\tproc");
code_idx+=opcodes(1);
} /* if */
if (sc_asmfile) {
char symname[2*sNAMEMAX+16];
funcdisplayname(symname,fname);
@ -353,7 +356,6 @@ SC_FUNC void startfunc(char *fname)
stgwrite(symname);
} /* if */
stgwrite("\n");
code_idx+=opcodes(1);
}
/* endfunc