Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | 2003-03-22 Ralph Siemsen <ralphs@netwinder.org> |
2 | * Reformat all but softfloat files to get a consistent coding style. | |
3 | Used "indent -kr -i8 -ts8 -sob -l132 -ss" and a few manual fixups. | |
4 | * Removed dead code and fixed function protypes to match definitions. | |
5 | * Consolidated use of (opcode && MASK_ARITHMETIC_OPCODE) >> 20. | |
6 | * Make 80-bit precision a compile-time option. (1%) | |
7 | * Only initialize FPE state once in repeat-FP situations. (6%) | |
8 | ||
9 | 2002-01-19 Russell King <rmk@arm.linux.org.uk> | |
10 | ||
11 | * fpa11.h - Add documentation | |
12 | - remove userRegisters pointer from this structure. | |
13 | - add new method to obtain integer register values. | |
14 | * softfloat.c - Remove float128 | |
15 | * softfloat.h - Remove float128 | |
16 | * softfloat-specialize - Remove float128 | |
17 | ||
18 | * The FPA11 structure is not a kernel-specific data structure. | |
19 | It is used by users of ptrace to examine the values of the | |
20 | floating point registers. Therefore, any changes to the | |
21 | FPA11 structure (size or position of elements contained | |
22 | within) have to be well thought out. | |
23 | ||
24 | * Since 128-bit float requires the FPA11 structure to change | |
25 | size, it has been removed. 128-bit float is currently unused, | |
26 | and needs various things to be re-worked so that we won't | |
27 | overflow the available space in the task structure. | |
28 | ||
29 | * The changes are designed to break any patch that goes on top | |
30 | of this code, so that the authors properly review their changes. | |
31 | ||
32 | 1999-08-19 Scott Bambrough <scottb@netwinder.org> | |
33 | ||
34 | * fpmodule.c - Changed version number to 0.95 | |
35 | * fpa11.h - modified FPA11, FPREG structures | |
36 | * fpa11.c - Changes due to FPA11, FPREG structure alterations. | |
37 | * fpa11_cpdo.c - Changes due to FPA11, FPREG structure alterations. | |
38 | * fpa11_cpdt.c - Changes due to FPA11, FPREG structure alterations. | |
39 | * fpa11_cprt.c - Changes due to FPA11, FPREG structure alterations. | |
40 | * single_cpdo.c - Changes due to FPA11, FPREG structure alterations. | |
41 | * double_cpdo.c - Changes due to FPA11, FPREG structure alterations. | |
42 | * extended_cpdo.c - Changes due to FPA11, FPREG structure alterations. | |
43 | ||
44 | * I discovered several bugs. First and worst is that the kernel | |
45 | passes in a pointer to the FPE's state area. This is defined | |
46 | as a struct user_fp (see user.h). This pointer was cast to a | |
47 | FPA11*. Unfortunately FPA11 and user_fp are of different sizes; | |
48 | user_fp is smaller. This meant that the FPE scribbled on things | |
49 | below its area, which is bad, as the area is in the thread_struct | |
50 | embedded in the process task structure. Thus we were scribbling | |
51 | over one of the most important structures in the entire OS. | |
52 | ||
53 | * user_fp and FPA11 have now been harmonized. Most of the changes | |
54 | in the above code were dereferencing problems due to moving the | |
55 | register type out of FPREG, and getting rid of the union variable | |
56 | fpvalue. | |
57 | ||
58 | * Second I noticed resetFPA11 was not always being called for a | |
59 | task. This should happen on the first floating point exception | |
60 | that occurs. It is controlled by init_flag in FPA11. The | |
61 | comment in the code beside init_flag state the kernel guarantees | |
62 | this to be zero. Not so. I found that the kernel recycles task | |
63 | structures, and that recycled ones may not have init_flag zeroed. | |
64 | I couldn't even find anything that guarantees it is zeroed when | |
65 | when the task structure is initially allocated. In any case | |
66 | I now initialize the entire FPE state in the thread structure to | |
67 | zero when allocated and recycled. See alloc_task_struct() and | |
68 | flush_thread() in arch/arm/process.c. The change to | |
69 | alloc_task_struct() may not be necessary, but I left it in for | |
70 | completeness (better safe than sorry). | |
71 | ||
72 | 1998-11-23 Scott Bambrough <scottb@netwinder.org> | |
73 | ||
74 | * README.FPE - fix typo in description of lfm/sfm instructions | |
75 | * NOTES - Added file to describe known bugs/problems | |
76 | * fpmodule.c - Changed version number to 0.94 | |
77 | ||
78 | 1998-11-20 Scott Bambrough <scottb@netwinder.org> | |
79 | ||
80 | * README.FPE - fix description of URD, NRM instructions | |
81 | * TODO - remove URD, NRM instructions from TODO list | |
82 | * single_cpdo.c - implement URD, NRM | |
83 | * double_cpdo.c - implement URD, NRM | |
84 | * extended_cpdo.c - implement URD, NRM | |
85 | ||
86 | 1998-11-19 Scott Bambrough <scottb@netwinder.org> | |
87 | ||
88 | * ChangeLog - Added this file to track changes made. | |
89 | * fpa11.c - added code to initialize register types to typeNone | |
90 | * fpa11_cpdt.c - fixed bug in storeExtended (typeExtended changed to | |
91 | typeDouble in switch statement) |