- param count pushed is now cell based, not byte based
- removed .. for cases --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40106
This commit is contained in:
parent
c6f60dbd6c
commit
cfcb4d288b
@ -4459,7 +4459,7 @@ static void destructsymbols(symbol *root,int level)
|
|||||||
address(sym,sPRI);
|
address(sym,sPRI);
|
||||||
addconst(offset); /* add offset to array data to the address */
|
addconst(offset); /* add offset to array data to the address */
|
||||||
pushreg(sPRI);
|
pushreg(sPRI);
|
||||||
pushval(2*sizeof(cell));/* 2 parameters */
|
pushval(2 /* *sizeof(cell)*/ );/* 2 parameters */
|
||||||
assert(opsym->ident==iFUNCTN);
|
assert(opsym->ident==iFUNCTN);
|
||||||
ffcall(opsym,NULL,1);
|
ffcall(opsym,NULL,1);
|
||||||
if (sc_status!=statSKIP)
|
if (sc_status!=statSKIP)
|
||||||
@ -5231,23 +5231,7 @@ static void doswitch(void)
|
|||||||
assert(csp->next==cse);
|
assert(csp->next==cse);
|
||||||
insert_constval(csp,cse,itoh(lbl_case),val,0);
|
insert_constval(csp,cse,itoh(lbl_case),val,0);
|
||||||
if (matchtoken(tDBLDOT)) {
|
if (matchtoken(tDBLDOT)) {
|
||||||
cell end;
|
error(1, ":", "..");
|
||||||
constexpr(&end,NULL,NULL);
|
|
||||||
if (end<=val)
|
|
||||||
error(50); /* invalid range */
|
|
||||||
while (++val<=end) {
|
|
||||||
casecount++;
|
|
||||||
/* find the new insertion point */
|
|
||||||
for (csp=&caselist, cse=caselist.next;
|
|
||||||
cse!=NULL && cse->value<val;
|
|
||||||
csp=cse, cse=cse->next)
|
|
||||||
/* nothing */;
|
|
||||||
if (cse!=NULL && cse->value==val)
|
|
||||||
error(40,val); /* duplicate "case" label */
|
|
||||||
assert(csp!=NULL);
|
|
||||||
assert(csp->next==cse);
|
|
||||||
insert_constval(csp,cse,itoh(lbl_case),val,0);
|
|
||||||
} /* if */
|
|
||||||
} /* if */
|
} /* if */
|
||||||
} while (matchtoken(','));
|
} while (matchtoken(','));
|
||||||
needtoken(':'); /* ':' ends the case */
|
needtoken(':'); /* ':' ends the case */
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* 1. The origin of this software must not be misrepresented; you must not
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
* claim that you wrote the original software. If you use this software in
|
* claim that you wrote the original software. If you use this software in
|
||||||
* a product, an acknowledgment in the product documentation would be
|
* a product, an acknowledgment in the product documentation would be
|
||||||
* appreciated but is not required.
|
* appreciated but is not reeq;quired.
|
||||||
* 2. Altered source versions must be plainly marked as such, and must not be
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
* misrepresented as being the original software.
|
* misrepresented as being the original software.
|
||||||
* 3. This notice may not be removed or altered from any source distribution.
|
* 3. This notice may not be removed or altered from any source distribution.
|
||||||
@ -354,7 +354,7 @@ static void (*unopers[])(void) = { lneg, neg, user_inc, user_dec };
|
|||||||
assert(0);
|
assert(0);
|
||||||
} /* switch */
|
} /* switch */
|
||||||
markexpr(sPARM,NULL,0); /* mark the end of a sub-expression */
|
markexpr(sPARM,NULL,0); /* mark the end of a sub-expression */
|
||||||
pushval((cell)paramspassed*sizeof(cell));
|
pushval((cell)paramspassed /* *sizeof(cell)*/ );
|
||||||
assert(sym->ident==iFUNCTN);
|
assert(sym->ident==iFUNCTN);
|
||||||
ffcall(sym,NULL,paramspassed);
|
ffcall(sym,NULL,paramspassed);
|
||||||
if (sc_status!=statSKIP)
|
if (sc_status!=statSKIP)
|
||||||
@ -2453,7 +2453,7 @@ static int nesting=0;
|
|||||||
arglist[argidx]=ARG_DONE;
|
arglist[argidx]=ARG_DONE;
|
||||||
} /* for */
|
} /* for */
|
||||||
stgmark(sENDREORDER); /* mark end of reversed evaluation */
|
stgmark(sENDREORDER); /* mark end of reversed evaluation */
|
||||||
pushval((cell)nargs*sizeof(cell));
|
pushval((cell)nargs /* *sizeof(cell)*/ );
|
||||||
nest_stkusage++;
|
nest_stkusage++;
|
||||||
ffcall(sym,NULL,nargs);
|
ffcall(sym,NULL,nargs);
|
||||||
if (sc_status!=statSKIP)
|
if (sc_status!=statSKIP)
|
||||||
|
Loading…
Reference in New Issue
Block a user