EXPORT(sqInt) primitiveTimesTwoPower(void) { double rcvr; double result; sqInt arg; arg = interpreterProxy->stackIntegerValue(0); rcvr = interpreterProxy->stackFloatValue(1); if (interpreterProxy->failed()) { return null; } result = __ieee754_ldexp(rcvr, arg); if (isnan(result)) { return interpreterProxy->primitiveFail(); } interpreterProxy->pop((interpreterProxy->methodArgumentCount()) + 1); interpreterProxy->pushFloat(result); }
primitiveTimesTwoPower(void) { // FloatMathPlugin>>#primitiveTimesTwoPower sqInt arg; double rcvr; double result; arg = stackIntegerValue(0); rcvr = stackFloatValue(1); if (failed()) { return null; } result = __ieee754_ldexp(rcvr, arg); if (isnan(result)) { return primitiveFail(); } pop((methodArgumentCount()) + 1); pushFloat(result); }