- if (opt('t') == 0)
- switch (w) {
- case 8:
- w = 6;
- case 4:
- case 2:
- case 1:
- put2((width(ap) != 4 ? O_INX2P2 : O_INX4P2) | (w & ~1) << 7, ( short ) p->range[0]);
- el = el[2];
- continue;
- }
- put(4, width(ap) != 4 ? O_INX2 : O_INX4,w,( short ) p->range[0],
- ( short ) ( p->range[1] - p->range[0] ) );
+# ifdef OBJ
+ if (opt('t') == 0) {
+ switch (w) {
+ case 8:
+ w = 6;
+ case 4:
+ case 2:
+ case 1:
+ put2((width(ap) != 4 ? O_INX2P2 : O_INX4P2) | (w & ~1) << 7, ( short ) p->range[0]);
+ el = el[2];
+ continue;
+ }
+ }
+ put(4, width(ap) != 4 ? O_INX2 : O_INX4,w,( short ) p->range[0],
+ ( short ) ( p->range[1] - p->range[0] ) );
+# endif OBJ
+# ifdef PC
+ /*
+ * subtract off the lower bound
+ */
+ if ( p -> range[ 0 ] != 0 ) {
+ putleaf( P2ICON , p -> range[0] , 0 , P2INT , 0 );
+ putop( P2MINUS , P2INT );
+ }
+ /*
+ * multiply by the width of the elements
+ */
+ if ( w != 1 ) {
+ putleaf( P2ICON , w , 0 , P2INT , 0 );
+ putop( P2MUL , P2INT );
+ }
+ /*
+ * and add it to the base address
+ */
+ putop( P2PLUS , ADDTYPE( p2type( np -> type ) , P2PTR ) );
+# endif PC