[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[f-cpu] manual 0.27c
- To: F-CPU <f-cpu@seul.org>
- Subject: [f-cpu] manual 0.27c
- From: Karl-Heinz Eischer <karl-heinz@eischer.net>
- Date: Wed, 4 Dec 2002 11:24:08 +0100
- Delivered-To: archiver@seul.org
- Delivered-To: f-cpu-outgoing@seul.org
- Delivered-To: f-cpu@seul.org
- Delivery-Date: Wed, 04 Dec 2002 05:28:49 -0500
- Mail-Followup-To: F-CPU <f-cpu@seul.org>
- Reply-To: f-cpu@seul.org
- Sender: owner-f-cpu@seul.org
- User-Agent: Mutt/1.3.28i
Hi,
the manual states on page 88 (instruction sub):
The borrow flag (same as carry) indicates that the borrow value is written
to register number (r1^1). If no borrow has been generated, the neighbour
register is cleared, otherwise the neighbour register is set to 1.
The examples show that it is set to 0xFF. Furthermore there is the order
inconsitent is the description. First it states r2 - r3 and a few lines
later (r3 - r2). The example shows r2 - r3.
There are some other corrections in the patch which is attached.
Please have a look.
KH
--
// In a world without walls and fences who needs Windows and Gates ? //
diff -Nur F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/cmple.tex F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/cmple.tex
--- F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/cmple.tex Sat Nov 16 17:25:49 2002
+++ F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/cmple.tex Tue Dec 3 12:35:34 2002
@@ -52,9 +52,9 @@
R2 contains 0x0000000700000001
{\tt
-{\bf scmpl.b r1,r2,r3 }: r3 = 0xFFFFFF00FFFFFFFF\\
-{\bf scmpl.b r2,r1,r3 }: r3 = 0xFFFFFFFFFFFFFF00\\
-{\bf cmpl r1,r2,r3 }: r3 = 0x0000000000000000
+{\bf scmple.b r1,r2,r3 }: r3 = 0xFFFFFF00FFFFFFFF\\
+{\bf scmple.b r2,r1,r3 }: r3 = 0xFFFFFFFFFFFFFF00\\
+{\bf cmple r1,r2,r3 }: r3 = 0x0000000000000000
}
{\bf Performance (FC0 only) :}
diff -Nur F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/mac.tex F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/mac.tex
--- F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/mac.tex Sat Nov 16 17:25:49 2002
+++ F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/mac.tex Tue Dec 3 14:54:48 2002
@@ -83,7 +83,7 @@
R2 contains 0x36\\
R3 contains 0x0136
-{\tt{\bf mac.b r1,r2,r3 }: r3 = 0x0868\\
+{\tt{\bf mac.b r1,r2,r3 }: r3 = 0x0898\\
}
\begin{center}
diff -Nur F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/max.tex F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/max.tex
--- F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/max.tex Sat Nov 16 17:25:49 2002
+++ F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/max.tex Tue Dec 3 12:43:07 2002
@@ -46,7 +46,7 @@
{\tt
{\bf smax.b r1,r2,r3 }: r3 = 0x0000000700000003\\
-{\bf max r1,r2,r3 }: r3 = 0x0000000700000003
+{\bf max r1,r2,r3 }: r3 = 0x0000000700000001
}
{\bf Performance (FC0 only) :}
diff -Nur F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/mul.tex F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/mul.tex
--- F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/mul.tex Sat Nov 16 17:25:49 2002
+++ F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/mul.tex Tue Dec 3 11:48:10 2002
@@ -80,12 +80,12 @@
{\em SIMD :}
-R1 contains 0x00 00 00 00 00 00 00 00 (in a 64-bit system)\\
-R2 contains 0x00 00 00 00 00 00 00 00
+R1 contains 0x00 00 00 23 00 00 00 03 (in a 64-bit system)\\
+R2 contains 0x00 00 00 36 00 00 00 05
{\tt
-{\bf smul.b r1,r2,r3 }: r3 = 0x00 00 00 00 00 00 00 00 \\
-{\bf smulh.b r1,r2,r3 }: r3 = 0x00 00 00 00 00 00 00 00 , r4 = 0x00 00 00 00
+{\bf smul.b r1,r2,r3 }: r3 = 0x00 00 00 62 00 00 00 0F \\
+{\bf smulh.b r1,r2,r3 }: r3 = 0x00 00 00 62 00 00 00 0F , r4 = 0x00 00 00 07
00 00 00 00\\
}
diff -Nur F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/nabs.tex F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/nabs.tex
--- F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/nabs.tex Sat Nov 16 17:25:49 2002
+++ F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/nabs.tex Tue Dec 3 14:50:42 2002
@@ -19,8 +19,8 @@
~~~~~~
This instruction negates the source operand in a special unit that
is designed for low latency when large data are processed. If the sign bit
-(MSB) of the source is set (the number is negative) then the value is
-written back to the register set, or else (it is already positive) the result
+(MSB) of the source is not set (the number is positive) then the value is
+written back to the register set, or else (it is already negative) the result
is cancelled (that's how it works in scalar mode, not in SIMD mode...).
~~~~~~
diff -Nur F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/sub.tex F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/sub.tex
--- F-CPU_manual-0.2.7c-en.orig/src/i7/Draft/Integer/sub.tex Sat Nov 16 17:25:49 2002
+++ F-CPU_manual-0.2.7c-en/src/i7/Draft/Integer/sub.tex Tue Dec 3 15:07:23 2002
@@ -32,8 +32,7 @@
\item The {\bf borrow} flag (same as carry) indicates that the borrow
value is written to register number (r1\xor1). If no borrow has been generated,
-the neighbour register is cleared, otherwise the neighbour register is set to
-1.
+the neighbour register is cleared, otherwise the neighbour register is set.
\end{itemize}