diff options
Diffstat (limited to 'Documentation/arm/nwfpe/todo.rst')
-rw-r--r-- | Documentation/arm/nwfpe/todo.rst | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/Documentation/arm/nwfpe/todo.rst b/Documentation/arm/nwfpe/todo.rst deleted file mode 100644 index 393f11b14540..000000000000 --- a/Documentation/arm/nwfpe/todo.rst +++ /dev/null @@ -1,72 +0,0 @@ -TODO LIST -========= - -:: - - POW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - power - RPW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse power - POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2) - - LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10 - LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e - EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent - SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine - COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine - TAN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - tangent - ASN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arcsine - ACS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arccosine - ATN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arctangent - -These are not implemented. They are not currently issued by the compiler, -and are handled by routines in libc. These are not implemented by the FPA11 -hardware, but are handled by the floating point support code. They should -be implemented in future versions. - -There are a couple of ways to approach the implementation of these. One -method would be to use accurate table methods for these routines. I have -a couple of papers by S. Gal from IBM's research labs in Haifa, Israel that -seem to promise extreme accuracy (in the order of 99.8%) and reasonable speed. -These methods are used in GLIBC for some of the transcendental functions. - -Another approach, which I know little about is CORDIC. This stands for -Coordinate Rotation Digital Computer, and is a method of computing -transcendental functions using mostly shifts and adds and a few -multiplications and divisions. The ARM excels at shifts and adds, -so such a method could be promising, but requires more research to -determine if it is feasible. - -Rounding Methods ----------------- - -The IEEE standard defines 4 rounding modes. Round to nearest is the -default, but rounding to + or - infinity or round to zero are also allowed. -Many architectures allow the rounding mode to be specified by modifying bits -in a control register. Not so with the ARM FPA11 architecture. To change -the rounding mode one must specify it with each instruction. - -This has made porting some benchmarks difficult. It is possible to -introduce such a capability into the emulator. The FPCR contains -bits describing the rounding mode. The emulator could be altered to -examine a flag, which if set forced it to ignore the rounding mode in -the instruction, and use the mode specified in the bits in the FPCR. - -This would require a method of getting/setting the flag, and the bits -in the FPCR. This requires a kernel call in ArmLinux, as WFC/RFC are -supervisor only instructions. If anyone has any ideas or comments I -would like to hear them. - -NOTE: - pulled out from some docs on ARM floating point, specifically - for the Acorn FPE, but not limited to it: - - The floating point control register (FPCR) may only be present in some - implementations: it is there to control the hardware in an implementation- - specific manner, for example to disable the floating point system. The user - mode of the ARM is not permitted to use this register (since the right is - reserved to alter it between implementations) and the WFC and RFC - instructions will trap if tried in user mode. - - Hence, the answer is yes, you could do this, but then you will run a high - risk of becoming isolated if and when hardware FP emulation comes out - - -- Russell. |