<div dir="ltr"><div><div>Hi Eliot,<br></div>if i look at spur64src/vm/cointerp.c generated from VMMaker.oscog-eem.2277<br></div>i see something wrong in primitiveAdd:<br><div><div><div><div><br>static void<br>primitiveAdd(void)<br>{   DECL_MAYBE_SQ_GLOBAL_STRUCT<br>    sqInt integerResult;<br>    char *sp;<br><br>    /* begin pop2AndPushIntegerIfOK: */</div><div>======================================<br>See below: we test if primitive failed before we tried...</div><div>======================================<br>    if (!GIV(primFailCode)) {<br>        integerResult = (stackIntegerValue(1)) + (stackIntegerValue(0));<br>        if ((((((usqInt) integerResult) >> 60) + 1) & 15) <= 1) {<br>            /* begin pop:thenPush: */<br>            longAtput((sp = GIV(stackPointer) + ((2 - 1) * BytesPerWord)), (((usqInt)integerResult << 3) | 1));<br>            GIV(stackPointer) = sp;<br>        }<br>        else {<br>            /* begin success: */<br>            <br>            /* Don't overwrite an error code that has already been set. */<br>            if (!GIV(primFailCode)) {<br>                GIV(primFailCode) = 1;<br>            }<br><br>        }<br>    }<br>}</div><div><br></div><div><br></div><div>Note that I could comment the commit in github API.</div><div>Unfortunately, diff are too big, and comments uneasy to find/view/scan.</div><div><br></div></div></div></div></div>