mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-03 03:07:26 +08:00
* config/tc-cris.c (s_cris_dtpoff): New function.
(md_pseudo_table): Add "dtpoffd".
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2008-12-21 Hans-Peter Nilsson <hp@axis.com>
|
||||||
|
|
||||||
|
* config/tc-cris.c (s_cris_dtpoff): New function.
|
||||||
|
(md_pseudo_table): Add "dtpoffd".
|
||||||
|
|
||||||
2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
|
2008-12-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* config/tc-i386.c (parse_insn): Optimize ".s" handling.
|
* config/tc-i386.c (parse_insn): Optimize ".s" handling.
|
||||||
|
@ -148,6 +148,7 @@ static void s_syntax (int);
|
|||||||
static void s_cris_file (int);
|
static void s_cris_file (int);
|
||||||
static void s_cris_loc (int);
|
static void s_cris_loc (int);
|
||||||
static void s_cris_arch (int);
|
static void s_cris_arch (int);
|
||||||
|
static void s_cris_dtpoff (int);
|
||||||
|
|
||||||
/* Get ":GOT", ":GOTOFF", ":PLT" etc. suffixes. */
|
/* Get ":GOT", ":GOTOFF", ":PLT" etc. suffixes. */
|
||||||
static void cris_get_reloc_suffix (char **, bfd_reloc_code_real_type *,
|
static void cris_get_reloc_suffix (char **, bfd_reloc_code_real_type *,
|
||||||
@ -198,6 +199,7 @@ static enum cris_archs cris_arch = XCONCAT2 (arch_,DEFAULT_CRIS_ARCH);
|
|||||||
const pseudo_typeS md_pseudo_table[] =
|
const pseudo_typeS md_pseudo_table[] =
|
||||||
{
|
{
|
||||||
{"dword", cons, 4},
|
{"dword", cons, 4},
|
||||||
|
{"dtpoffd", s_cris_dtpoff, 4},
|
||||||
{"syntax", s_syntax, 0},
|
{"syntax", s_syntax, 0},
|
||||||
{"file", s_cris_file, 0},
|
{"file", s_cris_file, 0},
|
||||||
{"loc", s_cris_loc, 0},
|
{"loc", s_cris_loc, 0},
|
||||||
@ -4213,6 +4215,30 @@ s_cris_loc (int dummy)
|
|||||||
dwarf2_directive_loc (dummy);
|
dwarf2_directive_loc (dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Worker for .dtpoffd: generate a R_CRIS_32_DTPREL reloc, as for
|
||||||
|
expr:DTPREL but for use in debug info. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
s_cris_dtpoff (int bytes)
|
||||||
|
{
|
||||||
|
expressionS ex;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
if (bytes != 4)
|
||||||
|
as_fatal (_("internal inconsistency problem: %s called for %d bytes"),
|
||||||
|
__FUNCTION__, bytes);
|
||||||
|
|
||||||
|
expression (&ex);
|
||||||
|
|
||||||
|
p = frag_more (bytes);
|
||||||
|
md_number_to_chars (p, 0, bytes);
|
||||||
|
fix_new_exp (frag_now, p - frag_now->fr_literal, bytes, &ex, FALSE,
|
||||||
|
BFD_RELOC_CRIS_32_DTPREL);
|
||||||
|
|
||||||
|
demand_empty_rest_of_line ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Translate a <arch> string (as common to --march=<arch> and .arch <arch>)
|
/* Translate a <arch> string (as common to --march=<arch> and .arch <arch>)
|
||||||
into an enum. If the string *STR is recognized, *STR is updated to point
|
into an enum. If the string *STR is recognized, *STR is updated to point
|
||||||
to the end of the string. If the string is not recognized,
|
to the end of the string. If the string is not recognized,
|
||||||
|
Reference in New Issue
Block a user