|| (insn & 0xfc) == 0x38
|| (insn & 0xff) == 0xde
|| (insn & 0xff) == 0xdf
- /* start-sanitize-am33 */
- || (insn & 0xff) == 0xf9
- /* end-sanitize-am33 */
|| (insn & 0xff) == 0xcc)
{
status = (*info->read_memory_func) (memaddr, buffer, 2, info);
/* These are four byte insns. */
else if ((insn & 0xff) == 0xfa
- /* start-sanitize-am33 */
- || (insn & 0xff) == 0xf7
- /* end-sanitize-am33 */
|| (insn & 0xff) == 0xfb)
{
status = (*info->read_memory_func) (memaddr, buffer, 4, info);
mysize = 4;
else if (op->format == FMT_D4)
mysize = 6;
- /* start-sanitize-am33 */
- else if (op->format == FMT_D6)
- mysize = 3;
- else if (op->format == FMT_D7 || op->format == FMT_D10)
- mysize = 4;
- else if (op->format == FMT_D8)
- mysize = 6;
- else if (op->format == FMT_D9)
- mysize = 7;
- /* end-sanitize-am33 */
else
mysize = 7;
|| op->format == FMT_S2 || op->format == FMT_S4
|| op->format == FMT_S6 || op->format == FMT_D5)
extra_shift = 16;
- /* start-sanitize-am33 */
- else if (op->format == FMT_D7
- || op->format == FMT_D8
- || op->format == FMT_D9)
- extra_shift = 8;
- /* end-sanitize-am33 */
else
extra_shift = 0;
{
extension = 0;
}
- /* start-sanitize-am33 */
- else if (size == 3
- && op->format == FMT_D6)
- {
- extension = 0;
- }
- /* end-sanitize-am33 */
else if (size == 3)
{
insn &= 0xff0000;
{
extension = 0;
}
- /* start-sanitize-am33 */
- else if (size == 4
- && (op->format == FMT_D7
- || op->format == FMT_D10))
- {
- extension = 0;
- }
- /* end-sanitize-am33 */
else if (size == 4)
{
insn &= 0xffff0000;
}
extension = *(unsigned char *)buffer;
}
- /* start-sanitize-am33 */
- else if (size == 6 && op->format == FMT_D8)
- {
- insn &= 0xffffff00;
- status = (*info->read_memory_func) (memaddr + 5, buffer, 1, info);
- if (status != 0)
- {
- (*info->memory_error_func) (status, memaddr, info);
- return;
- }
- insn |= *(unsigned char *)buffer;
-
- status = (*info->read_memory_func) (memaddr + 3, buffer, 2, info);
- if (status != 0)
- {
- (*info->memory_error_func) (status, memaddr, info);
- return;
- }
- extension = bfd_getl16 (buffer);
- }
- /* end-sanitize-am33 */
else if (size == 6)
{
unsigned long temp = 0;
insn |= (temp >> 16) & 0xffff;
extension = temp & 0xffff;
}
- /* start-sanitize-am33 */
- else if (size == 7 && op->format == FMT_D9)
- {
- insn &= 0xffffff00;
- status = (*info->read_memory_func) (memaddr + 3, buffer, 4, info);
- if (status != 0)
- {
- (*info->memory_error_func) (status, memaddr, info);
- return;
- }
- extension = bfd_getl32 (buffer);
- insn |= (extension & 0xff000000) >> 24;
- extension &= 0xffffff;
- }
- /* end-sanitize-am33 */
else if (size == 7 && op->opcode == 0xdd000000)
{
unsigned long temp = 0;
operand = &mn10300_operands[*opindex_ptr];
+
if ((operand->flags & MN10300_OPERAND_SPLIT) != 0)
{
unsigned long temp;
temp &= ((1 << (32 - operand->bits)) - 1);
value |= temp;
}
- /* start-sanitize-am33 */
- else if ((operand->flags & MN10300_OPERAND_24BIT) != 0)
- {
- unsigned long temp;
- value = insn & ((1 << operand->bits) - 1);
- value <<= (24 - operand->bits);
- temp = extension >> operand->shift;
- temp &= ((1 << (24 - operand->bits)) - 1);
- value |= temp;
- if ((operand->flags & MN10300_OPERAND_SIGNED) != 0)
- value = ((value & 0xffffff) ^ (~0x7fffff)) + 0x800000;
- }
- /* end-sanitize-am33 */
else if ((operand->flags & MN10300_OPERAND_EXTENDED) != 0)
{
value = ((extension >> (operand->shift))
}
if ((operand->flags & MN10300_OPERAND_SIGNED) != 0
- /* start-sanitize-am33 */
- /* These are properly extended by the code above. */
- && ((operand->flags & MN10300_OPERAND_24BIT) == 0)
- /* end-sanitize-am33 */
)
value = ((long)(value << (32 - operand->bits))
>> (32 - operand->bits));
else if ((operand->flags & MN10300_OPERAND_MDR) != 0)
(*info->fprintf_func) (info->stream, "mdr");
- /* start-sanitize-am33 */
- else if ((operand->flags & MN10300_OPERAND_RREG) != 0)
- {
- value = ((insn >> (operand->shift + extra_shift))
- & ((1 << operand->bits) - 1));
- (*info->fprintf_func) (info->stream, "r%d", value);
- }
-
- else if ((operand->flags & MN10300_OPERAND_XRREG) != 0)
- {
- value = ((insn >> (operand->shift + extra_shift))
- & ((1 << operand->bits) - 1));
- (*info->fprintf_func) (info->stream, "xr%d", value);
- }
-
- else if ((operand->flags & MN10300_OPERAND_USP) != 0)
- (*info->fprintf_func) (info->stream, "usp");
-
- else if ((operand->flags & MN10300_OPERAND_SSP) != 0)
- (*info->fprintf_func) (info->stream, "ssp");
-
- else if ((operand->flags & MN10300_OPERAND_MSP) != 0)
- (*info->fprintf_func) (info->stream, "msp");
-
- else if ((operand->flags & MN10300_OPERAND_PC) != 0)
- (*info->fprintf_func) (info->stream, "pc");
-
- else if ((operand->flags & MN10300_OPERAND_EPSW) != 0)
- (*info->fprintf_func) (info->stream, "epsw");
-
- else if ((operand->flags & MN10300_OPERAND_PLUS) != 0)
- (*info->fprintf_func) (info->stream, "+");
- /* end-sanitize-am33 */
else if ((operand->flags & MN10300_OPERAND_PAREN) != 0)
{
comma = 1;
}
- /* start-sanitize-am33 */
- if (value & 0x04)
- {
- if (comma)
- (*info->fprintf_func) (info->stream, ",");
- (*info->fprintf_func) (info->stream, "exreg0");
- comma = 1;
- }
- if (value & 0x02)
- {
- if (comma)
- (*info->fprintf_func) (info->stream, ",");
- (*info->fprintf_func) (info->stream, "exreg1");
- comma = 1;
- }
- if (value & 0x01)
- {
- if (comma)
- (*info->fprintf_func) (info->stream, ",");
- (*info->fprintf_func) (info->stream, "exother");
- comma = 1;
- }
- /* end-sanitize-am33 */
(*info->fprintf_func) (info->stream, "]");
}