/linux/arch/loongarch/kernel/ |
H A D | signal.c | 60 _save_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr); 62 _restore_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr); 64 _save_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr); 66 _restore_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr); 110 uint32_t __user *fcsr = &ctx->fcsr; in copy_fpu_to_sigcontext() local 118 err |= __put_user(current->thread.fpu.fcsr, fcsr); in copy_fpu_to_sigcontext() 130 uint32_t __user *fcsr = &ctx->fcsr; in copy_fpu_from_sigcontext() local 137 err |= __get_user(current->thread.fpu.fcsr, fcsr); in copy_fpu_from_sigcontext() 148 uint32_t __user *fcsr = &ctx->fcsr; in copy_lsx_to_sigcontext() local 157 err |= __put_user(current->thread.fpu.fcsr, fcsr); in copy_lsx_to_sigcontext() [all …]
|
H A D | traps.c | 453 static void force_fcsr_sig(unsigned long fcsr, in force_fcsr_sig() argument 458 if (fcsr & FPU_CSR_INV_X) in force_fcsr_sig() 460 else if (fcsr & FPU_CSR_DIV_X) in force_fcsr_sig() 462 else if (fcsr & FPU_CSR_OVF_X) in force_fcsr_sig() 464 else if (fcsr & FPU_CSR_UDF_X) in force_fcsr_sig() 466 else if (fcsr & FPU_CSR_INE_X) in force_fcsr_sig() 472 static int process_fpemu_return(int sig, void __user *fault_addr, unsigned long fcsr) in process_fpemu_return() argument 481 force_fcsr_sig(fcsr, fault_addr, current); in process_fpemu_return() 507 asmlinkage void noinstr do_fpe(struct pt_regs *regs, unsigned long fcsr) in do_fpe() argument 518 write_fcsr(LOONGARCH_FCSR0, fcsr in do_fpe() [all...] |
H A D | cpu-probe.c | 32 unsigned long sr, mask, fcsr, fcsr0, fcsr1; in cpu_set_fpu_fcsr_mask() local 34 fcsr = c->fpu_csr0; in cpu_set_fpu_fcsr_mask() 40 fcsr0 = fcsr & mask; in cpu_set_fpu_fcsr_mask() 44 fcsr1 = fcsr | ~mask; in cpu_set_fpu_fcsr_mask() 48 write_fcsr(LOONGARCH_FCSR0, fcsr); in cpu_set_fpu_fcsr_mask()
|
H A D | genex.S | 94 BUILD_HANDLER fpe fpe fcsr
|
H A D | ptrace.c | 159 r = membuf_write(&to, &target->thread.fpu.fcsr, sizeof(target->thread.fpu.fcsr)); in fpr_get() 223 &target->thread.fpu.fcsr, fcsr_start, in fpr_set()
|
H A D | kgdb.c | 134 memcpy(mem, (void *)¤t->thread.fpu.fcsr, reg_size); in dbg_get_reg() 175 memcpy((void *)¤t->thread.fpu.fcsr, mem, reg_size); in dbg_set_reg()
|
H A D | process.c | 88 current->thread.fpu.fcsr = boot_cpu_data.fpu_csr0; in start_thread()
|
/linux/arch/mips/kernel/ |
H A D | fpu-probe.c | 51 unsigned long sr, mask, fcsr, fcsr0, fcsr1; in cpu_set_fpu_fcsr_mask() local 53 fcsr = c->fpu_csr31; in cpu_set_fpu_fcsr_mask() 59 fcsr0 = fcsr & mask; in cpu_set_fpu_fcsr_mask() 63 fcsr1 = fcsr | ~mask; in cpu_set_fpu_fcsr_mask() 67 write_32bit_cp1_register(CP1_STATUS, fcsr); in cpu_set_fpu_fcsr_mask() 84 unsigned long sr, fir, fcsr, fcsr0, fcsr1; in cpu_set_fpu_2008() local 91 fcsr = read_32bit_cp1_register(CP1_STATUS); in cpu_set_fpu_2008() 98 fcsr0 = fcsr & ~(FPU_CSR_ABS2008 | FPU_CSR_NAN2008 | in cpu_set_fpu_2008() 103 fcsr1 = fcsr | FPU_CSR_ABS2008 | FPU_CSR_NAN2008; in cpu_set_fpu_2008() 107 write_32bit_cp1_register(CP1_STATUS, fcsr); in cpu_set_fpu_2008() [all …]
|
H A D | ptrace.c | 597 unsigned int fcsr; member 629 .fcsr = target->thread.fpu.fcr31, in msa_get() 686 target->thread.fpu.fcr31 = ctrl_regs.fcsr & ~FPU_CSR_ALL_X; in msa_set()
|
/linux/arch/riscv/kvm/ |
H A D | vcpu_fp.c | 93 if (reg_num == KVM_REG_RISCV_FP_F_REG(fcsr)) in kvm_riscv_vcpu_get_reg_fp() 94 reg_val = &cntx->fp.f.fcsr; in kvm_riscv_vcpu_get_reg_fp() 102 if (reg_num == KVM_REG_RISCV_FP_D_REG(fcsr)) { in kvm_riscv_vcpu_get_reg_fp() 105 reg_val = &cntx->fp.d.fcsr; in kvm_riscv_vcpu_get_reg_fp() 138 if (reg_num == KVM_REG_RISCV_FP_F_REG(fcsr)) in kvm_riscv_vcpu_set_reg_fp() 139 reg_val = &cntx->fp.f.fcsr; in kvm_riscv_vcpu_set_reg_fp() 147 if (reg_num == KVM_REG_RISCV_FP_D_REG(fcsr)) { in kvm_riscv_vcpu_set_reg_fp() 150 reg_val = &cntx->fp.d.fcsr; in kvm_riscv_vcpu_set_reg_fp()
|
/linux/arch/loongarch/include/uapi/asm/ |
H A D | sigcontext.h | 40 __u32 fcsr; member 49 __u32 fcsr; member 58 __u32 fcsr; member
|
H A D | ptrace.h | 46 uint32_t fcsr; member
|
/linux/arch/riscv/include/uapi/asm/ |
H A D | ptrace.h | 61 __u32 fcsr; member 66 __u32 fcsr; member 71 __u32 fcsr; member
|
/linux/arch/riscv/kernel/ |
H A D | ptrace.c | 65 membuf_write(&to, fstate, offsetof(struct __riscv_d_ext_state, fcsr)); in riscv_fpr_get() 66 membuf_store(&to, fstate->fcsr); in riscv_fpr_get() 79 offsetof(struct __riscv_d_ext_state, fcsr)); in riscv_fpr_set() 82 offsetof(struct __riscv_d_ext_state, fcsr) + in riscv_fpr_set() 83 sizeof(fstate->fcsr)); in riscv_fpr_set()
|
H A D | asm-offsets.c | 85 OFFSET(TASK_THREAD_FCSR, task_struct, thread.fstate.fcsr); in asm_offsets() 251 OFFSET(KVM_ARCH_FP_F_FCSR, kvm_cpu_context, fp.f.fcsr); in asm_offsets() 287 OFFSET(KVM_ARCH_FP_D_FCSR, kvm_cpu_context, fp.d.fcsr); in asm_offsets() 480 offsetof(struct task_struct, thread.fstate.fcsr) in asm_offsets()
|
H A D | head.S | 434 csrw fcsr, 0
|
/linux/arch/loongarch/include/asm/ |
H A D | processor.h | 84 uint32_t fcsr; member 181 .fcsr = 0, \
|
H A D | exception.h | 20 asmlinkage void noinstr do_fpe(struct pt_regs *regs, unsigned long fcsr);
|
/linux/arch/loongarch/kvm/ |
H A D | vcpu.c | 1218 fpu->fcsr = vcpu->arch.fpu.fcsr; in kvm_arch_vcpu_ioctl_get_fpu() 1230 vcpu->arch.fpu.fcsr = fpu->fcsr; in kvm_arch_vcpu_ioctl_set_fpu() 1263 static void kvm_check_fcsr(struct kvm_vcpu *vcpu, unsigned long fcsr) in kvm_check_fcsr() argument 1269 if (fcsr & FPU_CSR_TM) in kvm_check_fcsr() 1283 static inline void kvm_check_fcsr(struct kvm_vcpu *vcpu, unsigned long fcsr) { } in kvm_check_fcsr() argument 1296 kvm_check_fcsr(vcpu, vcpu->arch.fpu.fcsr); in kvm_own_fpu() 1316 kvm_check_fcsr(vcpu, vcpu->arch.fpu.fcsr); in kvm_own_lsx() 1351 kvm_check_fcsr(vcpu, vcpu->arch.fpu.fcsr); in kvm_own_lasx()
|
/linux/Documentation/virt/kvm/ |
H A D | api.rst | 801 __u32 fcsr; 839 __u32 fcsr; 2864 0x8020 0000 0500 0020 fcsr Floating point control and status register 2870 0x8020 0000 06 <index into the __riscv_d_ext_state struct:24> (fcsr) 2871 0x8030 0000 06 <index into the __riscv_d_ext_state struct:24> (non-fcsr) 2881 0x8020 0000 0600 0020 fcsr Floating point control and status register
|