mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-19 00:48:05 +00:00
* config/tc-mips.c (mips_pseudo_table): Add "insn".
(s_insn): New static function. * doc/c-mips.texi: Document .insn.
This commit is contained in:
parent
ebf2837264
commit
ed3eb78691
@ -1,5 +1,9 @@
|
||||
Wed Feb 12 14:36:29 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* config/tc-mips.c (mips_pseudo_table): Add "insn".
|
||||
(s_insn): New static function.
|
||||
* doc/c-mips.texi: Document .insn.
|
||||
|
||||
* config/tc-mips.c (md_begin): Add the general registers to the
|
||||
symbol table.
|
||||
(mips16_ip): First parse the expression, and then see whether it
|
||||
|
@ -548,6 +548,7 @@ static void s_cpload PARAMS ((int));
|
||||
static void s_cprestore PARAMS ((int));
|
||||
static void s_gpword PARAMS ((int));
|
||||
static void s_cpadd PARAMS ((int));
|
||||
static void s_insn PARAMS ((int));
|
||||
static void md_obj_begin PARAMS ((void));
|
||||
static void md_obj_end PARAMS ((void));
|
||||
static long get_number PARAMS ((void));
|
||||
@ -587,6 +588,7 @@ static const pseudo_typeS mips_pseudo_table[] =
|
||||
{"cprestore", s_cprestore, 0},
|
||||
{"gpword", s_gpword, 0},
|
||||
{"cpadd", s_cpadd, 0},
|
||||
{"insn", s_insn, 0},
|
||||
|
||||
/* Relatively generic pseudo-ops that happen to be used on MIPS
|
||||
chips. */
|
||||
@ -9215,6 +9217,38 @@ s_cpadd (ignore)
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
/* Handle the .insn pseudo-op. This marks instruction labels in
|
||||
mips16 mode. This permits the linker to handle them specially,
|
||||
such as generating jalx instructions when needed. We also make
|
||||
them odd for the duration of the assembly, in order to generate the
|
||||
right sort of code. We will make them even in the adjust_symtab
|
||||
routine, while leaving them marked. This is convenient for the
|
||||
debugger and the disassembler. The linker knows to make them odd
|
||||
again. */
|
||||
|
||||
static void
|
||||
s_insn (ignore)
|
||||
int ignore;
|
||||
{
|
||||
if (mips16)
|
||||
{
|
||||
struct insn_label_list *l;
|
||||
|
||||
for (l = insn_labels; l != NULL; l = l->next)
|
||||
{
|
||||
#ifdef S_SET_OTHER
|
||||
if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
|
||||
S_SET_OTHER (l->label, STO_MIPS16);
|
||||
#endif
|
||||
++l->label->sy_value.X_add_number;
|
||||
}
|
||||
|
||||
mips_clear_insn_labels ();
|
||||
}
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
||||
/* Parse a register string into a number. Called from the ECOFF code
|
||||
to parse .frame. The argument is non-zero if this is the frame
|
||||
register, so that we can record it in mips_frame_reg. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user