| /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; 30 __entry->fpu, 38 TP_PROTO(struct fpu *fpu), 39 TP_ARGS(fpu) 43 TP_PROTO(struct fpu *fpu), [all …]
|
| /linux/arch/x86/kernel/fpu/ |
| H A D | core.c | 58 DEFINE_PER_CPU(struct fpu *, fpu_fpregs_owner_ctx); 61 struct fpu *x86_task_fpu(struct task_struct *task) in x86_task_fpu() 118 static void update_avx_timestamp(struct fpu *fpu) in update_avx_timestamp() argument 123 if (fpu->fpstate->regs.xsave.header.xfeatures & AVX512_TRACKING_MASK) in update_avx_timestamp() 124 fpu->avx512_timestamp = jiffies; in update_avx_timestamp() 141 void save_fpregs_to_fpstate(struct fpu *fpu) in save_fpregs_to_fpstate() argument 144 os_xsave(fpu->fpstate); in save_fpregs_to_fpstate() 145 update_avx_timestamp(fpu); in save_fpregs_to_fpstate() 150 fxsave(&fpu->fpstate->regs.fxsave); in save_fpregs_to_fpstate() 158 asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->fpstate->regs.fsave)); in save_fpregs_to_fpstate() [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 | ptrace.c | 354 fcr31 = child->thread.fpu.fcr31; in ptrace_setfcr31() 356 child->thread.fpu.fcr31 = (value & ~mask) | (fcr31 & mask); in ptrace_setfcr31() 376 __put_user(child->thread.fpu.fcr31, data + 64); in ptrace_getfpregs() 416 membuf_write(to, &target->thread.fpu, in fpr_get_fpa() 432 membuf_store(to, get_fpr64(&target->thread.fpu.fpr[i], 0)); in fpr_get_msa() 444 if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t)) in fpr_get() 449 membuf_write(&to, &target->thread.fpu.fcr31, sizeof(u32)); in fpr_get() 464 &target->thread.fpu, in fpr_set_fpa() 489 set_fpr64(&target->thread.fpu.fpr[i], 0, fpr_val); in fpr_set_msa() 524 if (sizeof(target->thread.fpu.fpr[0]) == sizeof(elf_fpreg_t)) in fpr_set() [all …]
|
| H A D | ptrace32.c | 117 tmp = child->thread.fpu.fcr31; in compat_arch_ptrace() 215 memset(&child->thread.fpu, ~0, in compat_arch_ptrace() 216 sizeof(child->thread.fpu)); in compat_arch_ptrace() 217 child->thread.fpu.fcr31 = 0; in compat_arch_ptrace() 233 child->thread.fpu.fcr31 = data; in compat_arch_ptrace()
|
| H A D | elf.c | 318 t->thread.fpu.fcr31 = c->fpu_csr31; in mips_set_personality_nan() 322 t->thread.fpu.fcr31 &= ~FPU_CSR_NAN2008; in mips_set_personality_nan() 324 t->thread.fpu.fcr31 &= ~FPU_CSR_ABS2008; in mips_set_personality_nan() 328 t->thread.fpu.fcr31 |= FPU_CSR_NAN2008; in mips_set_personality_nan() 330 t->thread.fpu.fcr31 |= FPU_CSR_ABS2008; in mips_set_personality_nan()
|
| /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 | 56 void kvm_save_fpu(struct loongarch_fpu *fpu); 57 void kvm_restore_fpu(struct loongarch_fpu *fpu); 58 void kvm_restore_fcsr(struct loongarch_fpu *fpu); 62 void kvm_save_lsx(struct loongarch_fpu *fpu); 63 void kvm_restore_lsx(struct loongarch_fpu *fpu); 66 static inline void kvm_save_lsx(struct loongarch_fpu *fpu) { } in kvm_save_lsx() argument 67 static inline void kvm_restore_lsx(struct loongarch_fpu *fpu) { } in kvm_restore_lsx() argument 72 void kvm_save_lasx(struct loongarch_fpu *fpu); 73 void kvm_restore_lasx(struct loongarch_fpu *fpu); 76 static inline void kvm_save_lasx(struct loongarch_fpu *fpu) { } in kvm_save_lasx() argument [all …]
|
| /linux/arch/sparc/kernel/ |
| 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 …]
|
| H A D | cpu.c | 283 const struct fpu_info *fpu; in set_cpu_and_fpu() local 296 fpu = &manuf->fpu_info[0]; in set_cpu_and_fpu() 297 while (fpu->fp_vers != -1) in set_cpu_and_fpu() 299 if (fpu->fp_vers == fpu_vers) { in set_cpu_and_fpu() 300 sparc_fpu_type = fpu->name; in set_cpu_and_fpu() 303 fpu++; in set_cpu_and_fpu()
|
| /linux/arch/m68k/kernel/ |
| H A D | process.c | 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() 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() 248 : "m" (fpu->fpcntl[0]), in elf_core_copy_task_fpregs() 249 "m" (fpu->fpcntl[1]), in elf_core_copy_task_fpregs() 250 "m" (fpu->fpcntl[2]), in elf_core_copy_task_fpregs() 251 "m" (fpu->fpregs[0]) in elf_core_copy_task_fpregs() 256 : "m" (fpu->fpcntl[0]) in elf_core_copy_task_fpregs() [all …]
|
| /linux/arch/loongarch/kernel/ |
| H A D | kfpu.c | 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 | signal.c | 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() 132 err |= __put_user(get_fpr64(¤t->thread.fpu.fpr[i], 1), in copy_lsx_to_sigcontext() 135 err |= __put_user(current->thread.fpu.fcc, fcc); in copy_lsx_to_sigcontext() [all …]
|
| H A D | ptrace.c | 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() 220 &target->thread.fpu.fcc, fcc_start, in fpr_set() [all …]
|
| /linux/arch/arc/kernel/ |
| H A D | fpu.c | 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/arch/mips/loongson64/ |
| H A D | cop2-ex.c | 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()
|
| /linux/arch/mips/kvm/ |
| H A D | mips.c | 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() 730 v = fpu->msacsr; in kvm_mips_get_reg() [all …]
|
| /linux/arch/m68k/math-emu/ |
| H A D | fp_movem.S | 74 printf PDECODE,"->" | fpu -> cpu 76 1: printf PDECODE,"<-" | fpu <- cpu 132 swap %d1 | get fpu register list 141 | move register from memory into fpu 161 | move register from fpu into memory 218 printf PDECODE,"->" | fpu -> cpu 220 1: printf PDECODE,"<-" | fpu <- cpu 319 swap %d1 | get fpu register list 325 | move register from memory into fpu 336 | move register from fpu into memory
|
| /linux/arch/x86/include/asm/fpu/ |
| H A D | sched.h | 12 extern void save_fpregs_to_fpstate(struct fpu *fpu); 37 struct fpu *old_fpu = x86_task_fpu(old); in switch_fpu()
|
| /linux/arch/mips/include/asm/ |
| H A D | fpu.h | 132 if (current->thread.fpu.fcr31 & FPU_CSR_NAN2008) { in __own_fpu() 184 tsk->thread.fpu.fcr31 = 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/arm/vfp/ |
| H A D | vfphw.S | 83 .fpu vfpv2 98 .fpu vfpv2 113 .fpu vfpv2 121 .fpu vfpv3 137 .fpu vfpv2 144 .fpu vfpv3
|
| /linux/arch/loongarch/kvm/ |
| H A D | vcpu.c | 808 *v = vcpu->arch.fpu.ftop; in kvm_get_one_reg() 898 vcpu->arch.fpu.ftop = v; in kvm_set_one_reg() 1262 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) in kvm_arch_vcpu_ioctl_get_fpu() argument 1266 fpu->fcc = vcpu->arch.fpu.fcc; in kvm_arch_vcpu_ioctl_get_fpu() 1267 fpu->fcsr = vcpu->arch.fpu.fcsr; in kvm_arch_vcpu_ioctl_get_fpu() 1269 memcpy(&fpu->fpr[i], &vcpu->arch.fpu.fpr[i], FPU_REG_WIDTH / 64); in kvm_arch_vcpu_ioctl_get_fpu() 1274 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) in kvm_arch_vcpu_ioctl_set_fpu() argument 1278 vcpu->arch.fpu.fcc = fpu->fcc; in kvm_arch_vcpu_ioctl_set_fpu() 1279 vcpu->arch.fpu.fcsr = fpu->fcsr; in kvm_arch_vcpu_ioctl_set_fpu() 1281 memcpy(&vcpu->arch.fpu.fpr[i], &fpu->fpr[i], FPU_REG_WIDTH / 64); in kvm_arch_vcpu_ioctl_set_fpu() [all …]
|
| /linux/arch/csky/kernel/ |
| H A D | process.c | 73 int elf_core_copy_task_fpregs(struct task_struct *t, elf_fpregset_t *fpu) in elf_core_copy_task_fpregs() argument 75 memcpy(fpu, ¤t->thread.user_fp, sizeof(*fpu)); in elf_core_copy_task_fpregs()
|
| /linux/arch/sh/math-emu/ |
| H A D | math.c | 476 static void fpu_init(struct sh_fpu_soft_struct *fpu) in fpu_init() argument 480 fpu->fpscr = FPSCR_INIT; in fpu_init() 481 fpu->fpul = 0; in fpu_init() 484 fpu->fp_regs[i] = 0; in fpu_init() 485 fpu->xfp_regs[i]= 0; in fpu_init() 497 struct sh_fpu_soft_struct *fpu = &(tsk->thread.xstate->softfpu); in do_fpu_inst() local 503 fpu_init(fpu); in do_fpu_inst() 507 return fpu_emulate(inst, fpu, regs); in do_fpu_inst()
|