patch-2.4.22 linux-2.4.22/arch/parisc/math-emu/fpudispatch.c
Next file: linux-2.4.22/arch/parisc/math-emu/sfadd.c
Previous file: linux-2.4.22/arch/parisc/math-emu/fpu.h
Back to the patch index
Back to the overall index
- Lines: 47
- Date:
2003-08-25 04:44:40.000000000 -0700
- Orig file:
linux-2.4.21/arch/parisc/math-emu/fpudispatch.c
- Orig date:
2002-11-28 15:53:10.000000000 -0800
diff -urN linux-2.4.21/arch/parisc/math-emu/fpudispatch.c linux-2.4.22/arch/parisc/math-emu/fpudispatch.c
@@ -22,7 +22,7 @@
* BEGIN_DESC
*
* File:
- * @(#) pa/fp/fpudispatch.c $Revision: 1.1 $
+ * @(#) pa/fp/fpudispatch.c $Revision: $
*
* Purpose:
* <<please update with a synopsis of the functionality provided by this file>>
@@ -51,6 +51,7 @@
#include "float.h"
#include "types.h"
+#include <asm/processor.h>
/* #include <sys/debug.h> */
/* #include <machine/sys/mdep_private.h> */
@@ -166,6 +167,20 @@
#define VASSERT(x)
+static void parisc_linux_get_fpu_type(u_int fpregs[])
+{
+ /* on pa-linux the fpu type is not filled in by the
+ * caller; it is constructed here
+ */
+ if (boot_cpu_data.cpu_type == pcxs)
+ fpregs[FPU_TYPE_FLAG_POS] = TIMEX_EXTEN_FLAG;
+ else if (boot_cpu_data.cpu_type == pcxt ||
+ boot_cpu_data.cpu_type == pcxt_)
+ fpregs[FPU_TYPE_FLAG_POS] = ROLEX_EXTEN_FLAG;
+ else if (boot_cpu_data.cpu_type >= pcxu)
+ fpregs[FPU_TYPE_FLAG_POS] = PA2_0_FPU_FLAG;
+}
+
/*
* this routine will decode the excepting floating point instruction and
* call the approiate emulation routine.
@@ -184,6 +199,8 @@
/* All FP emulation code assumes that ints are 4-bytes in length */
VASSERT(sizeof(int) == 4);
+ parisc_linux_get_fpu_type(fpregs);
+
fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS]; /* get fpu type flags */
class = get_class(ir);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)