summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <>2004-03-21 23:47:55 +0000
committernobody <>2004-03-21 23:47:55 +0000
commit86bf824e11c1f0af1db78386725bea8bc83bd64f (patch)
treef835fc50606121379ae66ab1920e56fd573e3586
parentbcef353779b8a7b86032c29714c14f76eea2287f (diff)
downloadbinutils-gdb-86bf824e11c1f0af1db78386725bea8bc83bd64f.tar.gz
This commit was manufactured by cvs2svn to create branch 'binutils-
2_15-branch'. Cherrypick from master 2004-03-21 23:47:54 UTC Hans-Peter Nilsson <hp@axis.com> ' * gas/cris/regreg.d: Assemble with --no-mul-bug-abort.': gas/testsuite/gas/cris/mulbug-err-1.s gas/testsuite/gas/cris/rd-mulbug-1.d ld/testsuite/ld-elfvers/vers28a.c ld/testsuite/ld-elfvers/vers28a.dsym ld/testsuite/ld-elfvers/vers28a.ver ld/testsuite/ld-elfvers/vers28b.c ld/testsuite/ld-elfvers/vers28b.dsym ld/testsuite/ld-elfvers/vers28b.map ld/testsuite/ld-elfvers/vers28b.ver ld/testsuite/ld-elfvers/vers28c.c ld/testsuite/ld-elfvers/vers28c.dsym ld/testsuite/ld-elfvers/vers28c.ver
-rw-r--r--gas/testsuite/gas/cris/mulbug-err-1.s55
-rw-r--r--gas/testsuite/gas/cris/rd-mulbug-1.d24
-rw-r--r--ld/testsuite/ld-elfvers/vers28a.c1
-rw-r--r--ld/testsuite/ld-elfvers/vers28a.dsym1
-rw-r--r--ld/testsuite/ld-elfvers/vers28a.ver1
-rw-r--r--ld/testsuite/ld-elfvers/vers28b.c3
-rw-r--r--ld/testsuite/ld-elfvers/vers28b.dsym2
-rw-r--r--ld/testsuite/ld-elfvers/vers28b.map5
-rw-r--r--ld/testsuite/ld-elfvers/vers28b.ver4
-rw-r--r--ld/testsuite/ld-elfvers/vers28c.c7
-rw-r--r--ld/testsuite/ld-elfvers/vers28c.dsym1
-rw-r--r--ld/testsuite/ld-elfvers/vers28c.ver4
12 files changed, 108 insertions, 0 deletions
diff --git a/gas/testsuite/gas/cris/mulbug-err-1.s b/gas/testsuite/gas/cris/mulbug-err-1.s
new file mode 100644
index 00000000000..fbd830398c6
--- /dev/null
+++ b/gas/testsuite/gas/cris/mulbug-err-1.s
@@ -0,0 +1,55 @@
+; Test error message for mul insns at locations likely to trig
+; a hardware bug.
+
+; { dg-do assemble { target cris-*-* } }
+
+ ; First, .text isn't dword-aligned by default.
+ .text
+ muls.w $r1,$r4 ; { dg-error "align" }
+ nop
+ muls.b $r1,$r4 ; { dg-error "align" }
+ mulu.d $r1,$r4 ; { dg-error "align" }
+
+; Neither are other code sections, aligned to word.
+ .section .text.1,"ax",@progbits
+ .p2align 1
+ muls.w $r1,$r4 ; { dg-error "align" }
+ nop
+ mulu.b $r1,$r4 ; { dg-error "align" }
+ muls.d $r1,$r4 ; { dg-error "align" }
+
+; Now, a section aligned to dword. Errors for certain relative
+; positions only.
+ .section .text.2,"ax",@progbits
+ .p2align 2
+ mulu.w $r1,$r4
+ nop
+ muls.d $r1,$r4
+ mulu.w $r1,$r4 ; { dg-error "align" }
+
+; For good measure, a cache-line-aligned section.
+ .section .text.3,"ax",@progbits
+ .p2align 5
+ muls.w $r1,$r4
+ mulu.d $r4,$r1
+ mulu.b $r1,$r4
+ .rept 12
+ nop
+ .endr
+ mulu.b $r1,$r4 ; { dg-error "align" }
+ mulu.b $r1,$r4
+
+; Last, make sure typical alignment use by a fixed gcc passes.
+ .section .text.4,"ax",@progbits
+ .align 1
+ moveq 0,$r13
+ moveq 1,$r13
+ .p2alignw 5,0x050f,2
+ muls.d $r1,$r4
+ .rept 12
+ moveq 2,$r13
+ .endr
+ .p2alignw 5,0x050f,2
+ muls.w $r1,$r4
+ .p2alignw 5,0x050f,2
+ muls.b $r4,$r1
diff --git a/gas/testsuite/gas/cris/rd-mulbug-1.d b/gas/testsuite/gas/cris/rd-mulbug-1.d
new file mode 100644
index 00000000000..42ac192a6a7
--- /dev/null
+++ b/gas/testsuite/gas/cris/rd-mulbug-1.d
@@ -0,0 +1,24 @@
+#objdump: -s
+#source: mulbug-err-1.s
+#as: --em=criself --no-mul-bug-abort
+
+# Check that we don't get any errors or messages with
+# "--no-mul-bug-abort". No checking for "--mul-bug-abort",
+# though.
+
+.*: file format .*-cris
+
+Contents of section \.text:
+ 0+ 114d0f05 014d2149 .*
+Contents of section \.text\.1:
+ 0+ 114d0f05 0149214d .*
+Contents of section \.text\.2:
+ 0+ 11490f05 214d1149 .*
+Contents of section \.text\.3:
+ 0+ 114d2419 01490f05 0f050f05 0f050f05 .*
+ 0+10 0f050f05 0f050f05 0f050f05 0f050149 .*
+ 0+20 0149 .*
+Contents of section \.text\.4:
+ 0+ 40d241d2 214d42d2 42d242d2 42d242d2 .*
+ 0+10 42d242d2 42d242d2 42d242d2 42d20f05 .*
+ 0+20 114d041d .*
diff --git a/ld/testsuite/ld-elfvers/vers28a.c b/ld/testsuite/ld-elfvers/vers28a.c
new file mode 100644
index 00000000000..f5be3717f06
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28a.c
@@ -0,0 +1 @@
+void foo () {}
diff --git a/ld/testsuite/ld-elfvers/vers28a.dsym b/ld/testsuite/ld-elfvers/vers28a.dsym
new file mode 100644
index 00000000000..932b79829cf
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28a.dsym
@@ -0,0 +1 @@
+# Empty file
diff --git a/ld/testsuite/ld-elfvers/vers28a.ver b/ld/testsuite/ld-elfvers/vers28a.ver
new file mode 100644
index 00000000000..932b79829cf
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28a.ver
@@ -0,0 +1 @@
+# Empty file
diff --git a/ld/testsuite/ld-elfvers/vers28b.c b/ld/testsuite/ld-elfvers/vers28b.c
new file mode 100644
index 00000000000..8186782c4e9
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28b.c
@@ -0,0 +1,3 @@
+#pragma weak foo
+
+void foo () {}
diff --git a/ld/testsuite/ld-elfvers/vers28b.dsym b/ld/testsuite/ld-elfvers/vers28b.dsym
new file mode 100644
index 00000000000..e174c91e8bc
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28b.dsym
@@ -0,0 +1,2 @@
+[0]*[ ]+g[ ]+DO[ ]+\*ABS\*[ ]+[0]*[ ]+VERS.0[ ]+VERS.0
+[0-9a-f]*[ ]+w[ ]+DF[ ]+.text[ ]+[0-9a-f]*[ ]+VERS.0[ ]+(0x[0-9a-f]*|)[ ]*foo
diff --git a/ld/testsuite/ld-elfvers/vers28b.map b/ld/testsuite/ld-elfvers/vers28b.map
new file mode 100644
index 00000000000..31bfc763637
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28b.map
@@ -0,0 +1,5 @@
+VERS.0 {
+ global:
+ foo;
+ local: *;
+};
diff --git a/ld/testsuite/ld-elfvers/vers28b.ver b/ld/testsuite/ld-elfvers/vers28b.ver
new file mode 100644
index 00000000000..ab99615100a
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28b.ver
@@ -0,0 +1,4 @@
+Version definitions:
+1 0x01 0x0659990f vers28b.so
+2 0x00 0x05aa7610 VERS.0
+
diff --git a/ld/testsuite/ld-elfvers/vers28c.c b/ld/testsuite/ld-elfvers/vers28c.c
new file mode 100644
index 00000000000..55afb6c5dee
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28c.c
@@ -0,0 +1,7 @@
+extern void foo ();
+
+void
+bar ()
+{
+ foo ();
+}
diff --git a/ld/testsuite/ld-elfvers/vers28c.dsym b/ld/testsuite/ld-elfvers/vers28c.dsym
new file mode 100644
index 00000000000..37a1c4374ec
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28c.dsym
@@ -0,0 +1 @@
+[0-9a-f]*[ ]+DF[ ]+\*UND\*[ ]+[0-9a-f]*[ ]+VERS.0[ ]+(0x[0-9a-f]*|)[ ]*foo
diff --git a/ld/testsuite/ld-elfvers/vers28c.ver b/ld/testsuite/ld-elfvers/vers28c.ver
new file mode 100644
index 00000000000..1462686fcbb
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers28c.ver
@@ -0,0 +1,4 @@
+Version References:
+ required from tmpdir/vers28b.so:
+ 0x05aa7610 0x00 02 VERS.0
+