2005-09-09 Dmitry Diky <diwil@spec.ru>
* config/tc-msp430.c (msp430_operands): Undo last changes. Instead... (msp430_relax_frag): add a guard check to ensure that final fr_subtype has been reached.
This commit is contained in:
parent
e04bcc6d65
commit
3e470ab5cd
|
@ -1,3 +1,9 @@
|
||||||
|
2005-09-09 Dmitry Diky <diwil@spec.ru>
|
||||||
|
|
||||||
|
* config/tc-msp430.c (msp430_operands): Undo last changes. Instead...
|
||||||
|
(msp430_relax_frag): add a guard check to ensure that final fr_subtype
|
||||||
|
has been reached.
|
||||||
|
|
||||||
2005-09-08 Chao-ying Fu <fu@mips.com>
|
2005-09-08 Chao-ying Fu <fu@mips.com>
|
||||||
|
|
||||||
* doc/as.texinfo: Document -mdsp and -mno-dsp options.
|
* doc/as.texinfo: Document -mdsp and -mno-dsp options.
|
||||||
|
|
|
@ -1778,14 +1778,14 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line)
|
||||||
of the insn from the fix piece of instruction that was emitted.
|
of the insn from the fix piece of instruction that was emitted.
|
||||||
Since next fragments may have variable size we tie debug info
|
Since next fragments may have variable size we tie debug info
|
||||||
to the beginning of the instruction. */
|
to the beginning of the instruction. */
|
||||||
frag = frag_more (0);
|
frag = frag_more (8);
|
||||||
dwarf2_emit_insn (0);
|
dwarf2_emit_insn (0);
|
||||||
frag = frag_var/*iant*/ (rs_machine_dependent, 8, 2,
|
bfd_putl16 ((bfd_vma) rc.sop, frag);
|
||||||
|
frag = frag_variant (rs_machine_dependent, 8, 2,
|
||||||
ENCODE_RELAX (rc.lpos, STATE_BITS10), /* Wild guess. */
|
ENCODE_RELAX (rc.lpos, STATE_BITS10), /* Wild guess. */
|
||||||
exp.X_add_symbol,
|
exp.X_add_symbol,
|
||||||
0, /* Offset is zero if jump dist less than 1K. */
|
0, /* Offset is zero if jump dist less than 1K. */
|
||||||
(char *) frag);
|
(char *) frag);
|
||||||
bfd_putl16 ((bfd_vma) rc.sop, frag);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1815,15 +1815,16 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line)
|
||||||
/* Relaxation required. */
|
/* Relaxation required. */
|
||||||
struct hcodes_s hc = msp430_hcodes[opcode->insn_opnumb];
|
struct hcodes_s hc = msp430_hcodes[opcode->insn_opnumb];
|
||||||
|
|
||||||
frag = frag_more (0);
|
frag = frag_more (8);
|
||||||
dwarf2_emit_insn (0);
|
dwarf2_emit_insn (0);
|
||||||
frag = frag_var/*iant*/ (rs_machine_dependent, 8, 2,
|
bfd_putl16 ((bfd_vma) hc.op0, frag);
|
||||||
|
bfd_putl16 ((bfd_vma) hc.op1, frag+2);
|
||||||
|
|
||||||
|
frag = frag_variant (rs_machine_dependent, 8, 2,
|
||||||
ENCODE_RELAX (STATE_EMUL_BRANCH, STATE_BITS10), /* Wild guess. */
|
ENCODE_RELAX (STATE_EMUL_BRANCH, STATE_BITS10), /* Wild guess. */
|
||||||
exp.X_add_symbol,
|
exp.X_add_symbol,
|
||||||
0, /* Offset is zero if jump dist less than 1K. */
|
0, /* Offset is zero if jump dist less than 1K. */
|
||||||
(char *) frag);
|
(char *) frag);
|
||||||
bfd_putl16 ((bfd_vma) hc.op0, frag);
|
|
||||||
bfd_putl16 ((bfd_vma) hc.op1, frag+2);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2305,7 +2306,7 @@ msp430_relax_frag (segT seg ATTRIBUTE_UNUSED, fragS * fragP,
|
||||||
{
|
{
|
||||||
/* Look backwards. */
|
/* Look backwards. */
|
||||||
for (next_state = this_type->rlx_more; next_state;)
|
for (next_state = this_type->rlx_more; next_state;)
|
||||||
if (aim >= this_type->rlx_backward)
|
if (aim >= this_type->rlx_backward || !this_type->rlx_backward)
|
||||||
next_state = 0;
|
next_state = 0;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2319,7 +2320,7 @@ msp430_relax_frag (segT seg ATTRIBUTE_UNUSED, fragS * fragP,
|
||||||
{
|
{
|
||||||
/* Look forwards. */
|
/* Look forwards. */
|
||||||
for (next_state = this_type->rlx_more; next_state;)
|
for (next_state = this_type->rlx_more; next_state;)
|
||||||
if (aim <= this_type->rlx_forward)
|
if (aim <= this_type->rlx_forward || !this_type->rlx_forward)
|
||||||
next_state = 0;
|
next_state = 0;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue