Commit 847a6473 authored by Max Filippov's avatar Max Filippov
Browse files

target/xtensa: disas/xtensa: fix coverity warnings



Coverity warnings CID 1385146, 1385148 1385149 and 1385150 point that
xtensa_opcode_num_operands and xtensa_format_num_slots may return -1
even when xtensa_opcode_decode and xtensa_format_decode succeed. In that
case unsigned counters used to iterate through operands/slots will not
do the right thing.
Make counters and loop bounds signed to fix the warnings.

Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 251634f4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ int print_insn_xtensa(bfd_vma memaddr, struct disassemble_info *info)
    bfd_byte *buffer = g_malloc(1);
    int status = info->read_memory_func(memaddr, buffer, 1, info);
    xtensa_format fmt;
    unsigned slot, slots;
    int slot, slots;
    unsigned len;

    if (status) {
@@ -79,7 +79,7 @@ int print_insn_xtensa(bfd_vma memaddr, struct disassemble_info *info)

    for (slot = 0; slot < slots; ++slot) {
        xtensa_opcode opc;
        unsigned opnd, vopnd, opnds;
        int opnd, vopnd, opnds;

        if (slot) {
            info->fprintf_func(info->stream, "; ");
+2 −2
Original line number Diff line number Diff line
@@ -942,7 +942,7 @@ static void disas_xtensa_insn(CPUXtensaState *env, DisasContext *dc)
    unsigned char b[MAX_INSN_LENGTH] = {cpu_ldub_code(env, dc->pc)};
    unsigned len = xtensa_op0_insn_len(dc, b[0]);
    xtensa_format fmt;
    unsigned slot, slots;
    int slot, slots;
    unsigned i;

    if (len == XTENSA_UNDEFINED) {
@@ -969,7 +969,7 @@ static void disas_xtensa_insn(CPUXtensaState *env, DisasContext *dc)
    slots = xtensa_format_num_slots(isa, fmt);
    for (slot = 0; slot < slots; ++slot) {
        xtensa_opcode opc;
        unsigned opnd, vopnd, opnds;
        int opnd, vopnd, opnds;
        uint32_t raw_arg[MAX_OPCODE_ARGS];
        uint32_t arg[MAX_OPCODE_ARGS];
        XtensaOpcodeOps *ops;