|
From: <sv...@va...> - 2012-10-15 14:01:44
|
cborntra 2012-10-15 15:01:31 +0100 (Mon, 15 Oct 2012)
New Revision: 13044
Log:
Add testcase for checking the ltg + jhe handling
Added files:
trunk/memcheck/tests/s390x/ltgjhe.c
trunk/memcheck/tests/s390x/ltgjhe.stderr.exp
trunk/memcheck/tests/s390x/ltgjhe.stdout.exp
Modified files:
trunk/memcheck/tests/s390x/Makefile.am
Added: trunk/memcheck/tests/s390x/ltgjhe.stdout.exp (+0 -0)
===================================================================
Modified: trunk/memcheck/tests/s390x/Makefile.am (+1 -1)
===================================================================
--- trunk/memcheck/tests/s390x/Makefile.am 2012-10-14 19:16:41 +01:00 (rev 13043)
+++ trunk/memcheck/tests/s390x/Makefile.am 2012-10-15 15:01:31 +01:00 (rev 13044)
@@ -2,7 +2,7 @@
dist_noinst_SCRIPTS = filter_stderr
-INSN_TESTS = cs csg cds cdsg cu21 cu42
+INSN_TESTS = cs csg cds cdsg cu21 cu42 ltgjhe
check_PROGRAMS = $(INSN_TESTS)
Added: trunk/memcheck/tests/s390x/ltgjhe.c (+42 -0)
===================================================================
--- trunk/memcheck/tests/s390x/ltgjhe.c 2012-10-14 19:16:41 +01:00 (rev 13043)
+++ trunk/memcheck/tests/s390x/ltgjhe.c 2012-10-15 15:01:31 +01:00 (rev 13044)
@@ -0,0 +1,42 @@
+#include <stdio.h>
+int main()
+{
+ int field1, field2;
+ int result;
+
+ /*
+ * gcc does some tricks for checking the highest bit. It seems
+ * to load a full word/double word.
+ * By using mask=10 for brc (jhe) only the msb is influencing
+ * the code flow. This test was inspired by 308427
+ */
+ asm volatile( "oi %1,128\n\t"
+ "ltg 0,%1\n\t"
+ "jhe 1f\n\t"
+ "lghi %0,0\n\t"
+ "j 2f\n\t"
+ "1:lghi %0,0\n\t"
+ "2:\n\t"
+ :"=d" (result)
+ :"Q" (field1)
+ :"0","cc");
+
+ if (result)
+ printf("Error\n");
+
+ asm volatile( "oi %1,128\n\t"
+ "lt 0,%1\n\t"
+ "jhe 1f\n\t"
+ "lghi %0,0\n\t"
+ "j 2f\n\t"
+ "1:lghi %0,0\n\t"
+ "2:\n\t"
+ :"=d" (result)
+ :"Q" (field2)
+ :"0","cc");
+
+ if (result)
+ printf("Error\n");
+
+ return 0;
+}
Added: trunk/memcheck/tests/s390x/ltgjhe.stderr.exp (+0 -0)
===================================================================
|