# put_label --- output label placement instructions

   subroutine put_label (instr)
   ipointer instr

   include VCG_COMMON

   character str (20)
   unsigned label_id
   integer lad (ADDR_DESC_SIZE)

   label_id = Imem (instr + 3)

   if (Emit_PMA == YES)
      {
      str (1) = 'L'c
      call gitoc (label_id, str (2), 19, -10)
      call putlin (str, Outfile)
      call putlin ("_ EQU *"s, Outfile)
      call putch (NEWLINE, Outfile)
      }

   # can't assume labels are only PB%-relative!!!
   if (Emit_Obj == YES)
      {
DB    call print (ERROUT, "put_label: label L*,-10i_*n"p, label_id)
      AD_MODE (lad) = LABELED_AM
      AD_BASE (lad) = 0        # otg takes care of picking the right base register
      AD_LABEL (lad) = label_id
      call otg (LABEL_INSTRUCTION, lad)
      }

   return
   end