Back to home page

OSCL-LXR

 
 

    


0001 2003-03-22  Ralph Siemsen <ralphs@netwinder.org>
0002         * Reformat all but softfloat files to get a consistent coding style.
0003           Used "indent -kr -i8 -ts8 -sob -l132 -ss" and a few manual fixups.
0004         * Removed dead code and fixed function protypes to match definitions.
0005         * Consolidated use of (opcode && MASK_ARITHMETIC_OPCODE) >> 20.
0006         * Make 80-bit precision a compile-time option. (1%)
0007         * Only initialize FPE state once in repeat-FP situations. (6%)
0008 
0009 2002-01-19  Russell King <rmk@arm.linux.org.uk>
0010 
0011         * fpa11.h - Add documentation
0012                   - remove userRegisters pointer from this structure.
0013                   - add new method to obtain integer register values.
0014         * softfloat.c - Remove float128
0015         * softfloat.h - Remove float128
0016         * softfloat-specialize - Remove float128
0017 
0018         * The FPA11 structure is not a kernel-specific data structure.
0019           It is used by users of ptrace to examine the values of the
0020           floating point registers.  Therefore, any changes to the
0021           FPA11 structure (size or position of elements contained
0022           within) have to be well thought out.
0023 
0024         * Since 128-bit float requires the FPA11 structure to change
0025           size, it has been removed.  128-bit float is currently unused,
0026           and needs various things to be re-worked so that we won't
0027           overflow the available space in the task structure.
0028 
0029         * The changes are designed to break any patch that goes on top
0030           of this code, so that the authors properly review their changes.
0031 
0032 1999-08-19  Scott Bambrough  <scottb@netwinder.org>
0033 
0034         * fpmodule.c - Changed version number to 0.95
0035         * fpa11.h - modified FPA11, FPREG structures
0036         * fpa11.c - Changes due to FPA11, FPREG structure alterations.
0037         * fpa11_cpdo.c - Changes due to FPA11, FPREG structure alterations.
0038         * fpa11_cpdt.c - Changes due to FPA11, FPREG structure alterations.
0039         * fpa11_cprt.c - Changes due to FPA11, FPREG structure alterations.
0040         * single_cpdo.c - Changes due to FPA11, FPREG structure alterations.
0041         * double_cpdo.c - Changes due to FPA11, FPREG structure alterations.
0042         * extended_cpdo.c - Changes due to FPA11, FPREG structure alterations.
0043 
0044         * I discovered several bugs.  First and worst is that the kernel
0045           passes in a pointer to the FPE's state area.  This is defined
0046           as a struct user_fp (see user.h).  This pointer was cast to a
0047           FPA11*.  Unfortunately FPA11 and user_fp are of different sizes;
0048           user_fp is smaller.  This meant that the FPE scribbled on things
0049           below its area, which is bad, as the area is in the thread_struct
0050           embedded in the process task structure.  Thus we were scribbling
0051           over one of the most important structures in the entire OS.
0052 
0053         * user_fp and FPA11 have now been harmonized.  Most of the changes
0054           in the above code were dereferencing problems due to moving the
0055           register type out of FPREG, and getting rid of the union variable
0056           fpvalue.
0057 
0058         * Second I noticed resetFPA11 was not always being called for a
0059           task.  This should happen on the first floating point exception
0060           that occurs.  It is controlled by init_flag in FPA11.  The
0061           comment in the code beside init_flag state the kernel guarantees
0062           this to be zero.  Not so.  I found that the kernel recycles task
0063           structures, and that recycled ones may not have init_flag zeroed.
0064           I couldn't even find anything that guarantees it is zeroed when
0065           when the task structure is initially allocated.  In any case
0066           I now initialize the entire FPE state in the thread structure to
0067           zero when allocated and recycled.  See alloc_task_struct() and
0068           flush_thread() in arch/arm/process.c.  The change to
0069           alloc_task_struct() may not be necessary, but I left it in for
0070           completeness (better safe than sorry).
0071 
0072 1998-11-23  Scott Bambrough  <scottb@netwinder.org>
0073 
0074         * README.FPE - fix typo in description of lfm/sfm instructions
0075         * NOTES - Added file to describe known bugs/problems
0076         * fpmodule.c - Changed version number to 0.94
0077 
0078 1998-11-20  Scott Bambrough  <scottb@netwinder.org>
0079 
0080         * README.FPE - fix description of URD, NRM instructions
0081         * TODO - remove URD, NRM instructions from TODO list
0082         * single_cpdo.c - implement URD, NRM
0083         * double_cpdo.c - implement URD, NRM
0084         * extended_cpdo.c - implement URD, NRM
0085 
0086 1998-11-19  Scott Bambrough  <scottb@netwinder.org>
0087 
0088         * ChangeLog - Added this file to track changes made.
0089         * fpa11.c - added code to initialize register types to typeNone
0090         * fpa11_cpdt.c - fixed bug in storeExtended (typeExtended changed to
0091           typeDouble in switch statement)