OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gas/] [config/] [tc-tilegx.c] - Diff between revs 163 and 166

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 163 Rev 166
Line 70... Line 70...
 
 
 
 
const char *
const char *
tilegx_target_format (void)
tilegx_target_format (void)
{
{
  return tilegx_arch_size == 64 ? "elf64-tilegx" : "elf32-tilegx";
    if (target_big_endian) {
 
        return tilegx_arch_size == 64 ? "elf64-tilegx-be" : "elf32-tilegx-be";
 
    } else {
 
        return tilegx_arch_size == 64 ? "elf64-tilegx-le" : "elf32-tilegx-le";
 
    }
}
}
 
 
 
 
#define OPTION_32 (OPTION_MD_BASE + 0)
#define OPTION_32 (OPTION_MD_BASE + 0)
#define OPTION_64 (OPTION_MD_BASE + 1)
#define OPTION_64 (OPTION_MD_BASE + 1)
 
#define OPTION_EB (OPTION_MD_BASE + 2)
 
#define OPTION_EL (OPTION_MD_BASE + 3)
 
 
const char *md_shortopts = "VQ:";
const char *md_shortopts = "VQ:";
 
 
struct option md_longopts[] =
struct option md_longopts[] =
{
{
  {"32", no_argument, NULL, OPTION_32},
  {"32", no_argument, NULL, OPTION_32},
  {"64", no_argument, NULL, OPTION_64},
  {"64", no_argument, NULL, OPTION_64},
 
  {"EB", no_argument, NULL, OPTION_EB },
 
  {"EL", no_argument, NULL, OPTION_EL },
  {NULL, no_argument, NULL, 0}
  {NULL, no_argument, NULL, 0}
};
};
 
 
size_t md_longopts_size = sizeof (md_longopts);
size_t md_longopts_size = sizeof (md_longopts);
 
 
Line 111... Line 119...
 
 
    case OPTION_64:
    case OPTION_64:
      tilegx_arch_size = 64;
      tilegx_arch_size = 64;
      break;
      break;
 
 
 
    case OPTION_EB:
 
      target_big_endian = 1;
 
      break;
 
 
 
    case OPTION_EL:
 
      target_big_endian = 0;
 
      break;
 
 
    default:
    default:
      return 0;
      return 0;
    }
    }
 
 
  return 1;
  return 1;
Line 124... Line 140...
md_show_usage (FILE *stream)
md_show_usage (FILE *stream)
{
{
  fprintf (stream, _("\
  fprintf (stream, _("\
  -Q                      ignored\n\
  -Q                      ignored\n\
  -V                      print assembler version number\n\
  -V                      print assembler version number\n\
 
  -EB/-EL                 generate big-endian/little-endian code\n\
  --32/--64               generate 32bit/64bit code\n"));
  --32/--64               generate 32bit/64bit code\n"));
}
}
 
 
 
 
/* Extra expression types.  */
/* Extra expression types.  */
Line 138... Line 155...
#define O_hw3                   O_md4
#define O_hw3                   O_md4
#define O_hw0_last              O_md5
#define O_hw0_last              O_md5
#define O_hw1_last              O_md6
#define O_hw1_last              O_md6
#define O_hw2_last              O_md7
#define O_hw2_last              O_md7
#define O_hw0_got               O_md8
#define O_hw0_got               O_md8
#define O_hw1_got               O_md9
#define O_hw0_last_got          O_md9
#define O_hw2_got               O_md10
#define O_hw1_last_got          O_md10
#define O_hw3_got               O_md11
#define O_plt                   O_md11
#define O_hw0_last_got          O_md12
#define O_hw0_tls_gd            O_md12
#define O_hw1_last_got          O_md13
#define O_hw0_last_tls_gd       O_md13
#define O_hw2_last_got          O_md14
#define O_hw1_last_tls_gd       O_md14
#define O_plt                   O_md15
#define O_hw0_tls_ie            O_md15
#define O_hw0_tls_gd            O_md16
#define O_hw0_last_tls_ie       O_md16
#define O_hw1_tls_gd            O_md17
#define O_hw1_last_tls_ie       O_md17
#define O_hw2_tls_gd            O_md18
#define O_hw0_tls_le            O_md18
#define O_hw3_tls_gd            O_md19
#define O_hw0_last_tls_le       O_md19
#define O_hw0_last_tls_gd       O_md20
#define O_hw1_last_tls_le       O_md20
#define O_hw1_last_tls_gd       O_md21
#define O_tls_gd_call           O_md21
#define O_hw2_last_tls_gd       O_md22
#define O_tls_gd_add            O_md22
#define O_hw0_tls_ie            O_md23
#define O_tls_ie_load           O_md23
#define O_hw1_tls_ie            O_md24
#define O_tls_add               O_md24
#define O_hw2_tls_ie            O_md25
 
#define O_hw3_tls_ie            O_md26
 
#define O_hw0_last_tls_ie       O_md27
 
#define O_hw1_last_tls_ie       O_md28
 
#define O_hw2_last_tls_ie       O_md29
 
 
 
static struct hash_control *special_operator_hash;
static struct hash_control *special_operator_hash;
 
 
/* Hash tables for instruction mnemonic lookup.  */
/* Hash tables for instruction mnemonic lookup.  */
static struct hash_control *op_hash;
static struct hash_control *op_hash;
Line 239... Line 251...
void
void
md_begin (void)
md_begin (void)
{
{
  const struct tilegx_opcode *op;
  const struct tilegx_opcode *op;
  int i;
  int i;
 
  int mach = (tilegx_arch_size == 64) ? bfd_mach_tilegx : bfd_mach_tilegx32;
 
 
 
  if (! bfd_set_arch_mach (stdoutput, bfd_arch_tilegx, mach))
 
    as_warn (_("Could not set architecture and machine"));
 
 
  /* Guarantee text section is aligned.  */
  /* Guarantee text section is aligned.  */
  bfd_set_section_alignment (stdoutput, text_section,
  bfd_set_section_alignment (stdoutput, text_section,
                             TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
                             TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES);
 
 
Line 266... Line 282...
  INSERT_SPECIAL_OP (hw1_last);
  INSERT_SPECIAL_OP (hw1_last);
  INSERT_SPECIAL_OP (hw2_last);
  INSERT_SPECIAL_OP (hw2_last);
  /* hw3_last is a convenience alias for the equivalent hw3.  */
  /* hw3_last is a convenience alias for the equivalent hw3.  */
  hash_insert (special_operator_hash, "hw3_last", (void*)O_hw3);
  hash_insert (special_operator_hash, "hw3_last", (void*)O_hw3);
  INSERT_SPECIAL_OP (hw0_got);
  INSERT_SPECIAL_OP (hw0_got);
  INSERT_SPECIAL_OP (hw1_got);
 
  INSERT_SPECIAL_OP (hw2_got);
 
  INSERT_SPECIAL_OP (hw3_got);
 
  INSERT_SPECIAL_OP (hw0_last_got);
  INSERT_SPECIAL_OP (hw0_last_got);
  INSERT_SPECIAL_OP (hw1_last_got);
  INSERT_SPECIAL_OP (hw1_last_got);
  INSERT_SPECIAL_OP (hw2_last_got);
 
  INSERT_SPECIAL_OP(plt);
  INSERT_SPECIAL_OP(plt);
  INSERT_SPECIAL_OP (hw0_tls_gd);
  INSERT_SPECIAL_OP (hw0_tls_gd);
  INSERT_SPECIAL_OP (hw1_tls_gd);
 
  INSERT_SPECIAL_OP (hw2_tls_gd);
 
  INSERT_SPECIAL_OP (hw3_tls_gd);
 
  INSERT_SPECIAL_OP (hw0_last_tls_gd);
  INSERT_SPECIAL_OP (hw0_last_tls_gd);
  INSERT_SPECIAL_OP (hw1_last_tls_gd);
  INSERT_SPECIAL_OP (hw1_last_tls_gd);
  INSERT_SPECIAL_OP (hw2_last_tls_gd);
 
  INSERT_SPECIAL_OP (hw0_tls_ie);
  INSERT_SPECIAL_OP (hw0_tls_ie);
  INSERT_SPECIAL_OP (hw1_tls_ie);
 
  INSERT_SPECIAL_OP (hw2_tls_ie);
 
  INSERT_SPECIAL_OP (hw3_tls_ie);
 
  INSERT_SPECIAL_OP (hw0_last_tls_ie);
  INSERT_SPECIAL_OP (hw0_last_tls_ie);
  INSERT_SPECIAL_OP (hw1_last_tls_ie);
  INSERT_SPECIAL_OP (hw1_last_tls_ie);
  INSERT_SPECIAL_OP (hw2_last_tls_ie);
  INSERT_SPECIAL_OP (hw0_tls_le);
 
  INSERT_SPECIAL_OP (hw0_last_tls_le);
 
  INSERT_SPECIAL_OP (hw1_last_tls_le);
 
  INSERT_SPECIAL_OP (tls_gd_call);
 
  INSERT_SPECIAL_OP (tls_gd_add);
 
  INSERT_SPECIAL_OP (tls_ie_load);
 
  INSERT_SPECIAL_OP (tls_add);
#undef INSERT_SPECIAL_OP
#undef INSERT_SPECIAL_OP
 
 
  /* Initialize op_hash hash table.  */
  /* Initialize op_hash hash table.  */
  op_hash = hash_new ();
  op_hash = hash_new ();
  for (op = &tilegx_opcodes[0]; op->name != NULL; op++)
  for (op = &tilegx_opcodes[0]; op->name != NULL; op++)
Line 420... Line 431...
  int ret;
  int ret;
  int check_shift = -1;
  int check_shift = -1;
 
 
  switch (op)
  switch (op)
    {
    {
    case O_hw0_last_tls_gd:
 
    case O_hw0_last_tls_ie:
 
    case O_hw0_last:
    case O_hw0_last:
      check_shift = 0;
      check_shift = 0;
      /* Fall through.  */
      /* Fall through.  */
    case O_hw0_tls_gd:
 
    case O_hw0_tls_ie:
 
    case O_hw0:
    case O_hw0:
      ret = (signed short)num;
      ret = (signed short)num;
      break;
      break;
 
 
    case O_hw1_last_tls_gd:
 
    case O_hw1_last_tls_ie:
 
    case O_hw1_last:
    case O_hw1_last:
      check_shift = 16;
      check_shift = 16;
      /* Fall through.  */
      /* Fall through.  */
    case O_hw1_tls_gd:
 
    case O_hw1_tls_ie:
 
    case O_hw1:
    case O_hw1:
      ret = (signed short)(num >> 16);
      ret = (signed short)(num >> 16);
      break;
      break;
 
 
    case O_hw2_last_tls_gd:
 
    case O_hw2_last_tls_ie:
 
    case O_hw2_last:
    case O_hw2_last:
      check_shift = 32;
      check_shift = 32;
      /* Fall through.  */
      /* Fall through.  */
    case O_hw2_tls_gd:
 
    case O_hw2_tls_ie:
 
    case O_hw2:
    case O_hw2:
      ret = (signed short)(num >> 32);
      ret = (signed short)(num >> 32);
      break;
      break;
 
 
    case O_hw3_tls_gd:
 
    case O_hw3_tls_ie:
 
    case O_hw3:
    case O_hw3:
      ret = (signed short)(num >> 48);
      ret = (signed short)(num >> 48);
      break;
      break;
 
 
    default:
    default:
Line 557... Line 554...
            case O_hw0_got:
            case O_hw0_got:
              HANDLE_OP16 (HW0_GOT);
              HANDLE_OP16 (HW0_GOT);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw1_got:
 
              HANDLE_OP16 (HW1_GOT);
 
              require_symbol = 1;
 
              break;
 
 
 
            case O_hw2_got:
 
              HANDLE_OP16 (HW2_GOT);
 
              require_symbol = 1;
 
              break;
 
 
 
            case O_hw3_got:
 
              HANDLE_OP16 (HW3_GOT);
 
              require_symbol = 1;
 
              break;
 
 
 
            case O_hw0_last_got:
            case O_hw0_last_got:
              HANDLE_OP16 (HW0_LAST_GOT);
              HANDLE_OP16 (HW0_LAST_GOT);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw1_last_got:
            case O_hw1_last_got:
              HANDLE_OP16 (HW1_LAST_GOT);
              HANDLE_OP16 (HW1_LAST_GOT);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw2_last_got:
 
              HANDLE_OP16 (HW2_LAST_GOT);
 
              require_symbol = 1;
 
              break;
 
 
 
            case O_hw0_tls_gd:
            case O_hw0_tls_gd:
              HANDLE_OP16 (HW0_TLS_GD);
              HANDLE_OP16 (HW0_TLS_GD);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw1_tls_gd:
            case O_hw0_last_tls_gd:
              HANDLE_OP16 (HW1_TLS_GD);
              HANDLE_OP16 (HW0_LAST_TLS_GD);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw2_tls_gd:
            case O_hw1_last_tls_gd:
              HANDLE_OP16 (HW2_TLS_GD);
              HANDLE_OP16 (HW1_LAST_TLS_GD);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw3_tls_gd:
            case O_hw0_tls_ie:
              HANDLE_OP16 (HW3_TLS_GD);
              HANDLE_OP16 (HW0_TLS_IE);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw0_last_tls_gd:
            case O_hw0_last_tls_ie:
              HANDLE_OP16 (HW0_LAST_TLS_GD);
              HANDLE_OP16 (HW0_LAST_TLS_IE);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw1_last_tls_gd:
            case O_hw1_last_tls_ie:
              HANDLE_OP16 (HW1_LAST_TLS_GD);
              HANDLE_OP16 (HW1_LAST_TLS_IE);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw2_last_tls_gd:
            case O_hw0_tls_le:
              HANDLE_OP16 (HW2_LAST_TLS_GD);
              HANDLE_OP16 (HW0_TLS_LE);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw0_tls_ie:
            case O_hw0_last_tls_le:
              HANDLE_OP16 (HW0_TLS_IE);
              HANDLE_OP16 (HW0_LAST_TLS_LE);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw1_tls_ie:
            case O_hw1_last_tls_le:
              HANDLE_OP16 (HW1_TLS_IE);
              HANDLE_OP16 (HW1_LAST_TLS_LE);
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw2_tls_ie:
#undef HANDLE_OP16
              HANDLE_OP16 (HW2_TLS_IE);
 
              require_symbol = 1;
 
              break;
 
 
 
            case O_hw3_tls_ie:
            case O_plt:
              HANDLE_OP16 (HW3_TLS_IE);
              switch (reloc)
 
                {
 
                case BFD_RELOC_TILEGX_JUMPOFF_X1:
 
                  reloc = BFD_RELOC_TILEGX_JUMPOFF_X1_PLT;
 
                  break;
 
                default:
 
                  die = 1;
 
                  break;
 
                }
 
              use_subexp = 1;
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw0_last_tls_ie:
            case O_tls_gd_call:
              HANDLE_OP16 (HW0_LAST_TLS_IE);
              switch (reloc)
 
                {
 
                case BFD_RELOC_TILEGX_JUMPOFF_X1:
 
                  reloc = BFD_RELOC_TILEGX_TLS_GD_CALL;
 
                  break;
 
                default:
 
                  die = 1;
 
                  break;
 
                }
 
              use_subexp = 1;
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw1_last_tls_ie:
            case O_tls_gd_add:
              HANDLE_OP16 (HW1_LAST_TLS_IE);
              switch (reloc)
 
                {
 
                case BFD_RELOC_TILEGX_IMM8_X0:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD;
 
                  break;
 
                case BFD_RELOC_TILEGX_IMM8_X1:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD;
 
                  break;
 
                case BFD_RELOC_TILEGX_IMM8_Y0:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD;
 
                  break;
 
                case BFD_RELOC_TILEGX_IMM8_Y1:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD;
 
                  break;
 
                default:
 
                  die = 1;
 
                  break;
 
                }
 
              use_subexp = 1;
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
            case O_hw2_last_tls_ie:
            case O_tls_ie_load:
              HANDLE_OP16 (HW2_LAST_TLS_IE);
              switch (reloc)
 
                {
 
                case BFD_RELOC_TILEGX_IMM8_X1:
 
                  reloc = BFD_RELOC_TILEGX_TLS_IE_LOAD;
 
                  break;
 
                default:
 
                  die = 1;
 
                  break;
 
                }
 
              use_subexp = 1;
              require_symbol = 1;
              require_symbol = 1;
              break;
              break;
 
 
#undef HANDLE_OP16
            case O_tls_add:
 
 
            case O_plt:
 
              switch (reloc)
              switch (reloc)
                {
                {
                case BFD_RELOC_TILEGX_JUMPOFF_X1:
                case BFD_RELOC_TILEGX_IMM8_X0:
                  reloc = BFD_RELOC_TILEGX_JUMPOFF_X1_PLT;
                  reloc = BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD;
 
                  break;
 
                case BFD_RELOC_TILEGX_IMM8_X1:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD;
 
                  break;
 
                case BFD_RELOC_TILEGX_IMM8_Y0:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD;
 
                  break;
 
                case BFD_RELOC_TILEGX_IMM8_Y1:
 
                  reloc = BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD;
                  break;
                  break;
                default:
                default:
                  die = 1;
                  die = 1;
                  break;
                  break;
                }
                }
Line 687... Line 713...
          else if (use_subexp)
          else if (use_subexp)
            {
            {
              /* Now that we've changed the reloc, change ha16(x) into x,
              /* Now that we've changed the reloc, change ha16(x) into x,
                 etc.  */
                 etc.  */
 
 
              if (operand_exp->X_add_symbol->sy_value.X_md)
              if (!operand_exp->X_add_symbol->sy_flags.sy_local_symbol
 
                  && operand_exp->X_add_symbol->sy_value.X_md)
                {
                {
                  /* HACK: We used X_md to mark this symbol as a fake wrapper
                  /* HACK: We used X_md to mark this symbol as a fake wrapper
                     around a real expression. To unwrap it, we just grab its
                     around a real expression. To unwrap it, we just grab its
                     value here.  */
                     value here.  */
                  operand_exp = &operand_exp->X_add_symbol->sy_value;
                  operand_exp = &operand_exp->X_add_symbol->sy_value;
Line 1263... Line 1290...
};
};
 
 
/* Equal to MAX_PRECISION in atof-ieee.c  */
/* Equal to MAX_PRECISION in atof-ieee.c  */
#define MAX_LITTLENUMS 6
#define MAX_LITTLENUMS 6
 
 
 
void
 
md_number_to_chars (char * buf, valueT val, int n)
 
{
 
  if (target_big_endian)
 
    number_to_chars_bigendian (buf, val, n);
 
  else
 
    number_to_chars_littleendian (buf, val, n);
 
}
 
 
/* Turn the string pointed to by litP into a floating point constant
/* Turn the string pointed to by litP into a floating point constant
   of type TYPE, and emit the appropriate bytes.  The number of
   of type TYPE, and emit the appropriate bytes.  The number of
   LITTLENUMS emitted is stored in *SIZEP.  An error message is
   LITTLENUMS emitted is stored in *SIZEP.  An error message is
   returned, or NULL on OK.  */
   returned, or NULL on OK.  */
 
 
Line 1468... Line 1504...
  if (fixP->fx_addsy != NULL)
  if (fixP->fx_addsy != NULL)
    {
    {
#ifdef OBJ_ELF
#ifdef OBJ_ELF
      switch (fixP->fx_r_type)
      switch (fixP->fx_r_type)
        {
        {
 
        case BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:
 
        case BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:
        case BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE:
        case BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE:
        case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
        case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
        case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
        case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_TLS_GD_CALL:
        case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
        case BFD_RELOC_TILEGX_TLS_IE_LOAD:
        case BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD:
 
        case BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE:
 
        case BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE:
 
        case BFD_RELOC_TILEGX_TLS_DTPMOD64:
        case BFD_RELOC_TILEGX_TLS_DTPMOD64:
        case BFD_RELOC_TILEGX_TLS_DTPOFF64:
        case BFD_RELOC_TILEGX_TLS_DTPOFF64:
        case BFD_RELOC_TILEGX_TLS_TPOFF64:
        case BFD_RELOC_TILEGX_TLS_TPOFF64:
        case BFD_RELOC_TILEGX_TLS_DTPMOD32:
        case BFD_RELOC_TILEGX_TLS_DTPMOD32:
        case BFD_RELOC_TILEGX_TLS_DTPOFF32:
        case BFD_RELOC_TILEGX_TLS_DTPOFF32:
Line 1522... Line 1558...
    case BFD_RELOC_TILEGX_HW0:
    case BFD_RELOC_TILEGX_HW0:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:
 
      special = O_hw0;
      special = O_hw0;
      break;
      break;
 
 
    case BFD_RELOC_TILEGX_HW0_LAST:
    case BFD_RELOC_TILEGX_HW0_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
 
      special = O_hw0_last;
      special = O_hw0_last;
      break;
      break;
 
 
    case BFD_RELOC_TILEGX_HW1:
    case BFD_RELOC_TILEGX_HW1:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE:
 
      special = O_hw1;
      special = O_hw1;
      break;
      break;
 
 
    case BFD_RELOC_TILEGX_HW1_LAST:
    case BFD_RELOC_TILEGX_HW1_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
 
      special = O_hw1_last;
      special = O_hw1_last;
      break;
      break;
 
 
    case BFD_RELOC_TILEGX_HW2:
    case BFD_RELOC_TILEGX_HW2:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE:
 
      special = O_hw2;
      special = O_hw2;
      break;
      break;
 
 
    case BFD_RELOC_TILEGX_HW2_LAST:
    case BFD_RELOC_TILEGX_HW2_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE:
 
      special = O_hw2_last;
      special = O_hw2_last;
      break;
      break;
 
 
    case BFD_RELOC_TILEGX_HW3:
    case BFD_RELOC_TILEGX_HW3:
    case BFD_RELOC_TILEGX_IMM16_X0_HW3:
    case BFD_RELOC_TILEGX_IMM16_X0_HW3:
    case BFD_RELOC_TILEGX_IMM16_X1_HW3:
    case BFD_RELOC_TILEGX_IMM16_X1_HW3:
    case BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:
    case BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD:
 
    case BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE:
 
    case BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE:
 
      special = O_hw3;
      special = O_hw3;
      break;
      break;
 
 
    default:
    default:
      /* Do nothing  */
      /* Do nothing  */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.