EvalStatus NodeVarRef::evalToStoreInto() { evalNodeProlog(0); //new current node eval frame pointer UlamValue rtnUVPtr = makeUlamValuePtr(); //copy result UV to stack, -1 relative to current frame pointer Node::assignReturnValuePtrToStack(rtnUVPtr); evalNodeEpilog(); return NORMAL; } //evalToStoreInto
EvalStatus NodeConstantArray::eval() { if(!isReadyConstant()) return ERROR; UTI nuti = getNodeType(); if(!m_state.isComplete(nuti)) return ERROR; if(((SymbolConstantValue *) m_constSymbol)->getConstantStackFrameAbsoluteSlotIndex() == 0) return NOTREADY; evalNodeProlog(0); //new current node eval frame pointer, t3897 UlamValue rtnUVPtr = makeUlamValuePtr(); Node::assignReturnValueToStack(rtnUVPtr); evalNodeEpilog(); return NORMAL; } //eval
EvalStatus NodeConstantArray::evalToStoreInto() { //possible access of constant array item (t3881) UTI nuti = getNodeType(); if(nuti == Nav) return ERROR; if(nuti == Hzy) return NOTREADY; assert(m_constSymbol); if(((SymbolConstantValue *) m_constSymbol)->getConstantStackFrameAbsoluteSlotIndex() == 0) return NOTREADY; evalNodeProlog(0); //new current node eval frame pointer UlamValue rtnUVPtr = makeUlamValuePtr(); Node::assignReturnValuePtrToStack(rtnUVPtr); evalNodeEpilog(); return NORMAL; } //evalToStoreInto