date and time created 86/07/20 11:14:44 by sam
authorSam Leffler <sam@ucbvax.Berkeley.EDU>
Mon, 21 Jul 1986 02:14:44 +0000 (18:14 -0800)
committerSam Leffler <sam@ucbvax.Berkeley.EDU>
Mon, 21 Jul 1986 02:14:44 +0000 (18:14 -0800)
SCCS-vsn: sys/tahoe/align/Astf.c 1.1
SCCS-vsn: sys/tahoe/align/Astorer.c 1.1

usr/src/sys/tahoe/align/Astf.c [new file with mode: 0644]
usr/src/sys/tahoe/align/Astorer.c [new file with mode: 0644]

diff --git a/usr/src/sys/tahoe/align/Astf.c b/usr/src/sys/tahoe/align/Astf.c
new file mode 100644 (file)
index 0000000..67e234f
--- /dev/null
@@ -0,0 +1,15 @@
+/*     Astf.c  1.1     86/07/20        */
+
+#include "../tahoealign/align.h"
+stf(infop)     process_info *infop;
+/*
+/*     Store accumulator (float) in destination.
+/*
+/*************************************************/
+{
+
+       write_back (infop, acc_high, operand(infop,0) );
+       if (acc_high < 0) negative_1; else negative_0;
+       if ( (acc_high & 0xff800000) == 0 ) zero_1; else zero_0;
+       carry_1; overflow_0;
+}
diff --git a/usr/src/sys/tahoe/align/Astorer.c b/usr/src/sys/tahoe/align/Astorer.c
new file mode 100644 (file)
index 0000000..dd8da30
--- /dev/null
@@ -0,0 +1,25 @@
+/*     Astorer.c       1.1     86/07/20        */
+
+#include "../tahoealign/align.h" 
+storer(infop)  process_info *infop;
+/*
+/*     Store multiple registers.
+/*
+/***************************************/
+{
+       register int mask, next_register, new_address;
+
+       mask = operand(infop,0)->data & 0x3fff; /* Bits 0 to 13 only */
+       new_address = operand(infop,1)->address;
+       next_register = 0;                              /* Register # */
+       while (next_register <= 13)
+       { 
+               if (mask & 1 << next_register) 
+               {
+                       put_longword (infop, Register (infop, next_register),
+                               new_address);
+                       new_address += 4; 
+               }
+               next_register++;
+       }
+}