mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
* config/tc-m68k.c (md_apply_fix_2): Error if a short branch uses
an illegal offset of 0 or -1.
This commit is contained in:
parent
56a2f3410f
commit
f3751617c3
@ -1,5 +1,8 @@
|
||||
Tue Oct 26 16:58:36 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* config/tc-m68k.c (md_apply_fix_2): Error if a short branch uses
|
||||
an illegal offset of 0 or -1.
|
||||
|
||||
* config/obj-elf.c (obj_elf_init_stab_section): Align .stab
|
||||
section to a longword boundary.
|
||||
|
||||
|
@ -4032,7 +4032,17 @@ md_apply_fix_2 (fixP, val)
|
||||
upper_limit = upper_limit * 2 + 1;
|
||||
|
||||
if ((unsigned) val > upper_limit && (val > 0 || val < lower_limit))
|
||||
as_bad ("value out of range");
|
||||
as_bad_where (fixP->fx_file, fixP->fx_line, "value out of range");
|
||||
|
||||
/* A one byte PC-relative reloc means a short branch. We can't use
|
||||
a short branch with a value of 0 or -1, because those indicate
|
||||
different opcodes (branches with longer offsets). */
|
||||
if (fixP->fx_pcrel
|
||||
&& fixP->fx_size == 1
|
||||
&& (fixP->fx_addsy == NULL
|
||||
|| S_IS_DEFINED (fixP->fx_addsy))
|
||||
&& (val == 0 || val == -1))
|
||||
as_bad_where (fixP->fx_file, fixP->fx_line, "invalid byte branch offset");
|
||||
}
|
||||
|
||||
#ifdef BFD_ASSEMBLER
|
||||
|
Loading…
Reference in New Issue
Block a user