Loop seems to be treated by libdisasm as an unconditional jump -- is that really the best way? Surely a conditional jump would make more sense?
That looks like a typo in one of the opcode table entries; the other occurrences of loop are all BRANCHCC:
INSN 0 INS_BRANCHCC ADDRMETH_J | OPTYPE_b | OP_X ARG_NONE ARG_NONE cpu_80386 | isa_GP "loopnz" 0 0 0 INS_TEST_NZERO 31 INSN 0 INS_BRANCHCC ADDRMETH_J | OPTYPE_b | OP_X ARG_NONE ARG_NONE cpu_80386 | isa_GP "loopz" 0 0 0 INS_TEST_ZERO 31 INSN 0 INS_BRANCH ADDRMETH_J | OPTYPE_b | OP_X ARG_NONE ARG_NONE cpu_80386 | isa_GP "loop" 0 0 0 0 31
I've fixed it in CVS.
Thanks,
_m
Log in to post a comment.
Loop seems to be treated by libdisasm as an unconditional jump -- is that really the best way? Surely a conditional jump would make more sense?
That looks like a typo in one of the opcode table entries; the other occurrences of loop are all BRANCHCC:
INSN 0 INS_BRANCHCC ADDRMETH_J | OPTYPE_b | OP_X ARG_NONE ARG_NONE cpu_80386 | isa_GP "loopnz" 0 0 0 INS_TEST_NZERO 31
INSN 0 INS_BRANCHCC ADDRMETH_J | OPTYPE_b | OP_X ARG_NONE ARG_NONE cpu_80386 | isa_GP "loopz" 0 0 0 INS_TEST_ZERO 31
INSN 0 INS_BRANCH ADDRMETH_J | OPTYPE_b | OP_X ARG_NONE ARG_NONE cpu_80386 | isa_GP "loop" 0 0 0 0 31
I've fixed it in CVS.
Thanks,
_m