Home
last modified time | relevance | path

Searched full:fpu (Results 1 – 25 of 808) sorted by relevance

12345678910>>...33

/openbmc/linux/arch/x86/include/asm/trace/
H A Dfpu.h11 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 …]
/openbmc/linux/arch/x86/kernel/fpu/
H A Dcontext.h5 #include <asm/fpu/xstate.h>
6 #include <asm/trace/fpu.h>
8 /* Functions related to FPU context tracking */
11 * The in-register FPU state for an FPU context on a CPU is assumed to be
12 * valid if the fpu->last_cpu matches the CPU, and the fpu_fpregs_owner_ctx
13 * matches the FPU.
15 * If the FPU register state is valid, the kernel can skip restoring the
16 * FPU state from memory.
18 * Any code that clobbers the FPU registers or updates the in-memory
19 * FPU state for a task MUST let the rest of the kernel know that the
[all …]
H A Dcore.c6 * 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>
29 #include <asm/trace/fpu.h>
36 /* The FPU state configuration data for kernel and user space */
41 * Represents the initial FPU state. It's mostly (but not completely) zeroes,
42 * depending on the FPU hardware format:
[all …]
H A Dregset.c3 * FPU register's regset abstraction, for ptrace, core dumps, etc.
8 #include <asm/fpu/api.h>
9 #include <asm/fpu/signal.h>
10 #include <asm/fpu/regset.h>
40 * owns the FPU then the memory state has to be synchronized and the
41 * FPU register state preserved. Otherwise fpstate is already in sync.
46 static void sync_fpstate(struct fpu *fpu) in sync_fpstate() argument
48 if (fpu == &current->thread.fpu) in sync_fpstate()
49 fpu_sync_fpstate(fpu); in sync_fpstate()
53 * Invalidate cached FPU registers before modifying the stopped target
[all …]
H A Dinit.c3 * x86 FPU boot time init code:
5 #include <asm/fpu/api.h>
41 fpstate_init_soft(&current->thread.fpu.fpstate->regs.soft); in fpu__init_cpu_generic()
48 * Enable all supported FPU features. Called when a CPU is brought online:
69 pr_info("x86/fpu: Probing for FPU: FSW=0x%04hx FCW=0x%04hx\n", fsw, fcw); in fpu__probe_without_cpuid()
86 pr_emerg("x86/fpu: Giving up, no FPU found and no math emulation present\n"); in fpu__init_system_early_generic()
94 * Boot time FPU feature detection code:
123 * Once per bootup FPU initialization sequences that will run on most x86 CPUs:
128 * Set up the legacy init FPU context. Will be updated when the in fpu__init_system_generic()
147 * We append the 'struct fpu' to the task_struct:
[all …]
H A Dsignal.c3 * FPU signal frame handling routines.
10 #include <asm/fpu/signal.h>
11 #include <asm/fpu/regset.h>
12 #include <asm/fpu/xstate.h>
16 #include <asm/trace/fpu.h>
41 fx_sw->xstate_size > current->thread.fpu.fpstate->user_size || in check_xstate_in_sigframe()
57 trace_x86_fpu_xstate_check_failed(&current->thread.fpu); in check_xstate_in_sigframe()
72 struct xregs_state *xsave = &tsk->thread.fpu.fpstate->regs.xsave; in save_fsave_header()
78 fxsave(&tsk->thread.fpu.fpstate->regs.fxsave); in save_fsave_header()
170 * Save the fpu, extended register state to the user signal frame.
[all …]
/openbmc/linux/arch/sparc/kernel/
H A Dcpu.c60 #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 Dsigutil_64.c15 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 Dsigutil_32.c15 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(&current->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 …]
/openbmc/openbmc/poky/meta/conf/machine/include/microblaze/
H A Dfeature-microblaze-math.inc7 TUNEVALID[fpu-soft] = "Software FPU"
8 TUNEVALID[fpu-hard] = "Hardware FPU in basic mode"
9 TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructi…
11 TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended"
12 TUNECONFLICTS[fpu-hard] = "fpu-soft"
13 TUNECONFLICTS[fpu-hard-extended] = "fpu-soft"
21 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}"
22 TUNE_CCARGS .= "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], ' -mha…
23 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', ' -mxl-float-convert -mx…
25 # Set target fpu (bitbake known target) to soft or hard (basic or extended)
[all …]
/openbmc/linux/arch/mips/kernel/
H A Dasm-offsets.c144 OFFSET(THREAD_FPU, task_struct, thread.fpu); in output_thread_fpu_defines()
146 OFFSET(THREAD_FPR0, task_struct, thread.fpu.fpr[0]); in output_thread_fpu_defines()
147 OFFSET(THREAD_FPR1, task_struct, thread.fpu.fpr[1]); in output_thread_fpu_defines()
148 OFFSET(THREAD_FPR2, task_struct, thread.fpu.fpr[2]); in output_thread_fpu_defines()
149 OFFSET(THREAD_FPR3, task_struct, thread.fpu.fpr[3]); in output_thread_fpu_defines()
150 OFFSET(THREAD_FPR4, task_struct, thread.fpu.fpr[4]); in output_thread_fpu_defines()
151 OFFSET(THREAD_FPR5, task_struct, thread.fpu.fpr[5]); in output_thread_fpu_defines()
152 OFFSET(THREAD_FPR6, task_struct, thread.fpu.fpr[6]); in output_thread_fpu_defines()
153 OFFSET(THREAD_FPR7, task_struct, thread.fpu.fpr[7]); in output_thread_fpu_defines()
154 OFFSET(THREAD_FPR8, task_struct, thread.fpu.fpr[8]); in output_thread_fpu_defines()
[all …]
H A Delf.c14 #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 …]
/openbmc/linux/arch/x86/include/asm/fpu/
H A Dapi.h6 * General FPU state handling cleanups
15 #include <asm/fpu/types.h>
18 * Use kernel_fpu_begin/end() if you intend to use FPU in kernel context. It
21 * If you intend to use the FPU in irq/softirq you need to check first with
25 /* Kernel FPU states to initialize in kernel_fpu_begin_mask() */
53 * Use fpregs_lock() while editing CPU's FPU registers or fpu->fpstate.
54 * A context switch will (and softirq might) save CPU's FPU registers to
55 * fpu->fpstate.regs and set TIF_NEED_FPU_LOAD leaving CPU's FPU registers in
86 * FPU state gets lazily restored before returning to userspace. So when in the
87 * kernel, the valid FPU state may be kept in the buffer. This function will force
[all …]
H A Dsched.h8 #include <asm/fpu/types.h>
10 #include <asm/trace/fpu.h>
12 extern void save_fpregs_to_fpstate(struct fpu *fpu);
13 extern void fpu__drop(struct fpu *fpu);
19 * FPU state switching for scheduling.
29 * If TIF_NEED_FPU_LOAD is cleared then the CPU's FPU registers
30 * are saved in the current thread's FPU register state.
32 * If TIF_NEED_FPU_LOAD is set then CPU's FPU registers may not
33 * hold current()'s FPU registers. It is required to load the
37 * The FPU context is only stored/restored for a user task and
[all …]
H A Dtypes.h3 * FPU data structures:
9 * The legacy x87 FPU state format, as saved by FSAVE and
13 u32 cwd; /* FPU Control Word */
14 u32 swd; /* FPU Status Word */
15 u32 twd; /* FPU Tag Word */
16 u32 fip; /* FPU IP Offset */
17 u32 fcs; /* FPU IP Selector */
18 u32 foo; /* FPU Operand Pointer Offset */
19 u32 fos; /* FPU Operand Pointer Selector */
29 * The legacy fx SSE/MMX FPU state format, as saved by FXSAVE and
[all …]
/openbmc/linux/arch/s390/include/asm/fpu/
H A Dinternal.h3 * FPU state and register content conversion primitives
14 #include <asm/fpu/types.h>
41 static inline void fpregs_store(_s390_fp_regs *fpregs, struct fpu *fpu) in fpregs_store() argument
44 fpregs->fpc = fpu->fpc; in fpregs_store()
46 convert_vx_to_fp((freg_t *)&fpregs->fprs, fpu->vxrs); in fpregs_store()
48 memcpy((freg_t *)&fpregs->fprs, fpu->fprs, in fpregs_store()
52 static inline void fpregs_load(_s390_fp_regs *fpregs, struct fpu *fpu) in fpregs_load() argument
54 fpu->fpc = fpregs->fpc; in fpregs_load()
56 convert_fp_to_vx(fpu->vxrs, (freg_t *)&fpregs->fprs); in fpregs_load()
58 memcpy(fpu->fprs, (freg_t *)&fpregs->fprs, in fpregs_load()
/openbmc/linux/arch/loongarch/include/asm/
H A Dfpu.h31 extern void _save_lsx(struct loongarch_fpu *fpu);
32 extern void _restore_lsx(struct loongarch_fpu *fpu);
34 extern void _restore_lsx_upper(struct loongarch_fpu *fpu);
36 extern void _save_lasx(struct loongarch_fpu *fpu);
37 extern void _restore_lasx(struct loongarch_fpu *fpu);
39 extern void _restore_lasx_upper(struct loongarch_fpu *fpu);
113 _restore_fp(&current->thread.fpu); in own_fpu_inatomic()
129 _save_fp(&tsk->thread.fpu); in lose_fpu_inatomic()
157 unsigned int fcsr = current->thread.fpu.fcsr; in init_fpu()
167 _save_fp(&tsk->thread.fpu); in save_fp()
[all …]
/openbmc/openbmc/poky/meta/conf/machine/include/powerpc/
H A Darch-powerpc.inc21 TUNEVALID[fpu-hard] = "Use hardware FPU."
22 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', '', d)}"
24 TUNEVALID[fpu-soft] = "Use software FPU."
25 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', ' -msoft-float', '', d)}"
26 TARGET_FPU .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', 'soft', '', d)}"
33 TUNE_FEATURES:tune-powerpc-nf = "m32 fpu-soft bigendian"
38 TUNE_FEATURES:tune-powerpc = "m32 fpu-hard bigendian"
43 TUNE_FEATURES:tune-powerpcle-nf = "m32 fpu-soft"
48 TUNE_FEATURES:tune-powerpcle = "m32 fpu-hard"
/openbmc/linux/arch/x86/math-emu/
H A DREADME2 | 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 …]
/openbmc/linux/arch/arc/kernel/
H A Dfpu.c3 * 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()
/openbmc/linux/tools/perf/pmu-events/arch/x86/amdzen1/
H A Dfloating-point.json6 …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 …]
/openbmc/linux/arch/m68k/kernel/
H A Dprocess.c183 /* Copy the current fpu state */ in copy_thread()
208 /* Restore the state in case the fpu was busy */ in copy_thread()
216 /* Fill in the fpu structure for a core dump. */
217 int elf_core_copy_task_fpregs(struct task_struct *t, elf_fpregset_t *fpu) in elf_core_copy_task_fpregs() argument
222 memcpy(fpu->fpcntl, current->thread.fpcntl, 12); in elf_core_copy_task_fpregs()
223 memcpy(fpu->fpregs, current->thread.fp, 96); in elf_core_copy_task_fpregs()
224 /* Convert internal fpu reg representation in elf_core_copy_task_fpregs()
228 fpu->fpregs[i] = ((fpu->fpregs[i] & 0xffff0000) << 15) | in elf_core_copy_task_fpregs()
229 ((fpu->fpregs[i] & 0x0000ffff) << 16); in elf_core_copy_task_fpregs()
236 /* First dump the fpu context to avoid protocol violation. */ in elf_core_copy_task_fpregs()
[all …]
/openbmc/qemu/linux-user/sparc/
H A Dsignal.c161 * User can only change condition codes and FPU enabling in %psr. in restore_pt_regs()
162 * But don't bother with FPU enabling, since a real kernel would in restore_pt_regs()
163 * just re-enable the FPU upon the next fpu trap. in restore_pt_regs()
194 static void save_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) in save_fpu() argument
200 __put_user(env->fpr[i].ll, &fpu->si_double_regs[i]); in save_fpu()
202 __put_user(cpu_get_fsr(env), &fpu->si_fsr); in save_fpu()
203 __put_user(env->gsr, &fpu->si_gsr); in save_fpu()
204 __put_user(env->fprs, &fpu->si_fprs); in save_fpu()
207 __put_user(env->fpr[i].ll, &fpu->si_double_regs[i]); in save_fpu()
209 __put_user(cpu_get_fsr(env), &fpu->si_fsr); in save_fpu()
[all …]
/openbmc/linux/arch/loongarch/kernel/
H A Dkfpu.c8 #include <asm/fpu.h>
36 _save_lasx(&current->thread.fpu); in kernel_fpu_begin()
41 _save_lsx(&current->thread.fpu); in kernel_fpu_begin()
45 _save_fp(&current->thread.fpu); in kernel_fpu_begin()
61 _restore_lasx(&current->thread.fpu); in kernel_fpu_end()
66 _restore_lsx(&current->thread.fpu); in kernel_fpu_end()
70 _restore_fp(&current->thread.fpu); in kernel_fpu_end()
/openbmc/linux/drivers/gpu/drm/amd/display/amdgpu_dm/
H A Ddc_fpu.c30 #include <asm/fpu/api.h>
37 #include <asm/fpu.h>
41 * DOC: DC FPU manipulation overview
43 * DC core uses FPU operations in multiple parts of the code, which requires a
47 * summary, in this file, you can find functions related to FPU operation
54 * dc_assert_fp_enabled - Check if FPU protection is enabled
56 * This function tells if the code is already under FPU protection or not. A
57 * function that works as an API for a set of FPU operations can use this
73 * dc_fpu_begin - Enables FPU protection
117 * dc_fpu_end - Disable FPU protection

12345678910>>...33