Print this page
6069 libdisasm: instrlen arch op should have a sane default
Reviewed by: Robert Mustacchi <rm@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libdisasm/common/dis_i386.c
          +++ new/usr/src/lib/libdisasm/common/dis_i386.c
↓ open down ↓ 176 lines elided ↑ open up ↑
 177  177  {
 178  178          int archflags = flags & DIS_ARCH_MASK;
 179  179  
 180  180          if (archflags == DIS_X86_SIZE16 || archflags == DIS_X86_SIZE32 ||
 181  181              archflags == DIS_X86_SIZE64)
 182  182                  return (1);
 183  183  
 184  184          return (0);
 185  185  }
 186  186  
 187      -static int
 188      -dis_i386_instrlen(dis_handle_t *dhp, uint64_t pc)
 189      -{
 190      -        if (dis_disassemble(dhp, pc, NULL, 0) != 0)
 191      -                return (-1);
 192      -
 193      -        return (dhp->dh_addr - pc);
 194      -}
 195      -
 196  187  dis_arch_t dis_arch_i386 = {
 197  188          .da_supports_flags      = dis_i386_supports_flags,
 198  189          .da_handle_attach       = dis_i386_handle_attach,
 199  190          .da_handle_detach       = dis_i386_handle_detach,
 200  191          .da_disassemble         = dis_i386_disassemble,
 201  192          .da_min_instrlen        = dis_i386_min_instrlen,
 202  193          .da_max_instrlen        = dis_i386_max_instrlen,
 203      -        .da_instrlen            = dis_i386_instrlen,
 204  194  };
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX