| /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/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 | asm-prototypes.h | 3 #include <asm/fpu.h> 31 void kvm_save_fpu(struct loongarch_fpu *fpu); 32 void kvm_restore_fpu(struct loongarch_fpu *fpu); 35 void kvm_save_lsx(struct loongarch_fpu *fpu); 36 void kvm_restore_lsx(struct loongarch_fpu *fpu); 40 void kvm_save_lasx(struct loongarch_fpu *fpu); 41 void kvm_restore_lasx(struct loongarch_fpu *fpu);
|
| /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> 48 /* Make sure we will not lose FPU ownership */ 63 struct _ctx_layout fpu; member 89 __put_user(get_fpr64(¤t->thread.fpu.fpr[i], 0), in copy_fpu_to_sigcontext() 92 err |= __put_user(current->thread.fpu.fcc, fcc); in copy_fpu_to_sigcontext() 93 err |= __put_user(current->thread.fpu.fcsr, fcsr); in copy_fpu_to_sigcontext() 109 set_fpr64(¤t->thread.fpu.fpr[i], 0, fpr_val); in copy_fpu_from_sigcontext() 111 err |= __get_user(current->thread.fpu.fcc, fcc); in copy_fpu_from_sigcontext() 112 err |= __get_user(current->thread.fpu.fcsr, fcsr); in copy_fpu_from_sigcontext() 126 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()
|
| H A D | ptrace.c | 40 #include <asm/fpu.h> 57 memset(&target->thread.fpu.fpr, ~0, sizeof(target->thread.fpu.fpr)); in init_fp_ctx() 123 return membuf_write(to, &target->thread.fpu.fpr, in gfpr_get() 134 fpr_val = get_fpr64(&target->thread.fpu.fpr[i], 0); in gfpr_get_simd() 153 if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t)) in fpr_get() 158 r = membuf_write(&to, &target->thread.fpu.fcc, sizeof(target->thread.fpu.fcc)); in fpr_get() 159 r = membuf_write(&to, &target->thread.fpu.fcsr, sizeof(target->thread.fpu.fcsr)); in fpr_get() 169 &target->thread.fpu.fpr, in gfpr_set() 187 set_fpr64(&target->thread.fpu.fpr[i], 0, fpr_val); in gfpr_set_simd() 212 if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t)) in fpr_set() [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/arch/mips/kvm/ |
| H A D | mips.c | 24 #include <asm/fpu.h> 650 struct mips_fpu_struct *fpu = &vcpu->arch.fpu; in kvm_mips_get_reg() local 680 v = get_fpr32(&fpu->fpr[idx], 0); in kvm_mips_get_reg() 682 v = get_fpr32(&fpu->fpr[idx & ~1], idx & 1); in kvm_mips_get_reg() 691 v = get_fpr64(&fpu->fpr[idx], 0); in kvm_mips_get_reg() 701 v = fpu->fcr31; in kvm_mips_get_reg() 714 vs[0] = get_fpr64(&fpu->fpr[idx], 0); in kvm_mips_get_reg() 715 vs[1] = get_fpr64(&fpu->fpr[idx], 1); in kvm_mips_get_reg() 718 vs[0] = get_fpr64(&fpu->fpr[idx], 1); in kvm_mips_get_reg() 719 vs[1] = get_fpr64(&fpu->fpr[idx], 0); in kvm_mips_get_reg() [all …]
|
| /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/mips/include/asm/ |
| H A D | fpu.h | 30 * This enum specifies a mode in which we want the FPU to operate, for cores 60 /* just enable the FPU in its current mode */ in __enable_fpu() 76 /* we only have a 32-bit FPU */ in __enable_fpu() 132 if (current->thread.fpu.fcr31 & FPU_CSR_NAN2008) { in __own_fpu() 184 tsk->thread.fpu.fcr31 = in lose_fpu_inatomic() 195 /* FPU should not have been left enabled with no owner */ in lose_fpu_inatomic() 197 "Orphaned FPU left enabled"); in lose_fpu_inatomic() 228 memset(&target->thread.fpu.fpr, ~0, sizeof(target->thread.fpu.fpr)); in init_fp_ctx() 263 return tsk->thread.fpu.fpr; in get_fpu_regs()
|
| /linux/arch/sh/ |
| H A D | Kconfig.cpu | 21 prompt "FPU support" 25 have FPU units (ie, SH77xx). 27 This option must be set in order to enable the FPU. 31 prompt "FPU emulation support" 34 Selecting this option will enable support for software FPU emulation.
|
| /linux/arch/sh/include/asm/ |
| H A D | processor_32.h | 42 * When it's set, it means the processor doesn't have right to use FPU, 63 * FPU structure and data 75 /* Dummy fpu emulator */ 112 * that the FPU is used. If this is over a threshold, the lazy fpu 115 * lazy again; this to deal with bursty apps that only use FPU for 132 * FPU lazy state save handling.
|
| /linux/arch/mips/loongson64/ |
| H A D | cop2-ex.c | 20 #include <asm/fpu.h> 56 /* If FPU is owned, we needn't init or restore fp */ in loongson_cu2_call() 98 set_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rt], 0, value); in loongson_cu2_call() 99 set_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rq], 0, value_next); in loongson_cu2_call() 131 value_next = get_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rq], 0); in loongson_cu2_call() 137 value = get_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lswc2_format.rt], 0); in loongson_cu2_call() 203 set_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0, value); in loongson_cu2_call() 219 set_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0, value); in loongson_cu2_call() 283 value = get_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0); in loongson_cu2_call() 301 value = get_fpr64(¤t->thread.fpu.fpr[insn.loongson3_lsdc2_format.rt], 0); in loongson_cu2_call()
|