@@ -288,6 +288,14 @@ md_assemble (char *str ATTRIBUTE_UNUSED)
switch (*args)
{
case '+':
+ if (*s == '+')
+ {
+ ++s;
+ continue;
+ }
+ if (*s == '-')
+ continue;
+ break;
case ',':
case '[':
case ']':
@@ -49,7 +49,7 @@ print_insn_bpf (bfd_vma memaddr, disassemble_info *info)
bpf_opcode_hash *op;
int code, dest, src;
bfd_byte buffer[8];
- unsigned short off;
+ signed short off;
int status, ret;
signed int imm;
@@ -78,7 +78,7 @@ print_insn_bpf (bfd_vma memaddr, disassemble_info *info)
else
{
getword = bfd_getl32;
- gethalf = bfd_getl32;
+ gethalf = bfd_getl16;
}
code = buffer[0];
@@ -128,7 +128,7 @@ print_insn_bpf (bfd_vma memaddr, disassemble_info *info)
(*info->fprintf_func) (stream, "%d", imm);
break;
case 'O':
- (*info->fprintf_func) (stream, "%d", off);
+ (*info->fprintf_func) (stream, "%d", (int) off);
break;
case 'L':
info->target = memaddr + ((off - 1) * 8);