+ if (instr_word & 0x800)
+ {
+ /* neg. 12 bit displacement */
+ instr_data->displacement = instr_data->insn_start + 2
+ - (signed short) ((instr_word & 0xfff) | 0xf000) * 2;
+ }
+ else
+ {
+ instr_data->displacement = instr_data->insn_start + 2
+ - (instr_word & 0x0fff) * 2;
+ }