/* pj-dis.c -- Disassemble picoJava instructions.
- Copyright (C) 1999-2020 Free Software Foundation, Inc.
+ Copyright (C) 1999-2022 Free Software Foundation, Inc.
Contributed by Steve Chamberlain, of Transmeta (sac@pobox.com).
This file is part of the GNU opcodes library.
#include "sysdep.h"
#include <stdio.h>
+#include "libiberty.h"
#include "opcode/pj.h"
#include "disassemble.h"
if ((status = info->read_memory_func (addr + 1, &byte_2, 1, info)))
goto fail;
- fprintf_fn (stream, "%s\t", pj_opc_info[opcode + byte_2].u.name);
+ fprintf_fn (stream, "%s", pj_opc_info[opcode + byte_2].u.name);
return 2;
}
else
char *sep = "\t";
int insn_start = addr;
const pj_opc_info_t *op = &pj_opc_info[opcode];
- int a;
+ unsigned int a;
addr++;
fprintf_fn (stream, "%s", op->u.name);
return addr - insn_start;
}
- for (a = 0; op->arg[a]; a++)
+ for (a = 0; a < ARRAY_SIZE (op->arg) && op->arg[a]; a++)
{
unsigned char data[4];
int val = 0;
val = (UNS (op->arg[0]) || ((data[0] & 0x80) == 0)) ? 0 : -1;
for (i = 0; i < size; i++)
- val = (val << 8) | (data[i] & 0xff);
+ val = ((unsigned) val << 8) | (data[i] & 0xff);
+ fprintf_fn (stream, "%s", sep);
if (PCREL (op->arg[a]))
(*info->print_address_func) (val + insn_start, info);
else
- fprintf_fn (stream, "%s%d", sep, val);
+ fprintf_fn (stream, "%d", val);
sep = ",";
addr += size;