/* TI C6X disassembler.
- Copyright (C) 2010-2015 Free Software Foundation, Inc.
+ Copyright (C) 2010-2017 Free Software Foundation, Inc.
Contributed by Joseph Myers <joseph@codesourcery.com>
Bernd Schmidt <bernds@codesourcery.com>
prev_header_based
= tic6x_check_fetch_packet_header (fp_prev, &prev_header, info);
- if (prev_header_based && prev_header.word_compact[6])
- p_bit = prev_header.p_bits[13];
+ if (prev_header_based)
+ {
+ if (prev_header.word_compact[6])
+ p_bit = prev_header.p_bits[13];
+ else
+ {
+ unsigned int prev_opcode = tic6x_extract_32 (fp_prev + 24,
+ info);
+ p_bit = (prev_opcode & 0x1) ? TRUE : FALSE;
+ }
+ }
else
{
unsigned int prev_opcode = tic6x_extract_32 (fp_prev + 28,
case tic6x_coding_mem_offset_minus_one_noscale:
case tic6x_coding_mem_offset_minus_one:
fld_val += 1;
+ /* Fall through. */
case tic6x_coding_mem_offset_noscale:
case tic6x_coding_mem_offset:
mem_offset = fld_val;