case EM_MIPS_RS4_BE:
case EM_MIPS_RS3_LE:
get_section_type_name (sh_type)     unsigned int sh_type;{  static char buff [32];  switch (sh_type)    {    case SHT_NULL:		return "NULL";    case SHT_PROGBITS:		return "PROGBITS";    case SHT_SYMTAB:		return "SYMTAB";    case SHT_STRTAB:		return "STRTAB";    case SHT_RELA:		return "RELA";    case SHT_HASH:		return "HASH";    case SHT_DYNAMIC:		return "DYNAMIC";    case SHT_NOTE:		return "NOTE";    case SHT_NOBITS:		return "NOBITS";    case SHT_REL:		return "REL";    case SHT_SHLIB:		return "SHLIB";    case SHT_DYNSYM:		return "DYNSYM";    case SHT_INIT_ARRAY:	return "INIT_ARRAY";    case SHT_FINI_ARRAY:	return "FINI_ARRAY";    case SHT_PREINIT_ARRAY:	return "PREINIT_ARRAY";    case SHT_GNU_verdef:	return "VERDEF";    case SHT_GNU_verneed:	return "VERNEED";    case SHT_GNU_versym:	return "VERSYM";    case 0x6ffffff0:	        return "VERSYM";    case 0x6ffffffc:	        return "VERDEF";    case 0x7ffffffd:		return "AUXILIARY";    case 0x7fffffff:		return "FILTER";    default:      if ((sh_type >= SHT_LOPROC) && (sh_type <= SHT_HIPROC))	{	  const char * result;	  switch (elf_header.e_machine)	    {	    case EM_MIPS:	    case EM_MIPS_RS4_BE:	      result = get_mips_section_type_name (sh_type);	      break;	    case EM_PARISC:	      result = get_parisc_section_type_name (sh_type);	      break;	    default:	      result = NULL;	      break;	    }	  if (result != NULL)	    return result;	  sprintf (buff, "SHT_LOPROC+%x", sh_type - SHT_LOPROC);	}      else if ((sh_type >= SHT_LOOS) && (sh_type <= SHT_HIOS))	sprintf (buff, "SHT_LOOS+%x", sh_type - SHT_LOOS);      else if ((sh_type >= SHT_LOUSER) && (sh_type <= SHT_HIUSER))	sprintf (buff, "SHT_LOUSER+%x", sh_type - SHT_LOUSER);      else	sprintf (buff, _("<unknown>: %x"), sh_type);      return buff;    }}