diff options
-rw-r--r-- | disas/arm.c | 4 | ||||
-rw-r--r-- | disas/cris.c | 4 | ||||
-rw-r--r-- | disas/hppa.c | 3 | ||||
-rw-r--r-- | disas/i386.c | 2 | ||||
-rw-r--r-- | disas/m68k.c | 5 | ||||
-rw-r--r-- | disas/microblaze.c | 6 |
6 files changed, 13 insertions, 11 deletions
diff --git a/disas/arm.c b/disas/arm.c index 93c6503..27396dd 100644 --- a/disas/arm.c +++ b/disas/arm.c @@ -3901,9 +3901,9 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info) status = info->read_memory_func (pc, (bfd_byte *)b, 4, info); if (little) - given = (b[0]) | (b[1] << 8) | (b[2] << 16) | (b[3] << 24); + given = (b[0]) | (b[1] << 8) | (b[2] << 16) | ((unsigned)b[3] << 24); else - given = (b[3]) | (b[2] << 8) | (b[1] << 16) | (b[0] << 24); + given = (b[3]) | (b[2] << 8) | (b[1] << 16) | ((unsigned)b[0] << 24); } else { diff --git a/disas/cris.c b/disas/cris.c index 8a1daf9..30217f1 100644 --- a/disas/cris.c +++ b/disas/cris.c @@ -2009,7 +2009,7 @@ print_with_operands (const struct cris_opcode *opcodep, case 'n': { /* Like N but pc-relative to the start of the insn. */ - unsigned long number + uint32_t number = (buffer[2] + buffer[3] * 256 + buffer[4] * 65536 + buffer[5] * 0x1000000 + addr); @@ -2201,7 +2201,7 @@ print_with_operands (const struct cris_opcode *opcodep, { /* It's [pc+]. This cannot possibly be anything but an address. */ - unsigned long number + uint32_t number = prefix_buffer[2] + prefix_buffer[3] * 256 + prefix_buffer[4] * 65536 + prefix_buffer[5] * 0x1000000; diff --git a/disas/hppa.c b/disas/hppa.c index 43facdc..a2d371f 100644 --- a/disas/hppa.c +++ b/disas/hppa.c @@ -1788,8 +1788,7 @@ fput_fp_reg_r (unsigned reg, disassemble_info *info) if (reg < 4) (*info->fprintf_func) (info->stream, "fpe%d", reg * 2 + 1); else - (*info->fprintf_func) (info->stream, "%sR", - reg ? fp_reg_names[reg] : "fr0"); + (*info->fprintf_func) (info->stream, "%sR", fp_reg_names[reg]); } static void diff --git a/disas/i386.c b/disas/i386.c index 07f871f..f1e376c 100644 --- a/disas/i386.c +++ b/disas/i386.c @@ -4043,7 +4043,7 @@ print_insn (bfd_vma pc, disassemble_info *info) } } - if (putop (dp->name, sizeflag) == 0) + if (dp->name != NULL && putop (dp->name, sizeflag) == 0) { for (i = 0; i < MAX_OPERANDS; ++i) { diff --git a/disas/m68k.c b/disas/m68k.c index 073abb9..61b689e 100644 --- a/disas/m68k.c +++ b/disas/m68k.c @@ -4685,10 +4685,11 @@ get_field (const unsigned char *data, enum floatformat_byteorders order, /* This is the last byte; zero out the bits which are not part of this field. */ result |= - (*(data + cur_byte) & ((1 << (len - cur_bitshift)) - 1)) + (unsigned long)(*(data + cur_byte) + & ((1 << (len - cur_bitshift)) - 1)) << cur_bitshift; else - result |= *(data + cur_byte) << cur_bitshift; + result |= (unsigned long)*(data + cur_byte) << cur_bitshift; cur_bitshift += FLOATFORMAT_CHAR_BIT; if (order == floatformat_little) ++cur_byte; diff --git a/disas/microblaze.c b/disas/microblaze.c index 91b30ac..407c0a3 100644 --- a/disas/microblaze.c +++ b/disas/microblaze.c @@ -748,9 +748,11 @@ read_insn_microblaze (bfd_vma memaddr, } if (info->endian == BFD_ENDIAN_BIG) - inst = (ibytes[0] << 24) | (ibytes[1] << 16) | (ibytes[2] << 8) | ibytes[3]; + inst = ((unsigned)ibytes[0] << 24) | (ibytes[1] << 16) + | (ibytes[2] << 8) | ibytes[3]; else if (info->endian == BFD_ENDIAN_LITTLE) - inst = (ibytes[3] << 24) | (ibytes[2] << 16) | (ibytes[1] << 8) | ibytes[0]; + inst = ((unsigned)ibytes[3] << 24) | (ibytes[2] << 16) + | (ibytes[1] << 8) | ibytes[0]; else abort (); |