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 */
|