summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-xc16x
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-02-17 14:36:28 +0000
committerNick Clifton <nickc@redhat.com>2006-02-17 14:36:28 +0000
commit6da0fc66d7b0ae80a1cf0ecc175a1089ea4d8340 (patch)
tree140eed383a508ee32134cbab90a52cc908506397 /ld/testsuite/ld-xc16x
parent3aa662522219e23c100f40abf241c49639814939 (diff)
downloadbinutils-redhat-6da0fc66d7b0ae80a1cf0ecc175a1089ea4d8340.tar.gz
Add support for the Infineon XC16X.
Diffstat (limited to 'ld/testsuite/ld-xc16x')
-rw-r--r--ld/testsuite/ld-xc16x/absrel.d28
-rw-r--r--ld/testsuite/ld-xc16x/absrel.s31
-rw-r--r--ld/testsuite/ld-xc16x/offset.d18
-rw-r--r--ld/testsuite/ld-xc16x/offset.s13
-rw-r--r--ld/testsuite/ld-xc16x/pcreloc.d34
-rw-r--r--ld/testsuite/ld-xc16x/pcreloc.s27
-rw-r--r--ld/testsuite/ld-xc16x/pcrelocl.d34
-rw-r--r--ld/testsuite/ld-xc16x/xc16x.exp65
8 files changed, 250 insertions, 0 deletions
diff --git a/ld/testsuite/ld-xc16x/absrel.d b/ld/testsuite/ld-xc16x/absrel.d
new file mode 100644
index 0000000000..a6941c226a
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/absrel.d
@@ -0,0 +1,28 @@
+
+.*: file format elf32-xc16x
+
+Disassembly of section .text:
+
+00000400 <_start>:
+ 400: e0 f5 mov r5,#0xf
+ 402: e0 f6 mov r6,#0xf
+
+00000404 <.12>:
+ 404: f2 f5 1c 04 mov r5,0x41c
+ 408: e0 d6 mov r6,#0xd
+ 40a: f2 f7 1c 04 mov r7,0x41c
+ 40e: e0 d8 mov r8,#0xd
+
+00000410 <.13>:
+ 410: f2 f5 1c 04 mov r5,0x41c
+ 414: e0 f6 mov r6,#0xf
+ 416: f2 f7 1c 04 mov r7,0x41c
+ 41a: e0 f8 mov r8,#0xf
+
+0000041c <.end>:
+.*: ca 09 04 04 calla- cc_nusr0,404 <.12>
+.*: ca 19 04 04 calla- cc_nusr1,404 <.12>
+.*: ca 29 04 04 calla- cc_usr0,404 <.12>
+.*: ea 09 04 04 jmpa- cc_nusr0,404 <.12>
+.*: ea 19 04 04 jmpa- cc_nusr1,404 <.12>
+.*: ea 29 04 04 jmpa- cc_usr0,404 <.12>
diff --git a/ld/testsuite/ld-xc16x/absrel.s b/ld/testsuite/ld-xc16x/absrel.s
new file mode 100644
index 0000000000..3bfe70e12c
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/absrel.s
@@ -0,0 +1,31 @@
+ .global _start
+_start:
+ mov r5,#0xf
+ mov r6,#0xf
+
+.12:
+ mov r5,.end
+ mov r6,#0xd
+ mov r7,.end
+ mov r8,#0xd
+.13:
+ mov r5,.end
+ mov r6,#0xf
+ mov r7,.end
+ mov r8,#0xf
+.end:
+ ;calla cc_UC,.13
+ ;calla cc_usr1,.12
+
+ ;calla+ cc_UGT,.12
+ calla- cc_nusr0,.12
+ calla- cc_nusr1,.12
+ calla- cc_usr0,.12
+
+ ;jmpa cc_UGT,.end
+ ;jmpa cc_nusr0,.end
+
+ ;jmpa+ cc_UGT,.12
+ jmpa- cc_nusr0,.12
+ jmpa- cc_nusr1,.12
+ jmpa- cc_usr0,.12
diff --git a/ld/testsuite/ld-xc16x/offset.d b/ld/testsuite/ld-xc16x/offset.d
new file mode 100644
index 0000000000..a879c44326
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/offset.d
@@ -0,0 +1,18 @@
+
+.*: file format elf32-xc16x
+
+Disassembly of section .text:
+
+00000400 <_start>:
+ 400: e0 f8 mov r8,#0xf
+ 402: fa 00 08 04 jmps #seg:0x0,#sof:0x408
+ 406: e0 f9 mov r9,#0xf
+
+00000408 <.12>:
+ 408: e0 f5 mov r5,#0xf
+ 40a: e0 f7 mov r7,#0xf
+ 40c: da 00 10 04 calls #seg:0x0,#sof:0x410
+
+00000410 <.13>:
+ 410: e0 f6 mov r6,#0xf
+ 412: e0 f8 mov r8,#0xf
diff --git a/ld/testsuite/ld-xc16x/offset.s b/ld/testsuite/ld-xc16x/offset.s
new file mode 100644
index 0000000000..b3aad190de
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/offset.s
@@ -0,0 +1,13 @@
+ .global _start
+_start:
+ mov r8,#0xf
+ jmps #seg:.12,#sof:.12
+ mov r9,#0xf
+.12:
+ mov r5,#0xf
+ mov r7,#0xf
+ calls #seg:.13,#sof:.13
+.13:
+ mov r6,#0xf
+ mov r8,#0xf
+ \ No newline at end of file
diff --git a/ld/testsuite/ld-xc16x/pcreloc.d b/ld/testsuite/ld-xc16x/pcreloc.d
new file mode 100644
index 0000000000..8f363b5f45
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/pcreloc.d
@@ -0,0 +1,34 @@
+
+.*: file format elf32-xc16x
+
+Disassembly of section .text:
+
+00000400 <_start>:
+ 400: e0 f5 mov r5,#0xf
+ 402: e0 f6 mov r6,#0xf
+ 404: e0 f7 mov r7,#0xf
+ 406: e0 f8 mov r8,#0xf
+ 408: e0 f9 mov r9,#0xf
+ 40a: e0 fa mov r10,#0xf
+ 40c: e0 fb mov r11,#0xf
+ 40e: e0 fc mov r12,#0xf
+
+00000410 <.12>:
+ 410: 2d 07 jmpr cc_Z,7
+ 412: 3d fe jmpr cc_NZ,254
+ 414: 8d fd jmpr cc_ULT,253
+ 416: 8d 45 jmpr cc_ULT,69
+ 418: 9d 06 jmpr cc_UGE,6
+ 41a: 0d 05 jmpr cc_UC,5
+ 41c: 2d 04 jmpr cc_Z,4
+ 41e: 3d 03 jmpr cc_NZ,3
+
+00000420 <.13>:
+ 420: fd 02 jmpr cc_ULE,2
+ 422: dd 01 jmpr cc_SGE,1
+ 424: bd 00 jmpr cc_SLE,0
+
+00000426 <.end>:
+ 426: 1d f4 jmpr cc_NET,244
+ 428: bb fe callr 254
+ 42a: bb fd callr 253
diff --git a/ld/testsuite/ld-xc16x/pcreloc.s b/ld/testsuite/ld-xc16x/pcreloc.s
new file mode 100644
index 0000000000..ed77101dc5
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/pcreloc.s
@@ -0,0 +1,27 @@
+ .global _start
+_start:
+ mov r5,#0xf
+ mov r6,#0xf
+ mov r7,#0xf
+ mov r8,#0xf
+ mov r9,#0xf
+ mov r10,#0xf
+ mov r11,#0xf
+ mov r12,#0xf
+.12:
+ jmpr cc_Z,.13
+ jmpr cc_NZ,.12
+ jmpr cc_C,.12
+ jmpr cc_C,0x45
+ jmpr cc_NC,.end
+ jmpr cc_UC,.end
+ jmpr cc_EQ,.end
+ jmpr cc_NE,.end
+.13:
+ jmpr cc_ULE,.end
+ jmpr cc_SGE,.end
+ jmpr cc_SLE,.end
+.end:
+ jmpr cc_NET,.12
+ callr .end
+ callr .end
diff --git a/ld/testsuite/ld-xc16x/pcrelocl.d b/ld/testsuite/ld-xc16x/pcrelocl.d
new file mode 100644
index 0000000000..48d9c8289e
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/pcrelocl.d
@@ -0,0 +1,34 @@
+
+.*: file format elf32-xc16x
+
+Disassembly of section .text:
+
+00c00300 <_start>:
+ c00300: e0 f5 mov r5,#0xf
+ c00302: e0 f6 mov r6,#0xf
+ c00304: e0 f7 mov r7,#0xf
+ c00306: e0 f8 mov r8,#0xf
+ c00308: e0 f9 mov r9,#0xf
+ c0030a: e0 fa mov r10,#0xf
+ c0030c: e0 fb mov r11,#0xf
+ c0030e: e0 fc mov r12,#0xf
+
+00c00310 <.12>:
+ c00310: 2d 07 jmpr cc_Z,7
+ c00312: 3d fe jmpr cc_NZ,254
+ c00314: 8d fd jmpr cc_ULT,253
+ c00316: 8d 45 jmpr cc_ULT,69
+ c00318: 9d 06 jmpr cc_UGE,6
+ c0031a: 0d 05 jmpr cc_UC,5
+ c0031c: 2d 04 jmpr cc_Z,4
+ c0031e: 3d 03 jmpr cc_NZ,3
+
+00c00320 <.13>:
+ c00320: fd 02 jmpr cc_ULE,2
+ c00322: dd 01 jmpr cc_SGE,1
+ c00324: bd 00 jmpr cc_SLE,0
+
+00c00326 <.end>:
+ c00326: 1d f4 jmpr cc_NET,244
+ c00328: bb fe callr 254
+ c0032a: bb fd callr 253
diff --git a/ld/testsuite/ld-xc16x/xc16x.exp b/ld/testsuite/ld-xc16x/xc16x.exp
new file mode 100644
index 0000000000..5732649951
--- /dev/null
+++ b/ld/testsuite/ld-xc16x/xc16x.exp
@@ -0,0 +1,65 @@
+# Expect script for ld-xstormy16 tests
+# Copyright (C) 2003 Free Software Foundation
+#
+# This file 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# Test xc16x linking of pc-relative relocs. This tests the assembler and
+# tools like objdump as well as the linker.
+
+if {!([istarget "xc16x*-*-*"]) } {
+ return
+}
+
+# Set up a list as described in ld-lib.exp
+
+set xc16x_tests {
+ {
+ "xc16x pc-relative relocs linker test"
+ ""
+ ""
+ { "pcreloc.s" }
+ { {objdump -Dz pcreloc.d} }
+ "pcreloc"
+ }
+}
+
+set xc16xabs_tests {
+ {
+ "xc16x absolute relative address linker test"
+ ""
+ ""
+ { "absrel.s" }
+ { {objdump -Dz absrel.d} }
+ "absrel"
+ }
+}
+
+set xc16xoffset_tests {
+ {
+ "xc16x offset linker test"
+ ""
+ ""
+ { "offset.s" }
+ { {objdump -Dz offset.d} }
+ "offset"
+ }
+}
+
+ run_ld_link_tests $xc16x_tests
+ run_ld_link_tests $xc16xabs_tests
+ run_ld_link_tests $xc16xoffset_tests
+
+