diff options
-rw-r--r-- | bfd/ChangeLog | 22 | ||||
-rw-r--r-- | bfd/bout.c | 4 | ||||
-rw-r--r-- | bfd/coff-rs6000.c | 28 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 32 | ||||
-rw-r--r-- | bfd/elf32-frv.c | 2 | ||||
-rw-r--r-- | bfd/elf32-i860.c | 4 | ||||
-rw-r--r-- | bfd/elf32-msp430.c | 3 | ||||
-rw-r--r-- | bfd/elf32-score.c | 4 | ||||
-rw-r--r-- | bfd/elf32-score7.c | 4 | ||||
-rw-r--r-- | bfd/elf32-visium.c | 26 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 12 | ||||
-rw-r--r-- | bfd/mach-o.c | 2 | ||||
-rw-r--r-- | bfd/ppcboot.c | 2 | ||||
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 2 | ||||
-rw-r--r-- | include/opcode/ChangeLog | 5 | ||||
-rw-r--r-- | include/opcode/ppc.h | 2 | ||||
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 7 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 4 | ||||
-rw-r--r-- | ld/emultempl/pep.em | 4 | ||||
-rw-r--r-- | opcodes/ChangeLog | 18 | ||||
-rw-r--r-- | opcodes/bfin-dis.c | 2 | ||||
-rw-r--r-- | opcodes/cgen-asm.c | 2 | ||||
-rw-r--r-- | opcodes/fr30-ibld.c | 2 | ||||
-rw-r--r-- | opcodes/hppa-dis.c | 4 | ||||
-rw-r--r-- | opcodes/mips-dis.c | 12 | ||||
-rw-r--r-- | opcodes/msp430-dis.c | 38 | ||||
-rw-r--r-- | opcodes/nds32-asm.c | 2 | ||||
-rw-r--r-- | opcodes/sh-opc.h | 8 | ||||
-rw-r--r-- | opcodes/tic30-dis.c | 4 | ||||
-rw-r--r-- | opcodes/v850-dis.c | 2 |
32 files changed, 133 insertions, 142 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bdae109..c067211 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,27 @@ 2015-09-23 Nick Clifton <nickc@redhat.com> + * bout.c (b_out_slurp_reloc_table): Cast constant to unsigned in + order to avoid problems with left shifting negative values. + (abs32code): Likewise. + * mach-o.c (FILE_ALIGN): Likewise. + * coff-rs6000.c (xcoff_debug_sections): Delete unused static + array. + * elf32-visium.c (visium_reloc_map): Likewise. + * elf32-arm.c (elf32_arm_final_link_relocate): Remove useless + calls to abs function. + * elf32-frv.c (_frvfdpic_relax_tls_entries): Likewise. + * elf32-score.c (score_elf_final_link_relocate): Likewise. + * elf32-score7.c (score_elf_final_link_relocate): Likewise. + * elf32-i860.c (i860_howto_pc26_reloc): Use multiplication instead + of shifting to create a negative mask. + * elf32-msp430.c (elf_backend_special_sections): Define. + * elfxx-mips.c (got_ofst_reloc_p): Delete unused function. + (got_hi16_reloc_p): Delete unused function. + * ppcboot.c (ppcboot_bfd_print_private_bfd_data): Fix test of + partition name. + +2015-09-23 Nick Clifton <nickc@redhat.com> + PR binutils/15835 * elf-bfd.h (struct elf_section_list): New structure. (struct elf_obj_tdata): Replace symtab_shndx_hdr with @@ -783,7 +783,7 @@ b_out_slurp_reloc_table (bfd *abfd, sec_ptr asect, asymbol **symbols) /* Sign-extend symnum from 24 bits to whatever host uses. */ s = symnum; if (s & (1 << 23)) - s |= (~0) << 24; + s |= (~0U) << 24; cache_ptr->sym_ptr_ptr = (asymbol **)NULL; switch (s) @@ -1069,7 +1069,7 @@ abs32code (bfd *abfd, jump we were going to. */ gap = value - (dot - shrink); - if (-1 << 23 < (long)gap && (long)gap < 1 << 23) + if ((long)(-1UL << 23) < (long)gap && (long)gap < 1L << 23) { /* Change the reloc type from 32bitcode possible 24, to 24bit possible 32. */ diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 95430c3..b7098a1 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -402,34 +402,6 @@ _bfd_xcoff_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, { return FALSE; } - -static const struct dwarf_debug_section xcoff_debug_sections[] = -{ - { ".dwabrev", NULL }, - { ".dwarnge", NULL }, - { NULL, NULL }, /* .debug_frame */ - { ".dwinfo", NULL }, - { ".dwline", NULL }, - { NULL, NULL }, /* .debug_loc */ - { NULL, NULL }, /* .debug_macinfo */ - { NULL, NULL }, /* .debug_macro */ - { ".dwpbnms", NULL }, - { ".dwpbtyp", NULL }, - { ".dwrnges", NULL }, - { NULL, NULL }, /* .debug_static_func */ - { NULL, NULL }, /* .debug_static_vars */ - { ".dwstr", NULL }, - { NULL, NULL }, /* .debug_types */ - /* GNU DWARF 1 extensions */ - { NULL, NULL }, /* .debug_sfnames */ - { NULL, NULL }, /* .debug_srcinfo */ - /* SGI/MIPS DWARF 2 extensions */ - { NULL, NULL }, /* .debug_funcnames */ - { NULL, NULL }, /* .debug_typenames */ - { NULL, NULL }, /* .debug_varnames */ - { NULL, NULL }, /* .debug_weaknames */ - { NULL, NULL }, -}; void _bfd_xcoff_swap_sym_in (bfd *abfd, void * ext1, void * in1) diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index bd41fd0..aa01a59 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -8816,7 +8816,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, + input_section->output_offset + rel->r_offset); - value = abs (relocation); + value = relocation; if (value >= 0x1000) return bfd_reloc_overflow; @@ -8851,7 +8851,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, + input_section->output_offset + rel->r_offset); - value = abs (relocation); + value = relocation; /* We do not check for overflow of this reloc. Although strictly speaking this is incorrect, it appears to be necessary in order @@ -8888,7 +8888,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, + input_section->output_offset + rel->r_offset); - value = abs (relocation); + value = relocation; if (value >= 0x1000) return bfd_reloc_overflow; @@ -10125,8 +10125,8 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, /* Calculate the value of the relevant G_n, in encoded constant-with-rotation format. */ - g_n = calculate_group_reloc_mask (abs (signed_value), group, - &residual); + g_n = calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value, + group, &residual); /* Check for overflow if required. */ if ((r_type == R_ARM_ALU_PC_G0 @@ -10139,7 +10139,8 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, (*_bfd_error_handler) (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"), input_bfd, input_section, - (long) rel->r_offset, abs (signed_value), howto->name); + (long) rel->r_offset, signed_value < 0 ? - signed_value : signed_value, + howto->name); return bfd_reloc_overflow; } @@ -10219,15 +10220,16 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, /* Calculate the value of the relevant G_{n-1} to obtain the residual at that stage. */ - calculate_group_reloc_mask (abs (signed_value), group - 1, &residual); + calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value, + group - 1, &residual); /* Check for overflow. */ if (residual >= 0x1000) { (*_bfd_error_handler) (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"), - input_bfd, input_section, - (long) rel->r_offset, abs (signed_value), howto->name); + input_bfd, input_section, + (long) rel->r_offset, labs (signed_value), howto->name); return bfd_reloc_overflow; } @@ -10303,15 +10305,16 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, /* Calculate the value of the relevant G_{n-1} to obtain the residual at that stage. */ - calculate_group_reloc_mask (abs (signed_value), group - 1, &residual); + calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value, + group - 1, &residual); /* Check for overflow. */ if (residual >= 0x100) { (*_bfd_error_handler) (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"), - input_bfd, input_section, - (long) rel->r_offset, abs (signed_value), howto->name); + input_bfd, input_section, + (long) rel->r_offset, labs (signed_value), howto->name); return bfd_reloc_overflow; } @@ -10387,7 +10390,8 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, /* Calculate the value of the relevant G_{n-1} to obtain the residual at that stage. */ - calculate_group_reloc_mask (abs (signed_value), group - 1, &residual); + calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value, + group - 1, &residual); /* Check for overflow. (The absolute value to go in the place must be divisible by four and, after having been divided by four, must @@ -10397,7 +10401,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, (*_bfd_error_handler) (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"), input_bfd, input_section, - (long) rel->r_offset, abs (signed_value), howto->name); + (long) rel->r_offset, labs (signed_value), howto->name); return bfd_reloc_overflow; } diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index 1dd2e8c..cd37856 100644 --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -4640,7 +4640,7 @@ _frvfdpic_relax_tls_entries (struct frvfdpic_relocs_info *entry, + 32768) < (bfd_vma)65536)) || (entry->symndx != -1 && (elf_hash_table (dinfo->info)->tls_sec->size - + abs (entry->addend) < 32768 + FRVFDPIC_TLS_BIAS)))) + + entry->addend < 32768 + FRVFDPIC_TLS_BIAS)))) { if (! changed) { diff --git a/bfd/elf32-i860.c b/bfd/elf32-i860.c index 8577f58..f3c7210 100644 --- a/bfd/elf32-i860.c +++ b/bfd/elf32-i860.c @@ -74,7 +74,7 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED, /* Check for target out of range. */ if ((bfd_signed_vma)relocation > (0x3ffffff << 2) - || (bfd_signed_vma)relocation < (-0x4000000 << 2)) + || (bfd_signed_vma)relocation < (-0x4000000 * 4)) return bfd_reloc_outofrange; addr = (bfd_byte *) data + reloc_entry->address; @@ -137,7 +137,7 @@ i860_howto_pc16_reloc (bfd *abfd, /* Check for target out of range. */ if ((bfd_signed_vma)relocation > (0x7fff << 2) - || (bfd_signed_vma)relocation < (-0x8000 << 2)) + || (bfd_signed_vma)relocation < (-0x8000 * 4)) return bfd_reloc_outofrange; addr = (bfd_byte *) data + reloc_entry->address; diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c index 8e87b67..e77565e 100644 --- a/bfd/elf32-msp430.c +++ b/bfd/elf32-msp430.c @@ -2629,4 +2629,7 @@ static const struct bfd_elf_special_section msp430_ti_elf_special_sections[] = { NULL, 0, 0, 0, 0 } }; +#undef elf_backend_special_sections +#define elf_backend_special_sections msp430_ti_elf_special_sections + #include "elf32-target.h" diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c index ce9c377..1d558c0 100644 --- a/bfd/elf32-score.c +++ b/bfd/elf32-score.c @@ -2165,7 +2165,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto, if ((offset & 0x1000000) != 0) offset |= 0xfe000000; value += offset; - abs_value = abs (value - rel_addr); + abs_value = value - rel_addr; if ((abs_value & 0xfe000000) != 0) return bfd_reloc_overflow; addend = (addend & ~howto->src_mask) @@ -2241,7 +2241,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto, if ((offset & 0x800) != 0) /* Offset is negative. */ offset |= 0xfffff000; value += offset; - abs_value = abs (value - rel_addr); + abs_value = value - rel_addr; if ((abs_value & 0xfffff000) != 0) return bfd_reloc_overflow; addend = (addend & ~howto->src_mask) | (value & howto->src_mask); diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c index b0e75bb..5adf9f4 100644 --- a/bfd/elf32-score7.c +++ b/bfd/elf32-score7.c @@ -2065,7 +2065,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto, if ((offset & 0x1000000) != 0) offset |= 0xfe000000; value += offset; - abs_value = abs (value - rel_addr); + abs_value = value - rel_addr; if ((abs_value & 0xfe000000) != 0) return bfd_reloc_overflow; addend = (addend & ~howto->src_mask) @@ -2095,7 +2095,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto, if ((offset & 0x800) != 0) /* Offset is negative. */ offset |= 0xfffff000; value += offset; - abs_value = abs (value - rel_addr); + abs_value = value - rel_addr; if ((abs_value & 0xfffff000) != 0) return bfd_reloc_overflow; addend = (addend & ~howto->src_mask) | (value & howto->src_mask); diff --git a/bfd/elf32-visium.c b/bfd/elf32-visium.c index 637d72b..52267c3 100644 --- a/bfd/elf32-visium.c +++ b/bfd/elf32-visium.c @@ -276,32 +276,6 @@ static reloc_howto_type visium_elf_vtentry_howto = 0, /* dst_mask */ FALSE); /* pcrel_offset */ -/* Map BFD reloc types to VISIUM ELF reloc types. */ -struct visium_reloc_map -{ - bfd_reloc_code_real_type bfd_reloc_val; - unsigned int visium_reloc_val; -}; - -static const struct visium_reloc_map visium_reloc_map[] = { - {BFD_RELOC_NONE, R_VISIUM_NONE}, - {BFD_RELOC_8, R_VISIUM_8}, - {BFD_RELOC_16, R_VISIUM_16}, - {BFD_RELOC_32, R_VISIUM_32}, - {BFD_RELOC_8_PCREL, R_VISIUM_8_PCREL}, - {BFD_RELOC_16_PCREL, R_VISIUM_16_PCREL}, - {BFD_RELOC_32_PCREL, R_VISIUM_32_PCREL}, - {BFD_RELOC_VISIUM_REL16, R_VISIUM_PC16}, - {BFD_RELOC_VISIUM_HI16, R_VISIUM_HI16}, - {BFD_RELOC_VISIUM_LO16, R_VISIUM_LO16}, - {BFD_RELOC_VISIUM_IM16, R_VISIUM_IM16}, - {BFD_RELOC_VISIUM_HI16_PCREL, R_VISIUM_HI16_PCREL}, - {BFD_RELOC_VISIUM_LO16_PCREL, R_VISIUM_LO16_PCREL}, - {BFD_RELOC_VISIUM_IM16_PCREL, R_VISIUM_IM16_PCREL}, - {BFD_RELOC_VTABLE_INHERIT, R_VISIUM_GNU_VTINHERIT}, - {BFD_RELOC_VTABLE_ENTRY, R_VISIUM_GNU_VTENTRY}, -}; - /* Return the parity bit for INSN shifted to its final position. */ static bfd_vma diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 4689b21..12d7a03 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -2157,18 +2157,6 @@ got_page_reloc_p (unsigned int r_type) } static inline bfd_boolean -got_ofst_reloc_p (unsigned int r_type) -{ - return r_type == R_MIPS_GOT_OFST || r_type == R_MICROMIPS_GOT_OFST; -} - -static inline bfd_boolean -got_hi16_reloc_p (unsigned int r_type) -{ - return r_type == R_MIPS_GOT_HI16 || r_type == R_MICROMIPS_GOT_HI16; -} - -static inline bfd_boolean got_lo16_reloc_p (unsigned int r_type) { return r_type == R_MIPS_GOT_LO16 || r_type == R_MICROMIPS_GOT_LO16; diff --git a/bfd/mach-o.c b/bfd/mach-o.c index e6cbe23..5b122c5 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -35,7 +35,7 @@ #define bfd_mach_o_mkobject bfd_mach_o_gen_mkobject #define FILE_ALIGN(off, algn) \ - (((off) + ((file_ptr) 1 << (algn)) - 1) & ((file_ptr) -1 << (algn))) + (((off) + ((file_ptr) 1 << (algn)) - 1) & ((file_ptr) -1U << (algn))) static bfd_boolean bfd_mach_o_read_dyld_content (bfd *abfd, bfd_mach_o_dyld_info_command *cmd); diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c index 12fad62..c3fb4fe 100644 --- a/bfd/ppcboot.c +++ b/bfd/ppcboot.c @@ -402,7 +402,7 @@ ppcboot_bfd_print_private_bfd_data (bfd *abfd, void * farg) if (tdata->header.os_id) fprintf (f, "OS_ID = 0x%.2x\n", tdata->header.os_id); - if (tdata->header.partition_name) + if (tdata->header.partition_name[0]) fprintf (f, _("Partition name = \"%s\"\n"), tdata->header.partition_name); for (i = 0; i < 4; i++) diff --git a/gas/ChangeLog b/gas/ChangeLog index fe1ed74..606dcf0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2015-09-23 Nick Clifton <nickc@redhat.com> + + * config/tc-ppc.c (insn_validate): Cast PPC_OPSHIFT_INV to an int. + 2015-09-22 Nick Clifton <nickc@redhat.com> * config/tc-rx.c (nop_7): Recode using MAX. diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 6e48f7a..b6b4412 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -1457,7 +1457,7 @@ insn_validate (const struct powerpc_opcode *op) else { const struct powerpc_operand *operand = &powerpc_operands[*o]; - if (operand->shift != PPC_OPSHIFT_INV) + if (operand->shift != (int) PPC_OPSHIFT_INV) { unsigned long mask; diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index d81b604..44fc32c 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +2015-09-23 Nick Clifton <nickc@redhat.com> + + * ppc.h (PPC_OPSHIFT_INV): Use an unsigned constant when left + shifting. + 2015-09-22 Nick Clifton <nickc@redhat.com> * rx.h (enum RX_Size): Add RX_Bad_Size entry. diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h index 6106dec..8f87e68 100644 --- a/include/opcode/ppc.h +++ b/include/opcode/ppc.h @@ -286,7 +286,7 @@ extern const unsigned int num_powerpc_operands; /* Use with the shift field of a struct powerpc_operand to indicate that BITM and SHIFT cannot be used to determine where the operand goes in the insn. */ -#define PPC_OPSHIFT_INV (-1 << 31) +#define PPC_OPSHIFT_INV (-1U << 31) /* Values defined for the flags field of a struct powerpc_operand. */ diff --git a/ld/ChangeLog b/ld/ChangeLog index 93a852a..3b69e31 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2015-09-23 Nick Clifton <nickc@redhat.com> + + * emultempl/elf32.em (ehdr_start_empty): New static variable. + (before_allocation): Use it to initialise ehdr_start_save. + * emultempl/pe.em (write_build_id): Remove useless double + parenthesis. + * emultempl/pep.em (write_build_id): Likewise. + 2015-09-22 H.J. Lu <hongjiu.lu@intel.com> * emultempl/alphaelf.em (alpha_after_parse): Call diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index b7ddca3..ea6d48c 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1449,6 +1449,11 @@ gld${EMULATION_NAME}_append_to_separated_string (char **to, char *op_arg) } } +#if defined(__GNUC__) && GCC_VERSION < 4006 + /* Work around a GCC uninitialized warning bug fixed in GCC 4.6. */ +static struct bfd_link_hash_entry ehdr_start_empty; +#endif + /* This is called after the sections have been attached to output sections, but before any sizes or addresses have been set. */ @@ -1461,7 +1466,7 @@ gld${EMULATION_NAME}_before_allocation (void) struct elf_link_hash_entry *ehdr_start = NULL; #if defined(__GNUC__) && GCC_VERSION < 4006 /* Work around a GCC uninitialized warning bug fixed in GCC 4.6. */ - struct bfd_link_hash_entry ehdr_start_save = ehdr_start_save; + struct bfd_link_hash_entry ehdr_start_save = ehdr_start_empty; #else struct bfd_link_hash_entry ehdr_start_save; #endif diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 72e2f11..04a7f5c 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -1312,7 +1312,7 @@ write_build_id (bfd *abfd) struct bfd_link_order *l = NULL; for (l = asec->map_head.link_order; l != NULL; l = l->next) { - if ((l->type == bfd_indirect_link_order)) + if (l->type == bfd_indirect_link_order) { if (l->u.indirect.section == t->build_id.sec) { @@ -1364,7 +1364,7 @@ write_build_id (bfd *abfd) if (bfd_seek (abfd, asec->filepos + link_order->offset, SEEK_SET) != 0) return 0; - if ((bfd_bwrite (contents, size, abfd) != size)) + if (bfd_bwrite (contents, size, abfd) != size) return 0; /* Construct the CodeView record. */ diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index c82e496..0b740c3 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -1276,7 +1276,7 @@ write_build_id (bfd *abfd) struct bfd_link_order *l = NULL; for (l = asec->map_head.link_order; l != NULL; l = l->next) { - if ((l->type == bfd_indirect_link_order)) + if (l->type == bfd_indirect_link_order) { if (l->u.indirect.section == t->build_id.sec) { @@ -1328,7 +1328,7 @@ write_build_id (bfd *abfd) if (bfd_seek (abfd, asec->filepos + link_order->offset, SEEK_SET) != 0) return 0; - if ((bfd_bwrite (contents, size, abfd) != size)) + if (bfd_bwrite (contents, size, abfd) != size) return 0; /* Construct the CodeView record. */ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 942cdcd..b098299 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,21 @@ +2015-09-23 Nick Clifton <nickc@redhat.com> + + * bfin-dis.c (fmtconst): Remove unnecessary call to the abs + function. + * tic30-dis.c (print_branch): Likewise. + * cgen-asm.c (cgen_parse_signed_integer): Cast integer to signed + value before left shifting. + * fr30-ibld.c (fr30_cgen_extract_operand): Likewise. + * hppa-dis.c (print_insn_hppa): Likewise. + * mips-dis.c (mips_cp0sel_names_mipsr5900): Delete unused static + array. + * msp430-dis.c (msp430_singleoperand): Likewise. + (msp430_doubleoperand): Likewise. + (print_insn_msp430): Likewise. + * nds32-asm.c (parse_operand): Likewise. + * sh-opc.h (MASK): Likewise. + * v850-dis.c (get_operand_value): Likewise. + 2015-09-22 Nick Clifton <nickc@redhat.com> * rx-decode.opc (bwl): Use RX_Bad_Size. diff --git a/opcodes/bfin-dis.c b/opcodes/bfin-dis.c index bf2052e..54fac22 100644 --- a/opcodes/bfin-dis.c +++ b/opcodes/bfin-dis.c @@ -167,7 +167,7 @@ fmtconst (const_forms_t cf, TIword x, bfd_vma pc, disassemble_info *outf) else { if (constant_formats[cf].issigned && x < 0) - sprintf (buf, "-0x%x", abs (x)); + sprintf (buf, "-0x%lx", (unsigned long)(- x)); else sprintf (buf, "0x%lx", (unsigned long) x); } diff --git a/opcodes/cgen-asm.c b/opcodes/cgen-asm.c index f4f81d7..69b9be8 100644 --- a/opcodes/cgen-asm.c +++ b/opcodes/cgen-asm.c @@ -280,7 +280,7 @@ cgen_parse_signed_integer (CGEN_CPU_DESC cd, && value > 0 && (value & 0x80000000) && ((value >> 31) == 1)) - value |= -1 << 31; + value |= ((bfd_vma) -1) << 31; *valuep = value; } diff --git a/opcodes/fr30-ibld.c b/opcodes/fr30-ibld.c index 177a12b..ed6ecd4 100644 --- a/opcodes/fr30-ibld.c +++ b/opcodes/fr30-ibld.c @@ -874,7 +874,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC cd, { long value; length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 4, 16, total_length, pc, & value); - value = ((value) | (((-1) << (4)))); + value = ((value) | (((-1UL) << (4)))); fields->f_m4 = value; } break; diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c index 4be0f3c..8562952 100644 --- a/opcodes/hppa-dis.c +++ b/opcodes/hppa-dis.c @@ -1103,7 +1103,7 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info) int disp; if (sign) - disp = (-1 << 10) | imm10; + disp = (-1U << 10) | imm10; else disp = imm10; @@ -1119,7 +1119,7 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info) int disp; if (sign) - disp = (-1 << 11) | imm11; + disp = (-1U << 11) | imm11; else disp = imm11; diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c index d1573c0..8200920 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c @@ -157,18 +157,6 @@ static const char * const mips_cp0_names_r5900[32] = "c0_taglo", "c0_taghi", "c0_errorepc", "$31" }; -static const struct mips_cp0sel_name mips_cp0sel_names_mipsr5900[] = -{ - { 24, 2, "c0_iab" }, - { 24, 3, "c0_iabm" }, - { 24, 4, "c0_dab" }, - { 24, 5, "c0_dabm" }, - { 24, 6, "c0_dvb" }, - { 24, 7, "c0_dvbm" }, - { 25, 1, "c0_perfcnt,1" }, - { 25, 2, "c0_perfcnt,2" } -}; - static const char * const mips_cp0_names_mips3264[32] = { "c0_index", "c0_random", "c0_entrylo0", "c0_entrylo1", diff --git a/opcodes/msp430-dis.c b/opcodes/msp430-dis.c index a398ca4..ec8b6dc 100644 --- a/opcodes/msp430-dis.c +++ b/opcodes/msp430-dis.c @@ -229,10 +229,10 @@ msp430_singleoperand (disassemble_info *info, { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; } else if (dst & 0x8000) - dst |= -1 << 16; + dst |= -1U << 16; sprintf (op, "%d(r%d)", dst, regd); } } @@ -273,7 +273,7 @@ msp430_singleoperand (disassemble_info *info, { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; sprintf (op, "#%d", dst); if (dst > 9 || dst < 0) sprintf (comm, "#0x%05x", dst); @@ -328,10 +328,10 @@ msp430_singleoperand (disassemble_info *info, { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; } else if (dst & 0x8000) - dst |= -1 << 16; + dst |= -1U << 16; sprintf (op, "%d(r%d)", dst, regd); if (dst > 9 || dst < 0) sprintf (comm, "%05x", dst); @@ -431,7 +431,7 @@ msp430_doubleoperand (disassemble_info *info, { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; sprintf (op1, "0x%05x", dst & 0xfffff); sprintf (comm1, "PC rel. 0x%05lx", (long)((addr + 2 + dst) & 0xfffff)); @@ -462,10 +462,10 @@ msp430_doubleoperand (disassemble_info *info, { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; } else if (dst & 0x8000) - dst |= -1 << 16; + dst |= -1U << 16; cmd_len += 4; *cycles = 6; sprintf (op1, "%d(r%d)", dst, regd); @@ -523,7 +523,7 @@ msp430_doubleoperand (disassemble_info *info, { dst |= extended_src << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; sprintf (op1, "#%d", dst); if (dst > 9 || dst < 0) sprintf (comm1, "0x%05x", dst & 0xfffff); @@ -547,7 +547,7 @@ msp430_doubleoperand (disassemble_info *info, { dst |= extended_src << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; sprintf (op1, "0x%05x", dst & 0xfffff); sprintf (comm1, "PC rel. 0x%05lx", (long) ((addr + 2 + dst) & 0xfffff)); @@ -584,10 +584,10 @@ msp430_doubleoperand (disassemble_info *info, { dst |= extended_src << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; } else if (dst & 0x8000) - dst |= -1 << 16; + dst |= -1U << 16; sprintf (op1, "%d(r%d)", dst, regs); if (dst > 9 || dst < -9) sprintf (comm1, "0x%05x", dst); @@ -629,7 +629,7 @@ msp430_doubleoperand (disassemble_info *info, { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; sprintf (op2, "0x%05x", dst & 0xfffff); sprintf (comm2, "PC rel. 0x%05lx", (long)((addr + cmd_len + dst) & 0xfffff)); @@ -653,14 +653,14 @@ msp430_doubleoperand (disassemble_info *info, dst = msp430dis_opcode (addr + cmd_len, info); cmd_len += 2; if (dst & 0x8000) - dst |= -1 << 16; + dst |= -1U << 16; if (dst > 9 || dst < 0) sprintf (comm2, "0x%04x", PS (dst)); if (extension_word) { dst |= extended_dst << 16; if (dst & 0x80000) - dst |= -1 << 20; + dst |= -1U << 20; if (dst > 9 || dst < 0) sprintf (comm2, "0x%05x", dst & 0xfffff); } @@ -759,7 +759,7 @@ msp430_branchinstr (disassemble_info *info, dst = msp430dis_opcode (addr + 2, info); cmd_len += 2; if (dst & 0x8000) - dst |= -1 << 16; + dst |= -1U << 16; sprintf (op1, "%d(r%d)", dst, regs); } } @@ -1013,7 +1013,7 @@ print_insn_msp430 (bfd_vma addr, disassemble_info *info) reg = n; n = msp430dis_opcode (addr + 2, info); if (n & 0x8000) - n |= -1 << 16; + n |= -1U << 16; sprintf (op1, "%d(r%d)", n, reg); if (n > 9 || n < 0) { @@ -1040,7 +1040,7 @@ print_insn_msp430 (bfd_vma addr, disassemble_info *info) sprintf (op1, "r%d", n); n = msp430dis_opcode (addr + 2, info); if (n & 0x8000) - n |= -1 << 16; + n |= -1U << 16; sprintf (op2, "%d(r%d)", n, reg); if (n > 9 || n < 0) { @@ -1057,7 +1057,7 @@ print_insn_msp430 (bfd_vma addr, disassemble_info *info) n <<= 16; n |= msp430dis_opcode (addr + 2, info); if (n & 0x80000) - n |= -1 << 20; + n |= -1U << 20; sprintf (op1, "#%d", n); if (n > 9 || n < 0) sprintf (comm1, "0x%05x", n); diff --git a/opcodes/nds32-asm.c b/opcodes/nds32-asm.c index 406cc7c..d9f8766 100644 --- a/opcodes/nds32-asm.c +++ b/opcodes/nds32-asm.c @@ -2086,7 +2086,7 @@ done: { /* Sign-ext the value. */ if (((value >> 32) == 0) && (value & 0x80000000)) - value |= (int64_t) -1 << 31; + value |= (int64_t) -1U << 31; /* Shift the value to positive domain. */ diff --git a/opcodes/sh-opc.h b/opcodes/sh-opc.h index 70ed889..5863aa9 100644 --- a/opcodes/sh-opc.h +++ b/opcodes/sh-opc.h @@ -201,10 +201,10 @@ typedef enum sh_dsp_reg_nums; /* Return a mask with bits LO to HI (inclusive) set. */ -#define MASK(LO,HI) ( LO < 1 ? ((1 << (HI + 1)) - 1) \ - : HI > 30 ? (-1 << LO) \ - : LO == HI ? (1 << LO) \ - : (((1 << (HI + 1)) - 1) & (-1 << LO))) +#define MASK(LO,HI) ( LO < 1 ? ((1U << (HI + 1)) - 1) \ + : HI > 30 ? (-1U << LO) \ + : LO == HI ? (1U << LO) \ + : (((1U << (HI + 1)) - 1) & (-1U << LO))) #define arch_sh1_base (1 << 0) #define arch_sh2_base (1 << 1) diff --git a/opcodes/tic30-dis.c b/opcodes/tic30-dis.c index 9077434..623feff 100644 --- a/opcodes/tic30-dis.c +++ b/opcodes/tic30-dis.c @@ -669,9 +669,9 @@ print_branch (disassemble_info *info, if (address == 0) info->fprintf_func (info->stream, " <%s>", sym->name); else - info->fprintf_func (info->stream, " <%s %c %d>", sym->name, + info->fprintf_func (info->stream, " <%s %c %lu>", sym->name, ((short) address < 0) ? '-' : '+', - abs (address)); + address); } return 1; } diff --git a/opcodes/v850-dis.c b/opcodes/v850-dis.c index d10f3e0..0c50e51 100644 --- a/opcodes/v850-dis.c +++ b/opcodes/v850-dis.c @@ -152,7 +152,7 @@ get_operand_value (const struct v850_operand *operand, if (operand->flags & V850E_IMMEDIATE16HI) value <<= 16; else if (value & 0x8000) - value |= (-1L << 16); + value |= (-1UL << 16); return value; } |