fixed a compiler bug where the native table indexes were not exported correctly for aliases. thus pure float operators would be bound to the wrong natives
removed a debug assert --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40810
This commit is contained in:
parent
f3b3ca6b22
commit
f17a61e709
@ -739,6 +739,7 @@ SC_FUNC void ffcall(symbol *sym,const char *label,int numargs)
|
||||
{
|
||||
char symname[2*sNAMEMAX+16];
|
||||
char aliasname[sNAMEMAX+1];
|
||||
int wasAlias = 0;
|
||||
|
||||
assert(sym!=NULL);
|
||||
assert(sym->ident==iFUNCTN);
|
||||
@ -747,17 +748,20 @@ SC_FUNC void ffcall(symbol *sym,const char *label,int numargs)
|
||||
if ((sym->usage & uNATIVE)!=0) {
|
||||
/* reserve a SYSREQ id if called for the first time */
|
||||
assert(label==NULL);
|
||||
stgwrite("\tsysreq.c ");
|
||||
if (sc_status==statWRITE && (sym->usage & uREAD)==0 && sym->addr>=0)
|
||||
sym->addr=ntv_funcid++;
|
||||
stgwrite("\tsysreq.c ");
|
||||
/* Look for an alias */
|
||||
if (lookup_alias(aliasname, sym->name)) {
|
||||
symbol *asym = findglb(aliasname, sGLOBAL);
|
||||
if (asym && asym->ident==iFUNCTN && ((sym->usage & uNATIVE) != 0)) {
|
||||
sym = asym;
|
||||
if (sc_status==statWRITE && (sym->usage & uREAD)==0 && sym->addr>=0) {
|
||||
sym->addr=ntv_funcid++;
|
||||
markusage(sym, uREAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
assert(sym->addr != 0x1d);
|
||||
outval(sym->addr,FALSE);
|
||||
if (sc_asmfile) {
|
||||
stgwrite("\t; ");
|
||||
|
Loading…
Reference in New Issue
Block a user