From f028be21e61a2044073b58add55202dfd7b0fb6b Mon Sep 17 00:00:00 2001 From: briggs Date: Sun, 5 Nov 1995 04:23:00 +0000 Subject: [PATCH] Update from Ken Nakata. --- sys/arch/m68k/fpe/README | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/sys/arch/m68k/fpe/README b/sys/arch/m68k/fpe/README index 8044af64195b..2605d310b801 100644 --- a/sys/arch/m68k/fpe/README +++ b/sys/arch/m68k/fpe/README @@ -1,7 +1,7 @@ -* $NetBSD: README,v 1.3 1995/11/05 00:35:09 briggs Exp $ +* $NetBSD: README,v 1.4 1995/11/05 04:23:00 briggs Exp $ * NetBSD/m68k FPE (floating point emulation) README file -* Created Oct/??/95 by kenn@romulus.rutgers.edu (Ken Nakata) -* Last updated Nov/02/95 by kenn +* Created Oct/??/95 by kenn@remus.rutgers.edu (Ken Nakata) +* Last updated Nov/04/95 by kenn 1. INSTALLATION AND COMPILATION @@ -16,8 +16,7 @@ debugging purpose, add "options DEBUG_WITH_FPU" as well. NOTE: If you add "options DEBUG_WITH_FPU", FPE will accept cpID=6 as emulated FPU. You will need a modified gas that generates cpID=6 for floating point instructions, instead of normal cpID=1. Mount unionfs -or copy the gas source directory as you did with the kernel source tree, -and apply the following patch: +or copy the gas source directory and apply the following patch: *** /usr/src/gnu/usr.bin/gas/config/tc-m68k.c Mon Nov 21 16:30:41 1994 --- gas/config/tc-m68k.c Fri Sep 29 07:59:06 1995 @@ -58,15 +57,15 @@ than welcome to write such functions if you wish to. 3. IMPLEMENTED INSTRUCTIONS This is the list of implemented and unimplemented FPU instructions. -Most 040's directly supported type 0 instructions are already -implemented except FSGLDIV, FSGLMUL, FMOVE(M) FPcr, and FMOVECR. +All 040's directly supported type 0 instructions are already +implemented except FSGLDIV and FSGLMUL. Type field = bit 8-6 of opcode word * Implemented Instructions Type=0: FMOVE (mem->FPr), FINT, FINTRZ, FSQRT, FABS, FNEG, FGETEXP, - FGETMAN, FDIV, FADD, FMUL, FSGLDIV, FSCALE, FSGLMUL, FSUB, + FGETMAN, FDIV, FADD, FMUL, FSGLDIV(*), FSCALE, FSGLMUL(*), FSUB, FCMP, FTST, FMOVE (FPr->mem), FMOVEM (FPr), FMOVEM (FPcr), FMOVECR, FLOGNP1, FLOGN, FLOG10, FLOG2, FMOD, FREM @@ -154,8 +153,15 @@ the following rules: 5) Condition code need not be calculated. It's taken care of in fpu_emul_arith(). -Actually, after above was written, stubs for the missing functions -are added to the source, so you do not have to change fpu_emul_arith() -at all. Function names and prototypes are in fpu_arith_proto.h, and -all (except fpu_sincos()) follows the rules above. +Actually, after above was written, stubs for the missing functions were +added to the source, so you do not have to change fpu_emul_arith() at +all. Function names and prototypes are in fpu_arith_proto.h, and all +except fpu_sincos() follow the rules above. fpu_sincos() is declared +as + struct fpn *fpu_sincos(struct fpemu *fe, int cosreg); + +where cosreg is the FP register number to which cosine of the argument +is calculated and assigned. Sine of the argument is stored into the +destination register in the same manner as the other arithmetic +functions.