+
+#ifdef OBJ
+/*
+ * push a value onto the interpreter stack, longword aligned.
+ */
+stackRV(p)
+ struct nl *p;
+{
+ struct nl *q;
+ int w, bn;
+
+ q = p->type;
+ if (q == NIL)
+ return (NIL);
+ bn = BLOCKNO(p->nl_block);
+ w = width(q);
+ switch (w) {
+ case 8:
+ put(2, O_RV8 | bn << 8+INDX, (int)p->value[0]);
+ break;
+ case 4:
+ put(2, O_RV4 | bn << 8+INDX, (int)p->value[0]);
+ break;
+ case 2:
+ put(2, O_RV24 | bn << 8+INDX, (int)p->value[0]);
+ break;
+ case 1:
+ put(2, O_RV14 | bn << 8+INDX, (int)p->value[0]);
+ break;
+ default:
+ put(3, O_RV | bn << 8+INDX, (int)p->value[0], w);
+ break;
+ }
+ return (q);
+}
+#endif OBJ