cpu/
* or1korbis.cpu (f-disp26, f-disp21): Don't left shift negative values.
opcodes/
* or1k-ibld.c: Regenerate.
+2019-12-20 Alan Modra <amodra@gmail.com>
+
+ * or1korbis.cpu (f-disp26, f-disp21): Don't left shift negative values.
+
2019-12-17 Alan Modra <amodra@gmail.com>
* bpf.cpu (f-imm64): Avoid signed overflow.
2019-12-17 Alan Modra <amodra@gmail.com>
* bpf.cpu (f-imm64): Avoid signed overflow.
26
INT
((value pc) (sra IAI (sub IAI value pc) (const 2)))
26
INT
((value pc) (sra IAI (sub IAI value pc) (const 2)))
- ((value pc) (add IAI (sll IAI value (const 2)) pc))
+ ((value pc) (add IAI (mul IAI value (const 4)) pc))
)
; PC relative, 21-bit, 13 shifted to right, aligned.
)
; PC relative, 21-bit, 13 shifted to right, aligned.
((value pc)
(sub IAI (sra IAI value (const 13)) (sra IAI pc (const 13))))
((value pc)
((value pc)
(sub IAI (sra IAI value (const 13)) (sra IAI pc (const 13))))
((value pc)
- (sll IAI (add IAI value (sra IAI pc (const 13))) (const 13)))
+ (mul IAI (add IAI value (sra IAI pc (const 13))) (const 8192)))
+2019-12-20 Alan Modra <amodra@gmail.com>
+
+ * or1k-ibld.c: Regenerate.
+
2019-12-20 Alan Modra <amodra@gmail.com>
* hppa-dis.c (extract_16, extract_21, print_insn_hppa): Use
2019-12-20 Alan Modra <amodra@gmail.com>
* hppa-dis.c (extract_16, extract_21, print_insn_hppa): Use
{
long value;
length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_ABS_ADDR), 0, 20, 21, 32, total_length, pc, & value);
{
long value;
length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_ABS_ADDR), 0, 20, 21, 32, total_length, pc, & value);
- value = ((((value) + (((DI) (pc) >> (13))))) << (13));
+ value = ((((value) + (((DI) (pc) >> (13))))) * (MAKEDI (0, 8192)));
fields->f_disp21 = value;
}
break;
fields->f_disp21 = value;
}
break;
{
long value;
length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 25, 26, 32, total_length, pc, & value);
{
long value;
length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 25, 26, 32, total_length, pc, & value);
- value = ((((value) << (2))) + (pc));
+ value = ((((value) * (MAKEDI (0, 4)))) + (pc));
fields->f_disp26 = value;
}
break;
fields->f_disp26 = value;
}
break;