merged branch-1.1.0 back into trunk
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401960
This commit is contained in:
@@ -854,19 +854,10 @@ SC_FUNC void modstk(int delta)
|
||||
/* set the stack to a hard offset from the frame */
|
||||
SC_FUNC void setstk(cell value)
|
||||
{
|
||||
stgwrite("\tlctrl 5\n"); /* get FRM in PRI */
|
||||
stgwrite("\tstackadjust ");
|
||||
assert(value<=0); /* STK should always become <= FRM */
|
||||
if (value<0) {
|
||||
stgwrite("\tadd.c ");
|
||||
outval(value, TRUE); /* add (negative) offset */
|
||||
code_idx+=opcodes(1)+opargs(1);
|
||||
// ??? write zeros in the space between STK and the value in PRI (the new stk)
|
||||
// get value of STK in ALT
|
||||
// zero PRI
|
||||
// need new FILL opcode that takes a variable size
|
||||
} /* if */
|
||||
stgwrite("\tsctrl 4\n"); /* store in STK */
|
||||
code_idx+=opcodes(2)+opargs(2);
|
||||
outval(value, TRUE); /* add (negative) offset */
|
||||
code_idx+=opcodes(1)+opargs(1);
|
||||
}
|
||||
|
||||
SC_FUNC void modheap(int delta)
|
||||
|
||||
@@ -596,6 +596,7 @@ static OPCODEC opcodelist[] = {
|
||||
{ 21, "sref.s.pri", sIN_CSEG, parm1 },
|
||||
{ 67, "sshr", sIN_CSEG, parm0 },
|
||||
{ 44, "stack", sIN_CSEG, parm1 },
|
||||
{165, "stackadjust",sIN_CSEG, parm1 },
|
||||
{ 0, "stksize", 0, noop },
|
||||
{ 16, "stor.alt", sIN_CSEG, parm1 },
|
||||
{ 23, "stor.i", sIN_CSEG, parm0 },
|
||||
|
||||
Reference in New Issue
Block a user