* config/tc-v850.c: Support dwarf2.
* config/tc-v850.h: Ditto. * config/tc-v850.c (cons_fix_new_v850): Don't rely on parse_cons_expression_v850 to initialize hold_cons_reloc.
This commit is contained in:
parent
296731c177
commit
a8761a19f4
@ -1,3 +1,11 @@
|
||||
2000-11-14 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* config/tc-v850.c: Support dwarf2.
|
||||
* config/tc-v850.h: Ditto.
|
||||
|
||||
* config/tc-v850.c (cons_fix_new_v850): Don't rely on
|
||||
parse_cons_expression_v850 to initialize hold_cons_reloc.
|
||||
|
||||
2000-11-15 Bernd Schmidt <bernds@redhat.com>
|
||||
|
||||
* tc-ia64.c (struct md): New entries LAST_GROUPS, GROUP_IDX.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* tc-v850.c -- Assembler code for the NEC V850
|
||||
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation.
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
#include "as.h"
|
||||
#include "subsegs.h"
|
||||
#include "opcode/v850.h"
|
||||
#include "dwarf2dbg.h"
|
||||
|
||||
#define AREA_ZDA 0
|
||||
#define AREA_SDA 1
|
||||
@ -32,7 +33,7 @@
|
||||
#define SEXT16(x) ((((x) & 0xffff) ^ (~0x7fff)) + 0x8000)
|
||||
|
||||
/* Temporarily holds the reloc in a cons expression. */
|
||||
static bfd_reloc_code_real_type hold_cons_reloc;
|
||||
static bfd_reloc_code_real_type hold_cons_reloc = BFD_RELOC_UNUSED;
|
||||
|
||||
/* Set to TRUE if we want to be pedantic about signed overflows. */
|
||||
static boolean warn_signed_overflows = FALSE;
|
||||
@ -607,6 +608,8 @@ const pseudo_typeS md_pseudo_table[] =
|
||||
{"call_table_text", v850_call_table_text, 0},
|
||||
{"v850e", set_machine, bfd_mach_v850e},
|
||||
{"v850ea", set_machine, bfd_mach_v850ea},
|
||||
{"file", dwarf2_directive_file },
|
||||
{"loc", dwarf2_directive_loc },
|
||||
{ NULL, NULL, 0}
|
||||
};
|
||||
|
||||
@ -1708,6 +1711,7 @@ md_assemble (str)
|
||||
int relaxable = 0;
|
||||
unsigned long insn;
|
||||
unsigned long insn_size;
|
||||
unsigned long total_insn_size = 0;
|
||||
char *f;
|
||||
int i;
|
||||
int match;
|
||||
@ -2183,6 +2187,7 @@ md_assemble (str)
|
||||
md_number_to_chars (f, insn, insn_size);
|
||||
md_number_to_chars (f + 2, 0, 4);
|
||||
}
|
||||
total_insn_size = insn_size;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2197,12 +2202,14 @@ md_assemble (str)
|
||||
insn_size = 2;
|
||||
|
||||
f = frag_more (insn_size);
|
||||
total_insn_size = insn_size;
|
||||
|
||||
md_number_to_chars (f, insn, insn_size);
|
||||
|
||||
if (extra_data_after_insn)
|
||||
{
|
||||
f = frag_more (extra_data_len);
|
||||
total_insn_size += extra_data_len;
|
||||
|
||||
md_number_to_chars (f, extra_data, extra_data_len);
|
||||
|
||||
@ -2276,6 +2283,9 @@ md_assemble (str)
|
||||
}
|
||||
|
||||
input_line_pointer = saved_input_line_pointer;
|
||||
|
||||
if (debug_type == DEBUG_DWARF2)
|
||||
dwarf2_generate_asm_lineno (total_insn_size);
|
||||
}
|
||||
|
||||
/* If while processing a fixup, a reloc really needs to be created
|
||||
@ -2489,6 +2499,8 @@ cons_fix_new_v850 (frag, where, size, exp)
|
||||
fix_new_exp (frag, where, size, exp, 0, hold_cons_reloc);
|
||||
else
|
||||
fix_new (frag, where, size, NULL, 0, 0, hold_cons_reloc);
|
||||
|
||||
hold_cons_reloc = BFD_RELOC_UNUSED;
|
||||
}
|
||||
|
||||
boolean
|
||||
@ -2531,3 +2543,10 @@ v850_force_relocation (fixP)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
v850_finalize ()
|
||||
{
|
||||
if (debug_type == DEBUG_DWARF2)
|
||||
dwarf2_finish ();
|
||||
}
|
||||
|
@ -89,3 +89,8 @@ extern const struct relax_type md_relax_table[];
|
||||
|
||||
#define MD_PCREL_FROM_SECTION(fixP,section) v850_pcrel_from_section (fixP, section)
|
||||
extern long v850_pcrel_from_section ();
|
||||
|
||||
#define md_end() v850_finalize ()
|
||||
extern void v850_finalize PARAMS ((void));
|
||||
|
||||
#define DWARF2_LINE_MIN_INSN_LENGTH 2
|
||||
|
Loading…
Reference in New Issue
Block a user