dev backend: correct bounds on negative jumps

This commit is contained in:
Folkert 2023-10-08 16:39:44 +02:00
parent c749efb64c
commit aa261c4437
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C

View file

@ -1727,7 +1727,7 @@ impl Assembler<AArch64GeneralReg, AArch64FloatReg> for AArch64Assembler {
offset: i32, offset: i32,
src: AArch64FloatReg, src: AArch64FloatReg,
) { ) {
if offset < 0 { if (-256..256).contains(&offset) {
stur_freg64_reg64_imm9(buf, src, dst, offset as i16) stur_freg64_reg64_imm9(buf, src, dst, offset as i16)
} else if (0..=u16::MAX as i32).contains(&offset) { } else if (0..=u16::MAX as i32).contains(&offset) {
debug_assert!(offset % 8 == 0); debug_assert!(offset % 8 == 0);
@ -2059,7 +2059,7 @@ impl Assembler<AArch64GeneralReg, AArch64FloatReg> for AArch64Assembler {
src: AArch64GeneralReg, src: AArch64GeneralReg,
offset: i32, offset: i32,
) { ) {
if offset < 0 { if (-256..256).contains(&offset) {
ldur_freg64_reg64_imm9(buf, dst, src, offset as i16) ldur_freg64_reg64_imm9(buf, dst, src, offset as i16)
} else if (0..=u16::MAX as i32).contains(&offset) { } else if (0..=u16::MAX as i32).contains(&offset) {
debug_assert!(offset % 8 == 0); debug_assert!(offset % 8 == 0);