break;
return false;
do_one (ieee, current_map, location_ptr, s)     ieee_data_type *ieee;     ieee_per_section_type *current_map;     unsigned char *location_ptr;     asection *s;{  switch (this_byte (&(ieee->h)))    {    case ieee_load_constant_bytes_enum:      {	unsigned int number_of_maus;	unsigned int i;	next_byte (&(ieee->h));	number_of_maus = must_parse_int (&(ieee->h));	for (i = 0; i < number_of_maus; i++)	  {	    location_ptr[current_map->pc++] = this_byte (&(ieee->h));	    next_byte (&(ieee->h));	  }      }      break;    case ieee_load_with_relocation_enum:      {	boolean loop = true;	next_byte (&(ieee->h));	while (loop)	  {	    switch (this_byte (&(ieee->h)))	      {	      case ieee_variable_R_enum:	      case ieee_function_signed_open_b_enum:	      case ieee_function_unsigned_open_b_enum:	      case ieee_function_either_open_b_enum:		{		  unsigned int extra = 4;		  boolean pcrel = false;		  asection *section;		  ieee_reloc_type *r =		  (ieee_reloc_type *) bfd_alloc (ieee->h.abfd,						 sizeof (ieee_reloc_type));		  if (!r)		    {		      bfd_set_error (bfd_error_no_memory);		      return false;		    }		  *(current_map->reloc_tail_ptr) = r;		  current_map->reloc_tail_ptr = &r->next;		  r->next = (ieee_reloc_type *) NULL;		  next_byte (&(ieee->h));/*			    abort();*/		  r->relent.sym_ptr_ptr = 0;		  parse_expression (ieee,				    &r->relent.addend,				    &r->symbol,				    &pcrel, &extra, &section);		  r->relent.address = current_map->pc;		  s->reloc_count++;		  if (r->relent.sym_ptr_ptr == 0)		    {		      r->relent.sym_ptr_ptr = section->symbol_ptr_ptr;		    }		  if (this_byte (&(ieee->h)) == (int) ieee_comma)		    {		      next_byte (&(ieee->h));		      /* Fetch number of bytes to pad */		      extra = must_parse_int (&(ieee->h));		    };		  switch (this_byte (&(ieee->h)))		    {		    case ieee_function_signed_close_b_enum:		      next_byte (&(ieee->h));		      break;		    case ieee_function_unsigned_close_b_enum:		      next_byte (&(ieee->h));		      break;		    case ieee_function_either_close_b_enum:		      next_byte (&(ieee->h));		      break;		    default:		      break;		    }		  /* Build a relocation entry for this type */		  /* If pc rel then stick -ve pc into instruction			       and take out of reloc ..			       I've changed this. It's all too			       complicated. I keep 0 in the			       instruction  now.			       */		  switch (extra)		    {		    case 0:		    case 4:		      if (pcrel == true)			{#if KEEPMINUSPCININST			  bfd_put_32 (ieee->h.abfd, -current_map->pc, location_ptr +				      current_map->pc);			  r->relent.howto = &rel32_howto;			  r->relent.addend -=			    current_map->pc;#else			  bfd_put_32 (ieee->h.abfd, 0, location_ptr +				      current_map->pc);			  r->relent.howto = &rel32_howto;#endif			}		      else			{			  bfd_put_32 (ieee->h.abfd, 0, location_ptr +				      current_map->pc);			  r->relent.howto = &abs32_howto;			}		      current_map->pc += 4;		      break;		    case 2:		      if (pcrel == true)			{#if KEEPMINUSPCININST			  bfd_put_16 (ieee->h.abfd, (int) (-current_map->pc), location_ptr + current_map->pc);			  r->relent.addend -= current_map->pc;			  r->relent.howto = &rel16_howto;#else			  bfd_put_16 (ieee->h.abfd, 0, location_ptr + current_map->pc);			  r->relent.howto = &rel16_howto;#endif			}		      else			{			  bfd_put_16 (ieee->h.abfd, 0, location_ptr + current_map->pc);			  r->relent.howto = &abs16_howto;			}		      current_map->pc += 2;		      break;		    case 1:		      if (pcrel == true)			{#if KEEPMINUSPCININST			  bfd_put_8 (ieee->h.abfd, (int) (-current_map->pc), location_ptr + current_map->pc);			  r->relent.addend -= current_map->pc;			  r->relent.howto = &rel8_howto;#else			  bfd_put_8 (ieee->h.abfd, 0, location_ptr + current_map->pc);			  r->relent.howto = &rel8_howto;#endif			}		      else			{			  bfd_put_8 (ieee->h.abfd, 0, location_ptr + current_map->pc);			  r->relent.howto = &abs8_howto;			}		      current_map->pc += 1;		      break;		    default:		      BFD_FAIL ();		      break;		    }		}		break;	      default:		{		  bfd_vma this_size;		  if (parse_int (&(ieee->h), &this_size) == true)		    {		      unsigned int i;		      for (i = 0; i < this_size; i++)			{			  location_ptr[current_map->pc++] = this_byte (&(ieee->h));			  next_byte (&(ieee->h));			}		    }		  else		    {		      loop = false;		    }		}	      }	  }      }    }  return true;}