- put2(O_LV | bn << 9, p->value[NL_OFFS]);
- if (isa(p->type, "i") && width(p->type) == 1)
- asgnop1(r, nl+T2INT);
- else
- asgnop1(r, p->type);
+# ifdef OBJ
+ put2(O_LV | bn << 8+INDX, p->value[NL_OFFS]);
+ if (isa(p->type, "i") && width(p->type) == 1)
+ asgnop1(r, nl+T2INT);
+ else
+ asgnop1(r, p->type);
+# endif OBJ
+# ifdef PC
+ /*
+ * this should be the lvalue of the fvar,
+ * but since the second pass knows to use
+ * the address of the left operand of an
+ * assignment, what i want here is an rvalue.
+ * see note in funchdr about fvar allocation.
+ */
+ p = p -> ptr[ NL_FVAR ];
+ putRV( p -> symbol , bn , p -> value[ NL_OFFS ]
+ , p2type( p -> type ) );
+ asgnop1( r , p -> type );
+# endif PC