2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-17 17:53:56 +08:00
linux-next/arch/nds32/kernel
Vincent Chen 44e92e0364 nds32: support denormalized result through FP emulator
Currently, the nds32 FPU dose not support the arithmetic of denormalized
number. When the nds32 FPU finds the result of the instruction is a
denormlized number, the nds32 FPU considers it to be an underflow condition
and rounds the result to an appropriate number. It may causes some loss
of precision. This commit proposes a solution to re-execute the
instruction by the FPU emulator to enhance the precision. To transfer
calculations from user space to kernel space, this feature will enable
the underflow exception trap by default. Enabling this feature may cause
some side effects:
  1. Performance loss due to extra FPU exception
  2. Need another scheme to control real underflow trap
       A new parameter, UDF_trap, which is belong to FPU context is used
     to control underflow trap.

User can configure this feature via CONFIG_SUPPORT_DENORMAL_ARITHMETIC

Signed-off-by: Vincent Chen <vincentc@andestech.com>
Acked-by: Greentime Hu <greentime@andestech.com>
Signed-off-by: Greentime Hu <greentime@andestech.com>
2018-11-22 18:13:27 +08:00
..
vdso nds32: fix building failed if using elf toolchain. 2018-03-16 15:45:22 +08:00
asm-offsets.c nds32: Assembly macros and definitions 2018-02-22 10:44:31 +08:00
atl2c.c nds32: add NULL entry to the end of_device_id array 2018-09-04 14:45:15 +08:00
cacheinfo.c nds32: Cache and TLB routines 2018-02-22 10:44:32 +08:00
devtree.c nds32: Device tree support 2018-02-22 10:44:34 +08:00
dma.c nds32: use generic dma_noncoherent_ops 2018-05-29 16:10:32 +02:00
ex-entry.S nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
ex-exit.S nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
ex-scall.S nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
fpu.c nds32: support denormalized result through FP emulator 2018-11-22 18:13:27 +08:00
ftrace.c nds32: Fix a kernel panic issue because of wrong frame pointer access. 2018-09-04 14:45:19 +08:00
head.S nds32: Fill all TLB entries with kernel image mapping 2018-11-06 18:01:39 +08:00
irq.c nds32: IRQ handling 2018-02-22 10:44:32 +08:00
Makefile nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
module.c nds32: fix logic for module 2018-09-04 14:45:15 +08:00
nds32_ksyms.c nds32: Library functions 2018-02-22 10:44:33 +08:00
perf_event_cpu.c nds32: Add perf call-graph support. 2018-11-06 18:01:40 +08:00
pm.c nds32: Remove duplicated include from pm.c 2018-11-06 18:01:41 +08:00
process.c nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
ptrace.c nds32: Debugging support 2018-02-22 10:44:34 +08:00
setup.c nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
signal.c nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
sleep.S nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
stacktrace.c nds32: Add macro definition for offset of lp register on stack 2018-09-04 14:45:19 +08:00
sys_nds32.c nds32: support denormalized result through FP emulator 2018-11-22 18:13:27 +08:00
syscall_table.c nds32: System calls handling 2018-02-22 10:44:33 +08:00
time.c nds32: Generic timers support 2018-02-22 10:44:34 +08:00
traps.c nds32: nds32 FPU port 2018-11-22 18:13:13 +08:00
vdso.c nds32: Fix compiler warning, Wstringop-overflow, in vdso.c 2018-05-23 13:26:22 +08:00
vmlinux.lds.S nds32: linker script: GCOV kernel may refers data in __exit 2018-09-05 10:16:26 +08:00