| /linux/arch/x86/include/asm/trace/ |
| H A D | fpu.h | 11 TP_PROTO(struct fpu *fpu), 12 TP_ARGS(fpu), 15 __field(struct fpu *, fpu) 22 __entry->fpu = fpu; 25 __entry->xfeatures = fpu->fpstate->regs.xsave.header.xfeatures; 26 __entry->xcomp_bv = fpu->fpstate->regs.xsave.header.xcomp_bv; 29 TP_printk("x86/fpu: %p load: %d xfeatures: %llx xcomp_bv: %llx", 30 __entry->fpu, 38 TP_PROTO(struct fpu *fpu), 39 TP_ARGS(fpu) [all …]
|
| /linux/arch/sparc/kernel/ |
| H A D | cpu.c | 60 #define FPU(ver, _name) \ macro 75 FPU(0, "Fujitsu MB86910 or Weitek WTL1164/5"), 76 FPU(1, "Fujitsu MB86911 or Weitek WTL1164/5 or LSI L64831"), 77 FPU(2, "LSI Logic L64802 or Texas Instruments ACT8847"), 79 FPU(3, "Weitek WTL3170/2"), 81 FPU(4, "Lsi Logic/Meiko L64804 or compatible"), 82 FPU(-1, NULL) 99 FPU(0, "ROSS HyperSparc combined IU/FPU"), 100 FPU(1, "Lsi Logic L64814"), 101 FPU(2, "Texas Instruments TMS390-C602A"), [all …]
|
| H A D | sigutil_64.c | 15 int save_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) in save_fpu_state() argument 23 err |= copy_to_user(&fpu->si_float_regs[0], fpregs, in save_fpu_state() 26 err |= copy_to_user(&fpu->si_float_regs[32], fpregs+16, in save_fpu_state() 28 err |= __put_user(current_thread_info()->xfsr[0], &fpu->si_fsr); in save_fpu_state() 29 err |= __put_user(current_thread_info()->gsr[0], &fpu->si_gsr); in save_fpu_state() 30 err |= __put_user(fprs, &fpu->si_fprs); in save_fpu_state() 35 int restore_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) in restore_fpu_state() argument 41 if (((unsigned long) fpu) & 7) in restore_fpu_state() 44 err = get_user(fprs, &fpu->si_fprs); in restore_fpu_state() 48 err |= copy_from_user(fpregs, &fpu->si_float_regs[0], in restore_fpu_state() [all …]
|
| H A D | sigutil_32.c | 15 int save_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) in save_fpu_state() argument 35 err |= __copy_to_user(&fpu->si_float_regs[0], in save_fpu_state() 38 err |= __put_user(current->thread.fsr, &fpu->si_fsr); in save_fpu_state() 39 err |= __put_user(current->thread.fpqdepth, &fpu->si_fpqdepth); in save_fpu_state() 41 err |= __copy_to_user(&fpu->si_fpqueue[0], in save_fpu_state() 49 int restore_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) in restore_fpu_state() argument 53 if (((unsigned long) fpu) & 3) in restore_fpu_state() 68 if (!access_ok(fpu, sizeof(*fpu))) in restore_fpu_state() 71 err = __copy_from_user(¤t->thread.float_regs[0], &fpu->si_float_regs[0], in restore_fpu_state() 73 err |= __get_user(current->thread.fsr, &fpu->si_fsr); in restore_fpu_state() [all …]
|
| /linux/arch/x86/kernel/fpu/ |
| H A D | core.c | 6 * General FPU state handling cleanups 9 #include <asm/fpu/api.h> 10 #include <asm/fpu/regset.h> 11 #include <asm/fpu/sched.h> 12 #include <asm/fpu/signal.h> 13 #include <asm/fpu/types.h> 30 #include <asm/trace/fpu.h> 37 /* The FPU state configuration data for kernel and user space */ 43 * Represents the initial FPU state. It's mostly (but not completely) zeroes, 44 * depending on the FPU hardware format: [all …]
|
| H A D | init.c | 3 * x86 FPU boot time init code: 5 #include <asm/fpu/api.h> 48 * Enable all supported FPU features. Called when a CPU is brought online: 55 /* Start allowing kernel-mode FPU: */ in fpu__init_cpu() 72 pr_info("x86/fpu: Probing for FPU: FSW=0x%04hx FCW=0x%04hx\n", fsw, fcw); in fpu__probe_without_cpuid() 91 pr_emerg("x86/fpu: Giving up, no FPU found and no math emulation present\n"); in fpu__init_system_early_generic() 99 * Boot time FPU feature detection code: 127 * Once per bootup FPU initialization sequences that will run on most x86 CPUs: 132 * Set up the legacy init FPU context. Will be updated when the in fpu__init_system_generic() 151 * We append the 'struct fpu' to the task_struct: [all …]
|
| H A D | xstate.c | 19 #include <asm/fpu/api.h> 20 #include <asm/fpu/regset.h> 21 #include <asm/fpu/signal.h> 22 #include <asm/fpu/xcr.h> 307 pr_info("x86/fpu: Supporting XSAVE feature 0x%03Lx: '%s'\n", mask, name); in print_xstate_features() 328 pr_info("x86/fpu: xstate_offset[%d]: %4d, xstate_sizes[%d]: %4d\n", in print_xstate_offset_size() 351 * We should never fault when copying from a kernel buffer, and the FPU in os_xrstor_booting() 615 * covered by these checks. Only the size of the buffer for task->fpu 690 * This is the size required for the task->fpu buffer. in get_xsave_compacted_size() 761 pr_info("x86/fpu: XSAVE disabled\n"); in fpu__init_disable_system_xstate() [all …]
|
| /linux/arch/mips/kernel/ |
| H A D | asm-offsets.c | 152 OFFSET(THREAD_FPU, task_struct, thread.fpu); in output_thread_fpu_defines() 154 OFFSET(THREAD_FPR0, task_struct, thread.fpu.fpr[0]); in output_thread_fpu_defines() 155 OFFSET(THREAD_FPR1, task_struct, thread.fpu.fpr[1]); in output_thread_fpu_defines() 156 OFFSET(THREAD_FPR2, task_struct, thread.fpu.fpr[2]); in output_thread_fpu_defines() 157 OFFSET(THREAD_FPR3, task_struct, thread.fpu.fpr[3]); in output_thread_fpu_defines() 158 OFFSET(THREAD_FPR4, task_struct, thread.fpu.fpr[4]); in output_thread_fpu_defines() 159 OFFSET(THREAD_FPR5, task_struct, thread.fpu.fpr[5]); in output_thread_fpu_defines() 160 OFFSET(THREAD_FPR6, task_struct, thread.fpu.fpr[6]); in output_thread_fpu_defines() 161 OFFSET(THREAD_FPR7, task_struct, thread.fpu.fpr[7]); in output_thread_fpu_defines() 162 OFFSET(THREAD_FPR8, task_struct, thread.fpu.fpr[8]); in output_thread_fpu_defines() [all …]
|
| H A D | elf.c | 14 #include <asm/fpu.h> 22 /* FPU modes */ 30 * struct mode_req - ABI FPU mode requirements 31 * @single: The program being loaded needs an FPU but it will only issue 35 * loaded needs has no FPU dependency at all (i.e. it has no 36 * FPU instructions). 37 * @fr1: The program being loaded depends on FPU being in FR=1 mode. 38 * @frdefault: The program being loaded depends on the default FPU mode. 40 * @fre: The program being loaded depends on FPU with FRE=1. This mode is 212 /* It's time to determine the FPU mode requirements */ in arch_check_elf() [all …]
|
| H A D | fpu-probe.c | 19 #include <asm/fpu.h> 22 #include "fpu-probe.h" 25 * Get the FPU Implementation/Revision. 39 * Check if the CPU has an external FPU. 47 * Determine the FCSR mask for FPU hardware. 76 * supported by FPU hardware. 151 * to support by the FPU emulator according to the IEEE 754 conformance 223 * strict: accept binaries that request a NaN encoding supported by the FPU 226 * relaxed: accept any binaries regardless of whether supported by the FPU 255 * Set the FIR feature flags for the FPU emulator. [all …]
|
| /linux/arch/x86/include/asm/fpu/ |
| H A D | types.h | 3 * FPU data structures: 11 * The legacy x87 FPU state format, as saved by FSAVE and 15 u32 cwd; /* FPU Control Word */ 16 u32 swd; /* FPU Status Word */ 17 u32 twd; /* FPU Tag Word */ 18 u32 fip; /* FPU IP Offset */ 19 u32 fcs; /* FPU IP Selector */ 20 u32 foo; /* FPU Operand Pointer Offset */ 21 u32 fos; /* FPU Operand Pointer Selector */ 31 * The legacy fx SSE/MMX FPU state format, as saved by FXSAVE and [all …]
|
| H A D | sched.h | 8 #include <asm/fpu/types.h> 10 #include <asm/trace/fpu.h> 12 extern void save_fpregs_to_fpstate(struct fpu *fpu); 19 * FPU state switching for scheduling. 29 * The FPU context is only stored/restored for a user task and 37 struct fpu *old_fpu = x86_task_fpu(old); in switch_fpu() 45 * to user space can avoid the FPU register restore in switch_fpu()
|
| /linux/arch/loongarch/include/asm/ |
| H A D | fpu.h | 35 asmlinkage void _save_lsx(struct loongarch_fpu *fpu); 36 asmlinkage void _restore_lsx(struct loongarch_fpu *fpu); 38 asmlinkage void _restore_lsx_upper(struct loongarch_fpu *fpu); 42 asmlinkage void _save_lasx(struct loongarch_fpu *fpu); 43 asmlinkage void _restore_lasx(struct loongarch_fpu *fpu); 45 asmlinkage void _restore_lasx_upper(struct loongarch_fpu *fpu); 121 _restore_fp(¤t->thread.fpu); in own_fpu_inatomic() 137 _save_fp(&tsk->thread.fpu); in lose_fpu_inatomic() 165 unsigned int fcsr = current->thread.fpu.fcsr; in init_fpu() 175 _save_fp(&tsk->thread.fpu); in save_fp() [all …]
|
| H A D | kvm_vcpu.h | 55 void kvm_save_fpu(struct loongarch_fpu *fpu); 56 void kvm_restore_fpu(struct loongarch_fpu *fpu); 57 void kvm_restore_fcsr(struct loongarch_fpu *fpu); 61 void kvm_save_lsx(struct loongarch_fpu *fpu); 62 void kvm_restore_lsx(struct loongarch_fpu *fpu); 65 static inline void kvm_save_lsx(struct loongarch_fpu *fpu) { } in kvm_save_lsx() argument 66 static inline void kvm_restore_lsx(struct loongarch_fpu *fpu) { } in kvm_restore_lsx() argument 71 void kvm_save_lasx(struct loongarch_fpu *fpu); 72 void kvm_restore_lasx(struct loongarch_fpu *fpu); 75 static inline void kvm_save_lasx(struct loongarch_fpu *fpu) { } in kvm_save_lasx() argument [all …]
|
| /linux/arch/x86/math-emu/ |
| H A D | README | 2 | wm-FPU-emu an FPU emulator for 80386 and 80486SX microprocessors. | 25 wm-FPU-emu is an FPU emulator for Linux. It is derived from wm-emu387 31 My target FPU for wm-FPU-emu is that described in the Intel486 33 facets of the functioning of the FPU are not well covered in the 40 wm-FPU-emu does not implement all of the behaviour of the 80486 FPU, 56 ----------------------- Internals of wm-FPU-emu ----------------------- 82 emulate each FPU instruction to completion without interruption. 99 ----------------------- Limitations of wm-FPU-emu ----------------------- 101 There are a number of differences between the current wm-FPU-emu 102 (version 2.01) and the 80486 FPU (apart from bugs). The differences [all …]
|
| /linux/arch/arc/kernel/ |
| H A D | fpu.c | 3 * fpu.c - save/restore of Floating Point Unit Registers on task switch 9 #include <asm/fpu.h> 14 * To save/restore FPU regs, simplest scheme would use LR/SR insns. 16 * which uses the FPU Exchange insn (DEXCL) to r/w FPU regs. 27 * However we can tweak the read, so that read-out of outgoing task's FPU regs 34 unsigned int *saveto = &prev->thread.fpu.aux_dpfp[0].l; in fpu_save_restore() 35 unsigned int *readfrom = &next->thread.fpu.aux_dpfp[0].l; in fpu_save_restore() 71 struct arc_fpu *save = &prev->thread.fpu; in fpu_save_restore() 72 struct arc_fpu *restore = &next->thread.fpu; in fpu_save_restore()
|
| /linux/tools/perf/pmu-events/arch/x86/amdzen1/ |
| H A D | floating-point.json | 6 …nd dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 13 …nd dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 20 …nd dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 27 …nd dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 34 …nd dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 40 "BriefDescription": "Total number uOps assigned to all fpu pipes.", 41 …nd dual-pipe uOps dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 48 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 55 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 62 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… [all …]
|
| /linux/arch/m68k/kernel/ |
| H A D | process.c | 184 /* Copy the current fpu state */ in copy_thread() 209 /* Restore the state in case the fpu was busy */ in copy_thread() 217 /* Fill in the fpu structure for a core dump. */ 218 int elf_core_copy_task_fpregs(struct task_struct *t, elf_fpregset_t *fpu) in elf_core_copy_task_fpregs() argument 223 memcpy(fpu->fpcntl, current->thread.fpcntl, 12); in elf_core_copy_task_fpregs() 224 memcpy(fpu->fpregs, current->thread.fp, 96); in elf_core_copy_task_fpregs() 225 /* Convert internal fpu reg representation in elf_core_copy_task_fpregs() 229 fpu->fpregs[i] = ((fpu->fpregs[i] & 0xffff0000) << 15) | in elf_core_copy_task_fpregs() 230 ((fpu->fpregs[i] & 0x0000ffff) << 16); in elf_core_copy_task_fpregs() 237 /* First dump the fpu context to avoid protocol violation. */ in elf_core_copy_task_fpregs() [all …]
|
| /linux/arch/loongarch/kernel/ |
| H A D | signal.c | 36 #include <asm/fpu.h> 47 /* Make sure we will not lose FPU ownership */ 67 struct _ctx_layout fpu; member 93 __put_user(get_fpr64(¤t->thread.fpu.fpr[i], 0), in copy_fpu_to_sigcontext() 96 err |= __put_user(current->thread.fpu.fcc, fcc); in copy_fpu_to_sigcontext() 97 err |= __put_user(current->thread.fpu.fcsr, fcsr); in copy_fpu_to_sigcontext() 113 set_fpr64(¤t->thread.fpu.fpr[i], 0, fpr_val); in copy_fpu_from_sigcontext() 115 err |= __get_user(current->thread.fpu.fcc, fcc); in copy_fpu_from_sigcontext() 116 err |= __get_user(current->thread.fpu.fcsr, fcsr); in copy_fpu_from_sigcontext() 130 err |= __put_user(get_fpr64(¤t->thread.fpu.fpr[i], 0), in copy_lsx_to_sigcontext() [all …]
|
| H A D | kfpu.c | 9 #include <asm/fpu.h> 54 _save_lasx(¤t->thread.fpu); in kernel_fpu_begin() 59 _save_lsx(¤t->thread.fpu); in kernel_fpu_begin() 63 _save_fp(¤t->thread.fpu); in kernel_fpu_begin() 79 _restore_lasx(¤t->thread.fpu); in kernel_fpu_end() 84 _restore_lsx(¤t->thread.fpu); in kernel_fpu_end() 88 _restore_fp(¤t->thread.fpu); in kernel_fpu_end()
|
| /linux/drivers/gpu/drm/amd/display/dc/dml/dcn10/ |
| H A D | dcn10_fpu.c | 34 * DOC: DCN10 FPU manipulation Overview 36 * The DCN architecture relies on FPU operations, which require special 38 * want to avoid spreading FPU access across multiple files. With this idea in 39 * mind, this file aims to centralize DCN10 functions that require FPU access 42 * 1. Functions that use FPU operations should be isolated in static functions. 43 * 2. The FPU functions should have the noinline attribute to ensure anything 46 * public interface that not uses any FPU reference. 53 * isolate FPU operations in a single place, we must avoid situations where 55 * file. Note that even if we isolate all FPU functions in a single file and 57 * FPU before we call DC_FP_START. Nevertheless, it is the programmer's [all …]
|
| /linux/arch/x86/include/uapi/asm/ |
| H A D | sigcontext.h | 7 * hierarchy of CPU and FPU state, available to user-space (on the stack) when 79 * The FPU state data structure has had to grow to accommodate the extended FPU 105 * The 32-bit FPU frame: 108 /* Legacy FPU environment: */ 118 __u16 magic; /* 0xffff: regular FPU data only */ 119 /* 0x0000: FXSR FPU data */ 121 /* FXSR FPU environment */ 122 __u32 _fxsr_env[6]; /* FXSR FPU env is ignored */ 125 struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */ 139 * The 64-bit FPU frame. (FXSAVE format and later) [all …]
|
| /linux/tools/perf/pmu-events/arch/x86/amdzen2/ |
| H A D | floating-point.json | 6 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 13 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 20 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 27 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 34 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus…
|
| /linux/tools/perf/pmu-events/arch/x86/amdzen3/ |
| H A D | floating-point.json | 6 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 13 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 20 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 27 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus… 34 …operations (uOps) dispatched to each of the 4 FPU execution pipelines. This event reflects how bus…
|
| /linux/arch/loongarch/kvm/ |
| H A D | vcpu.c | 7 #include <asm/fpu.h> 802 *v = vcpu->arch.fpu.ftop; in kvm_get_one_reg() 892 vcpu->arch.fpu.ftop = v; in kvm_set_one_reg() 990 /* FPU is enabled by default, will support LSX/LASX later. */ in kvm_vcpu_ioctl_enable_cap() 1256 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) in kvm_arch_vcpu_ioctl_get_fpu() argument 1260 fpu->fcc = vcpu->arch.fpu.fcc; in kvm_arch_vcpu_ioctl_get_fpu() 1261 fpu->fcsr = vcpu->arch.fpu.fcsr; in kvm_arch_vcpu_ioctl_get_fpu() 1263 memcpy(&fpu->fpr[i], &vcpu->arch.fpu.fpr[i], FPU_REG_WIDTH / 64); in kvm_arch_vcpu_ioctl_get_fpu() 1268 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) in kvm_arch_vcpu_ioctl_set_fpu() argument 1272 vcpu->arch.fpu.fcc = fpu->fcc; in kvm_arch_vcpu_ioctl_set_fpu() [all …]
|