diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 272a360b324a2ae289e81774630131ec3eee15be..55056be69275037bd1c9bbb46281748af85bd20f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2001-05-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+	* gcc.c-torture/compile/20000804-1.x: New file, this test fails
+	on 68HC11/HC12 due to the asm instruction.
+	* gcc.c-torture/compile/20001205-1.x: New file, ditto.
+	* gcc.c-torture/compile/920520-1.x: Likewise.
+	* gcc.c-torture/compile/20001226-1.x: New file, this test fails
+	on 68HC11/HC12 because the function is larger than 64K.
+	* gcc.c-torture/compile/961203-1.x: New file, this test fails
+	on 68HC11/HC12 because the structure is too large.
+
 2001-05-20  Richard Henderson  <rth@redhat.com>
 
 	* gcc.c-torture/execute/20010520-1.c: New.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000804-1.x b/gcc/testsuite/gcc.c-torture/compile/20000804-1.x
new file mode 100644
index 0000000000000000000000000000000000000000..7538c513f70e484f718b73f480933689e1107b21
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.x
@@ -0,0 +1,10 @@
+# This does not work on m68hc11 due to the use of an asm statement
+# to force a 'long long' (64-bits) to go in a register.
+
+global target_triplet
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+      set torture_compile_xfail "$target_triplet"
+      return 1
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001205-1.x b/gcc/testsuite/gcc.c-torture/compile/20001205-1.x
new file mode 100644
index 0000000000000000000000000000000000000000..bde61fd93da9887dae23eb34b3e756f4f1435411
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20001205-1.x
@@ -0,0 +1,8 @@
+# This does not work on m68hc11 due to the asm statement which
+# forces two 'long' (32-bits) variables to go in registers.
+
+global target_triplet
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+      set torture_compile_xfail "$target_triplet"
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.x b/gcc/testsuite/gcc.c-torture/compile/20001226-1.x
new file mode 100644
index 0000000000000000000000000000000000000000..a8db223e1f9f8142c894cc6ebebff1b57b62ddd4
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20001226-1.x
@@ -0,0 +1,9 @@
+# This does not assemble on m68hc11 because the function is larger
+# than 64K.
+
+global target_triplet
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+      set torture_compile_xfail "$target_triplet"
+      return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/920520-1.x b/gcc/testsuite/gcc.c-torture/compile/920520-1.x
index 4cfce33b2dc56d575dd4e469fa9caf2d1cb4e9ba..3bc5676dde7d76111f33325d3cda04e652e519ce 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920520-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/920520-1.x
@@ -1,2 +1,9 @@
-set options "-S"
+# This does not work on m68hc11 due to the asm which forces a
+# float or a double to go in a register.
+
+global target_triplet
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+      set torture_compile_xfail "$target_triplet"
+      return 1
+}
 return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/961203-1.x b/gcc/testsuite/gcc.c-torture/compile/961203-1.x
new file mode 100644
index 0000000000000000000000000000000000000000..ce8820d934c5b57593e5a17abaa7b79807f61a5a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/961203-1.x
@@ -0,0 +1,7 @@
+# Array 'a' in this test is too large to fit in 64K.
+
+global target_triplet
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"]} {
+	set torture_compile_xfail "$target_triplet"
+}
+return 0