From 0f29fed1f1f68894b756e13ea49eb2c46a426cbc Mon Sep 17 00:00:00 2001
From: Slava Pestov <slava@slava-pestovs-macbook-pro.local>
Date: Thu, 7 Jan 2010 17:59:17 +1300
Subject: [PATCH] cpu.x86: add some alien-assembly unit tests

---
 basis/cpu/x86/32/32-tests.factor |  7 +++++++
 basis/cpu/x86/64/64-tests.factor | 15 +++++++++++++++
 2 files changed, 22 insertions(+)
 create mode 100644 basis/cpu/x86/32/32-tests.factor
 create mode 100644 basis/cpu/x86/64/64-tests.factor

diff --git a/basis/cpu/x86/32/32-tests.factor b/basis/cpu/x86/32/32-tests.factor
new file mode 100644
index 0000000000..bc07e3a25b
--- /dev/null
+++ b/basis/cpu/x86/32/32-tests.factor
@@ -0,0 +1,7 @@
+IN: cpu.x86.32.tests
+USING: alien alien.c-types tools.test cpu.x86.assembler
+cpu.x86.assembler.operands ;
+
+: assembly-test-1 ( -- x ) int { } "cdecl" [ EAX 3 MOV ] alien-assembly ;
+
+[ 3 ] [ assembly-test-1 ] unit-test
diff --git a/basis/cpu/x86/64/64-tests.factor b/basis/cpu/x86/64/64-tests.factor
new file mode 100644
index 0000000000..6d171af7ea
--- /dev/null
+++ b/basis/cpu/x86/64/64-tests.factor
@@ -0,0 +1,15 @@
+USING: alien alien.c-types cpu.architecture cpu.x86.64
+cpu.x86.assembler cpu.x86.assembler.operands tools.test ;
+IN: cpu.x86.64.tests
+
+: assembly-test-1 ( -- x ) int { } "cdecl" [ RAX 3 MOV ] alien-assembly ;
+
+[ 3 ] [ assembly-test-1 ] unit-test
+
+: assembly-test-2 ( a b -- x )
+    int { int int } "cdecl" [
+        param-reg-0 param-reg-1 ADD
+        int-regs return-reg param-reg-0 MOV
+    ] alien-assembly ;
+
+[ 23 ] [ 17 6 assembly-test-2 ] unit-test