arch/powerpc/kvm/book3s_paired_singles.c
Source file repositories/reference/linux-study-clean/arch/powerpc/kvm/book3s_paired_singles.c
File Facts
- System
- Linux kernel
- Corpus path
arch/powerpc/kvm/book3s_paired_singles.c- Extension
.c- Size
- 30658 bytes
- Lines
- 1264
- Domain
- Architecture Layer
- Bucket
- arch/powerpc
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
asm/kvm.hasm/kvm_ppc.hasm/disassemble.hasm/kvm_book3s.hasm/kvm_fpu.hasm/reg.hasm/cacheflush.hasm/switch_to.hlinux/vmalloc.h
Detected Declarations
function kvmppc_sync_qprfunction kvmppc_inject_pffunction kvmppc_emulate_fpr_loadfunction kvmppc_emulate_fpr_storefunction kvmppc_emulate_psq_loadfunction kvmppc_emulate_psq_storefunction inst_get_fieldfunction kvmppc_inst_is_paired_singlefunction get_d_signextfunction kvmppc_ps_three_infunction kvmppc_ps_two_infunction kvmppc_ps_one_infunction kvmppc_emulate_paired_single
Annotated Snippet
switch (inst_get_field(inst, 21, 30)) {
case OP_4X_PS_CMPU0:
case OP_4X_PSQ_LX:
case OP_4X_PS_CMPO0:
case OP_4X_PSQ_LUX:
case OP_4X_PS_NEG:
case OP_4X_PS_CMPU1:
case OP_4X_PS_MR:
case OP_4X_PS_CMPO1:
case OP_4X_PS_NABS:
case OP_4X_PS_ABS:
case OP_4X_PS_MERGE00:
case OP_4X_PS_MERGE01:
case OP_4X_PS_MERGE10:
case OP_4X_PS_MERGE11:
return true;
}
/* XW form */
switch (inst_get_field(inst, 25, 30)) {
case OP_4XW_PSQ_STX:
case OP_4XW_PSQ_STUX:
return true;
}
/* A form */
switch (inst_get_field(inst, 26, 30)) {
case OP_4A_PS_SUM1:
case OP_4A_PS_SUM0:
case OP_4A_PS_MULS0:
case OP_4A_PS_MULS1:
case OP_4A_PS_MADDS0:
case OP_4A_PS_MADDS1:
case OP_4A_PS_DIV:
case OP_4A_PS_SUB:
case OP_4A_PS_ADD:
case OP_4A_PS_SEL:
case OP_4A_PS_RES:
case OP_4A_PS_MUL:
case OP_4A_PS_RSQRTE:
case OP_4A_PS_MSUB:
case OP_4A_PS_MADD:
case OP_4A_PS_NMSUB:
case OP_4A_PS_NMADD:
return true;
}
break;
case 59:
switch (inst_get_field(inst, 21, 30)) {
case OP_59_FADDS:
case OP_59_FSUBS:
case OP_59_FDIVS:
case OP_59_FRES:
case OP_59_FRSQRTES:
return true;
}
switch (inst_get_field(inst, 26, 30)) {
case OP_59_FMULS:
case OP_59_FMSUBS:
case OP_59_FMADDS:
case OP_59_FNMSUBS:
case OP_59_FNMADDS:
return true;
}
break;
case 63:
switch (inst_get_field(inst, 21, 30)) {
case OP_63_MTFSB0:
case OP_63_MTFSB1:
case OP_63_MTFSF:
case OP_63_MTFSFI:
case OP_63_MCRFS:
case OP_63_MFFS:
case OP_63_FCMPU:
case OP_63_FCMPO:
case OP_63_FNEG:
case OP_63_FMR:
case OP_63_FABS:
case OP_63_FRSP:
case OP_63_FDIV:
case OP_63_FADD:
case OP_63_FSUB:
case OP_63_FCTIW:
case OP_63_FCTIWZ:
case OP_63_FRSQRTE:
case OP_63_FCPSGN:
return true;
}
switch (inst_get_field(inst, 26, 30)) {
case OP_63_FMUL:
case OP_63_FSEL:
case OP_63_FMSUB:
Annotation
- Immediate include surface: `asm/kvm.h`, `asm/kvm_ppc.h`, `asm/disassemble.h`, `asm/kvm_book3s.h`, `asm/kvm_fpu.h`, `asm/reg.h`, `asm/cacheflush.h`, `asm/switch_to.h`.
- Detected declarations: `function kvmppc_sync_qpr`, `function kvmppc_inject_pf`, `function kvmppc_emulate_fpr_load`, `function kvmppc_emulate_fpr_store`, `function kvmppc_emulate_psq_load`, `function kvmppc_emulate_psq_store`, `function inst_get_field`, `function kvmppc_inst_is_paired_single`, `function get_d_signext`, `function kvmppc_ps_three_in`.
- Atlas domain: Architecture Layer / arch/powerpc.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.