Wed Jan 29 15:31:12 1997 Martin M. Hunt <hunt@pizza.cygnus.com>

* config/tc-d10v.h (md_do_align): Add this hook to call
	d10v_cleanup() when a ".align" is detected.  Fixes PR11487.

	* config/tc-d10v.c (find_opcode): Correctly calculate
	branch displacement when .aligns are present.
This commit is contained in:
Martin Hunt 1997-01-29 23:36:06 +00:00
parent 0948199a7b
commit daa04fa206
2 changed files with 4 additions and 6 deletions

View File

@ -912,9 +912,6 @@ md_assemble (str)
static int etype=0; /* saved extype. used for multiline instructions */
char *str2;
for (str2 = str; *str2; str2++)
*str2 = tolower(*str2);
if (etype == 0)
{
/* look for the special multiple instruction separators */
@ -1027,7 +1024,7 @@ do_assemble (str, opcode)
&& !is_end_of_line[*op_end] && *op_end != ' ';
op_end++)
{
name[nlen] = op_start[nlen];
name[nlen] = tolower(op_start[nlen]);
nlen++;
}
name[nlen] = 0;
@ -1103,7 +1100,7 @@ find_opcode (opcode, myops)
/* calculate the current address by running through the previous frags */
/* and adding our current offset */
for (value = 0, f = frchain_now->frch_root; f; f = f->fr_next)
value += f->fr_fix;
value += f->fr_fix + f->fr_offset;
if (flags & OPERAND_ADDR)
value = S_GET_VALUE(myops[opnum].X_add_symbol) - value -

View File

@ -30,7 +30,6 @@
#define TARGET_FORMAT "elf32-d10v"
#define MD_APPLY_FIX3
#define md_operand(x)
/* call md_pcrel_from_section, not md_pcrel_from */
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC)
@ -50,6 +49,8 @@
int d10v_cleanup PARAMS ((void));
#define md_after_pass_hook() d10v_cleanup()
#define md_cleanup() d10v_cleanup()
#define md_do_align(a,b,c,d) d10v_cleanup()
#define TC_START_LABEL(ch, ptr) (ch == ':' && d10v_cleanup())