diff options
author | Ben Cheng <bccheng@google.com> | 2014-03-26 11:03:35 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2014-03-26 11:03:35 -0700 |
commit | 09797ba54abf3683ea66eedddf6afbe7653f9cb9 (patch) | |
tree | 8030b2ed79c7463c89d6da294782e9d503c84f50 /binutils-2.24/ld/testsuite/ld-tic6x | |
parent | 5a2caf34e4995860baf405552163df288000b7bf (diff) | |
download | toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.zip toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.tar.gz toolchain_binutils-09797ba54abf3683ea66eedddf6afbe7653f9cb9.tar.bz2 |
Initial checkin of binutils 2.24.
Change-Id: I0dfcbae6608dded6c3586bf5f4ac27e9612e70a2
Diffstat (limited to 'binutils-2.24/ld/testsuite/ld-tic6x')
339 files changed, 6222 insertions, 0 deletions
diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d new file mode 100644 index 0000000..53da208 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c62x c62x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c62x.s +#source: attr-arch-c62x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C62x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d new file mode 100644 index 0000000..49570fe --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c62x c64x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c62x.s +#source: attr-arch-c64x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d new file mode 100644 index 0000000..2ec8b6c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c62x c64x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c62x.s +#source: attr-arch-c64x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d new file mode 100644 index 0000000..4500114 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c62x c674x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c62x.s +#source: attr-arch-c674x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d new file mode 100644 index 0000000..a7a7c0e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c62x c67x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c62x.s +#source: attr-arch-c67x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d new file mode 100644 index 0000000..2d539df --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c62x c67x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c62x.s +#source: attr-arch-c67x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s new file mode 100644 index 0000000..e69fbf4 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c62x.s @@ -0,0 +1 @@ +.arch c62x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d new file mode 100644 index 0000000..bd19310 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x+ c62x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x+.s +#source: attr-arch-c62x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d new file mode 100644 index 0000000..3881215 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x+ c64x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x+.s +#source: attr-arch-c64x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d new file mode 100644 index 0000000..76a6296 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x+ c64x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x+.s +#source: attr-arch-c64x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d new file mode 100644 index 0000000..7548fad --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x+ c674x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x+.s +#source: attr-arch-c674x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d new file mode 100644 index 0000000..ba6e135 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x+ c67x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x+.s +#source: attr-arch-c67x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d new file mode 100644 index 0000000..63c4f58 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x+ c67x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x+.s +#source: attr-arch-c67x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s new file mode 100644 index 0000000..2c2f210 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x+.s @@ -0,0 +1 @@ +.arch c64x+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d new file mode 100644 index 0000000..3aaf293 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x c62x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x.s +#source: attr-arch-c62x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d new file mode 100644 index 0000000..7c89f1e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x c64x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x.s +#source: attr-arch-c64x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d new file mode 100644 index 0000000..9274720 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x c64x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x.s +#source: attr-arch-c64x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C64x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d new file mode 100644 index 0000000..529ecef --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x c674x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x.s +#source: attr-arch-c674x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d new file mode 100644 index 0000000..16c8c42 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x c67x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x.s +#source: attr-arch-c67x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d new file mode 100644 index 0000000..55a8391 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c64x c67x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c64x.s +#source: attr-arch-c67x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s new file mode 100644 index 0000000..438d0f8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c64x.s @@ -0,0 +1 @@ +.arch c64x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d new file mode 100644 index 0000000..07f0eac --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c674x c62x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c674x.s +#source: attr-arch-c62x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d new file mode 100644 index 0000000..81d0946 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c674x c64x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c674x.s +#source: attr-arch-c64x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d new file mode 100644 index 0000000..245b4b8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c674x c64x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c674x.s +#source: attr-arch-c64x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d new file mode 100644 index 0000000..50f03a6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c674x c674x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c674x.s +#source: attr-arch-c674x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d new file mode 100644 index 0000000..dbbac9a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c674x c67x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c674x.s +#source: attr-arch-c67x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d new file mode 100644 index 0000000..c3140ca --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c674x c67x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c674x.s +#source: attr-arch-c67x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s new file mode 100644 index 0000000..41b3886 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c674x.s @@ -0,0 +1 @@ +.arch c674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d new file mode 100644 index 0000000..c7ff793 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x+ c62x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x+.s +#source: attr-arch-c62x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d new file mode 100644 index 0000000..b7d2b53 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x+ c64x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x+.s +#source: attr-arch-c64x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d new file mode 100644 index 0000000..cdee2fe --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x+ c64x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x+.s +#source: attr-arch-c64x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d new file mode 100644 index 0000000..511acb0 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x+ c674x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x+.s +#source: attr-arch-c674x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d new file mode 100644 index 0000000..63685b0 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x+ c67x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x+.s +#source: attr-arch-c67x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d new file mode 100644 index 0000000..864b6e5 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x+ c67x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x+.s +#source: attr-arch-c67x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s new file mode 100644 index 0000000..f4c22de --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x+.s @@ -0,0 +1 @@ +.arch c67x+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d new file mode 100644 index 0000000..b230a71 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x c62x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x.s +#source: attr-arch-c62x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d new file mode 100644 index 0000000..99abb3c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x c64x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x.s +#source: attr-arch-c64x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d new file mode 100644 index 0000000..d8313e4 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x c64x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x.s +#source: attr-arch-c64x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d new file mode 100644 index 0000000..2100d40 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x c674x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x.s +#source: attr-arch-c674x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d new file mode 100644 index 0000000..75c4c5b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x c67x+ +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x.s +#source: attr-arch-c67x+.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x\+ diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d new file mode 100644 index 0000000..f71c12b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d @@ -0,0 +1,10 @@ +#name: C6X arch attribute merging, c67x c67x +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-arch-c67x.s +#source: attr-arch-c67x.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C67x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s new file mode 100644 index 0000000..a7e5ba6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-arch-c67x.s @@ -0,0 +1 @@ +.arch c67x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d new file mode 100644 index 0000000..d39e045 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-16.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 16 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-16.s +#source: attr-array-16.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte + Tag_ABI_array_object_align_expected: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d new file mode 100644 index 0000000..1d38f2a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-4.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 16 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-16.s +#source: attr-array-4.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d new file mode 100644 index 0000000..ec74ed5 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-416.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 16 416 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-16.s +#source: attr-array-416.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte + Tag_ABI_array_object_align_expected: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d new file mode 100644 index 0000000..5ef2908 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-48.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 16 48 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-16.s +#source: attr-array-48.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d new file mode 100644 index 0000000..e8228f0 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-8.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 16 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-16.s +#source: attr-array-8.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d new file mode 100644 index 0000000..14bc984 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16-816.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 16 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-16.s +#source: attr-array-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte + Tag_ABI_array_object_align_expected: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s new file mode 100644 index 0000000..70401ff --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-16.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_array_object_align_expected, 2 +.c6xabi_attribute Tag_ABI_array_object_alignment, 2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d new file mode 100644 index 0000000..3c2c138 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-16.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 4 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-4.s +#source: attr-array-16.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d new file mode 100644 index 0000000..920ff10 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-4.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 4 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-4.s +#source: attr-array-4.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 4-byte + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d new file mode 100644 index 0000000..1b5e516 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-416.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 4 416 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-4.s +#source: attr-array-416.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 4-byte + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d new file mode 100644 index 0000000..e998162 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-48.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 4 48 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-4.s +#source: attr-array-48.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 4-byte + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d new file mode 100644 index 0000000..d8b41c7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-8.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 4 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-4.s +#source: attr-array-8.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d new file mode 100644 index 0000000..a4dcc01 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4-816.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 4 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-4.s +#source: attr-array-816.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s new file mode 100644 index 0000000..abaa25f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-4.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_array_object_align_expected, 1 +.c6xabi_attribute Tag_ABI_array_object_alignment, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d new file mode 100644 index 0000000..8168658 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-16.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 416 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-416.s +#source: attr-array-16.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte + Tag_ABI_array_object_align_expected: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d new file mode 100644 index 0000000..53d4bc7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-4.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 416 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-416.s +#source: attr-array-4.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 4-byte + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d new file mode 100644 index 0000000..9ca864d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-416.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 416 416 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-416.s +#source: attr-array-416.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d new file mode 100644 index 0000000..760a023 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-48.d @@ -0,0 +1,11 @@ +#name: C6X array attribute merging, 416 48 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-416.s +#source: attr-array-48.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d new file mode 100644 index 0000000..58a4325 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-8.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 416 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-416.s +#source: attr-array-8.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d new file mode 100644 index 0000000..12b4abc --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416-816.d @@ -0,0 +1,11 @@ +#name: C6X array attribute merging, 416 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-416.s +#source: attr-array-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s new file mode 100644 index 0000000..a9cba9d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-416.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_array_object_align_expected, 1 +.c6xabi_attribute Tag_ABI_array_object_alignment, 2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d new file mode 100644 index 0000000..68fa058 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-16.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 48 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-48.s +#source: attr-array-16.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d new file mode 100644 index 0000000..76faefa --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-4.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 48 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-48.s +#source: attr-array-4.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 4-byte + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d new file mode 100644 index 0000000..c02d8f9 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-416.d @@ -0,0 +1,11 @@ +#name: C6X array attribute merging, 48 416 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-48.s +#source: attr-array-416.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d new file mode 100644 index 0000000..9801173 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-48.d @@ -0,0 +1,11 @@ +#name: C6X array attribute merging, 48 48 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-48.s +#source: attr-array-48.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_align_expected: 4-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d new file mode 100644 index 0000000..cd70604 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-8.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 48 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-48.s +#source: attr-array-8.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d new file mode 100644 index 0000000..795d839 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48-816.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 48 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-48.s +#source: attr-array-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s new file mode 100644 index 0000000..a1cb22a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-48.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_array_object_align_expected, 1 +.c6xabi_attribute Tag_ABI_array_object_alignment, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d new file mode 100644 index 0000000..0d6bafb --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-16.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 8 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-8.s +#source: attr-array-16.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d new file mode 100644 index 0000000..c7a6033 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-4.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 8 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-8.s +#source: attr-array-4.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d new file mode 100644 index 0000000..f5f5261 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-416.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 8 416 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-8.s +#source: attr-array-416.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d new file mode 100644 index 0000000..506ec4c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-48.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 8 48 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-8.s +#source: attr-array-48.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d new file mode 100644 index 0000000..86329f3 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-8.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 8 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-8.s +#source: attr-array-8.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d new file mode 100644 index 0000000..ecb9374 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8-816.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 8 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-8.s +#source: attr-array-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s new file mode 100644 index 0000000..2d69687 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-8.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_array_object_align_expected, 0 +.c6xabi_attribute Tag_ABI_array_object_alignment, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d new file mode 100644 index 0000000..2ef2f8e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-16.d @@ -0,0 +1,12 @@ +#name: C6X array attribute merging, 816 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-816.s +#source: attr-array-16.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte + Tag_ABI_array_object_align_expected: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d new file mode 100644 index 0000000..bd06a2d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-4.d @@ -0,0 +1,6 @@ +#name: C6X array attribute merging, 816 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-816.s +#source: attr-array-4.s +#error: .*requires more array alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d new file mode 100644 index 0000000..9563f7e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-416.d @@ -0,0 +1,11 @@ +#name: C6X array attribute merging, 816 416 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-816.s +#source: attr-array-416.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d new file mode 100644 index 0000000..e965643 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-48.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 816 48 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-816.s +#source: attr-array-48.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d new file mode 100644 index 0000000..7a29cc5 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-8.d @@ -0,0 +1,10 @@ +#name: C6X array attribute merging, 816 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-816.s +#source: attr-array-8.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d new file mode 100644 index 0000000..0888eae --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816-816.d @@ -0,0 +1,11 @@ +#name: C6X array attribute merging, 816 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-array-816.s +#source: attr-array-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_array_object_alignment: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s new file mode 100644 index 0000000..49ac948 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-array-816.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_array_object_align_expected, 0 +.c6xabi_attribute Tag_ABI_array_object_alignment, 2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d new file mode 100644 index 0000000..4cba64e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d @@ -0,0 +1,11 @@ +#name: C6X compatibility attribute merging, gnu gnu +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-compatibility-gnu.s +#source: attr-compatibility-gnu.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_compatibility: flag = 1, vendor = gnu diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d new file mode 100644 index 0000000..423ab07 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d @@ -0,0 +1,6 @@ +#name: C6X compatibility attribute merging, gnu other +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-compatibility-gnu.s +#source: attr-compatibility-other.s +#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s new file mode 100644 index 0000000..b013058 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_compatibility, 1, "gnu" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d new file mode 100644 index 0000000..80d73e5 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d @@ -0,0 +1,6 @@ +#name: C6X compatibility attribute merging, other gnu +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-compatibility-other.s +#source: attr-compatibility-gnu.s +#error: .*Object tag '1, gnu' is incompatible with tag '1, other' diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d new file mode 100644 index 0000000..0ebd99b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d @@ -0,0 +1,6 @@ +#name: C6X compatibility attribute merging, other other +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-compatibility-other.s +#source: attr-compatibility-other.s +#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s new file mode 100644 index 0000000..38a605a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-compatibility-other.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_compatibility, 1, "other" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d new file mode 100644 index 0000000..a16e503 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-10.d @@ -0,0 +1,11 @@ +#name: C6X conformance attribute merging, 10 10 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-10.s +#source: attr-conformance-10.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ABI_conformance: "1.0" + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d new file mode 100644 index 0000000..94993d9 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-11.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, 10 11 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-10.s +#source: attr-conformance-11.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d new file mode 100644 index 0000000..2de2b50 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10-none.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, 10 none +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-10.s +#source: attr-conformance-none.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s new file mode 100644 index 0000000..2964084 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-10.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_conformance, "1.0" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d new file mode 100644 index 0000000..34ebd26 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-10.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, 11 10 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-11.s +#source: attr-conformance-10.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d new file mode 100644 index 0000000..43ff4a2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-11.d @@ -0,0 +1,11 @@ +#name: C6X conformance attribute merging, 11 11 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-11.s +#source: attr-conformance-11.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ABI_conformance: "1.1" + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d new file mode 100644 index 0000000..ad5c58e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11-none.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, 11 none +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-11.s +#source: attr-conformance-none.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s new file mode 100644 index 0000000..d33640c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-11.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_conformance, "1.1" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d new file mode 100644 index 0000000..94bf8db --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-10.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, none 10 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-none.s +#source: attr-conformance-10.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d new file mode 100644 index 0000000..e9ff4c8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-11.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, none 11 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-none.s +#source: attr-conformance-11.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d new file mode 100644 index 0000000..6856355 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none-none.d @@ -0,0 +1,10 @@ +#name: C6X conformance attribute merging, none none +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-conformance-none.s +#source: attr-conformance-none.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s new file mode 100644 index 0000000..ffd9c71 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-conformance-none.s @@ -0,0 +1 @@ +# No conformance attribute. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s new file mode 100644 index 0000000..abd72e3 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-0.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_DSBT, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d new file mode 100644 index 0000000..c49752d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-00.d @@ -0,0 +1,10 @@ +#name: C6X DSBT attribute merging, 0 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-dsbt-0.s +#source: attr-dsbt-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d new file mode 100644 index 0000000..5f534a7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-01.d @@ -0,0 +1,6 @@ +#name: C6X DSBT attribute merging, 0 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-dsbt-0.s +#source: attr-dsbt-1.s +#warning: .*differ in whether code is compiled for DSBT diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s new file mode 100644 index 0000000..75c972e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-1.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_DSBT, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d new file mode 100644 index 0000000..283efab --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-10.d @@ -0,0 +1,6 @@ +#name: C6X DSBT attribute merging, 1 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-dsbt-1.s +#source: attr-dsbt-0.s +#warning: .*differ in whether code is compiled for DSBT diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d new file mode 100644 index 0000000..d004c10 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-dsbt-11.d @@ -0,0 +1,11 @@ +#name: C6X DSBT attribute merging, 1 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-dsbt-1.s +#source: attr-dsbt-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_DSBT: DSBT addressing used diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s new file mode 100644 index 0000000..64b8ec9 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-0.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_PIC, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d new file mode 100644 index 0000000..b8b3f52 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-00.d @@ -0,0 +1,10 @@ +#name: C6X PIC attribute merging, 0 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pic-0.s +#source: attr-pic-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d new file mode 100644 index 0000000..91fb599 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-01.d @@ -0,0 +1,10 @@ +#name: C6X PIC attribute merging, 0 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pic-0.s +#source: attr-pic-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s new file mode 100644 index 0000000..2bab373 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-1.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_PIC, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d new file mode 100644 index 0000000..ff52a7a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-10.d @@ -0,0 +1,10 @@ +#name: C6X PIC attribute merging, 1 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pic-1.s +#source: attr-pic-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d new file mode 100644 index 0000000..6fd720d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pic-11.d @@ -0,0 +1,11 @@ +#name: C6X PIC attribute merging, 1 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pic-1.s +#source: attr-pic-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_PIC: Code addressing position-independent diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s new file mode 100644 index 0000000..d2ea7ad --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-0.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_PID, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d new file mode 100644 index 0000000..573cfda --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-00.d @@ -0,0 +1,10 @@ +#name: C6X PID attribute merging, 0 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-0.s +#source: attr-pid-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d new file mode 100644 index 0000000..a5449dc --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-01.d @@ -0,0 +1,11 @@ +#name: C6X PID attribute merging, 0 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-0.s +#source: attr-pid-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d new file mode 100644 index 0000000..2a7bfd1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-02.d @@ -0,0 +1,11 @@ +#name: C6X PID attribute merging, 0 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-0.s +#source: attr-pid-2.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s new file mode 100644 index 0000000..b973177 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-1.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_PID, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d new file mode 100644 index 0000000..a421d40 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-10.d @@ -0,0 +1,11 @@ +#name: C6X PID attribute merging, 1 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-1.s +#source: attr-pid-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d new file mode 100644 index 0000000..7498282 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-11.d @@ -0,0 +1,11 @@ +#name: C6X PID attribute merging, 1 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-1.s +#source: attr-pid-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_PID: Data addressing position-independent, GOT near DP diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d new file mode 100644 index 0000000..af7a765 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-12.d @@ -0,0 +1,12 @@ +#name: C6X PID attribute merging, 1 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-1.s +#source: attr-pid-2.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_PID: Data addressing position-independent, GOT near DP + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s new file mode 100644 index 0000000..f556188 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-2.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_PID, 2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d new file mode 100644 index 0000000..e2cd0bc --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-20.d @@ -0,0 +1,10 @@ +#name: C6X PID attribute merging, 2 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-2.s +#source: attr-pid-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d new file mode 100644 index 0000000..c0f71df --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-21.d @@ -0,0 +1,11 @@ +#name: C6X PID attribute merging, 2 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-2.s +#source: attr-pid-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_PID: Data addressing position-independent, GOT near DP diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d new file mode 100644 index 0000000..7a3fe47 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-pid-22.d @@ -0,0 +1,11 @@ +#name: C6X PID attribute merging, 2 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-pid-2.s +#source: attr-pid-2.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_PID: Data addressing position-independent, GOT far from DP diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d new file mode 100644 index 0000000..8eb94bd --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-16.d @@ -0,0 +1,12 @@ +#name: C6X stack attribute merging, 16 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-16.s +#source: attr-stack-16.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_stack_align_needed: 16-byte + Tag_ABI_stack_align_preserved: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d new file mode 100644 index 0000000..291a368 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-8.d @@ -0,0 +1,6 @@ +#name: C6X stack attribute merging, 16 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-16.s +#source: attr-stack-8.s +#error: .*requires more stack alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d new file mode 100644 index 0000000..cbd384f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16-816.d @@ -0,0 +1,12 @@ +#name: C6X stack attribute merging, 16 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-16.s +#source: attr-stack-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_stack_align_needed: 16-byte + Tag_ABI_stack_align_preserved: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s new file mode 100644 index 0000000..b1e492a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-16.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_stack_align_needed, 1 +.c6xabi_attribute Tag_ABI_stack_align_preserved, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d new file mode 100644 index 0000000..9e52e92 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-16.d @@ -0,0 +1,6 @@ +#name: C6X stack attribute merging, 8 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-8.s +#source: attr-stack-16.s +#error: .*requires more stack alignment than .* preserves diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d new file mode 100644 index 0000000..1a8cb62 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-8.d @@ -0,0 +1,10 @@ +#name: C6X stack attribute merging, 8 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-8.s +#source: attr-stack-8.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d new file mode 100644 index 0000000..89a0740 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8-816.d @@ -0,0 +1,10 @@ +#name: C6X stack attribute merging, 8 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-8.s +#source: attr-stack-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s new file mode 100644 index 0000000..ce63951 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-8.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_stack_align_needed, 0 +.c6xabi_attribute Tag_ABI_stack_align_preserved, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d new file mode 100644 index 0000000..da8ca3b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-16.d @@ -0,0 +1,12 @@ +#name: C6X stack attribute merging, 816 16 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-816.s +#source: attr-stack-16.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_stack_align_needed: 16-byte + Tag_ABI_stack_align_preserved: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d new file mode 100644 index 0000000..fe8630e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-8.d @@ -0,0 +1,10 @@ +#name: C6X stack attribute merging, 816 8 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-816.s +#source: attr-stack-8.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d new file mode 100644 index 0000000..0ab01ac --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816-816.d @@ -0,0 +1,11 @@ +#name: C6X stack attribute merging, 816 816 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-stack-816.s +#source: attr-stack-816.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_stack_align_preserved: 16-byte diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s new file mode 100644 index 0000000..46295d2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-stack-816.s @@ -0,0 +1,2 @@ +.c6xabi_attribute Tag_ABI_stack_align_needed, 0 +.c6xabi_attribute Tag_ABI_stack_align_preserved, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d new file mode 100644 index 0000000..e2b8f45 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1.d @@ -0,0 +1,6 @@ +#name: C6X unknown attribute merging 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-54-1.s +#source: attr-unknown-54-1.s +#error: .*error: unknown mandatory EABI object attribute 54 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s new file mode 100644 index 0000000..bb17345 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-1.s @@ -0,0 +1 @@ +.c6xabi_attribute 1000, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s new file mode 100644 index 0000000..658868b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1000-2.s @@ -0,0 +1 @@ +.c6xabi_attribute 1000, 2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s new file mode 100644 index 0000000..e2d7e4f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-1024-1.s @@ -0,0 +1 @@ +.c6xabi_attribute 1024, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d new file mode 100644 index 0000000..8062a9a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-2.d @@ -0,0 +1,6 @@ +#name: C6X unknown attribute merging 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-55-a.s +#source: attr-unknown-55-a.s +#error: .*error: unknown mandatory EABI object attribute 55 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d new file mode 100644 index 0000000..ed7acdc --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-3.d @@ -0,0 +1,12 @@ +#name: C6X unknown attribute merging 3 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-71-a.s +#source: attr-unknown-71-a.s +#warning: .*warning: unknown EABI object attribute 71 +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_unknown_71: "a" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d new file mode 100644 index 0000000..dd165d6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-4.d @@ -0,0 +1,11 @@ +#name: C6X unknown attribute merging 4 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-71-a.s +#source: attr-unknown-71-b.s +#warning: .*warning: unknown EABI object attribute 71 +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d new file mode 100644 index 0000000..5a17b9a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-5.d @@ -0,0 +1,12 @@ +#name: C6X unknown attribute merging 5 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-1000-1.s +#source: attr-unknown-1000-1.s +#warning: .*warning: unknown EABI object attribute 1000 +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_unknown_1000: 1 \(0x1\) diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s new file mode 100644 index 0000000..8f0600e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-54-1.s @@ -0,0 +1 @@ +.c6xabi_attribute 54, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s new file mode 100644 index 0000000..7b09d2b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-55-a.s @@ -0,0 +1 @@ +.c6xabi_attribute 55, "a" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d new file mode 100644 index 0000000..6509693 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-6.d @@ -0,0 +1,11 @@ +#name: C6X unknown attribute merging 6 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-1000-1.s +#source: attr-unknown-1000-2.s +#warning: .*warning: unknown EABI object attribute 1000 +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d new file mode 100644 index 0000000..79ab8c5 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-7.d @@ -0,0 +1,6 @@ +#name: C6X unknown attribute merging 7 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-unknown-1024-1.s +#source: attr-unknown-1024-1.s +#error: .*error: unknown mandatory EABI object attribute 1024 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s new file mode 100644 index 0000000..b7bf77e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-a.s @@ -0,0 +1 @@ +.c6xabi_attribute 71, "a" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s new file mode 100644 index 0000000..de0f18b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-unknown-71-b.s @@ -0,0 +1 @@ +.c6xabi_attribute 71, "b" diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s new file mode 100644 index 0000000..5427103 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-0.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_wchar_t, 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d new file mode 100644 index 0000000..3f5feae --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-00.d @@ -0,0 +1,10 @@ +#name: C6X wchar_t attribute merging, 0 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-0.s +#source: attr-wchar-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d new file mode 100644 index 0000000..e32ded6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-01.d @@ -0,0 +1,11 @@ +#name: C6X wchar_t attribute merging, 0 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-0.s +#source: attr-wchar-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_wchar_t: 2 bytes diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d new file mode 100644 index 0000000..57ed66b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-02.d @@ -0,0 +1,11 @@ +#name: C6X wchar_t attribute merging, 0 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-0.s +#source: attr-wchar-2.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_wchar_t: 4 bytes diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s new file mode 100644 index 0000000..69d1186 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-1.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_wchar_t, 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d new file mode 100644 index 0000000..c476859 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-10.d @@ -0,0 +1,11 @@ +#name: C6X wchar_t attribute merging, 1 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-1.s +#source: attr-wchar-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_wchar_t: 2 bytes diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d new file mode 100644 index 0000000..5105d19 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-11.d @@ -0,0 +1,11 @@ +#name: C6X wchar_t attribute merging, 1 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-1.s +#source: attr-wchar-1.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_wchar_t: 2 bytes diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d new file mode 100644 index 0000000..a0d3bd8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-12.d @@ -0,0 +1,6 @@ +#name: C6X wchar_t attribute merging, 1 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-1.s +#source: attr-wchar-2.s +#warning: .*differ in wchar_t size diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s new file mode 100644 index 0000000..cf87e4c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-2.s @@ -0,0 +1 @@ +.c6xabi_attribute Tag_ABI_wchar_t, 2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d new file mode 100644 index 0000000..9a2b356 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-20.d @@ -0,0 +1,11 @@ +#name: C6X wchar_t attribute merging, 2 0 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-2.s +#source: attr-wchar-0.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_wchar_t: 4 bytes diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d new file mode 100644 index 0000000..60d06f1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-21.d @@ -0,0 +1,6 @@ +#name: C6X wchar_t attribute merging, 2 1 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-2.s +#source: attr-wchar-1.s +#warning: .*differ in wchar_t size diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d new file mode 100644 index 0000000..7500a31 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/attr-wchar-22.d @@ -0,0 +1,11 @@ +#name: C6X wchar_t attribute merging, 2 2 +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: attr-wchar-2.s +#source: attr-wchar-2.s +#readelf: -A + +Attribute Section: c6xabi +File Attributes + Tag_ISA: C674x + Tag_ABI_wchar_t: 4 bytes diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/common.d b/binutils-2.24/ld/testsuite/ld-tic6x/common.d new file mode 100644 index 0000000..68529f8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/common.d @@ -0,0 +1,28 @@ +#name: C6X common symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tcommon.ld +#source: common.s +#readelf: -Ss + +There are 6 section headers, starting at offset 0x7c: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.far NOBITS 00000080 000080 000008 00 WA 0 0 4 + \[ 2\] \.bss NOBITS 00000100 000080 000004 00 WA 0 0 4 + \[ 3\] \.shstrtab STRTAB 00000000 000054 000025 00 0 0 1 + \[ 4\] \.symtab SYMTAB 00000000 00016c 000050 10 5 3 4 + \[ 5\] \.strtab STRTAB 00000000 0001bc 000005 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Symbol table '\.symtab' contains 5 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 00000080 0 SECTION LOCAL DEFAULT 1 + 2: 00000100 0 SECTION LOCAL DEFAULT 2 + 3: 00000100 4 OBJECT GLOBAL DEFAULT 2 x + 4: 00000080 8 OBJECT GLOBAL DEFAULT 1 y diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/common.ld b/binutils-2.24/ld/testsuite/ld-tic6x/common.ld new file mode 100644 index 0000000..5597c3f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/common.ld @@ -0,0 +1,11 @@ +SECTIONS +{ + . = 0x80; + .far : { *(.far) *(COMMON) } + . = 0x100; + .bss : { *(.scommon) } + + . = 0x10000000; + .text : { *(.text*) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/common.s b/binutils-2.24/ld/testsuite/ld-tic6x/common.s new file mode 100644 index 0000000..4743066 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/common.s @@ -0,0 +1,2 @@ + .scomm x,4,4 + .comm y,8,4 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d new file mode 100644 index 0000000..82e2caf --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.d @@ -0,0 +1,11 @@ +#name: C6X data relocations, global symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym sff=0xff --defsym sffff=0xffff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffff80=0xffffff80 --defsym sffffffff=0xffffffff +#source: data-reloc-global-rel.s +#objdump: -r -s -j .data + +.*: *file format elf32-tic6x-le + +Contents of section \.data: +[ \t]*0080 00000080 ffffffff 00000000 feffffff \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\. +[ \t]*0090 00000000 ffffffff 00800080 ffff8080 \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s new file mode 100644 index 0000000..8c7ba2e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global-rel.s @@ -0,0 +1,21 @@ +.globl s0 +.globl sff +.globl sffff +.globl s80000000 +.globl sffff8000 +.globl sffffff80 +.globl sffffffff +.data + .word s80000000 + .word sffffffff + .word s0 + .word sffffffff+0xffffffff + .word s80000000+0x80000000 + .short sffffffff + .short sffff + .short sffff8000 + .short s0-0x8000 + .byte sffffffff + .byte sff + .byte sffffff80 + .byte s0-0x80 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d new file mode 100644 index 0000000..416f9d3 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.d @@ -0,0 +1,12 @@ +#name: C6X data relocations, global symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym sff=0xff --defsym sffff=0xffff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffff80=0xffffff80 --defsym sffffffff=0xffffffff +#source: data-reloc-global.s +#objdump: -r -s -j .data + +.*: *file format elf32-tic6x-le + +Contents of section \.data: +[ \t]*0080 00000080 ffffffff 00000000 feffffff .* +[ \t]*0090 00000000 ffffffff 00800080 0000ffff .* +[ \t]*00a0 808000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s new file mode 100644 index 0000000..6a03376 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-global.s @@ -0,0 +1,23 @@ +.globl s0 +.globl sff +.globl sffff +.globl s80000000 +.globl sffff8000 +.globl sffffff80 +.globl sffffffff +.data + .word s80000000 + .word sffffffff + .word s0 + .word sffffffff+0xffffffff + .word s80000000+0x80000000 + .short sffffffff + .short sffff + .short sffff8000 + .short s0-0x8000 + .short s80000000+0x80000000 + .byte sffffffff + .byte sff + .byte sffffff80 + .byte s0-0x80 + .byte s80000000+0x80000000 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s new file mode 100644 index 0000000..d5cc7cf --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-1.s @@ -0,0 +1,5 @@ +.data +a: + .word a +b: + .word b diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s new file mode 100644 index 0000000..2e9196b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-2.s @@ -0,0 +1,8 @@ +.data +c: + .word d +d: + .word c + .short d + .byte c + .byte d diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d new file mode 100644 index 0000000..18f23f9 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d @@ -0,0 +1,23 @@ +#name: C6X data relocations, local symbols, -r, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -r -melf32_tic6x_le +#source: data-reloc-local-1.s +#source: data-reloc-local-2.s +#objdump: -r -s -j .data + +.*: *file format elf32-tic6x-le + +RELOCATION RECORDS FOR \[\.data\]: +OFFSET TYPE VALUE +0+ R_C6000_ABS32 \.data +0+4 R_C6000_ABS32 \.data +0+8 R_C6000_ABS32 \.data +0+c R_C6000_ABS32 \.data +0+10 R_C6000_ABS16 \.data +0+12 R_C6000_ABS8 \.data +0+13 R_C6000_ABS8 \.data + + +Contents of section \.data: +[ \t]*0000 00000000 04000000 0c000000 08000000 \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\. +[ \t]*0010 0c00080c \.\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d new file mode 100644 index 0000000..0f5567b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-r.d @@ -0,0 +1,23 @@ +#name: C6X data relocations, local symbols, -r +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: data-reloc-local-1.s +#source: data-reloc-local-2.s +#objdump: -r -s -j .data + +.*: *file format elf32-tic6x-le + +RELOCATION RECORDS FOR \[\.data\]: +OFFSET TYPE VALUE +0+ R_C6000_ABS32 \.data +0+4 R_C6000_ABS32 \.data\+0x00000004 +0+8 R_C6000_ABS32 \.data\+0x0000000c +0+c R_C6000_ABS32 \.data\+0x00000008 +0+10 R_C6000_ABS16 \.data\+0x0000000c +0+12 R_C6000_ABS8 \.data\+0x00000008 +0+13 R_C6000_ABS8 \.data\+0x0000000c + + +Contents of section \.data: +[ \t]*0000 00000000 00000000 00000000 00000000 .* +[ \t]*0010 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d new file mode 100644 index 0000000..686ca6e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local-rel.d @@ -0,0 +1,12 @@ +#name: C6X data relocations, local symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: data-reloc-local-1.s +#source: data-reloc-local-2.s +#objdump: -r -s -j .data + +.*: *file format elf32-tic6x-le + +Contents of section \.data: +[ \t]*0080 80000000 84000000 8c000000 88000000 .* +[ \t]*0090 8c00888c .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d new file mode 100644 index 0000000..13d6f75 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/data-reloc-local.d @@ -0,0 +1,12 @@ +#name: C6X data relocations, local symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: data-reloc-local-1.s +#source: data-reloc-local-2.s +#objdump: -r -s -j .data + +.*: *file format elf32-tic6x-le + +Contents of section \.data: +[ \t]*0080 80000000 84000000 8c000000 88000000 .* +[ \t]*0090 8c00888c .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld b/binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld new file mode 100644 index 0000000..00582c1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/discard-unwind.ld @@ -0,0 +1,15 @@ +/* Script for unwinding ld tests */ +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = 0x8000; + .text : + { + *(.before) + *(.text) + *(.after) + *(.c6xabi.extab*) + } =0 + /DISCARD/ : { *(.c6xabi.exidx*) } + .c6xabi.attribues 0 : { *(.c6xabi.atttributes) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld new file mode 100644 index 0000000..40ba14c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-be.ld @@ -0,0 +1,67 @@ +OUTPUT_FORMAT("elf32-tic6x-be", "elf32-tic6x-be", + "elf32-tic6x-be") +EXTERN (__c6xabi_DSBT_BASE); +SECTIONS +{ + PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; + . = 0x8000; + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) } + .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) } + .rel.rodata : { *(.rel.rodata .rel.rodata.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.fardata : { *(.rel.fardata .rel.fardata.*) } + .rela.fardata : { *(.rela.fardata .rela.fardata.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) } + .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) } + .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) } + .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) } + .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) } + .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) } + .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) } + .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) } + .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } + .dynamic : { *(.dynamic) } + .data : { *(.data*) } + . = 0x10000000; + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .plt : { *(.plt) } + .text : { *(.text*) } + . = .; PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); + .got : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) } + .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) } + .rodata : { *(.rodata .rodata.*) } + .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) } + .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) } + .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d new file mode 100644 index 0000000..5c9f96a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index-error.d @@ -0,0 +1,5 @@ +#name: C6X invalid DSBT_INDEX +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --dsbt-index 5 --dsbt-size 3 +#source: dsbt-index.s +#error: .*invalid --dsbt-index 5, outside DSBT size.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d new file mode 100644 index 0000000..cc33c89 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.d @@ -0,0 +1,14 @@ +#name: C6X DSBT_INDEX reloc +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --dsbt-index 5 +#source: dsbt-index.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+0700056e[ \t]+ldw \.D2T2 \*\+b14\(20\),b14 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s new file mode 100644 index 0000000..16e3b76 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-index.s @@ -0,0 +1,3 @@ +.text +.nocmp + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld new file mode 100644 index 0000000..603f020 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-inrange.ld @@ -0,0 +1,68 @@ +EXTERN (__c6xabi_DSBT_BASE); +SECTIONS +{ + PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; + . = 0x8000; + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) } + .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) } + .rel.rodata : { *(.rel.rodata .rel.rodata.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.fardata : { *(.rel.fardata .rel.fardata.*) } + .rela.fardata : { *(.rela.fardata .rela.fardata.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) } + .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) } + .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) } + .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) } + .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) } + .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) } + .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) } + .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) } + .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } + .dynamic : { *(.dynamic) } + .data : { *(.data*) } + . = 0x10000000; + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .plt : { *(.plt) } + .text : { *(.text*) } + . = 0x20000000; + PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); + .dsbt : { *(.dsbt) } + . = 0x2001fff4; + .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } + .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) } + .rodata : { *(.rodata .rodata.*) } + .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) } + .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) } + .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld new file mode 100644 index 0000000..3128a35 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt-overflow.ld @@ -0,0 +1,68 @@ +EXTERN (__c6xabi_DSBT_BASE); +SECTIONS +{ + PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; + . = 0x8000; + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) } + .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) } + .rel.rodata : { *(.rel.rodata .rel.rodata.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.fardata : { *(.rel.fardata .rel.fardata.*) } + .rela.fardata : { *(.rela.fardata .rela.fardata.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) } + .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) } + .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) } + .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) } + .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) } + .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) } + .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) } + .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) } + .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } + .dynamic : { *(.dynamic) } + .data : { *(.data*) } + . = 0x10000000; + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .plt : { *(.plt) } + .text : { *(.text*) } + . = 0x20000000; + PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); + .dsbt : { *(.dsbt) } + . = 0x2001fff8; + .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } + .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) } + .rodata : { *(.rodata .rodata.*) } + .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) } + .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) } + .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld new file mode 100644 index 0000000..fdde8ba --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/dsbt.ld @@ -0,0 +1,67 @@ +OUTPUT_FORMAT("elf32-tic6x-le", "elf32-tic6x-le", + "elf32-tic6x-le") +EXTERN (__c6xabi_DSBT_BASE); +SECTIONS +{ + PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x0)); . = SEGMENT_START("text-segment", 0x0) + SIZEOF_HEADERS; + . = 0x8000; + .hash : { *(.hash) } + .gnu.hash : { *(.gnu.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .gnu.version : { *(.gnu.version) } + .gnu.version_d : { *(.gnu.version_d) } + .gnu.version_r : { *(.gnu.version_r) } + .rel.init : { *(.rel.init) } + .rela.init : { *(.rela.init) } + .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } + .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } + .rel.fini : { *(.rel.fini) } + .rela.fini : { *(.rela.fini) } + .rel.const : { *(.rel.const .rel.const.* .rel.gnu.linkonce.r.*) } + .rela.const : { *(.rela.const .rela.const.* .rela.gnu.linkonce.r.*) } + .rel.rodata : { *(.rel.rodata .rel.rodata.*) } + .rela.rodata : { *(.rela.rodata .rela.rodata.*) } + .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } + .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } + .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } + .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } + .rel.fardata : { *(.rel.fardata .rel.fardata.*) } + .rela.fardata : { *(.rela.fardata .rela.fardata.*) } + .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } + .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } + .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } + .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.neardata : { *(.rel.neardata .rel.neardata.* .rel.gnu.linkonce.s.*) } + .rela.neardata : { *(.rela.neardata .rela.neardata.* .rela.gnu.linkonce.s.*) } + .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.sb.*) } + .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.sb.*) } + .rel.neardata2 : { *(.rel.neardata2 .rel.neardata2.* .rel.gnu.linkonce.s2.*) } + .rela.neardata2 : { *(.rela.neardata2 .rela.neardata2.* .rela.gnu.linkonce.s2.*) } + .rel.bss2 : { *(.rel.bss2 .rel.bss2.* .rel.gnu.linkonce.sb2.*) } + .rela.bss2 : { *(.rela.bss2 .rela.bss2.* .rela.gnu.linkonce.sb2.*) } + .rel.far : { *(.rel.far .rel.far.* .rel.gnu.linkonce.b.*) } + .rela.far : { *(.rela.far .rela.far.* .rela.gnu.linkonce.b.*) } + .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } + .dynamic : { *(.dynamic) } + .data : { *(.data*) } + . = 0x10000000; + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .plt : { *(.plt) } + .text : { *(.text*) } + . = .; PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); + .got : { *(.dsbt) *(.got.plt) *(.igot.plt) *(.got) *(.igot) } + .neardata : { *(.neardata .neardata.* .gnu.linkonce.s.*) } + .rodata : { *(.rodata .rodata.*) } + .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.sb.*) *(.scommon) } + .far : { *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) *(COMMON) } + .c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d new file mode 100644 index 0000000..c29ae68 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d @@ -0,0 +1,14 @@ +#name: EHTYPE relocations (REL) +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le --defsym s1=0x2a -Tdsbt-inrange.ld +#source: ehtype-reloc-1.s +#objdump: -s -j.data -j.text -j.got + +.*: *file format elf32-tic6x-le + +Contents of section .data: + 8018 78563412 .* +Contents of section .text: + 10000000 08000000 0c000000 .* +Contents of section .got: + 2001fff4 00000000 00000000 2a000000 18800000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d new file mode 100644 index 0000000..c14eeef --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.d @@ -0,0 +1,14 @@ +#name: EHTYPE relocations (RELA) +#as: -mlittle-endian +#ld: -melf32_tic6x_le --defsym s1=0x2a -Tdsbt-inrange.ld +#source: ehtype-reloc-1.s +#objdump: -s -j.data -j.text -j.got + +.*: *file format elf32-tic6x-le + +Contents of section .data: + 8018 78563412 .* +Contents of section .text: + 10000000 08000000 0c000000 .* +Contents of section .got: + 2001fff4 00000000 00000000 2a000000 18800000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s new file mode 100644 index 0000000..46c6de4 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/ehtype-reloc-1.s @@ -0,0 +1,9 @@ +.globl s2 +.globl _start +.text +_start: +.ehtype s1 +.ehtype s2 +.data +s2: +.word 0x12345678 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/generic.ld b/binutils-2.24/ld/testsuite/ld-tic6x/generic.ld new file mode 100644 index 0000000..2e9c5e8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/generic.ld @@ -0,0 +1,8 @@ +SECTIONS +{ + . = 0x80; + .data : { *(.data*) } + . = 0x10000000; + .text : { *(.text*) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d new file mode 100644 index 0000000..597e74d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d @@ -0,0 +1,5 @@ +#name: C6X GOT relocations, addend +#as: -mlittle-endian -mdsbt +#ld: -melf32_tic6x_le -Tdsbt.ld --dsbt-index 4 -shared +#source: got-reloc-global-addend-1.s +#error: .*relocation R_C6000_SBR_GOT_U15_W with non-zero addend 4.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s new file mode 100644 index 0000000..9b99805 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s @@ -0,0 +1,11 @@ +.text +.nocmp + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + ldw .d2t1 *+B14($GOT(a)+4), A1 + + .global a + .section .neardata,"aw",@progbits + .align 2 + .type a, @object + .size a, 4 +a: diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d new file mode 100644 index 0000000..44d6319 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d @@ -0,0 +1,5 @@ +#name: C6X GOT relocations, addend +#as: -mlittle-endian -mdsbt +#ld: -melf32_tic6x_le -Tdsbt.ld --dsbt-index 4 -shared +#source: got-reloc-global-addend-2.s +#error: .*relocation R_C6000_SBR_GOT_L16_W with non-zero addend 4.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s new file mode 100644 index 0000000..507cf84 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s @@ -0,0 +1,11 @@ +.text +.nocmp + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + mvkl .s1 $DPR_GOT(a)+4, A1 + + .global a + .section .neardata,"aw",@progbits + .align 2 + .type a, @object + .size a, 4 +a: diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s new file mode 100644 index 0000000..054c297 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-global.s @@ -0,0 +1,11 @@ +.text +.nocmp + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + ldw .d2t1 *+B14($GOT(a)), A1 + + .global a + .section .neardata,"aw",@progbits + .align 2 + .type a, @object + .size a, 4 +a: diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d new file mode 100644 index 0000000..4260444 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-inrange.d @@ -0,0 +1,15 @@ +#name: C6X GOT relocations, no overflow +#as: -mlittle-endian -mdsbt -mpic -mpid=near +#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared +#source: got-reloc-global.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+0700046e[ \t]+ldw \.D2T2 \*\+b14\(16\),b14 +10000004:[ \t]+00ffff6c[ \t]+ldw \.D2T1 \*\+b14\(131068\),a1 +[ \t]+... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s new file mode 100644 index 0000000..bb3278e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-1.s @@ -0,0 +1,8 @@ +.text +.nocmp + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + ldw .d2t1 *+B14($GOT(a)), A1 + +.data +a: + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s new file mode 100644 index 0000000..81f651b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-2.s @@ -0,0 +1,8 @@ +.text +.nocmp + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + ldw .d2t1 *+B14($GOT(b)), A1 + +.data +b: + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d new file mode 100644 index 0000000..de13473 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-local-r.d @@ -0,0 +1,23 @@ +#name: C6X GOT relocations, local symbols, -r +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: got-reloc-local-1.s +#source: got-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +00000000 <\.text>: +[ ]*0:[ ]*0700006e[ ]*ldw \.D2T2 \*\+b14\(0\),b14 +[ ]*0:[ ]*R_C6000_DSBT_INDEX __c6xabi_DSBT_BASE +[ ]*4:[ ]*0080006c[ ]*ldw \.D2T1 \*\+b14\(0\),a1 +[ ]*4:[ ]*R_C6000_SBR_GOT_U15_W a + \.\.\. +[ ]*20:[ ]*0700006e[ ]*ldw \.D2T2 \*\+b14\(0\),b14 +[ ]*20: R_C6000_DSBT_INDEX __c6xabi_DSBT_BASE +[ ]*24:[ ]*0080006c[ ]*ldw \.D2T1 \*\+b14\(0\),a1 +[ ]*24:[ ]*R_C6000_SBR_GOT_U15_W b + \.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d new file mode 100644 index 0000000..12063ef --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/got-reloc-overflow.d @@ -0,0 +1,5 @@ +#name: C6X GOT relocations, overflow +#as: -mlittle-endian -mdsbt +#ld: -melf32_tic6x_le -Tdsbt-overflow.ld --dsbt-index 4 -shared +#source: got-reloc-global.s +#error: .*relocation truncated to fit: R_C6000_SBR_GOT_U15_W.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d new file mode 100644 index 0000000..a082bbf --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d @@ -0,0 +1,20 @@ +#name: C6X MVK relocations, global symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym s7fff=0x7fff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffffff=0xffffffff +#source: mvk-reloc-global-rel.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000004:[ \t]+00ffffa8[ \t]+mvk \.S1 -1,a1 +10000008:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +1000000c:[ \t]+00ffff28[ \t]+mvk \.S1 -2,a1 +10000010:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1 +10000014:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1 +10000018:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1 +1000001c:[ \t]+00000000[ \t]+nop 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s new file mode 100644 index 0000000..0690873 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s @@ -0,0 +1,14 @@ +.globl s0 +.globl s7fff +.globl s80000000 +.globl sffff8000 +.globl sffffffff +.text +.nocmp + mvkl .S1 s80000000,a1 + mvkl .S1 sffffffff,a1 + mvkl .S1 s0,a1 + mvkl .S1 sffffffff+0xffffffff,a1 + mvk .S1 sffff8000,a1 + mvk .S1 s0-0x8000,a1 + mvk .S1 s7fff,a1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d new file mode 100644 index 0000000..8eadae7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.d @@ -0,0 +1,26 @@ +#name: C6X MVK relocations, global symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym s7fff=0x7fff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffffff=0xffffffff +#source: mvk-reloc-global.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000004:[ \t]+00c00068[ \t]+mvkh \.S1 2147483648,a1 +10000008:[ \t]+00ffffa8[ \t]+mvk \.S1 -1,a1 +1000000c:[ \t]+00ffffe8[ \t]+mvkh \.S1 4294901760,a1 +10000010:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000014:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +10000018:[ \t]+00ffff28[ \t]+mvk \.S1 -2,a1 +1000001c:[ \t]+00ffffe8[ \t]+mvkh \.S1 4294901760,a1 +10000020:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000024:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +10000028:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1 +1000002c:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1 +10000030:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s new file mode 100644 index 0000000..ef13d7a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-global.s @@ -0,0 +1,20 @@ +.globl s0 +.globl s7fff +.globl s80000000 +.globl sffff8000 +.globl sffffffff +.text +.nocmp + mvkl .S1 s80000000,a1 + mvkh .S1 s80000000,a1 + mvkl .S1 sffffffff,a1 + mvkh .S1 sffffffff,a1 + mvkl .S1 s0,a1 + mvkh .S1 s0,a1 + mvkl .S1 sffffffff+0xffffffff,a1 + mvkh .S1 sffffffff+0xffffffff,a1 + mvkl .S1 s80000000+0x80000000,a1 + mvkh .S1 s80000000+0x80000000,a1 + mvk .S1 sffff8000,a1 + mvk .S1 s0-0x8000,a1 + mvk .S1 s7fff,a1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s new file mode 100644 index 0000000..1255177 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s @@ -0,0 +1,11 @@ +.text +.nocmp + mvk .S1 a,a1 + mvkl .S1 b,a2 +.data +a: + .word 0 +b: + .word 0 +c: + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s new file mode 100644 index 0000000..f5de8b6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s @@ -0,0 +1,12 @@ +.text +.nocmp + mvk .S1 a,a1 + mvkl .S1 b,a2 + mvkh .S1 c,a3 +.data +a: + .word 0 +b: + .word 0 +c: + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s new file mode 100644 index 0000000..320c988 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s @@ -0,0 +1,11 @@ +.text +.nocmp + mvk .S1 d,a1 + mvkl .S1 e,a2 +.data +d: + .word 0 +e: + .word 0 +f: + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s new file mode 100644 index 0000000..2f9952d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s @@ -0,0 +1,12 @@ +.text +.nocmp + mvk .S1 d,a1 + mvkl .S1 e,a2 + mvkh .S1 f-0x100,a3 +.data +d: + .word 0 +e: + .word 0 +f: + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d new file mode 100644 index 0000000..dcbd55b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d @@ -0,0 +1,23 @@ +#name: C6X MVK relocations, local symbols, -r, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -r -melf32_tic6x_le +#source: mvk-reloc-local-1-rel.s +#source: mvk-reloc-local-2-rel.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*0: R_C6000_ABS_S16[ \t]+\.data +[ \t]*4:[ \t]+01000228[ \t]+mvk \.S1 4,a2 +[ \t]*4: R_C6000_ABS_L16[ \t]+\.data +[ \t]*\.\.\. +[ \t]*20:[ \t]+00800628[ \t]+mvk \.S1 12,a1 +[ \t]*20: R_C6000_ABS_S16[ \t]+\.data +[ \t]*24:[ \t]+01000828[ \t]+mvk \.S1 16,a2 +[ \t]*24: R_C6000_ABS_L16[ \t]+\.data +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d new file mode 100644 index 0000000..096b6ae --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d @@ -0,0 +1,27 @@ +#name: C6X MVK relocations, local symbols, -r +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: mvk-reloc-local-1.s +#source: mvk-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*0: R_C6000_ABS_S16[ \t]+\.data +[ \t]*4:[ \t]+01000028[ \t]+mvk \.S1 0,a2 +[ \t]*4: R_C6000_ABS_L16[ \t]+\.data\+0x4 +[ \t]*8:[ \t]+01800068[ \t]+mvkh \.S1 0,a3 +[ \t]*8: R_C6000_ABS_H16[ \t]+\.data\+0x8 +[ \t]*\.\.\. +[ \t]*20:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*20: R_C6000_ABS_S16[ \t]+\.data\+0xc +[ \t]*24:[ \t]+01000028[ \t]+mvk \.S1 0,a2 +[ \t]*24: R_C6000_ABS_L16[ \t]+\.data\+0x10 +[ \t]*28:[ \t]+01800068[ \t]+mvkh \.S1 0,a3 +[ \t]*28: R_C6000_ABS_H16[ \t]+\.data-0xec +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d new file mode 100644 index 0000000..d91a693 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d @@ -0,0 +1,19 @@ +#name: C6X MVK relocations, local symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: mvk-reloc-local-1-rel.s +#source: mvk-reloc-local-2-rel.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00804028[ \t]+mvk \.S1 128,a1 +10000004:[ \t]+01004228[ \t]+mvk \.S1 132,a2 +[ \t]*\.\.\. +10000020:[ \t]+00804628[ \t]+mvk \.S1 140,a1 +10000024:[ \t]+01004828[ \t]+mvk \.S1 144,a2 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d new file mode 100644 index 0000000..1b10c4d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/mvk-reloc-local.d @@ -0,0 +1,21 @@ +#name: C6X MVK relocations, local symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: mvk-reloc-local-1.s +#source: mvk-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00804028[ \t]+mvk \.S1 128,a1 +10000004:[ \t]+01004228[ \t]+mvk \.S1 132,a2 +10000008:[ \t]+01800068[ \t]+mvkh \.S1 0,a3 +[ \t]*\.\.\. +10000020:[ \t]+00804628[ \t]+mvk \.S1 140,a1 +10000024:[ \t]+01004828[ \t]+mvk \.S1 144,a2 +10000028:[ \t]+01ffffe8[ \t]+mvkh \.S1 4294901760,a3 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d new file mode 100644 index 0000000..8c35e04 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.d @@ -0,0 +1,39 @@ +#name: C6X PCR relocations +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: pcr-reloc.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1 +10000004:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1 +10000008:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1 + +1000000c <[^>]*>: +1000000c:[ \t]+004003e2[ \t]+mvc \.S2 pce1,b0 +10000010:[ \t]+01000264[ \t]+ldw \.D1T1 \*\+a0\(0\),a2 +10000014:[ \t]+01001a2a[ \t]+mvk \.S2 52,b2 +10000018:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2 +1000001c:[ \t]+01000a2a[ \t]+mvk \.S2 20,b2 +10000020:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2 +10000024:[ \t]+01001e2a[ \t]+mvk \.S2 60,b2 +10000028:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2 +1000002c:[ \t]+01000e2a[ \t]+mvk \.S2 28,b2 +10000030:[ \t]+0100006a[ \t]+mvkh \.S2 0,b2 + +10000034 <[^>]*>: +10000034:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1 + +10000038 <[^>]*>: +10000038:[ \t]+004003e2[ \t]+mvc \.S2 pce1,b0 + +1000003c <[^>]*>: +1000003c:[ \t]+00800264[ \t]+ldw \.D1T1 \*\+a0\(0\),a1 +10000040:[ \t]+017ff02a[ \t]+mvk \.S2 -32,b2 +10000044:[ \t]+017fffea[ \t]+mvkh \.S2 4294901760,b2 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s new file mode 100644 index 0000000..00362ff --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcr-reloc.s @@ -0,0 +1,28 @@ + .text + .align 5 +_start: +L0: + ldw .d1t1 *a0,a1 + ldw .d1t1 *a0,a1 + ldw .d1t1 *a0,a1 +L1: + MVC .s2 PCE1, b0 + ldw .d1t1 *a0,a2 + mvk .s2 $PCR_OFFSET (S0,L1), b2 + mvkh .s2 $PCR_OFFSET (S0,L1), b2 + mvk .s2 $PCR_OFFSET (S0,L2), b2 + mvkh .s2 $PCR_OFFSET (S0,L2), b2 + mvk .s2 $PCR_OFFSET (S1,L1), b2 + mvkh .s2 $PCR_OFFSET (S1,L1), b2 + mvk .s2 $PCR_OFFSET (S1,L2), b2 + mvkh .s2 $PCR_OFFSET (S1,L2), b2 + +S0: + ldw .d1t1 *a0,a1 +L2: + MVC .s2 PCE1, b0 + +S1: + ldw .d1t1 *a0,a1 + mvkl .s2 $PCR_OFFSET (L0,L2), b2 + mvkh .s2 $PCR_OFFSET (L0,L2), b2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d new file mode 100644 index 0000000..cf564e9 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d @@ -0,0 +1,20 @@ +#name: C6X PC-relative relocations, global symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s7a=0x0fffff00 --defsym s7b=0x100000fc --defsym s10a=0x0ffff800 --defsym s10b=0x100007fc --defsym s12a=0x0fffe000 --defsym s12b=0x10001ffc --defsym s21a=0x0fc00000 --defsym s21b=0x103ffffc +#source: pcrel-reloc-global.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00c00162[ \t]+addkpc \.S2 fffff00 <[^>]*>,b1,0 +10000004:[ \t]+00bf0162[ \t]+addkpc \.S2 100000fc <[^>]*>,b1,0 +10000008:[ \t]+08000012[ \t]+b \.S2 fc00000 <[^>]*> +1000000c:[ \t]+07ffff92[ \t]+b \.S2 103ffffc <[^>]*> +10000010:[ \t]+00c01022[ \t]+bdec \.S2 ffff800 <[^>]*>,b1 +10000014:[ \t]+00bff022[ \t]+bdec \.S2 100007fc <[^>]*>,b1 +10000018:[ \t]+08000122[ \t]+bnop \.S2 fffe000 <[^>]*>,0 +1000001c:[ \t]+07ff0122[ \t]+bnop \.S2 10001ffc <[^>]*>,0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d new file mode 100644 index 0000000..dbf6caa --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.d @@ -0,0 +1,20 @@ +#name: C6X PC-relative relocations, global symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s7a=0x0fffff00 --defsym s7b=0x100000fc --defsym s10a=0x0ffff800 --defsym s10b=0x100007fc --defsym s12a=0x0fffe000 --defsym s12b=0x10001ffc --defsym s21a=0x0fc00000 --defsym s21b=0x103ffffc +#source: pcrel-reloc-global.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00c00162[ \t]+addkpc \.S2 fffff00 <[^>]*>,b1,0 +10000004:[ \t]+00bf0162[ \t]+addkpc \.S2 100000fc <[^>]*>,b1,0 +10000008:[ \t]+08000012[ \t]+b \.S2 fc00000 <[^>]*> +1000000c:[ \t]+07ffff92[ \t]+b \.S2 103ffffc <[^>]*> +10000010:[ \t]+00c01022[ \t]+bdec \.S2 ffff800 <[^>]*>,b1 +10000014:[ \t]+00bff022[ \t]+bdec \.S2 100007fc <[^>]*>,b1 +10000018:[ \t]+08000122[ \t]+bnop \.S2 fffe000 <[^>]*>,0 +1000001c:[ \t]+07ff0122[ \t]+bnop \.S2 10001ffc <[^>]*>,0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s new file mode 100644 index 0000000..b5fbf2a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-global.s @@ -0,0 +1,18 @@ +.globl s7a +.globl s7b +.globl s21a +.globl s21b +.globl s10a +.globl s10b +.globl s12a +.globl s12b +.text +.nocmp + addkpc .S2 s7a,b1,0 + addkpc .S2 s7b,b1,0 + b .S2 s21a + b .S2 s21b + bdec .S2 s10a,b1 + bdec .S2 s10b,b1 + bnop .S2 s12a,0 + bnop .S2 s12b,0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s new file mode 100644 index 0000000..5a750e7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s @@ -0,0 +1,16 @@ +.text +.nocmp + nop + addkpc .S2 f1,b1,0 + addkpc .S2 f2,b1,0 + b .S2 f1 + b .S2 f2 + bdec .S2 f1,b1 + bdec .S2 f2,b1 + bnop .S2 f1,0 + bnop .S2 f2,0 +.section .text.1,"ax",@progbits +f1: + nop +f2: + nop diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s new file mode 100644 index 0000000..287165f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s @@ -0,0 +1,16 @@ +.text +.nocmp + nop + bnop .S2 f3,0 + bnop .S2 f4,0 + bdec .S2 f3,b1 + bdec .S2 f4,b1 + b .S2 f3 + b .S2 f4 + addkpc .S2 f3,b1,0 + addkpc .S2 f4,b1,0 +.section .text.1,"ax",@progbits +f3: + nop +f4: + nop diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d new file mode 100644 index 0000000..81cfc6c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d @@ -0,0 +1,62 @@ +#name: C6X PC-relative relocations, local symbols, -r, mixed link of REL/RELA +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: pcrel-reloc-local-1.s -mgenerate-rel +#source: pcrel-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00000000[ \t]+nop 1 +[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0 +[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*8:[ \t]+00810162[ \t]+addkpc \.S2 4 <[^>]*>,b1,0 +[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*> +[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*10:[ \t]+00000092[ \t]+b \.S2 4 <[^>]*> +[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1 +[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*18:[ \t]+00803022[ \t]+bdec \.S2 4 <[^>]*>,b1 +[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0 +[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*20:[ \t]+00010122[ \t]+bnop \.S2 24 <[^>]*>,0 +[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*\.\.\. +[ \t]*44:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0 +[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1\+0x20 +[ \t]*48:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0 +[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1\+0x24 +[ \t]*4c:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1 +[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1\+0x20 +[ \t]*50:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1 +[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1\+0x24 +[ \t]*54:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*> +[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1\+0x20 +[ \t]*58:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*> +[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1\+0x24 +[ \t]*5c:[ \t]+00800162[ \t]+addkpc \.S2 40 <[^>]*>,b1,0 +[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1\+0x20 +[ \t]*60:[ \t]+00800162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0 +[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1\+0x24 +[ \t]*\.\.\. + +Disassembly of section \.text\.1: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00000000[ \t]+nop 1 + +0+4 <[^>]*>: +[ \t]*\.\.\. + +0+20 <[^>]*>: +[ \t]*20:[ \t]+00000000[ \t]+nop 1 + +0+24 <[^>]*>: +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d new file mode 100644 index 0000000..e54c370 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d @@ -0,0 +1,62 @@ +#name: C6X PC-relative relocations, local symbols, -r, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -r -melf32_tic6x_le +#source: pcrel-reloc-local-1.s +#source: pcrel-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00000000[ \t]+nop 1 +[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0 +[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*8:[ \t]+00810162[ \t]+addkpc \.S2 4 <[^>]*>,b1,0 +[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*> +[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*10:[ \t]+00000092[ \t]+b \.S2 4 <[^>]*> +[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1 +[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*18:[ \t]+00803022[ \t]+bdec \.S2 4 <[^>]*>,b1 +[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0 +[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*20:[ \t]+00010122[ \t]+bnop \.S2 24 <[^>]*>,0 +[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*\.\.\. +[ \t]*44:[ \t]+00080122[ \t]+bnop \.S2 60 <[^>]*>,0 +[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*48:[ \t]+00090122[ \t]+bnop \.S2 64 <[^>]*>,0 +[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*4c:[ \t]+00811022[ \t]+bdec \.S2 60 <[^>]*>,b1 +[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*50:[ \t]+00813022[ \t]+bdec \.S2 64 <[^>]*>,b1 +[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*54:[ \t]+00000412[ \t]+b \.S2 60 <[^>]*> +[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*58:[ \t]+00000492[ \t]+b \.S2 64 <[^>]*> +[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*5c:[ \t]+00880162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0 +[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*60:[ \t]+00890162[ \t]+addkpc \.S2 84 <[^>]*>,b1,0 +[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*\.\.\. + +Disassembly of section \.text\.1: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00000000[ \t]+nop 1 + +0+4 <[^>]*>: +[ \t]*\.\.\. + +0+20 <[^>]*>: +[ \t]*20:[ \t]+00000000[ \t]+nop 1 + +0+24 <[^>]*>: +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d new file mode 100644 index 0000000..fa54742 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d @@ -0,0 +1,62 @@ +#name: C6X PC-relative relocations, local symbols, -r +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: pcrel-reloc-local-1.s +#source: pcrel-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00000000[ \t]+nop 1 +[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0 +[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1 +[ \t]*8:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0 +[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1\+0x4 +[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*> +[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1 +[ \t]*10:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*> +[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1\+0x4 +[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1 +[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1 +[ \t]*18:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1 +[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1\+0x4 +[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0 +[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1 +[ \t]*20:[ \t]+00000122[ \t]+bnop \.S2 20 <[^>]*>,0 +[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1\+0x4 +[ \t]*\.\.\. +[ \t]*44:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0 +[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1\+0x20 +[ \t]*48:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0 +[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1\+0x24 +[ \t]*4c:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1 +[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1\+0x20 +[ \t]*50:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1 +[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1\+0x24 +[ \t]*54:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*> +[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1\+0x20 +[ \t]*58:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*> +[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1\+0x24 +[ \t]*5c:[ \t]+00800162[ \t]+addkpc \.S2 40 <[^>]*>,b1,0 +[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1\+0x20 +[ \t]*60:[ \t]+00800162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0 +[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1\+0x24 +[ \t]*\.\.\. + +Disassembly of section \.text\.1: + +0+ <[^>]*>: +[ \t]*0:[ \t]+00000000[ \t]+nop 1 + +0+4 <[^>]*>: +[ \t]*\.\.\. + +0+20 <[^>]*>: +[ \t]*20:[ \t]+00000000[ \t]+nop 1 + +0+24 <[^>]*>: +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d new file mode 100644 index 0000000..108ad53 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d @@ -0,0 +1,44 @@ +#name: C6X PC-relative relocations, local symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: pcrel-reloc-local-1.s +#source: pcrel-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00000000[ \t]+nop 1 +10000004:[ \t]+00900162[ \t]+addkpc \.S2 10000040 <[^>]*>,b1,0 +10000008:[ \t]+00910162[ \t]+addkpc \.S2 10000044 <[^>]*>,b1,0 +1000000c:[ \t]+00000812[ \t]+b \.S2 10000040 <[^>]*> +10000010:[ \t]+00000892[ \t]+b \.S2 10000044 <[^>]*> +10000014:[ \t]+00821022[ \t]+bdec \.S2 10000040 <[^>]*>,b1 +10000018:[ \t]+00823022[ \t]+bdec \.S2 10000044 <[^>]*>,b1 +1000001c:[ \t]+00100122[ \t]+bnop \.S2 10000040 <[^>]*>,0 +10000020:[ \t]+00090122[ \t]+bnop \.S2 10000044 <[^>]*>,0 +[ \t]*\.\.\. + +10000040 <[^>]*>: +10000040:[ \t]+00000000[ \t]+nop 1 + +10000044 <[^>]*>: +[ \t]*\.\.\. +10000064:[ \t]+00100122[ \t]+bnop \.S2 100000a0 <[^>]*>,0 +10000068:[ \t]+00110122[ \t]+bnop \.S2 100000a4 <[^>]*>,0 +1000006c:[ \t]+00821022[ \t]+bdec \.S2 100000a0 <[^>]*>,b1 +10000070:[ \t]+00823022[ \t]+bdec \.S2 100000a4 <[^>]*>,b1 +10000074:[ \t]+00000812[ \t]+b \.S2 100000a0 <[^>]*> +10000078:[ \t]+00000892[ \t]+b \.S2 100000a4 <[^>]*> +1000007c:[ \t]+00900162[ \t]+addkpc \.S2 100000a0 <[^>]*>,b1,0 +10000080:[ \t]+00890162[ \t]+addkpc \.S2 100000a4 <[^>]*>,b1,0 +[ \t]*\.\.\. + +100000a0 <[^>]*>: +100000a0:[ \t]+00000000[ \t]+nop 1 + +100000a4 <[^>]*>: +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d new file mode 100644 index 0000000..b7cd444 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/pcrel-reloc-local.d @@ -0,0 +1,44 @@ +#name: C6X PC-relative relocations, local symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld +#source: pcrel-reloc-local-1.s +#source: pcrel-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+00000000[ \t]+nop 1 +10000004:[ \t]+00900162[ \t]+addkpc \.S2 10000040 <[^>]*>,b1,0 +10000008:[ \t]+00910162[ \t]+addkpc \.S2 10000044 <[^>]*>,b1,0 +1000000c:[ \t]+00000812[ \t]+b \.S2 10000040 <[^>]*> +10000010:[ \t]+00000892[ \t]+b \.S2 10000044 <[^>]*> +10000014:[ \t]+00821022[ \t]+bdec \.S2 10000040 <[^>]*>,b1 +10000018:[ \t]+00823022[ \t]+bdec \.S2 10000044 <[^>]*>,b1 +1000001c:[ \t]+00100122[ \t]+bnop \.S2 10000040 <[^>]*>,0 +10000020:[ \t]+00090122[ \t]+bnop \.S2 10000044 <[^>]*>,0 +[ \t]*\.\.\. + +10000040 <[^>]*>: +10000040:[ \t]+00000000[ \t]+nop 1 + +10000044 <[^>]*>: +[ \t]*\.\.\. +10000064:[ \t]+00100122[ \t]+bnop \.S2 100000a0 <[^>]*>,0 +10000068:[ \t]+00110122[ \t]+bnop \.S2 100000a4 <[^>]*>,0 +1000006c:[ \t]+00821022[ \t]+bdec \.S2 100000a0 <[^>]*>,b1 +10000070:[ \t]+00823022[ \t]+bdec \.S2 100000a4 <[^>]*>,b1 +10000074:[ \t]+00000812[ \t]+b \.S2 100000a0 <[^>]*> +10000078:[ \t]+00000892[ \t]+b \.S2 100000a4 <[^>]*> +1000007c:[ \t]+00900162[ \t]+addkpc \.S2 100000a0 <[^>]*>,b1,0 +10000080:[ \t]+00890162[ \t]+addkpc \.S2 100000a4 <[^>]*>,b1,0 +[ \t]*\.\.\. + +100000a0 <[^>]*>: +100000a0:[ \t]+00000000[ \t]+nop 1 + +100000a4 <[^>]*>: +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d new file mode 100644 index 0000000..6046491 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, ABS_S16 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x8000 +#source: reloc-overflow-abs-s16.s +#error: .*relocation truncated to fit: R_C6000_ABS_S16.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d new file mode 100644 index 0000000..1119665 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, ABS_S16 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffff7fff +#source: reloc-overflow-abs-s16.s +#error: .*relocation truncated to fit: R_C6000_ABS_S16.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s new file mode 100644 index 0000000..023d7b2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s @@ -0,0 +1,3 @@ +.text +.nocmp + mvk .S1 s,a1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d new file mode 100644 index 0000000..5344944 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, ABS16 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000 +#source: reloc-overflow-abs16.s +#error: .*relocation truncated to fit: R_C6000_ABS16.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d new file mode 100644 index 0000000..9b858a8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, ABS16 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffff7fff +#source: reloc-overflow-abs16.s +#error: .*relocation truncated to fit: R_C6000_ABS16.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s new file mode 100644 index 0000000..a8c2200 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s @@ -0,0 +1,3 @@ +.globl s +.data + .short s diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d new file mode 100644 index 0000000..1bb87fc --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, ABS8 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x100 +#source: reloc-overflow-abs8.s +#error: .*relocation truncated to fit: R_C6000_ABS8.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d new file mode 100644 index 0000000..85df882 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, ABS8 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffffff7f +#source: reloc-overflow-abs8.s +#error: .*relocation truncated to fit: R_C6000_ABS8.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s new file mode 100644 index 0000000..e08a65e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s @@ -0,0 +1,3 @@ +.globl s +.data + .byte s diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d new file mode 100644 index 0000000..a19131c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, PCR_S10 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000800 +#source: reloc-overflow-pcr-s10.s +#error: .*relocation truncated to fit: R_C6000_PCR_S10.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d new file mode 100644 index 0000000..7ca26fb --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, PCR_S10 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0ffff7fc +#source: reloc-overflow-pcr-s10.s +#error: .*relocation truncated to fit: R_C6000_PCR_S10.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s new file mode 100644 index 0000000..302eef0 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s @@ -0,0 +1,3 @@ +.text +.nocmp + bdec .S2 s,b1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d new file mode 100644 index 0000000..60e8717 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, PCR_S12 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10002000 +#source: reloc-overflow-pcr-s12.s +#error: .*relocation truncated to fit: R_C6000_PCR_S12.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d new file mode 100644 index 0000000..6a90764 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, PCR_S12 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0fffdffc +#source: reloc-overflow-pcr-s12.s +#error: .*relocation truncated to fit: R_C6000_PCR_S12.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s new file mode 100644 index 0000000..ea7946d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s @@ -0,0 +1,3 @@ +.text +.nocmp + bnop .S2 s,0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d new file mode 100644 index 0000000..4b8ca82 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, PCR_S21 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10400000 +#source: reloc-overflow-pcr-s21.s +#error: .*relocation truncated to fit: R_C6000_PCR_S21.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d new file mode 100644 index 0000000..1339b7b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, PCR_S21 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0fbffffc +#source: reloc-overflow-pcr-s21.s +#error: .*relocation truncated to fit: R_C6000_PCR_S21.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s new file mode 100644 index 0000000..c902884 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s @@ -0,0 +1,3 @@ +.text +.nocmp + b .S2 s diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d new file mode 100644 index 0000000..f4391ff --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, PCR_S7 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000100 +#source: reloc-overflow-pcr-s7.s +#error: .*relocation truncated to fit: R_C6000_PCR_S7.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d new file mode 100644 index 0000000..e0db0f1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, PCR_S7 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0ffffefc +#source: reloc-overflow-pcr-s7.s +#error: .*relocation truncated to fit: R_C6000_PCR_S7.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s new file mode 100644 index 0000000..58df0c6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s @@ -0,0 +1,3 @@ +.text +.nocmp + addkpc .S2 s,b1,0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d new file mode 100644 index 0000000..2712e90 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, SBR_S16 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x8080 +#source: reloc-overflow-sbr-s16.s +#error: .*relocation truncated to fit: R_C6000_SBR_S16.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d new file mode 100644 index 0000000..144e414 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, SBR_S16 +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0xffff807f +#source: reloc-overflow-sbr-s16.s +#error: .*relocation truncated to fit: R_C6000_SBR_S16.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s new file mode 100644 index 0000000..d208c8c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s @@ -0,0 +1,3 @@ +.text +.nocmp + mvk .S1 $dpr_byte(s),a1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d new file mode 100644 index 0000000..d21ab5f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, SBR_U15_B +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x8080 +#source: reloc-overflow-sbr-u15-b.s +#error: .*relocation truncated to fit: R_C6000_SBR_U15_B.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d new file mode 100644 index 0000000..f3b48b6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, SBR_U15_B +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7f +#source: reloc-overflow-sbr-u15-b.s +#error: .*relocation truncated to fit: R_C6000_SBR_U15_B.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s new file mode 100644 index 0000000..8fcd019 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s @@ -0,0 +1,3 @@ +.text +.nocmp + ldb .D2T2 *+b14(s),b1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d new file mode 100644 index 0000000..178b781 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, SBR_U15_H +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x10080 +#source: reloc-overflow-sbr-u15-h.s +#error: .*relocation truncated to fit: R_C6000_SBR_U15_H.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d new file mode 100644 index 0000000..914ec48 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, SBR_U15_H +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7e +#source: reloc-overflow-sbr-u15-h.s +#error: .*relocation truncated to fit: R_C6000_SBR_U15_H.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s new file mode 100644 index 0000000..ed54caa --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s @@ -0,0 +1,3 @@ +.text +.nocmp + ldh .D2T2 *+b14(s),b1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d new file mode 100644 index 0000000..e152f85 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d @@ -0,0 +1,5 @@ +#name: C6X relocation overflow, SBR_U15_W +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x20080 +#source: reloc-overflow-sbr-u15-w.s +#error: .*relocation truncated to fit: R_C6000_SBR_U15_W.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d new file mode 100644 index 0000000..995bee2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d @@ -0,0 +1,5 @@ +#name: C6X relocation underflow, SBR_U15_W +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7c +#source: reloc-overflow-sbr-u15-w.s +#error: .*relocation truncated to fit: R_C6000_SBR_U15_W.* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s new file mode 100644 index 0000000..1f6208c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s @@ -0,0 +1,3 @@ +.text +.nocmp + ldw .D2T2 *+b14(s),b1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d new file mode 100644 index 0000000..bc88717 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d @@ -0,0 +1,24 @@ +#name: C6X SB-relative relocations, global symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tsbr.ld --defsym sw1=0x80 --defsym sw2=0x2007c --defsym sh1=0x80 --defsym sh2=0x1007e --defsym sb1=0x80 --defsym sb2=0x807f --defsym sb16a=0xffff8080 --defsym sb16b=0x807f --defsym sbw=0x123456f8 --defsym shw=0x2468ad70 --defsym sww=0x48d15a60 +#source: sbr-reloc-global-rel.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +10000004:[ \t]+00ffff6e[ \t]+ldw \.D2T2 \*\+b14\(131068\),b1 +10000008:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1 +1000000c:[ \t]+00ffff4e[ \t]+ldh \.D2T2 \*\+b14\(65534\),b1 +10000010:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1 +10000014:[ \t]+00ffff2e[ \t]+ldb \.D2T2 \*\+b14\(32767\),b1 +10000018:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1 +1000001c:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1 +10000020:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1 +10000024:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1 +10000028:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s new file mode 100644 index 0000000..515e03e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s @@ -0,0 +1,24 @@ +.globl sw1 +.globl sw2 +.globl sh1 +.globl sh2 +.globl sb1 +.globl sb2 +.globl sb16a +.globl sb16b +.globl sbw +.globl shw +.globl sww +.text +.nocmp + ldw .D2T2 *+b14(sw1),b1 + ldw .D2T2 *+b14(sw2),b1 + ldh .D2T2 *+b14(sh1),b1 + ldh .D2T2 *+b14(sh2),b1 + ldb .D2T2 *+b14(sb1),b1 + ldb .D2T2 *+b14(sb2),b1 + mvk .S1 $dpr_byte(sb16a),a1 + mvk .S1 $dpr_byte(sb16b),a1 + mvkl .S1 $dpr_byte(sbw),a1 + mvkl .S1 $dpr_hword(shw),a1 + mvkl .S1 $dpr_word(sww),a1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d new file mode 100644 index 0000000..92bf89c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.d @@ -0,0 +1,27 @@ +#name: C6X SB-relative relocations, global symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld --defsym sw1=0x80 --defsym sw2=0x2007c --defsym sh1=0x80 --defsym sh2=0x1007e --defsym sb1=0x80 --defsym sb2=0x807f --defsym sb16a=0xffff8080 --defsym sb16b=0x807f --defsym sbw=0x123456f8 --defsym shw=0x2468ad70 --defsym sww=0x48d15a60 +#source: sbr-reloc-global.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +10000004:[ \t]+00ffff6e[ \t]+ldw \.D2T2 \*\+b14\(131068\),b1 +10000008:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1 +1000000c:[ \t]+00ffff4e[ \t]+ldh \.D2T2 \*\+b14\(65534\),b1 +10000010:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1 +10000014:[ \t]+00ffff2e[ \t]+ldb \.D2T2 \*\+b14\(32767\),b1 +10000018:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1 +1000001c:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1 +10000020:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1 +10000024:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1 +10000028:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1 +1000002c:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1 +10000030:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1 +10000034:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s new file mode 100644 index 0000000..12edd08 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-global.s @@ -0,0 +1,27 @@ +.globl sw1 +.globl sw2 +.globl sh1 +.globl sh2 +.globl sb1 +.globl sb2 +.globl sb16a +.globl sb16b +.globl sbw +.globl shw +.globl sww +.text +.nocmp + ldw .D2T2 *+b14(sw1),b1 + ldw .D2T2 *+b14(sw2),b1 + ldh .D2T2 *+b14(sh1),b1 + ldh .D2T2 *+b14(sh2),b1 + ldb .D2T2 *+b14(sb1),b1 + ldb .D2T2 *+b14(sb2),b1 + mvk .S1 $dpr_byte(sb16a),a1 + mvk .S1 $dpr_byte(sb16b),a1 + mvkl .S1 $dpr_byte(sbw),a1 + mvkh .S1 $dpr_byte(sbw),a1 + mvkl .S1 $dpr_hword(shw),a1 + mvkh .S1 $dpr_hword(shw),a1 + mvkl .S1 $dpr_word(sww),a1 + mvkh .S1 $dpr_word(sww),a1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s new file mode 100644 index 0000000..1316496 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s @@ -0,0 +1,21 @@ +.text +.nocmp + ldw .D2T2 *+b14(a),b1 + ldw .D2T2 *+b14(b),b1 + ldh .D2T2 *+b14(b),b1 + ldh .D2T2 *+b14(c),b1 + ldb .D2T2 *+b14(c),b1 + ldb .D2T2 *+b14(d),b1 + mvk .S1 $dpr_byte(d),a1 + mvkl .S1 $dpr_byte(c),a1 + mvkl .S1 $dpr_hword(b),a1 + mvkl .S1 $dpr_word(a),a1 +.data +a: + .word 0 +b: + .short 0 +c: + .byte 0 +d: + .byte 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s new file mode 100644 index 0000000..25bb75c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s @@ -0,0 +1,24 @@ +.text +.nocmp + ldw .D2T2 *+b14(a),b1 + ldw .D2T2 *+b14(b),b1 + ldh .D2T2 *+b14(b),b1 + ldh .D2T2 *+b14(c),b1 + ldb .D2T2 *+b14(c),b1 + ldb .D2T2 *+b14(d),b1 + mvk .S1 $dpr_byte(d),a1 + mvkl .S1 $dpr_byte(c),a1 + mvkh .S1 $dpr_byte(d),a1 + mvkl .S1 $dpr_hword(b),a1 + mvkh .S1 $dpr_hword(c),a1 + mvkl .S1 $dpr_word(a),a1 + mvkh .S1 $dpr_word(b),a1 +.data +a: + .word 0 +b: + .short 0 +c: + .byte 0 +d: + .byte 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s new file mode 100644 index 0000000..e1268fb --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s @@ -0,0 +1,21 @@ +.text +.nocmp + ldw .D2T2 *+b14(e),b1 + ldw .D2T2 *+b14(f),b1 + ldh .D2T2 *+b14(f),b1 + ldh .D2T2 *+b14(g),b1 + ldb .D2T2 *+b14(g),b1 + ldb .D2T2 *+b14(h),b1 + mvk .S1 $dpr_byte(h),a1 + mvkl .S1 $dpr_byte(g),a1 + mvkl .S1 $dpr_hword(f),a1 + mvkl .S1 $dpr_word(e),a1 +.data +e: + .word 0 +f: + .short 0 +g: + .byte 0 +h: + .byte 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s new file mode 100644 index 0000000..2ced424 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s @@ -0,0 +1,24 @@ +.text +.nocmp + ldw .D2T2 *+b14(e),b1 + ldw .D2T2 *+b14(f),b1 + ldh .D2T2 *+b14(f),b1 + ldh .D2T2 *+b14(g),b1 + ldb .D2T2 *+b14(g),b1 + ldb .D2T2 *+b14(h),b1 + mvk .S1 $dpr_byte(h),a1 + mvkl .S1 $dpr_byte(g),a1 + mvkh .S1 $dpr_byte(h),a1 + mvkl .S1 $dpr_hword(f),a1 + mvkh .S1 $dpr_hword(g),a1 + mvkl .S1 $dpr_word(e),a1 + mvkh .S1 $dpr_word(f),a1 +.data +e: + .word 0 +f: + .short 0 +g: + .byte 0 +h: + .byte 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d new file mode 100644 index 0000000..801c6a2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d @@ -0,0 +1,55 @@ +#name: C6X SB-relative relocations, local symbols, -r, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -r -melf32_tic6x_le +#source: sbr-reloc-local-1-rel.s +#source: sbr-reloc-local-2-rel.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +[ \t]*0: R_C6000_SBR_U15_W[ \t]+\.data +[ \t]*4:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1 +[ \t]*4: R_C6000_SBR_U15_W[ \t]+\.data +[ \t]*8:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1 +[ \t]*8: R_C6000_SBR_U15_H[ \t]+\.data +[ \t]*c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1 +[ \t]*c: R_C6000_SBR_U15_H[ \t]+\.data +[ \t]*10:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1 +[ \t]*10: R_C6000_SBR_U15_B[ \t]+\.data +[ \t]*14:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1 +[ \t]*14: R_C6000_SBR_U15_B[ \t]+\.data +[ \t]*18:[ \t]+008003a8[ \t]+mvk \.S1 7,a1 +[ \t]*18: R_C6000_SBR_S16[ \t]+\.data +[ \t]*1c:[ \t]+00800328[ \t]+mvk \.S1 6,a1 +[ \t]*1c: R_C6000_SBR_L16_B[ \t]+\.data +[ \t]*20:[ \t]+00800128[ \t]+mvk \.S1 2,a1 +[ \t]*20: R_C6000_SBR_L16_H[ \t]+\.data +[ \t]*24:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*24: R_C6000_SBR_L16_W[ \t]+\.data +[ \t]*\.\.\. +[ \t]*40:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1 +[ \t]*40: R_C6000_SBR_U15_W[ \t]+\.data +[ \t]*44:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1 +[ \t]*44: R_C6000_SBR_U15_W[ \t]+\.data +[ \t]*48:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1 +[ \t]*48: R_C6000_SBR_U15_H[ \t]+\.data +[ \t]*4c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1 +[ \t]*4c: R_C6000_SBR_U15_H[ \t]+\.data +[ \t]*50:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1 +[ \t]*50: R_C6000_SBR_U15_B[ \t]+\.data +[ \t]*54:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1 +[ \t]*54: R_C6000_SBR_U15_B[ \t]+\.data +[ \t]*58:[ \t]+008007a8[ \t]+mvk \.S1 15,a1 +[ \t]*58: R_C6000_SBR_S16[ \t]+\.data +[ \t]*5c:[ \t]+00800728[ \t]+mvk \.S1 14,a1 +[ \t]*5c: R_C6000_SBR_L16_B[ \t]+\.data +[ \t]*60:[ \t]+00800328[ \t]+mvk \.S1 6,a1 +[ \t]*60: R_C6000_SBR_L16_H[ \t]+\.data +[ \t]*64:[ \t]+00800128[ \t]+mvk \.S1 2,a1 +[ \t]*64: R_C6000_SBR_L16_W[ \t]+\.data +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d new file mode 100644 index 0000000..fdb2e14 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d @@ -0,0 +1,67 @@ +#name: C6X SB-relative relocations, local symbols, -r +#as: -mlittle-endian +#ld: -r -melf32_tic6x_le +#source: sbr-reloc-local-1.s +#source: sbr-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +0+ <[^>]*>: +[ \t]*0:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +[ \t]*0: R_C6000_SBR_U15_W[ \t]+\.data +[ \t]*4:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +[ \t]*4: R_C6000_SBR_U15_W[ \t]+\.data\+0x4 +[ \t]*8:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1 +[ \t]*8: R_C6000_SBR_U15_H[ \t]+\.data\+0x4 +[ \t]*c:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1 +[ \t]*c: R_C6000_SBR_U15_H[ \t]+\.data\+0x6 +[ \t]*10:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1 +[ \t]*10: R_C6000_SBR_U15_B[ \t]+\.data\+0x6 +[ \t]*14:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1 +[ \t]*14: R_C6000_SBR_U15_B[ \t]+\.data\+0x7 +[ \t]*18:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*18: R_C6000_SBR_S16[ \t]+\.data\+0x7 +[ \t]*1c:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*1c: R_C6000_SBR_L16_B[ \t]+\.data\+0x6 +[ \t]*20:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*20: R_C6000_SBR_H16_B[ \t]+\.data\+0x7 +[ \t]*24:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*24: R_C6000_SBR_L16_H[ \t]+\.data\+0x4 +[ \t]*28:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*28: R_C6000_SBR_H16_H[ \t]+\.data\+0x6 +[ \t]*2c:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*2c: R_C6000_SBR_L16_W[ \t]+\.data +[ \t]*30:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*30: R_C6000_SBR_H16_W[ \t]+\.data\+0x4 +[ \t]*\.\.\. +[ \t]*40:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +[ \t]*40: R_C6000_SBR_U15_W[ \t]+\.data\+0x8 +[ \t]*44:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +[ \t]*44: R_C6000_SBR_U15_W[ \t]+\.data\+0xc +[ \t]*48:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1 +[ \t]*48: R_C6000_SBR_U15_H[ \t]+\.data\+0xc +[ \t]*4c:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1 +[ \t]*4c: R_C6000_SBR_U15_H[ \t]+\.data\+0xe +[ \t]*50:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1 +[ \t]*50: R_C6000_SBR_U15_B[ \t]+\.data\+0xe +[ \t]*54:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1 +[ \t]*54: R_C6000_SBR_U15_B[ \t]+\.data\+0xf +[ \t]*58:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*58: R_C6000_SBR_S16[ \t]+\.data\+0xf +[ \t]*5c:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*5c: R_C6000_SBR_L16_B[ \t]+\.data\+0xe +[ \t]*60:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*60: R_C6000_SBR_H16_B[ \t]+\.data\+0xf +[ \t]*64:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*64: R_C6000_SBR_L16_H[ \t]+\.data\+0xc +[ \t]*68:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*68: R_C6000_SBR_H16_H[ \t]+\.data\+0xe +[ \t]*6c:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*6c: R_C6000_SBR_L16_W[ \t]+\.data\+0x8 +[ \t]*70:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*70: R_C6000_SBR_H16_W[ \t]+\.data\+0xc +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d new file mode 100644 index 0000000..005167e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d @@ -0,0 +1,35 @@ +#name: C6X SB-relative relocations, local symbols, REL +#as: -mlittle-endian -mgenerate-rel +#ld: -melf32_tic6x_le -Tsbr.ld +#source: sbr-reloc-local-1-rel.s +#source: sbr-reloc-local-2-rel.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +10000004:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1 +10000008:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1 +1000000c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1 +10000010:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1 +10000014:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1 +10000018:[ \t]+008003a8[ \t]+mvk \.S1 7,a1 +1000001c:[ \t]+00800328[ \t]+mvk \.S1 6,a1 +10000020:[ \t]+00800128[ \t]+mvk \.S1 2,a1 +10000024:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +[ \t]*\.\.\. +10000040:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1 +10000044:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1 +10000048:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1 +1000004c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1 +10000050:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1 +10000054:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1 +10000058:[ \t]+008007a8[ \t]+mvk \.S1 15,a1 +1000005c:[ \t]+00800728[ \t]+mvk \.S1 14,a1 +10000060:[ \t]+00800328[ \t]+mvk \.S1 6,a1 +10000064:[ \t]+00800128[ \t]+mvk \.S1 2,a1 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d new file mode 100644 index 0000000..0db2c24 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr-reloc-local.d @@ -0,0 +1,41 @@ +#name: C6X SB-relative relocations, local symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld +#source: sbr-reloc-local-1.s +#source: sbr-reloc-local-2.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <[^>]*>: +10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +10000004:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1 +10000008:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1 +1000000c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1 +10000010:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1 +10000014:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1 +10000018:[ \t]+008003a8[ \t]+mvk \.S1 7,a1 +1000001c:[ \t]+00800328[ \t]+mvk \.S1 6,a1 +10000020:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +10000024:[ \t]+00800128[ \t]+mvk \.S1 2,a1 +10000028:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +1000002c:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000030:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*\.\.\. +10000040:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1 +10000044:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1 +10000048:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1 +1000004c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1 +10000050:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1 +10000054:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1 +10000058:[ \t]+008007a8[ \t]+mvk \.S1 15,a1 +1000005c:[ \t]+00800728[ \t]+mvk \.S1 14,a1 +10000060:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +10000064:[ \t]+00800328[ \t]+mvk \.S1 6,a1 +10000068:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +1000006c:[ \t]+00800128[ \t]+mvk \.S1 2,a1 +10000070:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld b/binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld new file mode 100644 index 0000000..909f589 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/sbr.ld @@ -0,0 +1,9 @@ +EXTERN (__c6xabi_DSBT_BASE); +SECTIONS +{ + . = 0x80; + .data : { PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); *(.data*) } + . = 0x10000000; + .text : { *(.text*) } + /DISCARD/ : { *(*) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d new file mode 100644 index 0000000..8748f10 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopic.d @@ -0,0 +1,5 @@ +#name: C6X shared library without PIC code +#as: -mlittle-endian -mdsbt -mpid=near +#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared +#source: got-reloc-global.s +#warning: non-PIC code diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d new file mode 100644 index 0000000..7f366f3 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shared-nopid.d @@ -0,0 +1,5 @@ +#name: C6X shared library without PIC code +#as: -mlittle-endian -mdsbt -mpic +#ld: -melf32_tic6x_le -Tdsbt-inrange.ld --dsbt-index 4 -shared +#source: got-reloc-global.s +#warning: non-PID code diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd new file mode 100644 index 0000000..d33887e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.dd @@ -0,0 +1,67 @@ + +tmpdir/libtest\.so: file format elf32-tic6x-le + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 + +10000050 <sub@plt>: +10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2 +10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0 +10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +1000005c:[ \t]*00002000[ \t]*nop 2 +10000060:[ \t]*00080362[ \t]*b \.S2 b2 +10000064:[ \t]*00008000[ \t]*nop 5 + \.\.\. + +Disassembly of section \.text: + +10000080 <sub1>: +10000080:[ \t]*000c0362[ \t]*b \.S2 b3 +10000084:[ \t]*00008000[ \t]*nop 5 + +10000088 <sub0>: +10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14 +10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt> +1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt> +100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1> +100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15 +100000b0:[ \t]*00004000[ \t]*nop 3 +100000b4:[ \t]*000c0362[ \t]*b \.S2 b3 +100000b8:[ \t]*00008000[ \t]*nop 5 +100000bc:[ \t]*00000000[ \t]*nop 1 + +100000c0 <sub>: +100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +100000cc:[ \t]*00006000[ \t]*nop 4 +100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +100000dc:[ \t]*000c0362[ \t]*b \.S2 b3 +100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6 +100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7 +100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8 +100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9 + \.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd new file mode 100644 index 0000000..029bda1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.rd @@ -0,0 +1,124 @@ +There are 17 section headers, starting at offset 0x21c4: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4 + \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4 + \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4 + \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 + \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 + \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 + \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 + \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 + \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 + \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1 + \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 + \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is DYN \(Shared object file\) +Entry point 0x10000080 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000 + DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x117c contains 16 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8118 + 0x00000006 \(SYMTAB\) 0x8048 + 0x0000000a \(STRSZ\) 37 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x70000000 \(C6000_DSBT_BASE\) 0x10000100 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x2 + 0x00000003 \(PLTGOT\) 0x1000010c + 0x00000002 \(PLTRELSZ\) 24 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x8140 + 0x00000008 \(RELASZ\) 84 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0 +1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0 +10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0 +1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0 +10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0 + +Symbol table '\.dynsym' contains 13 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 8 + 2: 10000080 0 SECTION LOCAL DEFAULT 9 + 3: 10000100 0 SECTION LOCAL DEFAULT 10 + 4: 10000128 0 SECTION LOCAL DEFAULT 11 + 5: 10000130 0 SECTION LOCAL DEFAULT 12 + 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE + 7: 00000000 0 NOTYPE WEAK DEFAULT UND b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 + 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 + 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a + 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008048 0 SECTION LOCAL DEFAULT 2 +.* 00008118 0 SECTION LOCAL DEFAULT 3 +.* 00008140 0 SECTION LOCAL DEFAULT 4 +.* 00008164 0 SECTION LOCAL DEFAULT 5 +.* 0000817c 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 10000020 0 SECTION LOCAL DEFAULT 8 +.* 10000080 0 SECTION LOCAL DEFAULT 9 +.* 10000100 0 SECTION LOCAL DEFAULT 10 +.* 10000128 0 SECTION LOCAL DEFAULT 11 +.* 10000130 0 SECTION LOCAL DEFAULT 12 +.* 00000000 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1 +.* 10000130 4 OBJECT LOCAL DEFAULT 12 c +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE +.* 00000000 0 NOTYPE WEAK DEFAULT UND b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 +.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 +.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a +.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s new file mode 100644 index 0000000..cb065a2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.s @@ -0,0 +1,44 @@ + .text + .nocmp + .align 2 + .hidden sub1 + .type sub1, @function +sub1: + ret .s2 B3 + nop 5 + + .global sub0 + .type sub0, @function +sub0: + sub .d2 B15, 16, B15 + stw .d2t2 B3, *+B15(12) + stw .d2t2 B14, *+B15(16) + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + call .s2 (sub) + call .s2 (sub0) + call .s2 (sub1) +.L2: + ldw .d2t2 *+B15(12), B3 + ldw .d2t2 *+B15(16), B14 + addk .s2 16, B15 + nop 3 + ret .s2 B3 + nop 5 + .size sub0, .-sub0 + + .global a + .section .neardata,"aw",@progbits + .align 2 + .type a, @object + .size a, 4 +a: + .long sub0 + .weak g1 + .global g2 + .type g2, @object + .size g2, 4 +g2: + .long g1 + + .hidden c + .scomm c,4,4 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd new file mode 100644 index 0000000..850e383 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1.sd @@ -0,0 +1,7 @@ + +tmpdir/libtest\.so: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*10000100 00000000 00000000 00000000 00000000 .* +[ \t]*10000110 00000000 20000010 20000010 00000000 .* +[ \t]*10000120 30010010 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd new file mode 100644 index 0000000..658da73 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.dd @@ -0,0 +1,67 @@ + +tmpdir/libtestb\.so: file format elf32-tic6x-be + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 + +10000050 <sub@plt>: +10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2 +10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0 +10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +1000005c:[ \t]*00002000[ \t]*nop 2 +10000060:[ \t]*00080362[ \t]*b \.S2 b2 +10000064:[ \t]*00008000[ \t]*nop 5 + \.\.\. + +Disassembly of section \.text: + +10000080 <sub1>: +10000080:[ \t]*000c0362[ \t]*b \.S2 b3 +10000084:[ \t]*00008000[ \t]*nop 5 + +10000088 <sub0>: +10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14 +10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt> +1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt> +100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1> +100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15 +100000b0:[ \t]*00004000[ \t]*nop 3 +100000b4:[ \t]*000c0362[ \t]*b \.S2 b3 +100000b8:[ \t]*00008000[ \t]*nop 5 +100000bc:[ \t]*00000000[ \t]*nop 1 + +100000c0 <sub>: +100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +100000cc:[ \t]*00006000[ \t]*nop 4 +100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +100000dc:[ \t]*000c0362[ \t]*b \.S2 b3 +100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6 +100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7 +100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8 +100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9 + \.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd new file mode 100644 index 0000000..029bda1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.rd @@ -0,0 +1,124 @@ +There are 17 section headers, starting at offset 0x21c4: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4 + \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4 + \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4 + \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 + \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 + \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 + \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 + \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 + \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 + \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1 + \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 + \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is DYN \(Shared object file\) +Entry point 0x10000080 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000 + DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x117c contains 16 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8118 + 0x00000006 \(SYMTAB\) 0x8048 + 0x0000000a \(STRSZ\) 37 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x70000000 \(C6000_DSBT_BASE\) 0x10000100 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x2 + 0x00000003 \(PLTGOT\) 0x1000010c + 0x00000002 \(PLTRELSZ\) 24 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x8140 + 0x00000008 \(RELASZ\) 84 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0 +1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0 +10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0 +1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0 +10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0 + +Symbol table '\.dynsym' contains 13 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 8 + 2: 10000080 0 SECTION LOCAL DEFAULT 9 + 3: 10000100 0 SECTION LOCAL DEFAULT 10 + 4: 10000128 0 SECTION LOCAL DEFAULT 11 + 5: 10000130 0 SECTION LOCAL DEFAULT 12 + 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE + 7: 00000000 0 NOTYPE WEAK DEFAULT UND b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 + 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 + 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a + 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008048 0 SECTION LOCAL DEFAULT 2 +.* 00008118 0 SECTION LOCAL DEFAULT 3 +.* 00008140 0 SECTION LOCAL DEFAULT 4 +.* 00008164 0 SECTION LOCAL DEFAULT 5 +.* 0000817c 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 10000020 0 SECTION LOCAL DEFAULT 8 +.* 10000080 0 SECTION LOCAL DEFAULT 9 +.* 10000100 0 SECTION LOCAL DEFAULT 10 +.* 10000128 0 SECTION LOCAL DEFAULT 11 +.* 10000130 0 SECTION LOCAL DEFAULT 12 +.* 00000000 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1 +.* 10000130 4 OBJECT LOCAL DEFAULT 12 c +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE +.* 00000000 0 NOTYPE WEAK DEFAULT UND b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 +.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 +.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a +.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd new file mode 100644 index 0000000..e1ee8ed --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1b.sd @@ -0,0 +1,7 @@ + +tmpdir/libtestb\.so: file format elf32-tic6x-be + +Contents of section \.got: +[ \t]*10000100 00000000 00000000 00000000 00000000 .* +[ \t]*10000110 00000000 10000020 10000020 00000000 .* +[ \t]*10000120 10000130 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd new file mode 100644 index 0000000..e20eb74 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.dd @@ -0,0 +1,67 @@ + +tmpdir/libtestr\.so: file format elf32-tic6x-le + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 + +10000050 <sub@plt>: +10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2 +10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0 +10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +1000005c:[ \t]*00002000[ \t]*nop 2 +10000060:[ \t]*00080362[ \t]*b \.S2 b2 +10000064:[ \t]*00008000[ \t]*nop 5 + \.\.\. + +Disassembly of section \.text: + +10000080 <sub1>: +10000080:[ \t]*000c0362[ \t]*b \.S2 b3 +10000084:[ \t]*00008000[ \t]*nop 5 + +10000088 <sub0>: +10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14 +10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt> +1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt> +100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1> +100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15 +100000b0:[ \t]*00004000[ \t]*nop 3 +100000b4:[ \t]*000c0362[ \t]*b \.S2 b3 +100000b8:[ \t]*00008000[ \t]*nop 5 +100000bc:[ \t]*00000000[ \t]*nop 1 + +100000c0 <sub>: +100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +100000cc:[ \t]*00006000[ \t]*nop 4 +100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +100000dc:[ \t]*000c0362[ \t]*b \.S2 b3 +100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6 +100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7 +100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8 +100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9 + \.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd new file mode 100644 index 0000000..029bda1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.rd @@ -0,0 +1,124 @@ +There are 17 section headers, starting at offset 0x21c4: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4 + \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4 + \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4 + \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 + \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 + \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 + \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 + \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 + \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 + \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1 + \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 + \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is DYN \(Shared object file\) +Entry point 0x10000080 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000 + DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x117c contains 16 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8118 + 0x00000006 \(SYMTAB\) 0x8048 + 0x0000000a \(STRSZ\) 37 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x70000000 \(C6000_DSBT_BASE\) 0x10000100 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x2 + 0x00000003 \(PLTGOT\) 0x1000010c + 0x00000002 \(PLTRELSZ\) 24 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x8140 + 0x00000008 \(RELASZ\) 84 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0 +1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0 +10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0 +1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0 +10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0 + +Symbol table '\.dynsym' contains 13 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 8 + 2: 10000080 0 SECTION LOCAL DEFAULT 9 + 3: 10000100 0 SECTION LOCAL DEFAULT 10 + 4: 10000128 0 SECTION LOCAL DEFAULT 11 + 5: 10000130 0 SECTION LOCAL DEFAULT 12 + 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE + 7: 00000000 0 NOTYPE WEAK DEFAULT UND b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 + 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 + 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a + 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008048 0 SECTION LOCAL DEFAULT 2 +.* 00008118 0 SECTION LOCAL DEFAULT 3 +.* 00008140 0 SECTION LOCAL DEFAULT 4 +.* 00008164 0 SECTION LOCAL DEFAULT 5 +.* 0000817c 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 10000020 0 SECTION LOCAL DEFAULT 8 +.* 10000080 0 SECTION LOCAL DEFAULT 9 +.* 10000100 0 SECTION LOCAL DEFAULT 10 +.* 10000128 0 SECTION LOCAL DEFAULT 11 +.* 10000130 0 SECTION LOCAL DEFAULT 12 +.* 00000000 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1 +.* 10000130 4 OBJECT LOCAL DEFAULT 12 c +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE +.* 00000000 0 NOTYPE WEAK DEFAULT UND b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 +.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 +.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a +.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd new file mode 100644 index 0000000..3b3b839 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1r.sd @@ -0,0 +1,7 @@ + +tmpdir/libtestr\.so: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*10000100 00000000 00000000 00000000 00000000 .* +[ \t]*10000110 00000000 20000010 20000010 00000000 .* +[ \t]*10000120 30010010 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd new file mode 100644 index 0000000..ee1a607 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.dd @@ -0,0 +1,67 @@ + +tmpdir/libtestrb\.so: file format elf32-tic6x-be + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 + +10000050 <sub@plt>: +10000050:[ \t]*0100066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b2 +10000054:[ \t]*0000062a[ \t]*mvk \.S2 12,b0 +10000058:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +1000005c:[ \t]*00002000[ \t]*nop 2 +10000060:[ \t]*00080362[ \t]*b \.S2 b2 +10000064:[ \t]*00008000[ \t]*nop 5 + \.\.\. + +Disassembly of section \.text: + +10000080 <sub1>: +10000080:[ \t]*000c0362[ \t]*b \.S2 b3 +10000084:[ \t]*00008000[ \t]*nop 5 + +10000088 <sub0>: +10000088:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000008c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000090:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000094:[ \t]*0700026e[ \t]*ldw \.D2T2 \*\+b14\(8\),b14 +10000098:[ \t]*0ffffa12[ \t]*b \.S2 10000050 <sub@plt> +1000009c:[ \t]*0ffff712[ \t]*b \.S2 10000038 <sub0@plt> +100000a0:[ \t]*0ffffc12[ \t]*b \.S2 10000080 <sub1> +100000a4:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +100000a8:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +100000ac:[ \t]*07800852[ \t]*addk \.S2 16,b15 +100000b0:[ \t]*00004000[ \t]*nop 3 +100000b4:[ \t]*000c0362[ \t]*b \.S2 b3 +100000b8:[ \t]*00008000[ \t]*nop 5 +100000bc:[ \t]*00000000[ \t]*nop 1 + +100000c0 <sub>: +100000c0:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +100000c4:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +100000c8:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +100000cc:[ \t]*00006000[ \t]*nop 4 +100000d0:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +100000d4:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +100000d8:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +100000dc:[ \t]*000c0362[ \t]*b \.S2 b3 +100000e0:[ \t]*0300096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b6 +100000e4:[ \t]*0380076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b7 +100000e8:[ \t]*0400086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b8 +100000ec:[ \t]*04800c6e[ \t]*ldw \.D2T2 \*\+b14\(48\),b9 + \.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd new file mode 100644 index 0000000..029bda1 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.rd @@ -0,0 +1,124 @@ +There are 17 section headers, starting at offset 0x21c4: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 00008140 001140 000024 0c A 2 10 4 + \[ 5\] \.rela\.neardata RELA 00008164 001164 000018 0c A 2 11 4 + \[ 6\] \.dynamic DYNAMIC 0000817c 00117c 0000a8 08 WA 3 0 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 8 4 + \[ 8\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 + \[ 9\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 + \[10\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 + \[11\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 + \[12\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 + \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 + \[14\] \.shstrtab STRTAB 00000000 002149 00007b 00 0 0 1 + \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 + \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is DYN \(Shared object file\) +Entry point 0x10000080 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00224 0x00224 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000 + DYNAMIC 0x00117c 0x0000817c 0x0000817c 0x000a8 0x000a8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x117c contains 16 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8118 + 0x00000006 \(SYMTAB\) 0x8048 + 0x0000000a \(STRSZ\) 37 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x70000000 \(C6000_DSBT_BASE\) 0x10000100 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x2 + 0x00000003 \(PLTGOT\) 0x1000010c + 0x00000002 \(PLTRELSZ\) 24 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x8140 + 0x00000008 \(RELASZ\) 84 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x1140 contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0 +1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0 +10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1164 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0 +1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0 +10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0 + +Symbol table '\.dynsym' contains 13 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 8 + 2: 10000080 0 SECTION LOCAL DEFAULT 9 + 3: 10000100 0 SECTION LOCAL DEFAULT 10 + 4: 10000128 0 SECTION LOCAL DEFAULT 11 + 5: 10000130 0 SECTION LOCAL DEFAULT 12 + 6: 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE + 7: 00000000 0 NOTYPE WEAK DEFAULT UND b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 + 10: 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 + 11: 10000128 4 OBJECT GLOBAL DEFAULT 11 a + 12: 100000c0 52 FUNC GLOBAL DEFAULT 9 sub + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008048 0 SECTION LOCAL DEFAULT 2 +.* 00008118 0 SECTION LOCAL DEFAULT 3 +.* 00008140 0 SECTION LOCAL DEFAULT 4 +.* 00008164 0 SECTION LOCAL DEFAULT 5 +.* 0000817c 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 10000020 0 SECTION LOCAL DEFAULT 8 +.* 10000080 0 SECTION LOCAL DEFAULT 9 +.* 10000100 0 SECTION LOCAL DEFAULT 10 +.* 10000128 0 SECTION LOCAL DEFAULT 11 +.* 10000130 0 SECTION LOCAL DEFAULT 12 +.* 00000000 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 FUNC LOCAL HIDDEN 9 sub1 +.* 10000130 4 OBJECT LOCAL DEFAULT 12 c +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 0000817c 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +.* 10000100 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE +.* 00000000 0 NOTYPE WEAK DEFAULT UND b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 1000012c 4 OBJECT GLOBAL DEFAULT 11 g2 +.* 10000088 52 FUNC GLOBAL DEFAULT 9 sub0 +.* 10000128 4 OBJECT GLOBAL DEFAULT 11 a +.* 100000c0 52 FUNC GLOBAL DEFAULT 9 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd new file mode 100644 index 0000000..5575ff5 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-1rb.sd @@ -0,0 +1,7 @@ + +tmpdir/libtestrb\.so: file format elf32-tic6x-be + +Contents of section \.got: +[ \t]*10000100 00000000 00000000 00000000 00000000 .* +[ \t]*10000110 00000000 10000020 10000020 00000000 .* +[ \t]*10000120 10000130 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s new file mode 100644 index 0000000..3d786dd --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-2.s @@ -0,0 +1,23 @@ + .weak a + .weak b + + .text + .nocmp + .align 2 + .global sub + .type sub, @function +sub: + sub .d2 B15, 16, B15 + stw .d2t1 A4, *+B15(12) + ldw .d2t1 *+B15(12), A0 + nop 4 + add .d1 A0, 10, A0 + mv .d1 A0, A4 + add .d2 B15, 16, B15 + ret .s2 B3 + ldw .d2t2 *+B14($GOT(a)), B6 + ldw .d2t2 *+B14($GOT(b)), B7 + ldw .d2t2 *+B14($GOT(c)), B8 + ldw .d2t2 *+B14(c), B9 + nop 1 + .size sub, .-sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd new file mode 100644 index 0000000..411d47f --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.dd @@ -0,0 +1,40 @@ + +tmpdir/shlib-dynapp-1: file format elf32-tic6x-le + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 +[ \t]*\.\.\. + +Disassembly of section \.text: + +10000060 <fish>: +10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3 +10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt> +1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3 +10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish> +10000074:[ \t]*02000b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b4 +10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5 +1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6 +10000084:[ \t]*020003a8[ \t]*mvk \.S1 7,a4 +10000088:[ \t]*02000068[ \t]*mvkh \.S1 0,a4 +1000008c:[ \t]*02800328[ \t]*mvk \.S1 6,a5 +10000090:[ \t]*02800068[ \t]*mvkh \.S1 0,a5 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od new file mode 100644 index 0000000..f2f5cab --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.od @@ -0,0 +1,13 @@ + +tmpdir/shlib-dynapp-1: file format elf32-tic6x-le + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000b8 R_C6000_ABS32 b +100000bc R_C6000_ABS32 a +100000c4 R_C6000_ABS32 g1 +100000c8 R_C6000_ABS32 g2 +100000cc R_C6000_COPY a +100000b4 R_C6000_JUMP_SLOT sub0 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd new file mode 100644 index 0000000..9c691c9 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.rd @@ -0,0 +1,128 @@ +There are 18 section headers, starting at offset 0x2168: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008104 001104 000035 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c A 2 11 4 + \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c A 2 12 4 + \[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c A 2 13 4 + \[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4 + \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 9 4 + \[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 + \[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 + \[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 + \[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4 + \[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4 + \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1 + \[15\] \.shstrtab STRTAB 00000000 0020e5 000080 00 0 0 1 + \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4 + \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000060 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00230 0x00230 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000cc 0x000d0 RWE 0x1000 + DYNAMIC 0x001178 0x00008178 0x00008178 0x000b8 0x000b8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.rela\.bss \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1178 contains 18 entries: + Tag Type Name/Value + 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtest\.so\] + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8104 + 0x00000006 \(SYMTAB\) 0x8044 + 0x0000000a \(STRSZ\) 53 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000003 \(PLTGOT\) 0x100000ac + 0x00000002 \(PLTRELSZ\) 12 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x813c + 0x00000008 \(RELASZ\) 72 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x113c contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0 +100000bc 00000b01 R_C6000_ABS32 100000cc a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1154 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000c4 00000801 R_C6000_ABS32 00000000 g1 \+ 0 +100000c8 00000901 R_C6000_ABS32 00000000 g2 \+ 0 + +Relocation section '\.rela\.bss' at offset 0x116c contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000cc 00000b1a R_C6000_COPY 100000cc a \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b4 00000a1b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0 + +Symbol table '\.dynsym' contains 12 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 9 + 2: 10000060 0 SECTION LOCAL DEFAULT 10 + 3: 100000a0 0 SECTION LOCAL DEFAULT 11 + 4: 100000c0 0 SECTION LOCAL DEFAULT 12 + 5: 100000cc 0 SECTION LOCAL DEFAULT 13 + 6: 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE + 7: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 00000000 0 OBJECT WEAK DEFAULT UND g2 + 10: 00000000 0 FUNC GLOBAL DEFAULT UND sub0 + 11: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008044 0 SECTION LOCAL DEFAULT 2 +.* 00008104 0 SECTION LOCAL DEFAULT 3 +.* 0000813c 0 SECTION LOCAL DEFAULT 4 +.* 00008154 0 SECTION LOCAL DEFAULT 5 +.* 0000816c 0 SECTION LOCAL DEFAULT 6 +.* 00008178 0 SECTION LOCAL DEFAULT 7 +.* 10000000 0 SECTION LOCAL DEFAULT 8 +.* 10000020 0 SECTION LOCAL DEFAULT 9 +.* 10000060 0 SECTION LOCAL DEFAULT 10 +.* 100000a0 0 SECTION LOCAL DEFAULT 11 +.* 100000c0 0 SECTION LOCAL DEFAULT 12 +.* 100000cc 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 SECTION LOCAL DEFAULT 14 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000060 0 NOTYPE LOCAL DEFAULT 10 fish +.* 100000c4 8 OBJECT LOCAL DEFAULT 12 w +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008178 0 OBJECT LOCAL DEFAULT 7 _DYNAMIC +.* 100000ac 0 OBJECT LOCAL DEFAULT 11 _GLOBAL_OFFSET_TABLE_ +.* 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE +.* 100000c0 4 OBJECT GLOBAL DEFAULT 12 b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 00000000 0 OBJECT WEAK DEFAULT UND g2 +.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0 +.* 100000cc 4 OBJECT GLOBAL DEFAULT 13 a diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s new file mode 100644 index 0000000..fe254bb --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.s @@ -0,0 +1,31 @@ + .global a + .text + .nocmp +fish: + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + callp .s2 sub0, B3 + b .s2 sub0 + callp .s2 fish, B3 + b .s2 fish + ldw .d2t2 *+B14(a), B4 + ldw .d2t2 *+B14(b), B5 + ldw .d2t2 *+B14($GOT(a)), B6 + ldw .d2t2 *+B14($GOT(b)), B6 + mvkl .s1 $DPR_GOT(a), A4 + mvkh .s1 $DPR_GOT(a), A4 + mvkl .s1 $DPR_GOT(b), A5 + mvkh .s1 $DPR_GOT(b), A5 + .global b + .section .neardata,"aw",@progbits + .align 2 + .type b, @object + .size b, 4 +b: + .long 0x12345678 + .weak g1 + .weak g2 + .type w, @object + .size w, 8 +w: + .long g1 + .long g2 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd new file mode 100644 index 0000000..4ed3c75 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1.sd @@ -0,0 +1,6 @@ + +tmpdir/shlib-dynapp-1: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*100000a0 00000000 00000000 00000000 00000000 .* +[ \t]*100000b0 00000000 20000010 00000000 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd new file mode 100644 index 0000000..5312ff8 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.dd @@ -0,0 +1,40 @@ + +tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 +[ \t]*\.\.\. + +Disassembly of section \.text: + +10000060 <fish>: +10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3 +10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt> +1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3 +10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish> +10000074:[ \t]*02000b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b4 +10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5 +1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6 +10000084:[ \t]*020003a8[ \t]*mvk \.S1 7,a4 +10000088:[ \t]*02000068[ \t]*mvkh \.S1 0,a4 +1000008c:[ \t]*02800328[ \t]*mvk \.S1 6,a5 +10000090:[ \t]*02800068[ \t]*mvkh \.S1 0,a5 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od new file mode 100644 index 0000000..4a9c60b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.od @@ -0,0 +1,13 @@ + +tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000b8 R_C6000_ABS32 b +100000bc R_C6000_ABS32 a +100000c4 R_C6000_ABS32 g1 +100000c8 R_C6000_ABS32 g2 +100000cc R_C6000_COPY a +100000b4 R_C6000_JUMP_SLOT sub0 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd new file mode 100644 index 0000000..a541a5c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.rd @@ -0,0 +1,128 @@ +There are 18 section headers, starting at offset 0x2168: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000044 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008044 001044 0000c0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008104 001104 000036 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 0000813c 00113c 000018 0c A 2 11 4 + \[ 5\] \.rela\.neardata RELA 00008154 001154 000018 0c A 2 12 4 + \[ 6\] \.rela\.bss RELA 0000816c 00116c 00000c 0c A 2 13 4 + \[ 7\] \.dynamic DYNAMIC 00008178 001178 0000b8 08 WA 3 0 4 + \[ 8\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 9 4 + \[ 9\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 + \[10\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 + \[11\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 + \[12\] \.neardata PROGBITS 100000c0 0020c0 00000c 00 WA 0 0 4 + \[13\] \.bss NOBITS 100000cc 0020cc 000004 00 WA 0 0 4 + \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020cc 000019 00 0 0 1 + \[15\] \.shstrtab STRTAB 00000000 0020e5 000080 00 0 0 1 + \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4 + \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000060 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00230 0x00230 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000cc 0x000d0 RWE 0x1000 + DYNAMIC 0x001178 0x00008178 0x00008178 0x000b8 0x000b8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.rela\.bss \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1178 contains 18 entries: + Tag Type Name/Value + 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestb\.so\] + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8104 + 0x00000006 \(SYMTAB\) 0x8044 + 0x0000000a \(STRSZ\) 54 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000003 \(PLTGOT\) 0x100000ac + 0x00000002 \(PLTRELSZ\) 12 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x813c + 0x00000008 \(RELASZ\) 72 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x113c contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0 +100000bc 00000b01 R_C6000_ABS32 100000cc a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1154 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000c4 00000801 R_C6000_ABS32 00000000 g1 \+ 0 +100000c8 00000901 R_C6000_ABS32 00000000 g2 \+ 0 + +Relocation section '\.rela\.bss' at offset 0x116c contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000cc 00000b1a R_C6000_COPY 100000cc a \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b4 00000a1b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0 + +Symbol table '\.dynsym' contains 12 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 9 + 2: 10000060 0 SECTION LOCAL DEFAULT 10 + 3: 100000a0 0 SECTION LOCAL DEFAULT 11 + 4: 100000c0 0 SECTION LOCAL DEFAULT 12 + 5: 100000cc 0 SECTION LOCAL DEFAULT 13 + 6: 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE + 7: 100000c0 4 OBJECT GLOBAL DEFAULT 12 b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 00000000 0 OBJECT WEAK DEFAULT UND g2 + 10: 00000000 0 FUNC GLOBAL DEFAULT UND sub0 + 11: 100000cc 4 OBJECT GLOBAL DEFAULT 13 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008044 0 SECTION LOCAL DEFAULT 2 +.* 00008104 0 SECTION LOCAL DEFAULT 3 +.* 0000813c 0 SECTION LOCAL DEFAULT 4 +.* 00008154 0 SECTION LOCAL DEFAULT 5 +.* 0000816c 0 SECTION LOCAL DEFAULT 6 +.* 00008178 0 SECTION LOCAL DEFAULT 7 +.* 10000000 0 SECTION LOCAL DEFAULT 8 +.* 10000020 0 SECTION LOCAL DEFAULT 9 +.* 10000060 0 SECTION LOCAL DEFAULT 10 +.* 100000a0 0 SECTION LOCAL DEFAULT 11 +.* 100000c0 0 SECTION LOCAL DEFAULT 12 +.* 100000cc 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 SECTION LOCAL DEFAULT 14 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000060 0 NOTYPE LOCAL DEFAULT 10 fish +.* 100000c4 8 OBJECT LOCAL DEFAULT 12 w +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008178 0 OBJECT LOCAL DEFAULT 7 _DYNAMIC +.* 100000ac 0 OBJECT LOCAL DEFAULT 11 _GLOBAL_OFFSET_TABLE_ +.* 100000a0 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE +.* 100000c0 4 OBJECT GLOBAL DEFAULT 12 b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 00000000 0 OBJECT WEAK DEFAULT UND g2 +.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0 +.* 100000cc 4 OBJECT GLOBAL DEFAULT 13 a diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd new file mode 100644 index 0000000..1abc406 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1b.sd @@ -0,0 +1,6 @@ + +tmpdir/shlib-dynapp-1b: file format elf32-tic6x-be + +Contents of section \.got: +[ \t]*100000a0 00000000 00000000 00000000 00000000 .* +[ \t]*100000b0 00000000 10000020 00000000 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd new file mode 100644 index 0000000..3e68bf2 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.dd @@ -0,0 +1,36 @@ + +tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 +[ \t]*\.\.\. + +Disassembly of section \.text: + +10000060 <fish>: +10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3 +10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt> +1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3 +10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish> +10000074:[ \t]*0200096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b4 +10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5 +1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od new file mode 100644 index 0000000..15c2973 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.od @@ -0,0 +1,11 @@ + +tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000b8 R_C6000_ABS32 b +100000bc R_C6000_ABS32 a +100000c4 R_C6000_COPY a +100000b4 R_C6000_JUMP_SLOT sub0 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd new file mode 100644 index 0000000..5c1b675 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.rd @@ -0,0 +1,116 @@ +There are 17 section headers, starting at offset 0x2158: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 000080dc 0010dc 000030 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 0000810c 00110c 000018 0c A 2 10 4 + \[ 5\] \.rela\.bss RELA 00008124 001124 00000c 0c A 2 12 4 + \[ 6\] \.dynamic DYNAMIC 00008130 001130 0000b8 08 WA 3 0 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 8 4 + \[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 + \[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 + \[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 + \[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4 + \[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4 + \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1 + \[14\] \.shstrtab STRTAB 00000000 0020dd 00007b 00 0 0 1 + \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 + \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000060 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x001e8 0x001e8 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000c4 0x000c8 RWE 0x1000 + DYNAMIC 0x001130 0x00008130 0x00008130 0x000b8 0x000b8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.bss \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1130 contains 18 entries: + Tag Type Name/Value + 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestr\.so\] + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x80dc + 0x00000006 \(SYMTAB\) 0x803c + 0x0000000a \(STRSZ\) 48 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000003 \(PLTGOT\) 0x100000ac + 0x00000002 \(PLTRELSZ\) 12 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x810c + 0x00000008 \(RELASZ\) 48 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x110c contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0 +100000bc 00000901 R_C6000_ABS32 100000c4 a \+ 0 + +Relocation section '\.rela\.bss' at offset 0x1124 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000c4 0000091a R_C6000_COPY 100000c4 a \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b4 0000081b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0 + +Symbol table '\.dynsym' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 8 + 2: 10000060 0 SECTION LOCAL DEFAULT 9 + 3: 100000a0 0 SECTION LOCAL DEFAULT 10 + 4: 100000c0 0 SECTION LOCAL DEFAULT 11 + 5: 100000c4 0 SECTION LOCAL DEFAULT 12 + 6: 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE + 7: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b + 8: 00000000 0 FUNC GLOBAL DEFAULT UND sub0 + 9: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 0000803c 0 SECTION LOCAL DEFAULT 2 +.* 000080dc 0 SECTION LOCAL DEFAULT 3 +.* 0000810c 0 SECTION LOCAL DEFAULT 4 +.* 00008124 0 SECTION LOCAL DEFAULT 5 +.* 00008130 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 10000020 0 SECTION LOCAL DEFAULT 8 +.* 10000060 0 SECTION LOCAL DEFAULT 9 +.* 100000a0 0 SECTION LOCAL DEFAULT 10 +.* 100000c0 0 SECTION LOCAL DEFAULT 11 +.* 100000c4 0 SECTION LOCAL DEFAULT 12 +.* 00000000 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000060 0 NOTYPE LOCAL DEFAULT 9 fish +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008130 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC +.* 100000ac 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_ +.* 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE +.* 100000c0 4 OBJECT GLOBAL DEFAULT 11 b +.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0 +.* 100000c4 4 OBJECT GLOBAL DEFAULT 12 a diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s new file mode 100644 index 0000000..a6de900 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.s @@ -0,0 +1,19 @@ + .global a +.text +fish: + ldw .d2t2 *+B14($DSBT_index(__c6xabi_DSBT_BASE)), B14 + callp .s2 sub0, B3 + b .s2 sub0 + callp .s2 fish, B3 + b .s2 fish + ldw .d2t2 *+B14(a), B4 + ldw .d2t2 *+B14(b), B5 + ldw .d2t2 *+B14($GOT(a)), B6 + ldw .d2t2 *+B14($GOT(b)), B6 + .global b + .section .neardata,"aw",@progbits + .align 2 + .type b, @object + .size b, 4 +b: + .long 0x12345678 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd new file mode 100644 index 0000000..2a849af --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1r.sd @@ -0,0 +1,6 @@ + +tmpdir/shlib-dynapp-1r: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*100000a0 00000000 00000000 00000000 00000000 .* +[ \t]*100000b0 00000000 20000010 00000000 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd new file mode 100644 index 0000000..ad1f28e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.dd @@ -0,0 +1,36 @@ + +tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020:[ \t]*0100036e[ \t]*ldw \.D2T2 \*\+b14\(12\),b2 +10000024:[ \t]*0080046e[ \t]*ldw \.D2T2 \*\+b14\(16\),b1 +10000028:[ \t]*00004000[ \t]*nop 3 +1000002c:[ \t]*00080362[ \t]*b \.S2 b2 +10000030:[ \t]*00008000[ \t]*nop 5 +10000034:[ \t]*00000000[ \t]*nop 1 + +10000038 <sub0@plt>: +10000038:[ \t]*0100056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b2 +1000003c:[ \t]*0000002a[ \t]*mvk \.S2 0,b0 +10000040:[ \t]*0000006a[ \t]*mvkh \.S2 0,b0 +10000044:[ \t]*00002000[ \t]*nop 2 +10000048:[ \t]*00080362[ \t]*b \.S2 b2 +1000004c:[ \t]*00008000[ \t]*nop 5 +[ \t]*\.\.\. + +Disassembly of section \.text: + +10000060 <fish>: +10000060:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000064:[ \t]*1ffffb12[ \t]*callp \.S2 10000038 <sub0@plt>,b3 +10000068:[ \t]*0ffffb12[ \t]*b \.S2 10000038 <sub0@plt> +1000006c:[ \t]*10000012[ \t]*callp \.S2 10000060 <fish>,b3 +10000070:[ \t]*00000012[ \t]*b \.S2 10000060 <fish> +10000074:[ \t]*0200096e[ \t]*ldw \.D2T2 \*\+b14\(36\),b4 +10000078:[ \t]*0280086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b5 +1000007c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000080:[ \t]*0300066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b6 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od new file mode 100644 index 0000000..c313ed7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.od @@ -0,0 +1,11 @@ + +tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000b8 R_C6000_ABS32 b +100000bc R_C6000_ABS32 a +100000c4 R_C6000_COPY a +100000b4 R_C6000_JUMP_SLOT sub0 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd new file mode 100644 index 0000000..d121832 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.rd @@ -0,0 +1,116 @@ +There are 17 section headers, starting at offset 0x2158: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 000080dc 0010dc 000031 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 00008110 001110 000018 0c A 2 10 4 + \[ 5\] \.rela\.bss RELA 00008128 001128 00000c 0c A 2 12 4 + \[ 6\] \.dynamic DYNAMIC 00008134 001134 0000b8 08 WA 3 0 4 + \[ 7\] \.rela\.plt RELA 10000000 002000 00000c 0c A 2 8 4 + \[ 8\] \.plt PROGBITS 10000020 002020 000040 18 AX 0 0 32 + \[ 9\] \.text PROGBITS 10000060 002060 000040 00 AX 0 0 32 + \[10\] \.got PROGBITS 100000a0 0020a0 000020 00 WA 0 0 4 + \[11\] \.neardata PROGBITS 100000c0 0020c0 000004 00 WA 0 0 4 + \[12\] \.bss NOBITS 100000c4 0020c4 000004 00 WA 0 0 4 + \[13\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020c4 000019 00 0 0 1 + \[14\] \.shstrtab STRTAB 00000000 0020dd 00007b 00 0 0 1 + \[15\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 16 [0-9]+ 4 + \[16\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000060 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x001ec 0x001ec RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000c4 0x000c8 RWE 0x1000 + DYNAMIC 0x001134 0x00008134 0x00008134 0x000b8 0x000b8 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.bss \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1134 contains 18 entries: + Tag Type Name/Value + 0x00000001 \(NEEDED\) Shared library: \[tmpdir/libtestrb\.so\] + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x80dc + 0x00000006 \(SYMTAB\) 0x803c + 0x0000000a \(STRSZ\) 49 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000a0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000003 \(PLTGOT\) 0x100000ac + 0x00000002 \(PLTRELSZ\) 12 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x8110 + 0x00000008 \(RELASZ\) 48 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x1110 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b8 00000701 R_C6000_ABS32 100000c0 b \+ 0 +100000bc 00000901 R_C6000_ABS32 100000c4 a \+ 0 + +Relocation section '\.rela\.bss' at offset 0x1128 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000c4 0000091a R_C6000_COPY 100000c4 a \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000b4 0000081b R_C6000_JUMP_SLOT 00000000 sub0 \+ 0 + +Symbol table '\.dynsym' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 8 + 2: 10000060 0 SECTION LOCAL DEFAULT 9 + 3: 100000a0 0 SECTION LOCAL DEFAULT 10 + 4: 100000c0 0 SECTION LOCAL DEFAULT 11 + 5: 100000c4 0 SECTION LOCAL DEFAULT 12 + 6: 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE + 7: 100000c0 4 OBJECT GLOBAL DEFAULT 11 b + 8: 00000000 0 FUNC GLOBAL DEFAULT UND sub0 + 9: 100000c4 4 OBJECT GLOBAL DEFAULT 12 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 0000803c 0 SECTION LOCAL DEFAULT 2 +.* 000080dc 0 SECTION LOCAL DEFAULT 3 +.* 00008110 0 SECTION LOCAL DEFAULT 4 +.* 00008128 0 SECTION LOCAL DEFAULT 5 +.* 00008134 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 10000020 0 SECTION LOCAL DEFAULT 8 +.* 10000060 0 SECTION LOCAL DEFAULT 9 +.* 100000a0 0 SECTION LOCAL DEFAULT 10 +.* 100000c0 0 SECTION LOCAL DEFAULT 11 +.* 100000c4 0 SECTION LOCAL DEFAULT 12 +.* 00000000 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000060 0 NOTYPE LOCAL DEFAULT 9 fish +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008134 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC +.* 100000ac 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_ +.* 100000a0 0 NOTYPE LOCAL DEFAULT 10 __c6xabi_DSBT_BASE +.* 100000c0 4 OBJECT GLOBAL DEFAULT 11 b +.* 00000000 0 FUNC GLOBAL DEFAULT UND sub0 +.* 100000c4 4 OBJECT GLOBAL DEFAULT 12 a diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd new file mode 100644 index 0000000..60a4e8b --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-app-1rb.sd @@ -0,0 +1,6 @@ + +tmpdir/shlib-dynapp-1rb: file format elf32-tic6x-be + +Contents of section \.got: +[ \t]*100000a0 00000000 00000000 00000000 00000000 .* +[ \t]*100000b0 00000000 10000020 00000000 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd new file mode 100644 index 0000000..bfdf499 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.dd @@ -0,0 +1,67 @@ + +tmpdir/libtestn\.so: file format elf32-tic6x-le + + +Disassembly of section \.plt: + +10000020 <sub0@plt-0x18>: +10000020: 0100036e ldw \.D2T2 \*\+b14\(12\),b2 +10000024: 0080046e ldw \.D2T2 \*\+b14\(16\),b1 +10000028: 00004000 nop 3 +1000002c: 00080362 b \.S2 b2 +10000030: 00008000 nop 5 +10000034: 00000000 nop 1 + +10000038 <sub0@plt>: +10000038: 0100056e ldw \.D2T2 \*\+b14\(20\),b2 +1000003c: 0000002a mvk \.S2 0,b0 +10000040: 0000006a mvkh \.S2 0,b0 +10000044: 00002000 nop 2 +10000048: 00080362 b \.S2 b2 +1000004c: 00008000 nop 5 + +10000050 <sub@plt>: +10000050: 0100066e ldw \.D2T2 \*\+b14\(24\),b2 +10000054: 0000062a mvk \.S2 12,b0 +10000058: 0000006a mvkh \.S2 0,b0 +1000005c: 00002000 nop 2 +10000060: 00080362 b \.S2 b2 +10000064: 00008000 nop 5 + \.\.\. + +Disassembly of section \.text: + +10000080 <sub1>: +10000080: 000c0362 b \.S2 b3 +10000084: 00008000 nop 5 + +10000088 <sub0>: +10000088: 07be09c2 sub \.D2 b15,16,b15 +1000008c: 01bc62f6 stw \.D2T2 b3,\*\+b15\(12\) +10000090: 073c82f6 stw \.D2T2 b14,\*\+b15\(16\) +10000094: 0700006e ldw \.D2T2 \*\+b14\(0\),b14 +10000098: 0ffffa12 b \.S2 10000050 <sub@plt> +1000009c: 0ffff712 b \.S2 10000038 <sub0@plt> +100000a0: 0ffffc12 b \.S2 10000080 <sub1> +100000a4: 01bc62e6 ldw \.D2T2 \*\+b15\(12\),b3 +100000a8: 073c82e6 ldw \.D2T2 \*\+b15\(16\),b14 +100000ac: 07800852 addk \.S2 16,b15 +100000b0: 00004000 nop 3 +100000b4: 000c0362 b \.S2 b3 +100000b8: 00008000 nop 5 +100000bc: 00000000 nop 1 + +100000c0 <sub>: +100000c0: 07be09c2 sub \.D2 b15,16,b15 +100000c4: 023c62f4 stw \.D2T1 a4,\*\+b15\(12\) +100000c8: 003c62e4 ldw \.D2T1 \*\+b15\(12\),a0 +100000cc: 00006000 nop 4 +100000d0: 00014940 add \.D1 a0,10,a0 +100000d4: 020008f0 or \.D1 0,a0,a4 +100000d8: 07be0942 add \.D2 b15,16,b15 +100000dc: 000c0362 b \.S2 b3 +100000e0: 0300096e ldw \.D2T2 \*\+b14\(36\),b6 +100000e4: 0380076e ldw \.D2T2 \*\+b14\(28\),b7 +100000e8: 0400086e ldw \.D2T2 \*\+b14\(32\),b8 +100000ec: 04800c6e ldw \.D2T2 \*\+b14\(48\),b9 + \.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd new file mode 100644 index 0000000..e030b17 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.rd @@ -0,0 +1,131 @@ +There are 18 section headers, starting at offset 0x21cc: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 000048 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 00008048 001048 0000d0 10 A 3 6 4 + \[ 3\] \.dynstr STRTAB 00008118 001118 000025 00 A 0 0 1 + \[ 4\] \.rela\.text RELA 00008140 001140 00000c 0c A 2 10 4 + \[ 5\] \.rela\.got RELA 0000814c 00114c 000024 0c A 2 11 4 + \[ 6\] \.rela\.neardata RELA 00008170 001170 000018 0c A 2 12 4 + \[ 7\] \.dynamic DYNAMIC 00008188 001188 0000b0 08 WA 3 0 4 + \[ 8\] \.rela\.plt RELA 10000000 002000 000018 0c A 2 9 4 + \[ 9\] \.plt PROGBITS 10000020 002020 000060 18 AX 0 0 32 + \[10\] \.text PROGBITS 10000080 002080 000080 00 AX 0 0 32 + \[11\] \.got PROGBITS 10000100 002100 000028 00 WA 0 0 4 + \[12\] \.neardata PROGBITS 10000128 002128 000008 00 WA 0 0 4 + \[13\] \.bss NOBITS 10000130 002130 000004 00 WA 0 0 4 + \[14\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 002130 000019 00 0 0 1 + \[15\] \.shstrtab STRTAB 00000000 002149 000080 00 0 0 1 + \[16\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 17 [0-9]+ 4 + \[17\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is DYN \(Shared object file\) +Entry point 0x10000080 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x00238 0x00238 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x00130 0x00134 RWE 0x1000 + DYNAMIC 0x001188 0x00008188 0x00008188 0x000b0 0x000b0 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.text \.rela\.got \.rela\.neardata \.dynamic + 01 \.rela\.plt \.plt \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1188 contains 17 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x8118 + 0x00000006 \(SYMTAB\) 0x8048 + 0x0000000a \(STRSZ\) 37 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x70000000 \(C6000_DSBT_BASE\) 0x10000100 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000003 \(PLTGOT\) 0x1000010c + 0x00000002 \(PLTRELSZ\) 24 \(bytes\) + 0x00000014 \(PLTREL\) RELA + 0x00000017 \(JMPREL\) 0x10000000 + 0x00000007 \(RELA\) 0x8140 + 0x00000008 \(RELASZ\) 96 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000016 \(TEXTREL\) 0x0 + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.text' at offset 0x1140 contains 1 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000094 00000618 R_C6000_DSBT_INDEX 10000100 __c6xabi_DSBT_BASE \+ 0 + +Relocation section '\.rela\.got' at offset 0x114c contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000120 00000501 R_C6000_ABS32 10000130 \.bss \+ 0 +1000011c 00000701 R_C6000_ABS32 00000000 b \+ 0 +10000124 00000b01 R_C6000_ABS32 10000128 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1170 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000128 00000a01 R_C6000_ABS32 10000088 sub0 \+ 0 +1000012c 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Relocation section '\.rela\.plt' at offset 0x2000 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +10000114 00000a1b R_C6000_JUMP_SLOT 10000088 sub0 \+ 0 +10000118 00000c1b R_C6000_JUMP_SLOT 100000c0 sub \+ 0 + +Symbol table '\.dynsym' contains 13 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000020 0 SECTION LOCAL DEFAULT 9 + 2: 10000080 0 SECTION LOCAL DEFAULT 10 + 3: 10000100 0 SECTION LOCAL DEFAULT 11 + 4: 10000128 0 SECTION LOCAL DEFAULT 12 + 5: 10000130 0 SECTION LOCAL DEFAULT 13 + 6: 10000100 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE + 7: 00000000 0 NOTYPE WEAK DEFAULT UND b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 1000012c 4 OBJECT GLOBAL DEFAULT 12 g2 + 10: 10000088 52 FUNC GLOBAL DEFAULT 10 sub0 + 11: 10000128 4 OBJECT GLOBAL DEFAULT 12 a + 12: 100000c0 52 FUNC GLOBAL DEFAULT 10 sub + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 00008048 0 SECTION LOCAL DEFAULT 2 +.* 00008118 0 SECTION LOCAL DEFAULT 3 +.* 00008140 0 SECTION LOCAL DEFAULT 4 +.* 0000814c 0 SECTION LOCAL DEFAULT 5 +.* 00008170 0 SECTION LOCAL DEFAULT 6 +.* 00008188 0 SECTION LOCAL DEFAULT 7 +.* 10000000 0 SECTION LOCAL DEFAULT 8 +.* 10000020 0 SECTION LOCAL DEFAULT 9 +.* 10000080 0 SECTION LOCAL DEFAULT 10 +.* 10000100 0 SECTION LOCAL DEFAULT 11 +.* 10000128 0 SECTION LOCAL DEFAULT 12 +.* 10000130 0 SECTION LOCAL DEFAULT 13 +.* 00000000 0 SECTION LOCAL DEFAULT 14 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 FUNC LOCAL HIDDEN 10 sub1 +.* 10000130 4 OBJECT LOCAL DEFAULT 13 c +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008188 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +.* 1000010c 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +.* 10000100 0 NOTYPE LOCAL DEFAULT 11 __c6xabi_DSBT_BASE +.* 00000000 0 NOTYPE WEAK DEFAULT UND b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 1000012c 4 OBJECT GLOBAL DEFAULT 12 g2 +.* 10000088 52 FUNC GLOBAL DEFAULT 10 sub0 +.* 10000128 4 OBJECT GLOBAL DEFAULT 12 a +.* 100000c0 52 FUNC GLOBAL DEFAULT 10 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd new file mode 100644 index 0000000..1ad767d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/shlib-noindex.sd @@ -0,0 +1,7 @@ + +tmpdir/libtestn\.so: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*10000100 00000000 00000000 00000000 00000000 .* +[ \t]*10000110 00000000 20000010 20000010 00000000 .* +[ \t]*10000120 30010010 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd new file mode 100644 index 0000000..f3b1b98 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.dd @@ -0,0 +1,56 @@ + +tmpdir/static-app-1: file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <sub1>: +10000000:[ \t]*000c0362[ \t]*b \.S2 b3 +10000004:[ \t]*00008000[ \t]*nop 5 + +10000008 <sub0>: +10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub> +1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0> +10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1> +10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15 +10000030:[ \t]*00004000[ \t]*nop 3 +10000034:[ \t]*000c0362[ \t]*b \.S2 b3 +10000038:[ \t]*00008000[ \t]*nop 5 +1000003c:[ \t]*00000000[ \t]*nop 1 + +10000040 <sub>: +10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +1000004c:[ \t]*00006000[ \t]*nop 4 +10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +1000005c:[ \t]*000c0362[ \t]*b \.S2 b3 +10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7 +10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8 +1000006c:[ \t]*04800d6e[ \t]*ldw \.D2T2 \*\+b14\(52\),b9 +[ \t]*\.\.\. + +10000080 <fish>: +10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3 +10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0> +1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3 +10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish> +10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4 +10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5 +1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6 +100000a4:[ \t]*020003a8[ \t]*mvk \.S1 7,a4 +100000a8:[ \t]*02000068[ \t]*mvkh \.S1 0,a4 +100000ac:[ \t]*028002a8[ \t]*mvk \.S1 5,a5 +100000b0:[ \t]*02800068[ \t]*mvkh \.S1 0,a5 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od new file mode 100644 index 0000000..d07cd6e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.od @@ -0,0 +1,14 @@ + +tmpdir/static-app-1: file format elf32-tic6x-le + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000d8 R_C6000_ABS32 \.bss +100000d4 R_C6000_ABS32 b +100000dc R_C6000_ABS32 a +100000e0 R_C6000_ABS32 \.text\+0x00000008 +100000e4 R_C6000_ABS32 g1 +100000ec R_C6000_ABS32 g1 +100000f0 R_C6000_ABS32 \.neardata\+0x00000004 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd new file mode 100644 index 0000000..c56d637 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.rd @@ -0,0 +1,114 @@ +There are 15 section headers, starting at offset 0x2180: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 + \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4 + \[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c A 2 9 4 + \[ 6\] \.dynamic DYNAMIC 00008150 001150 000090 08 WA 3 0 4 + \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32 + \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4 + \[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4 + \[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4 + \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1 + \[12\] \.shstrtab STRTAB 00000000 00210d 000071 00 0 0 1 + \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 + \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000000 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x001e0 0x001e0 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000f4 0x000f8 RWE 0x1000 + DYNAMIC 0x001150 0x00008150 0x00008150 0x00090 0x00090 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1150 contains 13 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x80dc + 0x00000006 \(SYMTAB\) 0x803c + 0x0000000a \(STRSZ\) 29 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000007 \(RELA\) 0x80fc + 0x00000008 \(RELASZ\) 84 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000d8 00000401 R_C6000_ABS32 100000f4 \.bss \+ 0 +100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0 +100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1120 contains 4 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8 +100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0 +100000ec 00000801 R_C6000_ABS32 00000000 g1 \+ 0 +100000f0 00000301 R_C6000_ABS32 100000e0 \.neardata \+ 4 + +Symbol table '\.dynsym' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000000 0 SECTION LOCAL DEFAULT 7 + 2: 100000c0 0 SECTION LOCAL DEFAULT 8 + 3: 100000e0 0 SECTION LOCAL DEFAULT 9 + 4: 100000f4 0 SECTION LOCAL DEFAULT 10 + 5: 100000f4 4 OBJECT LOCAL DEFAULT 10 c + 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE + 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 0000803c 0 SECTION LOCAL DEFAULT 2 +.* 000080dc 0 SECTION LOCAL DEFAULT 3 +.* 000080fc 0 SECTION LOCAL DEFAULT 4 +.* 00008120 0 SECTION LOCAL DEFAULT 5 +.* 00008150 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 100000c0 0 SECTION LOCAL DEFAULT 8 +.* 100000e0 0 SECTION LOCAL DEFAULT 9 +.* 100000f4 0 SECTION LOCAL DEFAULT 10 +.* 00000000 0 SECTION LOCAL DEFAULT 11 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish +.* 100000ec 8 OBJECT LOCAL DEFAULT 9 w +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008150 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC +.* 100000f4 4 OBJECT LOCAL DEFAULT 10 c +.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_ +.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE +.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2 +.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0 +.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a +.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd new file mode 100644 index 0000000..2f24f40 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1.sd @@ -0,0 +1,6 @@ + +tmpdir/static-app-1: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*100000c0 00000000 00000000 00000000 00000000 .* +[ \t]*100000d0 00000000 00000000 f4000010 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd new file mode 100644 index 0000000..f6ddda7 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.dd @@ -0,0 +1,56 @@ + +tmpdir/static-app-1b: file format elf32-tic6x-be + + +Disassembly of section \.text: + +10000000 <sub1>: +10000000:[ \t]*000c0362[ \t]*b \.S2 b3 +10000004:[ \t]*00008000[ \t]*nop 5 + +10000008 <sub0>: +10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub> +1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0> +10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1> +10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15 +10000030:[ \t]*00004000[ \t]*nop 3 +10000034:[ \t]*000c0362[ \t]*b \.S2 b3 +10000038:[ \t]*00008000[ \t]*nop 5 +1000003c:[ \t]*00000000[ \t]*nop 1 + +10000040 <sub>: +10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +1000004c:[ \t]*00006000[ \t]*nop 4 +10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +1000005c:[ \t]*000c0362[ \t]*b \.S2 b3 +10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7 +10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8 +1000006c:[ \t]*04800d6e[ \t]*ldw \.D2T2 \*\+b14\(52\),b9 +[ \t]*\.\.\. + +10000080 <fish>: +10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3 +10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0> +1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3 +10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish> +10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4 +10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5 +1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6 +100000a4:[ \t]*020003a8[ \t]*mvk \.S1 7,a4 +100000a8:[ \t]*02000068[ \t]*mvkh \.S1 0,a4 +100000ac:[ \t]*028002a8[ \t]*mvk \.S1 5,a5 +100000b0:[ \t]*02800068[ \t]*mvkh \.S1 0,a5 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od new file mode 100644 index 0000000..a35d194 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.od @@ -0,0 +1,14 @@ + +tmpdir/static-app-1b: file format elf32-tic6x-be + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000d8 R_C6000_ABS32 \.bss +100000d4 R_C6000_ABS32 b +100000dc R_C6000_ABS32 a +100000e0 R_C6000_ABS32 \.text\+0x00000008 +100000e4 R_C6000_ABS32 g1 +100000ec R_C6000_ABS32 g1 +100000f0 R_C6000_ABS32 \.neardata\+0x00000004 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd new file mode 100644 index 0000000..c56d637 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.rd @@ -0,0 +1,114 @@ +There are 15 section headers, starting at offset 0x2180: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 + \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4 + \[ 5\] \.rela\.neardata RELA 00008120 001120 000030 0c A 2 9 4 + \[ 6\] \.dynamic DYNAMIC 00008150 001150 000090 08 WA 3 0 4 + \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32 + \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4 + \[ 9\] \.neardata PROGBITS 100000e0 0020e0 000014 00 WA 0 0 4 + \[10\] \.bss NOBITS 100000f4 0020f4 000004 00 WA 0 0 4 + \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020f4 000019 00 0 0 1 + \[12\] \.shstrtab STRTAB 00000000 00210d 000071 00 0 0 1 + \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 + \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000000 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x001e0 0x001e0 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000f4 0x000f8 RWE 0x1000 + DYNAMIC 0x001150 0x00008150 0x00008150 0x00090 0x00090 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1150 contains 13 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x80dc + 0x00000006 \(SYMTAB\) 0x803c + 0x0000000a \(STRSZ\) 29 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000007 \(RELA\) 0x80fc + 0x00000008 \(RELASZ\) 84 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000d8 00000401 R_C6000_ABS32 100000f4 \.bss \+ 0 +100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0 +100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1120 contains 4 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8 +100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0 +100000ec 00000801 R_C6000_ABS32 00000000 g1 \+ 0 +100000f0 00000301 R_C6000_ABS32 100000e0 \.neardata \+ 4 + +Symbol table '\.dynsym' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000000 0 SECTION LOCAL DEFAULT 7 + 2: 100000c0 0 SECTION LOCAL DEFAULT 8 + 3: 100000e0 0 SECTION LOCAL DEFAULT 9 + 4: 100000f4 0 SECTION LOCAL DEFAULT 10 + 5: 100000f4 4 OBJECT LOCAL DEFAULT 10 c + 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE + 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 0000803c 0 SECTION LOCAL DEFAULT 2 +.* 000080dc 0 SECTION LOCAL DEFAULT 3 +.* 000080fc 0 SECTION LOCAL DEFAULT 4 +.* 00008120 0 SECTION LOCAL DEFAULT 5 +.* 00008150 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 100000c0 0 SECTION LOCAL DEFAULT 8 +.* 100000e0 0 SECTION LOCAL DEFAULT 9 +.* 100000f4 0 SECTION LOCAL DEFAULT 10 +.* 00000000 0 SECTION LOCAL DEFAULT 11 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish +.* 100000ec 8 OBJECT LOCAL DEFAULT 9 w +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008150 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC +.* 100000f4 4 OBJECT LOCAL DEFAULT 10 c +.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_ +.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE +.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2 +.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0 +.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a +.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd new file mode 100644 index 0000000..69f638c --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1b.sd @@ -0,0 +1,6 @@ + +tmpdir/static-app-1b: file format elf32-tic6x-be + +Contents of section \.got: +[ \t]*100000c0 00000000 00000000 00000000 00000000 .* +[ \t]*100000d0 00000000 00000000 100000f4 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd new file mode 100644 index 0000000..82b3ecd --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.dd @@ -0,0 +1,52 @@ + +tmpdir/static-app-1r: file format elf32-tic6x-le + + +Disassembly of section \.text: + +10000000 <sub1>: +10000000:[ \t]*000c0362[ \t]*b \.S2 b3 +10000004:[ \t]*00008000[ \t]*nop 5 + +10000008 <sub0>: +10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub> +1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0> +10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1> +10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15 +10000030:[ \t]*00004000[ \t]*nop 3 +10000034:[ \t]*000c0362[ \t]*b \.S2 b3 +10000038:[ \t]*00008000[ \t]*nop 5 +1000003c:[ \t]*00000000[ \t]*nop 1 + +10000040 <sub>: +10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +1000004c:[ \t]*00006000[ \t]*nop 4 +10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +1000005c:[ \t]*000c0362[ \t]*b \.S2 b3 +10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7 +10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8 +1000006c:[ \t]*04800b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b9 +[ \t]*\.\.\. + +10000080 <fish>: +10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3 +10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0> +1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3 +10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish> +10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4 +10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5 +1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od new file mode 100644 index 0000000..06f8d50 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.od @@ -0,0 +1,12 @@ + +tmpdir/static-app-1r: file format elf32-tic6x-le + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000d8 R_C6000_ABS32 \.bss +100000d4 R_C6000_ABS32 b +100000dc R_C6000_ABS32 a +100000e0 R_C6000_ABS32 \.text\+0x00000008 +100000e4 R_C6000_ABS32 g1 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd new file mode 100644 index 0000000..588e422 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.rd @@ -0,0 +1,111 @@ +There are 15 section headers, starting at offset 0x2178: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 + \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4 + \[ 5\] \.rela\.neardata RELA 00008120 001120 000018 0c A 2 9 4 + \[ 6\] \.dynamic DYNAMIC 00008138 001138 000090 08 WA 3 0 4 + \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32 + \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4 + \[ 9\] \.neardata PROGBITS 100000e0 0020e0 00000c 00 WA 0 0 4 + \[10\] \.bss NOBITS 100000ec 0020ec 000004 00 WA 0 0 4 + \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020ec 000019 00 0 0 1 + \[12\] \.shstrtab STRTAB 00000000 002105 000071 00 0 0 1 + \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 + \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000000 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x001c8 0x001c8 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000ec 0x000f0 RWE 0x1000 + DYNAMIC 0x001138 0x00008138 0x00008138 0x00090 0x00090 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1138 contains 13 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x80dc + 0x00000006 \(SYMTAB\) 0x803c + 0x0000000a \(STRSZ\) 29 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000007 \(RELA\) 0x80fc + 0x00000008 \(RELASZ\) 60 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000d8 00000401 R_C6000_ABS32 100000ec \.bss \+ 0 +100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0 +100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1120 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8 +100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Symbol table '\.dynsym' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000000 0 SECTION LOCAL DEFAULT 7 + 2: 100000c0 0 SECTION LOCAL DEFAULT 8 + 3: 100000e0 0 SECTION LOCAL DEFAULT 9 + 4: 100000ec 0 SECTION LOCAL DEFAULT 10 + 5: 100000ec 4 OBJECT LOCAL DEFAULT 10 c + 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE + 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 0000803c 0 SECTION LOCAL DEFAULT 2 +.* 000080dc 0 SECTION LOCAL DEFAULT 3 +.* 000080fc 0 SECTION LOCAL DEFAULT 4 +.* 00008120 0 SECTION LOCAL DEFAULT 5 +.* 00008138 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 100000c0 0 SECTION LOCAL DEFAULT 8 +.* 100000e0 0 SECTION LOCAL DEFAULT 9 +.* 100000ec 0 SECTION LOCAL DEFAULT 10 +.* 00000000 0 SECTION LOCAL DEFAULT 11 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008138 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC +.* 100000ec 4 OBJECT LOCAL DEFAULT 10 c +.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_ +.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE +.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2 +.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0 +.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a +.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd new file mode 100644 index 0000000..e01cd49 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1r.sd @@ -0,0 +1,6 @@ + +tmpdir/static-app-1r: file format elf32-tic6x-le + +Contents of section \.got: +[ \t]*100000c0 00000000 00000000 00000000 00000000 .* +[ \t]*100000d0 00000000 00000000 ec000010 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd new file mode 100644 index 0000000..9e211ca --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.dd @@ -0,0 +1,52 @@ + +tmpdir/static-app-1rb: file format elf32-tic6x-be + + +Disassembly of section \.text: + +10000000 <sub1>: +10000000:[ \t]*000c0362[ \t]*b \.S2 b3 +10000004:[ \t]*00008000[ \t]*nop 5 + +10000008 <sub0>: +10000008:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +1000000c:[ \t]*01bc62f6[ \t]*stw \.D2T2 b3,\*\+b15\(12\) +10000010:[ \t]*073c82f6[ \t]*stw \.D2T2 b14,\*\+b15\(16\) +10000014:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000018:[ \t]*00000812[ \t]*b \.S2 10000040 <sub> +1000001c:[ \t]*00000112[ \t]*b \.S2 10000008 <sub0> +10000020:[ \t]*0ffffc12[ \t]*b \.S2 10000000 <sub1> +10000024:[ \t]*01bc62e6[ \t]*ldw \.D2T2 \*\+b15\(12\),b3 +10000028:[ \t]*073c82e6[ \t]*ldw \.D2T2 \*\+b15\(16\),b14 +1000002c:[ \t]*07800852[ \t]*addk \.S2 16,b15 +10000030:[ \t]*00004000[ \t]*nop 3 +10000034:[ \t]*000c0362[ \t]*b \.S2 b3 +10000038:[ \t]*00008000[ \t]*nop 5 +1000003c:[ \t]*00000000[ \t]*nop 1 + +10000040 <sub>: +10000040:[ \t]*07be09c2[ \t]*sub \.D2 b15,16,b15 +10000044:[ \t]*023c62f4[ \t]*stw \.D2T1 a4,\*\+b15\(12\) +10000048:[ \t]*003c62e4[ \t]*ldw \.D2T1 \*\+b15\(12\),a0 +1000004c:[ \t]*00006000[ \t]*nop 4 +10000050:[ \t]*00014940[ \t]*add \.D1 a0,10,a0 +10000054:[ \t]*020008f0[ \t]*or \.D1 0,a0,a4 +10000058:[ \t]*07be0942[ \t]*add \.D2 b15,16,b15 +1000005c:[ \t]*000c0362[ \t]*b \.S2 b3 +10000060:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +10000064:[ \t]*0380056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b7 +10000068:[ \t]*0400066e[ \t]*ldw \.D2T2 \*\+b14\(24\),b8 +1000006c:[ \t]*04800b6e[ \t]*ldw \.D2T2 \*\+b14\(44\),b9 +[ \t]*\.\.\. + +10000080 <fish>: +10000080:[ \t]*0700006e[ \t]*ldw \.D2T2 \*\+b14\(0\),b14 +10000084:[ \t]*1ffff112[ \t]*callp \.S2 10000008 <sub0>,b3 +10000088:[ \t]*0ffff112[ \t]*b \.S2 10000008 <sub0> +1000008c:[ \t]*10000012[ \t]*callp \.S2 10000080 <fish>,b3 +10000090:[ \t]*00000012[ \t]*b \.S2 10000080 <fish> +10000094:[ \t]*0200086e[ \t]*ldw \.D2T2 \*\+b14\(32\),b4 +10000098:[ \t]*02800a6e[ \t]*ldw \.D2T2 \*\+b14\(40\),b5 +1000009c:[ \t]*0300076e[ \t]*ldw \.D2T2 \*\+b14\(28\),b6 +100000a0:[ \t]*0300056e[ \t]*ldw \.D2T2 \*\+b14\(20\),b6 +[ \t]*\.\.\. diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od new file mode 100644 index 0000000..13d4255 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.od @@ -0,0 +1,12 @@ + +tmpdir/static-app-1rb: file format elf32-tic6x-be + +DYNAMIC RELOCATION RECORDS +OFFSET TYPE VALUE +100000d8 R_C6000_ABS32 \.bss +100000d4 R_C6000_ABS32 b +100000dc R_C6000_ABS32 a +100000e0 R_C6000_ABS32 \.text\+0x00000008 +100000e4 R_C6000_ABS32 g1 + + diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd new file mode 100644 index 0000000..588e422 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.rd @@ -0,0 +1,111 @@ +There are 15 section headers, starting at offset 0x2178: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] \.hash HASH 00008000 001000 00003c 04 A 2 0 4 + \[ 2\] \.dynsym DYNSYM 0000803c 00103c 0000a0 10 A 3 5 4 + \[ 3\] \.dynstr STRTAB 000080dc 0010dc 00001d 00 A 0 0 1 + \[ 4\] \.rela\.got RELA 000080fc 0010fc 000024 0c A 2 8 4 + \[ 5\] \.rela\.neardata RELA 00008120 001120 000018 0c A 2 9 4 + \[ 6\] \.dynamic DYNAMIC 00008138 001138 000090 08 WA 3 0 4 + \[ 7\] \.text PROGBITS 10000000 002000 0000c0 00 AX 0 0 32 + \[ 8\] \.got PROGBITS 100000c0 0020c0 000020 00 WA 0 0 4 + \[ 9\] \.neardata PROGBITS 100000e0 0020e0 00000c 00 WA 0 0 4 + \[10\] \.bss NOBITS 100000ec 0020ec 000004 00 WA 0 0 4 + \[11\] \.c6xabi\.attributes C6000_ATTRIBUTES 00000000 0020ec 000019 00 0 0 1 + \[12\] \.shstrtab STRTAB 00000000 002105 000071 00 0 0 1 + \[13\] \.symtab SYMTAB 00000000 [0-9a-f]+ [0-9a-f]+ 10 14 [0-9]+ 4 + \[14\] \.strtab STRTAB 00000000 [0-9a-f]+ [0-9a-f]+ 00 0 0 1 +Key to Flags: + W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\) + I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\) + O \(extra OS processing required\) o \(OS specific\), p \(processor specific\) + +Elf file type is EXEC \(Executable file\) +Entry point 0x10000000 +There are 4 program headers, starting at offset 52 + +Program Headers: + Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align + LOAD 0x001000 0x00008000 0x00008000 0x001c8 0x001c8 RW 0x1000 + LOAD 0x002000 0x10000000 0x10000000 0x000ec 0x000f0 RWE 0x1000 + DYNAMIC 0x001138 0x00008138 0x00008138 0x00090 0x00090 RW 0x4 + GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x20000 RWE 0x8 + + Section to Segment mapping: + Segment Sections\.\.\. + 00 \.hash \.dynsym \.dynstr \.rela\.got \.rela\.neardata \.dynamic + 01 \.text \.got \.neardata \.bss + 02 \.dynamic + 03 + +Dynamic section at offset 0x1138 contains 13 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x8000 + 0x00000005 \(STRTAB\) 0x80dc + 0x00000006 \(SYMTAB\) 0x803c + 0x0000000a \(STRSZ\) 29 \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000015 \(DEBUG\) 0x0 + 0x70000000 \(C6000_DSBT_BASE\) 0x100000c0 + 0x70000001 \(C6000_DSBT_SIZE\) 0x3 + 0x70000003 \(C6000_DSBT_INDEX\) 0x0 + 0x00000007 \(RELA\) 0x80fc + 0x00000008 \(RELASZ\) 60 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 + +Relocation section '\.rela\.got' at offset 0x10fc contains 3 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000d8 00000401 R_C6000_ABS32 100000ec \.bss \+ 0 +100000d4 00000701 R_C6000_ABS32 100000e8 b \+ 0 +100000dc 00000901 R_C6000_ABS32 100000e0 a \+ 0 + +Relocation section '\.rela\.neardata' at offset 0x1120 contains 2 entries: + Offset Info Type Sym\. Value Symbol's Name \+ Addend +100000e0 00000101 R_C6000_ABS32 10000000 \.text \+ 8 +100000e4 00000801 R_C6000_ABS32 00000000 g1 \+ 0 + +Symbol table '\.dynsym' contains 10 entries: + Num: Value Size Type Bind Vis Ndx Name + 0: 00000000 0 NOTYPE LOCAL DEFAULT UND + 1: 10000000 0 SECTION LOCAL DEFAULT 7 + 2: 100000c0 0 SECTION LOCAL DEFAULT 8 + 3: 100000e0 0 SECTION LOCAL DEFAULT 9 + 4: 100000ec 0 SECTION LOCAL DEFAULT 10 + 5: 100000ec 4 OBJECT LOCAL DEFAULT 10 c + 6: 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE + 7: 100000e8 4 OBJECT GLOBAL DEFAULT 9 b + 8: 00000000 0 NOTYPE WEAK DEFAULT UND g1 + 9: 100000e0 4 OBJECT GLOBAL DEFAULT 9 a + +Symbol table '\.symtab' contains [0-9]+ entries: + Num: Value Size Type Bind Vis Ndx Name +.* 00000000 0 NOTYPE LOCAL DEFAULT UND +.* 00008000 0 SECTION LOCAL DEFAULT 1 +.* 0000803c 0 SECTION LOCAL DEFAULT 2 +.* 000080dc 0 SECTION LOCAL DEFAULT 3 +.* 000080fc 0 SECTION LOCAL DEFAULT 4 +.* 00008120 0 SECTION LOCAL DEFAULT 5 +.* 00008138 0 SECTION LOCAL DEFAULT 6 +.* 10000000 0 SECTION LOCAL DEFAULT 7 +.* 100000c0 0 SECTION LOCAL DEFAULT 8 +.* 100000e0 0 SECTION LOCAL DEFAULT 9 +.* 100000ec 0 SECTION LOCAL DEFAULT 10 +.* 00000000 0 SECTION LOCAL DEFAULT 11 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000000 0 FUNC LOCAL HIDDEN 7 sub1 +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 10000080 0 NOTYPE LOCAL DEFAULT 7 fish +.* 00000000 0 FILE LOCAL DEFAULT ABS .* +.* 00008138 0 OBJECT LOCAL DEFAULT 6 _DYNAMIC +.* 100000ec 4 OBJECT LOCAL DEFAULT 10 c +.* 100000cc 0 OBJECT LOCAL DEFAULT 8 _GLOBAL_OFFSET_TABLE_ +.* 100000c0 0 NOTYPE LOCAL DEFAULT 8 __c6xabi_DSBT_BASE +.* 100000e8 4 OBJECT GLOBAL DEFAULT 9 b +.* 00000000 0 NOTYPE WEAK DEFAULT UND g1 +.* 100000e4 4 OBJECT GLOBAL DEFAULT 9 g2 +.* 10000008 52 FUNC GLOBAL DEFAULT 7 sub0 +.* 100000e0 4 OBJECT GLOBAL DEFAULT 9 a +.* 10000040 52 FUNC GLOBAL DEFAULT 7 sub diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd new file mode 100644 index 0000000..8d7bd0d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/static-app-1rb.sd @@ -0,0 +1,6 @@ + +tmpdir/static-app-1rb: file format elf32-tic6x-be + +Contents of section \.got: +[ \t]*100000c0 00000000 00000000 00000000 00000000 .* +[ \t]*100000d0 00000000 00000000 100000ec 00000000 .* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp b/binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp new file mode 100644 index 0000000..fe47650 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/tic6x.exp @@ -0,0 +1,201 @@ +# Expect script for ld-tic6x tests +# +# Copyright 2012 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. + +if { ! [istarget tic6x-*-*] } { + return +} + +foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] { + if { [runtest_file_p $runtests $test] } { + run_dump_test [file rootname $test] + } +} + +set shlibtests { + {"C6X shared library without --dsbt-index" + "-shared -Tdsbt.ld --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s} + {{readelf -WSsrld shlib-noindex.rd} + {objdump "-drj.plt -j.text" shlib-noindex.dd} + {objdump -sj.got shlib-noindex.sd}} + "libtestn.so"} + {"C6X shared library, LE, RELA" + "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s} + {{readelf -WSsrld shlib-1.rd} + {objdump "-drj.plt -j.text" shlib-1.dd} + {objdump -sj.got shlib-1.sd}} + "libtest.so"} + {"C6X nonstatic app using shared library, LE, RELA" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtest.so" "" + "-mdsbt -mpic -mpid=near" {shlib-app-1.s} + {{readelf -WSsrld shlib-app-1.rd} + {objdump "-drj.plt -j.text" shlib-app-1.dd} + {objdump -sj.got shlib-app-1.sd} + {objdump -R shlib-app-1.od}} + "shlib-dynapp-1"} + {"C6X shared library, LE, REL" + "-shared -Tdsbt.ld --dsbt-index=2 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s} + {{readelf -WSsrld shlib-1r.rd} + {objdump "-drj.plt -j.text" shlib-1r.dd} + {objdump -sj.got shlib-1r.sd}} + "libtestr.so"} + {"C6X nonstatic app using shared library, LE, REL" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestr.so" "" + "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-app-1r.s} + {{readelf -WSsrld shlib-app-1r.rd} + {objdump "-drj.plt -j.text" shlib-app-1r.dd} + {objdump -sj.got shlib-app-1r.sd} + {objdump -R shlib-app-1r.od}} + "shlib-dynapp-1r"} + {"C6X shared library, BE, RELA" + "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s} + {{readelf -WSsrld shlib-1b.rd} + {objdump "-drj.plt -j.text" shlib-1b.dd} + {objdump -sj.got shlib-1b.sd}} + "libtestb.so"} + {"C6X nonstatic app using shared library, BE, RELA" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestb.so" "" + "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-app-1.s} + {{readelf -WSsrld shlib-app-1b.rd} + {objdump "-drj.plt -j.text" shlib-app-1b.dd} + {objdump -sj.got shlib-app-1b.sd} + {objdump -R shlib-app-1b.od}} + "shlib-dynapp-1b"} + {"C6X shared library, BE, REL" + "-shared -Tdsbt-be.ld --dsbt-index=2 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-1.s shlib-2.s} + {{readelf -WSsrld shlib-1rb.rd} + {objdump "-drj.plt -j.text" shlib-1rb.dd} + {objdump -sj.got shlib-1rb.sd}} + "libtestrb.so"} + {"C6X nonstatic app using shared library, BE, REL" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3 tmpdir/libtestrb.so" "" + "-mdsbt -mpic -mpid=near -mgenerate-rel -mbig-endian" {shlib-app-1r.s} + {{readelf -WSsrld shlib-app-1rb.rd} + {objdump "-drj.plt -j.text" shlib-app-1rb.dd} + {objdump -sj.got shlib-app-1rb.sd} + {objdump -R shlib-app-1rb.od}} + "shlib-dynapp-1rb"} + + {"C6X static app, LE, RELA" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s shlib-app-1.s} + {{readelf -WSsrld static-app-1.rd} + {objdump "-drj.plt -j.text" static-app-1.dd} + {objdump -sj.got static-app-1.sd} + {objdump -R static-app-1.od}} + "static-app-1"} + {"C6X static app, LE, REL" + "-Tdsbt.ld --dsbt-index 0 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s} + {{readelf -WSsrld static-app-1r.rd} + {objdump "-drj.plt -j.text" static-app-1r.dd} + {objdump -sj.got static-app-1r.sd} + {objdump -R static-app-1r.od}} + "static-app-1r"} + {"C6X static app, BE, RELA" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near -mbig-endian" {shlib-1.s shlib-2.s shlib-app-1.s} + {{readelf -WSsrld static-app-1b.rd} + {objdump "-drj.plt -j.text" static-app-1b.dd} + {objdump -sj.got static-app-1b.sd} + {objdump -R static-app-1b.od}} + "static-app-1b"} + {"C6X static app, BE, REL" + "-Tdsbt-be.ld --dsbt-index 0 --dsbt-size=3" "" + "-mdsbt -mpic -mpid=near -mbig-endian -mgenerate-rel" {shlib-1.s shlib-2.s shlib-app-1r.s} + {{readelf -WSsrld static-app-1rb.rd} + {objdump "-drj.plt -j.text" static-app-1rb.dd} + {objdump -sj.got static-app-1rb.sd} + {objdump -R static-app-1rb.od}} + "static-app-1rb"} +} + +run_ld_link_tests $shlibtests + +if { [istarget tic6x-*-elf] } { + set expected_osabi "Bare-metal C6000" +} elseif { [istarget tic6x-*-uclinux] } { + set expected_osabi "Linux C6000" +} else { + return +} + +if { ![ld_assemble_flags $as "-mpic -mpid=near" $srcdir/$subdir/shlib-1.s tmpdir/shlib-1.o] + || ![ld_assemble_flags $as "-mpic -mpid=near" $srcdir/$subdir/shlib-2.s tmpdir/shlib-2.o] + || ![ld_assemble $as $srcdir/$subdir/shlib-app-1.s tmpdir/shlib-app-1.o] + || ![ld_assemble_flags $as "-mpic -mpid=near -mbig-endian" $srcdir/$subdir/shlib-1.s tmpdir/shlib-1b.o] + || ![ld_assemble_flags $as "-mpic -mpid=near -mbig-endian" $srcdir/$subdir/shlib-2.s tmpdir/shlib-2b.o] + || ![ld_assemble_flags $as -mbig-endian $srcdir/$subdir/shlib-app-1.s tmpdir/shlib-app-1b.o] + || ![ld_simple_link $ld tmpdir/libtest.so "-shared tmpdir/shlib-1.o tmpdir/shlib-2.o"] + || ![ld_simple_link $ld tmpdir/libtestb.so "-shared -EB tmpdir/shlib-1b.o tmpdir/shlib-2b.o"] + || ![ld_simple_link $ld tmpdir/shlib.o "-r tmpdir/shlib-1.o tmpdir/shlib-2.o"] + || ![ld_simple_link $ld tmpdir/shlibb.o "-r -EB tmpdir/shlib-1b.o tmpdir/shlib-2b.o"] + || ![ld_simple_link $ld tmpdir/dynapp-1 "tmpdir/libtest.so tmpdir/shlib-app-1.o"] + || ![ld_simple_link $ld tmpdir/dynapp-1b "-EB tmpdir/libtestb.so tmpdir/shlib-app-1b.o"] } { + unresolved "TIC6X OSABI tests" + return +} + +# A procedure to check the OS/ABI field in the ELF header of a binary file. +proc check_osabi_tic6x { test_name binary_file } { + global READELF + global READELFFLAGS + global expected_osabi + + set cmd "$READELF $READELFFLAGS --file-header $binary_file" + send_log "$cmd\n" + set got [remote_exec host [concat sh -c [list "$cmd >dump.out"]] "" "/dev/null"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" + remote_file build delete "dump.out" + return + } + remote_upload host "dump.out" + + if { ![regexp "\n\[ \]*OS/ABI:\[ \]*(.+)\n\[ \]*ABI" \ + [file_contents dump.out] nil osabi] } { + verbose "proc check_osabi_tic6x: Readelf failed to extract an ELF header from $binary_file" + unresolved "$test_name" + } elseif { $osabi == $expected_osabi } { + pass "$test_name" + } else { + verbose "Expected OSABI: $expected_osabi, Obtained osabi: $osabi" + fail "$test_name" + } + remote_file build delete "dump.out" + remote_file host delete "dump.out" +} + +check_osabi_tic6x "C6X shared library OSABI, LE" tmpdir/libtest.so +check_osabi_tic6x "C6X shared library OSABI, BE" tmpdir/libtestb.so +check_osabi_tic6x "C6X dynamic app OSABI, LE" tmpdir/dynapp-1 +check_osabi_tic6x "C6X dynamic app OSABI, BE" tmpdir/dynapp-1b + +set expected_osabi "UNIX - System V" + +check_osabi_tic6x "C6X relocatable link OSABI, LE" tmpdir/shlib.o +check_osabi_tic6x "C6X relocatable link OSABI, BE" tmpdir/shlibb.o diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d new file mode 100644 index 0000000..11a24d4 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.d @@ -0,0 +1,10 @@ +#ld: -T unwind.ld +#objdump: -s + +.*: file format.* + +#... +Contents of section .c6xabi.exidx: + 9000 (00f8ff7f 07020083 1cf8ff7f 01000000|7ffff800 83000207 7ffff81c 00000001) .* +Contents of section .far: +#... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s new file mode 100644 index 0000000..5783a40 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-1.s @@ -0,0 +1,25 @@ + .cfi_sections .c6xabi.exidx + .text + .global _start + .type _start, %function +_start: + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp + + # Section with no unwinding information. + # Linker should insert a cantunwind entry. + .section .after, "xa" + .global __c6xabi_unwind_cpp_pr3 + .type __c6xabi_unwind_cpp_pr3, %function +__c6xabi_unwind_cpp_pr3: + nop + .p2align 6 + + .section .far + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d new file mode 100644 index 0000000..11a24d4 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.d @@ -0,0 +1,10 @@ +#ld: -T unwind.ld +#objdump: -s + +.*: file format.* + +#... +Contents of section .c6xabi.exidx: + 9000 (00f8ff7f 07020083 1cf8ff7f 01000000|7ffff800 83000207 7ffff81c 00000001) .* +Contents of section .far: +#... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s new file mode 100644 index 0000000..dbfd3bd --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-2.s @@ -0,0 +1,23 @@ + .cfi_sections .c6xabi.exidx + .text + + .global __c6xabi_unwind_cpp_pr3 + .type __c6xabi_unwind_cpp_pr3, %function +__c6xabi_unwind_cpp_pr3: + .global _start + .type _start, %function +_start: + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp + + # last text section has unwind information. Linker should append a + # terminating cantunwind entry. + + .section .far + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d new file mode 100644 index 0000000..9ec69a0 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.d @@ -0,0 +1,11 @@ +#ld: -T unwind.ld +#objdump: -s + +.*: file format.* + +#... +Contents of section .c6xabi.exidx: + 9000 (00f8ff7f 07020083 1cf8ff7f 01000000|7ffff800 83000207 7ffff81c 00000001) .* + 9010 (38f8ff7f 07040083 54f8ff7f 01000000|7ffff838 82000407 7ffff854 00000001) .* +Contents of section .far: +#... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s new file mode 100644 index 0000000..480ee49 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-3.s @@ -0,0 +1,39 @@ + .cfi_sections .c6xabi.exidx + .text + # section without unwind info + .global _start + .type _start, %function +_start: + b .s2 _before + nop 5 + .p2align 6 + + # Section that will be placed first + .section .before, "xa" + .type _before, %function +_before: + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp + + # section that will be placed last + .section .after, "xa" + .global __c6xabi_unwind_cpp_pr3 + .type __c6xabi_unwind_cpp_pr3, %function +__c6xabi_unwind_cpp_pr3: + .cfi_startproc + .cfi_offset B10, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp + + .section .far + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d new file mode 100644 index 0000000..e5c628e --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.d @@ -0,0 +1,11 @@ +#ld: -T unwind.ld +#objdump: -s + +.*: file format.* + +#... +Contents of section .c6xabi.exidx: + 9000 (00f8ff7f 07020083 1cf8ff7f 7af8ff7f|7ffff800 83000207 7ffff81c 7ffff87a) .* + 9010 (38f8ff7f 07020083 56f8ff7f 01000000|7ffff838 83000207 7ffff856 00000001) .* +Contents of section .far: +#... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s new file mode 100644 index 0000000..83f3d0d --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-4.s @@ -0,0 +1,68 @@ + .cfi_sections .c6xabi.exidx + .text + # out of line table entry + .global _start + .type _start, %function +_start: + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .handlerdata + .word 0 + .endp + + # entry that can be merged + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp + + # Section that will be placed first + .section .before, "xa" + .type _before, %function +_before: + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp + + # section that will be placed last + .section .after, "xa" + .global __c6xabi_unwind_cpp_pr3 + .type __c6xabi_unwind_cpp_pr3, %function +__c6xabi_unwind_cpp_pr3: + # entry that can be merged + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .cfi_endproc + .personalityindex 3 + .endp + + # final function is cantunwind, so output table size is smaller + # than sum of input sections + .global foo + .type foo, %function +foo: + .cfi_startproc + nop + .p2align 6 + .cfi_endproc + .cantunwind + .endp + + .section .far + .word 0 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d new file mode 100644 index 0000000..4928874 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.d @@ -0,0 +1,7 @@ +#ld: -T discard-unwind.ld +#objdump: -s + +.*: file format.* + +# Check we don't crash when discarding unwind info. +#... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s new file mode 100644 index 0000000..b4fc213 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-5.s @@ -0,0 +1,16 @@ + .cfi_sections .c6xabi.exidx + .text + .global __c6xabi_unwind_cpp_pr3 + .type __c6xabi_unwind_cpp_pr3, %function +__c6xabi_unwind_cpp_pr3: + .global _start + .type _start, %function +_start: + .cfi_startproc + .cfi_offset B3, 0 + .cfi_def_cfa_offset 8 + nop + .p2align 6 + .cfi_endproc + .personalityindex 3 + .endp diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d new file mode 100644 index 0000000..6342265 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind-6.d @@ -0,0 +1,13 @@ +#ld: -T unwind.ld +#source: unwind-4.s +#as: -mgenerate-rel +#objdump: -s + +.*: file format.* + +#... +Contents of section .c6xabi.exidx: + 9000 (00f8ff7f 07020083 1cf8ff7f 7af8ff7f|7ffff800 83000207 7ffff81c 7ffff87a) .* + 9010 (38f8ff7f 07020083 56f8ff7f 01000000|7ffff838 83000207 7ffff856 00000001) .* +Contents of section .far: +#... diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld b/binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld new file mode 100644 index 0000000..a4f8722 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/unwind.ld @@ -0,0 +1,20 @@ +/* Script for unwinding ld tests */ +SECTIONS +{ + /* Read-only sections, merged into text segment: */ + . = 0x8000; + .text : + { + *(.before) + *(.text) + *(.after) + *(.c6xabi.extab*) + } =0 + . = 0x9000; + .c6xabi.exidx : { *(.c6xabi.exidx*) } + . = 0xa000; + .got : { *(.got) *(.got.plt)} + . = 0x12340000; + .far : { *(.far) } + .c6xabi.attribues 0 : { *(.c6xabi.atttributes) } +} diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d b/binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d new file mode 100644 index 0000000..e2f2f90 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak-be.d @@ -0,0 +1,19 @@ +#name: C6X relocs to weak symbols, big endian +#as: -mbig-endian +#ld: -melf32_tic6x_be -Tsbr.ld +#source: weak.s +#objdump: -dr + +.*: *file format elf32-tic6x-be + + +Disassembly of section \.text: +10000000 <[^>]*>: +10000000:[ \t]+000c0362[ \t]+b \.S2 b3 +10000004:[ \t]+a00c0362[ \t]+\[a2\] b \.S2 b3 +10000008:[ \t]+000c0363[ \t]+b \.S2 b3 +1000000c:[ \t]+00800028[ \t]+\|\| mvk \.S1 0,a1 +10000010:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +10000014:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000018:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +1000001c:[ \t]+00000000[ \t]+nop 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d b/binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d new file mode 100644 index 0000000..0ce96e6 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak-data.d @@ -0,0 +1,11 @@ +#name: C6X ABS relocs to undefined weak symbols +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld +#source: weak.s +#objdump: -s -j .data + +.*: *file format elf32-tic6x-le + + +Contents of section \.data: +[ \t]+0+80 00000000 00000000[ \t]+\.*[ \t]* diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak.d b/binutils-2.24/ld/testsuite/ld-tic6x/weak.d new file mode 100644 index 0000000..89f4c98 --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak.d @@ -0,0 +1,19 @@ +#name: C6X relocs to weak symbols, little endian +#as: -mlittle-endian +#ld: -melf32_tic6x_le -Tsbr.ld +#source: weak.s +#objdump: -dr + +.*: *file format elf32-tic6x-le + + +Disassembly of section \.text: +10000000 <[^>]*>: +10000000:[ \t]+000c0362[ \t]+b \.S2 b3 +10000004:[ \t]+a00c0362[ \t]+\[a2\] b \.S2 b3 +10000008:[ \t]+000c0363[ \t]+b \.S2 b3 +1000000c:[ \t]+00800028[ \t]+\|\| mvk \.S1 0,a1 +10000010:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1 +10000014:[ \t]+00800028[ \t]+mvk \.S1 0,a1 +10000018:[ \t]+00800068[ \t]+mvkh \.S1 0,a1 +1000001c:[ \t]+00000000[ \t]+nop 1 diff --git a/binutils-2.24/ld/testsuite/ld-tic6x/weak.s b/binutils-2.24/ld/testsuite/ld-tic6x/weak.s new file mode 100644 index 0000000..8f9047a --- /dev/null +++ b/binutils-2.24/ld/testsuite/ld-tic6x/weak.s @@ -0,0 +1,19 @@ + .weak g + .weak g1 +.text + b .s2 g +[a2] b .s2 g + b .s2 g +|| mvk .s1 0, a1 + ldw .d2t2 *+B14(g1), B1 + mvkl .s1 g, a1 + mvkh .s1 g, a1 + + .section .data,"aw",@progbits + .align 2 + .type a, @object + .size a, 4 +a: + .long g1 + .short g1 + .byte g1 |