All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heikki Lindholm <holindho@domain.hid>
To: xenomai@xenomai.org
Subject: [Xenomai-core] [PATCH] Add fptest for powerpc
Date: Sat, 10 Jun 2006 19:47:13 +0300	[thread overview]
Message-ID: <448AF791.8080707@domain.hid> (raw)

[-- Attachment #1: Type: text/plain, Size: 271 bytes --]

This adds powerpc version of fptest.h. It just stores and loads the raw 
integer into/from FPU registers without converting to proper IEEE form. 
Converting would have added unneccessary complexity. As a side note, the 
ppc barfs on the test with "1000 != 10". :I

-- hl

[-- Attachment #2: xenomai-060610-ppc-fptest.patch --]
[-- Type: text/plain, Size: 2045 bytes --]

diff -Nru xenomai.orig/include/asm-powerpc/fptest.h xenomai/include/asm-powerpc/fptest.h
--- xenomai.orig/include/asm-powerpc/fptest.h	2006-06-10 10:29:29.335736000 +0000
+++ xenomai/include/asm-powerpc/fptest.h	2006-06-10 16:12:09.395132000 +0000
@@ -10,11 +10,94 @@
 
 static inline void fp_regs_set(unsigned val)
 {
+	uint64_t fpval = val;
+	__asm__ __volatile__("lfd	0, %0\n"
+		"	fmr	1, 0\n"
+		"	fmr	2, 0\n"
+		"	fmr	3, 0\n"
+		"	fmr	4, 0\n"
+		"	fmr	5, 0\n"
+		"	fmr	6, 0\n"
+		"	fmr	7, 0\n"
+		"	fmr	8, 0\n"
+		"	fmr	9, 0\n"
+		"	fmr	10, 0\n"
+		"	fmr	11, 0\n"
+		"	fmr	12, 0\n"
+		"	fmr	13, 0\n"
+		"	fmr	14, 0\n"
+		"	fmr	15, 0\n"
+		"	fmr	16, 0\n"
+		"	fmr	17, 0\n"
+		"	fmr	18, 0\n"
+		"	fmr	19, 0\n"
+		"	fmr	20, 0\n"
+		"	fmr	21, 0\n"
+		"	fmr	22, 0\n"
+		"	fmr	23, 0\n"
+		"	fmr	24, 0\n"
+		"	fmr	25, 0\n"
+		"	fmr	26, 0\n"
+		"	fmr	27, 0\n"
+		"	fmr	28, 0\n"
+		"	fmr	29, 0\n"
+		"	fmr	30, 0\n"
+		"	fmr	31, 0\n"
+		: 
+		: "m" (fpval));
 }
 
+#define FPTEST_REGVAL(n) {						\
+	uint64_t t;							\
+	__asm__ __volatile__("	stfd	" #n ", %0" : "=m" (t));	\
+	e[n] = (unsigned)t;						\
+	}
+
 static inline int fp_regs_check(unsigned val)
 {
-    return 0;
+	unsigned i, failed = 0;
+	uint32_t e[32];
+
+	FPTEST_REGVAL(0);
+	FPTEST_REGVAL(1);
+	FPTEST_REGVAL(2);
+	FPTEST_REGVAL(3);
+	FPTEST_REGVAL(4);
+	FPTEST_REGVAL(5);
+	FPTEST_REGVAL(6);
+	FPTEST_REGVAL(7);
+	FPTEST_REGVAL(8);
+	FPTEST_REGVAL(9);
+	FPTEST_REGVAL(10);
+	FPTEST_REGVAL(11);
+	FPTEST_REGVAL(12);
+	FPTEST_REGVAL(13);
+	FPTEST_REGVAL(14);
+	FPTEST_REGVAL(15);
+	FPTEST_REGVAL(16);
+	FPTEST_REGVAL(17);
+	FPTEST_REGVAL(18);
+	FPTEST_REGVAL(19);
+	FPTEST_REGVAL(20);
+	FPTEST_REGVAL(21);
+	FPTEST_REGVAL(22);
+	FPTEST_REGVAL(23);
+	FPTEST_REGVAL(24);
+	FPTEST_REGVAL(25);
+	FPTEST_REGVAL(26);
+	FPTEST_REGVAL(27);
+	FPTEST_REGVAL(28);
+	FPTEST_REGVAL(29);
+	FPTEST_REGVAL(30);
+	FPTEST_REGVAL(31);
+
+	for (i = 0; i < 32; i++)
+		if (e[i] != val) {
+			printk("r%d: %u != %u\n", i, e[i], val);
+			failed = 1;
+		}
+
+	return failed;
 }
 
 #endif /* FPTEST_H */

             reply	other threads:[~2006-06-10 16:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-10 16:47 Heikki Lindholm [this message]
2006-06-10 17:53 ` [Xenomai-core] [PATCH] Add fptest for powerpc Gilles Chanteperdrix
2006-06-10 20:48   ` Heikki Lindholm
2006-06-11 12:34     ` Gilles Chanteperdrix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=448AF791.8080707@domain.hid \
    --to=holindho@domain.hid \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.