Add .refsym to msp430 backend

* config/tc-msp430.c (msp430_refsym): New: ".refsym <symbol>"
* doc/c-msp430.texi (MSP430 Directives): Document it.

The purpose of this patch is to provide a way for one object file
to require the inclusion of another object, without having to
allocate space for a .word address reference.
This commit is contained in:
DJ Delorie 2014-01-22 16:41:13 -05:00
parent 7c84a0ca90
commit 96b961024c
3 changed files with 24 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2014-01-22 DJ Delorie <dj@redhat.com>
* config/tc-msp430.c (msp430_refsym): New: ".refsym <symbol>"
* doc/c-msp430.texi (MSP430 Directives): Document it.
2014-01-22 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
* config/tc-i386.c (check_VecOperands): Remove regzmm from AVX2

View file

@ -1257,6 +1257,15 @@ msp430_section (int arg)
obj_elf_section (arg);
}
static void
msp430_refsym (int arg ATTRIBUTE_UNUSED)
{
char sym_name[1024];
input_line_pointer = extract_word (input_line_pointer, sym_name, 1024);
(void) symbol_find_or_make (sym_name);
}
const pseudo_typeS md_pseudo_table[] =
{
{"arch", msp430_set_arch, OPTION_MMCU},
@ -1267,6 +1276,7 @@ const pseudo_typeS md_pseudo_table[] =
{"sect", msp430_section, 0},
{"sect.s", msp430_section, 0},
{"pushsection", msp430_section, 1},
{"refsym", msp430_refsym, 0},
{NULL, NULL, 0}
};

View file

@ -263,6 +263,15 @@ command line option.
@item .profiler
This directive instructs assembler to add new profile entry to the object file.
@cindex @code{refsym} directive, MSP 430
@item .refsym
This directive instructs assembler to add an undefined reference to
the symbol following the directive. The maximum symbol name length is
1023 characters. No relocation is created for this symbol; it will
exist purely for pulling in object files from archives. Note that
this reloc is not sufficient to prevent garbage collection; use a
KEEP() directive in the linker file to preserve such objects.
@end table
@node MSP430 Opcodes