aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/testsuite/ld-avr/relax-insn-at-range-boundary.d17
-rw-r--r--ld/testsuite/ld-avr/relax-insn-at-range-boundary.s11
3 files changed, 34 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 20be135..e038e40 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,11 @@
2019-05-21 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
+ PR ld/24571
+ * ld/testsuite/ld-avr/relax-insn-at-range-boundary.d: New test.
+ * ld/testsuite/ld-avr/relax-insn-at-range-boundary.s: New test.
+
+2019-05-21 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
+
PR ld/24564
* testsuite/ld-avr/wraparound-range-boundary.d: New test.
* testsuite/ld-avr/wraparound-range-boundary.s: New test.
diff --git a/ld/testsuite/ld-avr/relax-insn-at-range-boundary.d b/ld/testsuite/ld-avr/relax-insn-at-range-boundary.d
new file mode 100644
index 0000000..6183896
--- /dev/null
+++ b/ld/testsuite/ld-avr/relax-insn-at-range-boundary.d
@@ -0,0 +1,17 @@
+#name: AVR relaxation, jump to symbol at ends of pc-relative range boundary
+#as: -mlink-relax -mavr51
+#ld: --relax -mavr51
+#source: relax-insn-at-range-boundary.s
+#objdump: -d
+#target: avr-*-*
+
+#...
+00000000.*
+ ...
+ ffc: 00 00 nop
+ ffe: 00 c8 rjmp .-4096 ; 0x0 .*
+ 1000: ff c7 rjmp .+4094 ; 0x2000 <forward_target>
+ ...
+
+00002000 <forward_target>:
+#...
diff --git a/ld/testsuite/ld-avr/relax-insn-at-range-boundary.s b/ld/testsuite/ld-avr/relax-insn-at-range-boundary.s
new file mode 100644
index 0000000..4d710df
--- /dev/null
+++ b/ld/testsuite/ld-avr/relax-insn-at-range-boundary.s
@@ -0,0 +1,11 @@
+.section ".text", "ax",@progbits
+.global main
+main:
+backward_target: ; Exactly -4094 bytes from jmp
+ .ds.b 4094, 0
+ jmp backward_target
+ jmp forward_target
+ .ds.b 4094, 0
+forward_target: ; Exactly 4098 bytes before relax, 4096 bytes after relax
+ nop
+