|
From: <sv...@va...> - 2005-10-05 17:12:34
|
Author: sewardj
Date: 2005-10-05 18:12:23 +0100 (Wed, 05 Oct 2005)
New Revision: 4869
Log:
Test for jrcxz.
Added:
trunk/none/tests/amd64/jrcxz.c
trunk/none/tests/amd64/jrcxz.stderr.exp
trunk/none/tests/amd64/jrcxz.stdout.exp
trunk/none/tests/amd64/jrcxz.vgtest
Modified:
trunk/none/tests/amd64/Makefile.am
Modified: trunk/none/tests/amd64/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/Makefile.am 2005-10-05 11:03:19 UTC (rev 4868)
+++ trunk/none/tests/amd64/Makefile.am 2005-10-05 17:12:23 UTC (rev 4869)
@@ -8,11 +8,12 @@
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
+ jrcxz.stderr.exp jrcxz.stdout.exp jrcxz.vgtest \
looper.stderr.exp looper.stdout.exp looper.vgtest \
smc1.stderr.exp smc1.stdout.exp smc1.vgtest
=20
check_PROGRAMS =3D \
- $(INSN_TESTS) looper smc1
+ $(INSN_TESTS) looper jrcxz smc1
=20
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/inc=
lude
AM_CXXFLAGS =3D $(AM_CFLAGS)
Added: trunk/none/tests/amd64/jrcxz.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/jrcxz.c 2005-10-05 11:03:19 UTC (rev 4868)
+++ trunk/none/tests/amd64/jrcxz.c 2005-10-05 17:12:23 UTC (rev 4869)
@@ -0,0 +1,36 @@
+
+#include <stdio.h>
+
+typedef unsigned long long int ULong;
+
+ULong arg, res;
+
+extern void foo ( void );
+asm("\n"
+"foo:\n"
+"\tpushq %rcx\n"
+
+"\tmovq $0, %rax\n"
+"\tmovq arg, %rcx\n"
+
+"Lagain:\n"
+"\taddq $177, %rax\n"
+"\tdecq %rcx\n"
+"\tjrcxz Lout\n"
+"\tjmp Lagain\n"
+
+"Lout:\n"
+"\tmovq %rax, res\n"
+
+"\tpopq %rcx\n"
+"\tret\n"
+);
+
+int main ( void )
+{
+ arg =3D 100;
+ res =3D 0;
+ foo();
+ printf("%lld\n", res);
+ return 0;
+}
Added: trunk/none/tests/amd64/jrcxz.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/jrcxz.stderr.exp 2005-10-05 11:03:19 UTC (rev =
4868)
+++ trunk/none/tests/amd64/jrcxz.stderr.exp 2005-10-05 17:12:23 UTC (rev =
4869)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/amd64/jrcxz.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/jrcxz.stdout.exp 2005-10-05 11:03:19 UTC (rev =
4868)
+++ trunk/none/tests/amd64/jrcxz.stdout.exp 2005-10-05 17:12:23 UTC (rev =
4869)
@@ -0,0 +1 @@
+17700
Added: trunk/none/tests/amd64/jrcxz.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/amd64/jrcxz.vgtest 2005-10-05 11:03:19 UTC (rev 4868=
)
+++ trunk/none/tests/amd64/jrcxz.vgtest 2005-10-05 17:12:23 UTC (rev 4869=
)
@@ -0,0 +1 @@
+prog: jrcxz
|