Key: ELF symbol (primary) ELF symbol source (with column ║) frame instruction +variable (range start) -variable (range end) inlining control-flow forwards branch ──> backwards branch ══>Compilation unit 0000f3c0 0000f8b8 arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
instructions
header
.debug_abbrev die abbreviation table
.debug_info die tree
.debug_line line number info
.debug_line evaluated line info
simple die tree
simple die tree globals
simple die tree locals
inlined subroutine info
inlined subroutine info by range
**0000f3c0 <__vgic_v2_perform_cpuif_access>:
0000f3c0 <$x>:
+ __vgic_v2_perform_cpuif_access params:
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x50)
__vgic_v2_perform_cpuif_access:38.0 (vgic-v2-cpuif-proxy.c) Sbepe ║{
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x50) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:37
+kvm var pointer(struct kvm<b82b3>/<b8684>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x48) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:39
+vgic var pointer(struct vgic_dist<b82b3>/<c675e>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x40) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:40
+fault_ipa var typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xf3c0 0xf6f4 (DW_OP_breg31 0x38) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:41
+addr var pointer(no type) 0xf3c0 0xf6f4 (DW_OP_breg31 0x30) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:42
+rd var int (base type, DW_ATE_signed size:4) 0xf3c0 0xf6f4 (DW_OP_breg31 0x2c) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:43
~ 0000f3c0: d10403ff sub sp, sp, #0x100 <- 000030e0(bl)<__vgic_v2_perform_cpuif_access>
~ 0000f3c4: a90f7bfd stp x29, x30, [sp, #240]
0000f3c0 CFA:r31 r29:u r30:u
~ 0000f3c8: 9103c3fd add x29, sp, #0xf0
~ 0000f3cc: f9002be0 str x0, [sp, #80]
__vgic_v2_perform_cpuif_access:39.20 (vgic-v2-cpuif-proxy.c) SbePe struct kvm *kvm = ║kern_hyp_va(vcpu->kvm);
~ 0000f3d0: f9402be8 ldr x8, [sp, #80]
~ 0000f3d4: f9400108 ldr x8, [x8]
~ 0000f3d8: f90033e8 str x8, [sp, #96]
e: 0xf3dc 0xf3fc __kern_hyp_va inlined from __vgic_v2_perform_cpuif_access:39 (vgic-v2-cpuif-proxy.c) <c796f>:
e __kern_hyp_va:135.2 (kvm_mmu.h) Sbepe ║asm volatile(ALTERNATIVE_CB("and %0, %0, #1\n"
+v param long unsigned int (base type, DW_ATE_unsigned size:8) 0xf3dc 0xf3fc (DW_OP_breg31 0x60) __kern_hyp_va(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~e 0000f3dc: f94033e8 ldr x8, [sp, #96]
~e 0000f3e0: 92400108 and x8, x8, #0x1
~e 0000f3e4: 93c80508 ror x8, x8, #1
~e 0000f3e8: 91000108 add x8, x8, #0x0
~e 0000f3ec: 91400108 add x8, x8, #0x0, lsl #12
~e 0000f3f0: 93c8fd08 ror x8, x8, #63
~e 0000f3f4: f90033e8 str x8, [sp, #96]
e __kern_hyp_va:142.9 (kvm_mmu.h) Sbepe return v;
~e 0000f3f8: f94033e8 ldr x8, [sp, #96]
-v param long unsigned int (base type, DW_ATE_unsigned size:8) 0xf3dc 0xf3fc (DW_OP_breg31 0x60) __kern_hyp_va(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
__vgic_v2_perform_cpuif_access:39.14 (vgic-v2-cpuif-proxy.c) Sbepe struct kvm *║kvm = kern_hyp_va(vcpu->kvm);
~ 0000f3fc: f90027e8 str x8, [sp, #72]
__vgic_v2_perform_cpuif_access:40.28 (vgic-v2-cpuif-proxy.c) Sbepe struct vgic_dist *vgic = &║kvm->arch.vgic;
~ 0000f400: f94027e8 ldr x8, [sp, #72]
~ 0000f404: 52822709 mov w9, #0x1138 // #4408
~ 0000f408: 2a0903ea mov w10, w9
__vgic_v2_perform_cpuif_access:40.38 (vgic-v2-cpuif-proxy.c) sbepe struct vgic_dist *vgic = &kvm->arch.║vgic;
~ 0000f40c: 8b0a0108 add x8, x8, x10
__vgic_v2_perform_cpuif_access:40.20 (vgic-v2-cpuif-proxy.c) sbepe struct vgic_dist *║vgic = &kvm->arch.vgic;
~ 0000f410: f90023e8 str x8, [sp, #64]
__vgic_v2_perform_cpuif_access:46.38 (vgic-v2-cpuif-proxy.c) Sbepe fault_ipa = kvm_vcpu_get_fault_ipa(║vcpu);
~ 0000f414: f9402be8 ldr x8, [sp, #80]
~ 0000f418: f90037e8 str x8, [sp, #104]
f: 0xf41c 0xf42c kvm_vcpu_get_fault_ipa inlined from __vgic_v2_perform_cpuif_access:46 (vgic-v2-cpuif-proxy.c) <c798d>:
f kvm_vcpu_get_fault_ipa:244.23 (kvm_emulate.h) Sbepe return ((phys_addr_t)║vcpu->arch.fault.hpfar_el2 & HPFAR_MASK) << 8;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf41c 0xf42c (DW_OP_breg31 0x68) kvm_vcpu_get_fault_ipa(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~f 0000f41c: f94037e8 ldr x8, [sp, #104]
f kvm_vcpu_get_fault_ipa:244.40 (kvm_emulate.h) sbepe return ((phys_addr_t)vcpu->arch.fault.║hpfar_el2 & HPFAR_MASK) << 8;
~f 0000f420: f9444d08 ldr x8, [x8, #2200]
f kvm_vcpu_get_fault_ipa:244.50 (kvm_emulate.h) sbepe return ((phys_addr_t)vcpu->arch.fault.hpfar_el2 ║& HPFAR_MASK) << 8;
~f 0000f424: 927ccd08 and x8, x8, #0xfffffffffffff0
f kvm_vcpu_get_fault_ipa:244.64 (kvm_emulate.h) sbepe return ((phys_addr_t)vcpu->arch.fault.hpfar_el2 & HPFAR_MASK) ║<< 8;
~f 0000f428: d378dd08 lsl x8, x8, #8
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf41c 0xf42c (DW_OP_breg31 0x68) kvm_vcpu_get_fault_ipa(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
__vgic_v2_perform_cpuif_access:46.13 (vgic-v2-cpuif-proxy.c) Sbepe fault_ipa ║= kvm_vcpu_get_fault_ipa(vcpu);
~ 0000f42c: f9001fe8 str x8, [sp, #56]
__vgic_v2_perform_cpuif_access:47.33 (vgic-v2-cpuif-proxy.c) Sbepe fault_ipa |= kvm_vcpu_get_hfar(║vcpu) & GENMASK(11, 0);
~ 0000f430: f9402be8 ldr x8, [sp, #80]
~ 0000f434: f9003be8 str x8, [sp, #112]
g: 0xf438 0xf440 kvm_vcpu_get_hfar inlined from __vgic_v2_perform_cpuif_access:47 (vgic-v2-cpuif-proxy.c) <c79ab>:
g kvm_vcpu_get_hfar:239.9 (kvm_emulate.h) Sbepe return ║vcpu->arch.fault.far_el2;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf438 0xf440 (DW_OP_breg31 0x70) kvm_vcpu_get_hfar(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~g 0000f438: f9403be8 ldr x8, [sp, #112]
g kvm_vcpu_get_hfar:239.26 (kvm_emulate.h) sbepe return vcpu->arch.fault.║far_el2;
~g 0000f43c: f9444908 ldr x8, [x8, #2192]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf438 0xf440 (DW_OP_breg31 0x70) kvm_vcpu_get_hfar(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
__vgic_v2_perform_cpuif_access:47.39 (vgic-v2-cpuif-proxy.c) Sbepe fault_ipa |= kvm_vcpu_get_hfar(vcpu) ║& GENMASK(11, 0);
~ 0000f440: 92402d08 and x8, x8, #0xfff
__vgic_v2_perform_cpuif_access:47.12 (vgic-v2-cpuif-proxy.c) sbepe fault_ipa ║|= kvm_vcpu_get_hfar(vcpu) & GENMASK(11, 0);
~ 0000f444: f9401fea ldr x10, [sp, #56]
~ 0000f448: aa080148 orr x8, x10, x8
~ 0000f44c: f9001fe8 str x8, [sp, #56]
__vgic_v2_perform_cpuif_access:50.6 (vgic-v2-cpuif-proxy.c) Sbepe if (║fault_ipa < vgic->vgic_cpu_base ||
~ 0000f450: f9401fe8 ldr x8, [sp, #56]
__vgic_v2_perform_cpuif_access:50.19 (vgic-v2-cpuif-proxy.c) sbepe if (fault_ipa < ║vgic->vgic_cpu_base ||
~ 0000f454: f94023ea ldr x10, [sp, #64]
__vgic_v2_perform_cpuif_access:50.25 (vgic-v2-cpuif-proxy.c) sbepe if (fault_ipa < vgic->║vgic_cpu_base ||
~ 0000f458: f940114a ldr x10, [x10, #32]
__vgic_v2_perform_cpuif_access:50.39 (vgic-v2-cpuif-proxy.c) sbepe if (fault_ipa < vgic->vgic_cpu_base ||
~ 0000f45c: eb0a0108 subs x8, x8, x10
~ ┌────0000f460: 54000123 b.cc f484 <__vgic_v2_perform_cpuif_access+0xc4> // b.lo, b.ul, b.last
│
~ │ ┌─0000f464: 14000001 b f468 <__vgic_v2_perform_cpuif_access+0xa8> <- 0000f460(b.cc-succ)<fallthrough>
│ │
│ │ __vgic_v2_perform_cpuif_access:51.6 (vgic-v2-cpuif-proxy.c) Sbepe ║fault_ipa >= (vgic->vgic_cpu_base + KVM_VGIC_V2_CPU_SIZE))
~ │ └>0000f468: f9401fe8 ldr x8, [sp, #56] <- 0000f464(b)<__vgic_v2_perform_cpuif_access+0xa8>
│ __vgic_v2_perform_cpuif_access:51.20 (vgic-v2-cpuif-proxy.c) sbepe fault_ipa >= (║vgic->vgic_cpu_base + KVM_VGIC_V2_CPU_SIZE))
~ │ 0000f46c: f94023e9 ldr x9, [sp, #64]
│ __vgic_v2_perform_cpuif_access:51.26 (vgic-v2-cpuif-proxy.c) sbepe fault_ipa >= (vgic->║vgic_cpu_base + KVM_VGIC_V2_CPU_SIZE))
~ │ 0000f470: f9401129 ldr x9, [x9, #32]
│ __vgic_v2_perform_cpuif_access:51.40 (vgic-v2-cpuif-proxy.c) sbepe fault_ipa >= (vgic->vgic_cpu_base ║+ KVM_VGIC_V2_CPU_SIZE))
~ │ 0000f474: 91400929 add x9, x9, #0x2, lsl #12
│ __vgic_v2_perform_cpuif_access:50.6 (vgic-v2-cpuif-proxy.c) Sbepe if (║fault_ipa < vgic->vgic_cpu_base ||
~ │ 0000f478: eb090108 subs x8, x8, x9
~ │ ┌──0000f47c: 540000a3 b.cc f490 <__vgic_v2_perform_cpuif_access+0xd0> // b.lo, b.ul, b.last
│ │
~ │ │┌─0000f480: 14000001 b f484 <__vgic_v2_perform_cpuif_access+0xc4> <- 0000f47c(b.cc-succ)<fallthrough>
│ ││
~ └>│└>0000f484: 2a1f03e8 mov w8, wzr <- 0000f460(b.cc)<__vgic_v2_perform_cpuif_access+0xc4>,0000f480(b)<__vgic_v2_perform_cpuif_access+0xc4>
│ __vgic_v2_perform_cpuif_access:52.3 (vgic-v2-cpuif-proxy.c) Sbepe ║return 0;
~ │ 0000f488: b9005fe8 str w8, [sp, #92]
~ ┌────────┼──0000f48c: 14000096 b f6e4 <__vgic_v2_perform_cpuif_access+0x324>
│ │
│ │ __vgic_v2_perform_cpuif_access:55.27 (vgic-v2-cpuif-proxy.c) Sbepe if (kvm_vcpu_dabt_get_as(║vcpu) != sizeof(u32)) {
~ │ └─>0000f490: f9402be8 ldr x8, [sp, #80] <- 0000f47c(b.cc)<__vgic_v2_perform_cpuif_access+0xd0>
~ │ 0000f494: f81a03a8 stur x8, [x29, #-96]
h: 0xf498 0xf4b8 kvm_vcpu_dabt_get_as inlined from __vgic_v2_perform_cpuif_access:55 (vgic-v2-cpuif-proxy.c) <c79c9>:
h │ kvm_vcpu_dabt_get_as:300.33 (kvm_emulate.h) Sbepe return 1 << ((kvm_vcpu_get_esr(║vcpu) & ESR_ELx_SAS) >> ESR_ELx_SAS_SHIFT);
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf498 0xf4b8 (DW_OP_fbreg -0x60) kvm_vcpu_dabt_get_as(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~h │ 0000f498: f85a03a8 ldur x8, [x29, #-96]
~h │ 0000f49c: f81a83a8 stur x8, [x29, #-88]
i: 0xf4a0 0xf4a4 kvm_vcpu_get_esr inlined from kvm_vcpu_dabt_get_as:300 (kvm_emulate.h) <c79e6>:<c79c9>:
hi │ kvm_vcpu_get_esr:224.9 (kvm_emulate.h) Sbepe return ║vcpu->arch.fault.esr_el2;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf4a0 0xf4a4 (DW_OP_fbreg -0x58) kvm_vcpu_get_esr(inlined):kvm_vcpu_dabt_get_as(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~hi │ 0000f4a0: f85a83a8 ldur x8, [x29, #-88]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf4a0 0xf4a4 (DW_OP_fbreg -0x58) kvm_vcpu_get_esr(inlined):kvm_vcpu_dabt_get_as(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
h │ kvm_vcpu_dabt_get_as:300.16 (kvm_emulate.h) Sbepe return 1 << ((║kvm_vcpu_get_esr(vcpu) & ESR_ELx_SAS) >> ESR_ELx_SAS_SHIFT);
~h │ 0000f4a4: b9488909 ldr w9, [x8, #2184]
~h │ 0000f4a8: 2a0903e8 mov w8, w9
h │ kvm_vcpu_dabt_get_as:300.54 (kvm_emulate.h) sbepe return 1 << ((kvm_vcpu_get_esr(vcpu) & ESR_ELx_SAS) ║>> ESR_ELx_SAS_SHIFT);
~h │ 0000f4ac: d3565d08 ubfx x8, x8, #22, #2
~h │ 0000f4b0: 52800029 mov w9, #0x1 // #1
h │ kvm_vcpu_dabt_get_as:300.11 (kvm_emulate.h) sbepe return 1 ║<< ((kvm_vcpu_get_esr(vcpu) & ESR_ELx_SAS) >> ESR_ELx_SAS_SHIFT);
~h │ 0000f4b4: 1ac82128 lsl w8, w9, w8
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf498 0xf4b8 (DW_OP_fbreg -0x60) kvm_vcpu_dabt_get_as(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ __vgic_v2_perform_cpuif_access:55.6 (vgic-v2-cpuif-proxy.c) Sbepe if (║kvm_vcpu_dabt_get_as(vcpu) != sizeof(u32)) {
~ │ 0000f4b8: 71001108 subs w8, w8, #0x4
~ │ ┌──0000f4bc: 540000e0 b.eq f4d8 <__vgic_v2_perform_cpuif_access+0x118> // b.none
│ │
~ │ │┌─0000f4c0: 14000001 b f4c4 <__vgic_v2_perform_cpuif_access+0x104> <- 0000f4bc(b.cc-succ)<fallthrough>
│ ││
│ ││ __vgic_v2_perform_cpuif_access:56.20 (vgic-v2-cpuif-proxy.c) Sbepe __kvm_skip_instr(║vcpu);
~ │ │└>0000f4c4: f9402be0 ldr x0, [sp, #80] <- 0000f4c0(b)<__vgic_v2_perform_cpuif_access+0x104>
│ │ __vgic_v2_perform_cpuif_access:56.3 (vgic-v2-cpuif-proxy.c) sbepe ║__kvm_skip_instr(vcpu);
~ │ │ 0000f4c8: 9400008b bl f6f4 <__kvm_skip_instr>
│ │
~ │ │ 0000f4cc: 12800008 mov w8, #0xffffffff // #-1 <- 0000f4c8(bl-succ)<return>
│ │ __vgic_v2_perform_cpuif_access:57.3 (vgic-v2-cpuif-proxy.c) Sbepe ║return -1;
~ │ │ 0000f4d0: b9005fe8 str w8, [sp, #92]
~ │ ┌──────┼──0000f4d4: 14000084 b f6e4 <__vgic_v2_perform_cpuif_access+0x324>
│ │ │
│ │ │ __vgic_v2_perform_cpuif_access:61.6 (vgic-v2-cpuif-proxy.c) Sbepe if (║fault_ipa & 3) {
~ │ │ └─>0000f4d8: 3940e3e8 ldrb w8, [sp, #56] <- 0000f4bc(b.cc)<__vgic_v2_perform_cpuif_access+0x118>
~ │ │ 0000f4dc: 12000508 and w8, w8, #0x3
~ │ │ ┌──0000f4e0: 340000e8 cbz w8, f4fc <__vgic_v2_perform_cpuif_access+0x13c>
│ │ │
~ │ │ │┌─0000f4e4: 14000001 b f4e8 <__vgic_v2_perform_cpuif_access+0x128> <- 0000f4e0(b.cc-succ)<fallthrough>
│ │ ││
│ │ ││ __vgic_v2_perform_cpuif_access:62.20 (vgic-v2-cpuif-proxy.c) Sbepe __kvm_skip_instr(║vcpu);
~ │ │ │└>0000f4e8: f9402be0 ldr x0, [sp, #80] <- 0000f4e4(b)<__vgic_v2_perform_cpuif_access+0x128>
│ │ │ __vgic_v2_perform_cpuif_access:62.3 (vgic-v2-cpuif-proxy.c) sbepe ║__kvm_skip_instr(vcpu);
~ │ │ │ 0000f4ec: 94000082 bl f6f4 <__kvm_skip_instr>
│ │ │
~ │ │ │ 0000f4f0: 12800008 mov w8, #0xffffffff // #-1 <- 0000f4ec(bl-succ)<return>
│ │ │ __vgic_v2_perform_cpuif_access:63.3 (vgic-v2-cpuif-proxy.c) Sbepe ║return -1;
~ │ │ │ 0000f4f4: b9005fe8 str w8, [sp, #92]
~ │ │ ┌────┼──0000f4f8: 1400007b b f6e4 <__vgic_v2_perform_cpuif_access+0x324>
│ │ │ │
│ │ │ │ __vgic_v2_perform_cpuif_access:66.28 (vgic-v2-cpuif-proxy.c) Sbepe rd = kvm_vcpu_dabt_get_rd(║vcpu);
~ │ │ │ └─>0000f4fc: f9402be8 ldr x8, [sp, #80] <- 0000f4e0(b.cc)<__vgic_v2_perform_cpuif_access+0x13c>
~ │ │ │ 0000f500: f81c03a8 stur x8, [x29, #-64]
j: 0xf504 0xf51c kvm_vcpu_dabt_get_rd inlined from __vgic_v2_perform_cpuif_access:66 (vgic-v2-cpuif-proxy.c) <c7a06>:
j │ │ │ kvm_vcpu_dabt_get_rd:279.27 (kvm_emulate.h) Sbepe return (kvm_vcpu_get_esr(║vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf504 0xf51c (DW_OP_fbreg -0x40) kvm_vcpu_dabt_get_rd(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~j │ │ │ 0000f504: f85c03a8 ldur x8, [x29, #-64]
~j │ │ │ 0000f508: f81c83a8 stur x8, [x29, #-56]
k: 0xf50c 0xf510 kvm_vcpu_get_esr inlined from kvm_vcpu_dabt_get_rd:279 (kvm_emulate.h) <c7a22>:<c7a06>:
jk │ │ │ kvm_vcpu_get_esr:224.9 (kvm_emulate.h) Sbepe return ║vcpu->arch.fault.esr_el2;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf50c 0xf510 (DW_OP_fbreg -0x38) kvm_vcpu_get_esr(inlined):kvm_vcpu_dabt_get_rd(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~jk │ │ │ 0000f50c: f85c83a8 ldur x8, [x29, #-56]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf50c 0xf510 (DW_OP_fbreg -0x38) kvm_vcpu_get_esr(inlined):kvm_vcpu_dabt_get_rd(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
j │ │ │ kvm_vcpu_dabt_get_rd:279.10 (kvm_emulate.h) Sbepe return (║kvm_vcpu_get_esr(vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
~j │ │ │ 0000f510: b9488909 ldr w9, [x8, #2184]
~j │ │ │ 0000f514: 2a0903e8 mov w8, w9
j │ │ │ kvm_vcpu_dabt_get_rd:279.53 (kvm_emulate.h) sbepe return (kvm_vcpu_get_esr(vcpu) & ESR_ELx_SRT_MASK) ║>> ESR_ELx_SRT_SHIFT;
~j │ │ │ 0000f518: d3505108 ubfx x8, x8, #16, #5
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf504 0xf51c (DW_OP_fbreg -0x40) kvm_vcpu_dabt_get_rd(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ │ │ __vgic_v2_perform_cpuif_access:66.5 (vgic-v2-cpuif-proxy.c) Sbepe rd ║= kvm_vcpu_dabt_get_rd(vcpu);
~ │ │ │ 0000f51c: b9002fe8 str w8, [sp, #44]
│ │ │ __vgic_v2_perform_cpuif_access:67.10 (vgic-v2-cpuif-proxy.c) Sbepe addr = ║hyp_symbol_addr(kvm_vgic_global_state)->vcpu_hyp_va;
+addr var pointer(struct vgic_global<b82b3>/<c7dfd>) 0xf520 0xf538 (DW_OP_breg31 0x20) lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:67
~ │ │ │ 0000f520: 9000006a adrp x10, 1b000 <hyp_memory+0x460>
~ │ │ │ 0000f524: 911dc14a add x10, x10, #0x770
~ │ │ │ 0000f528: f90013ea str x10, [sp, #32]
~ │ │ │ 0000f52c: f94013ea ldr x10, [sp, #32]
~ │ │ │ 0000f530: f9000fea str x10, [sp, #24]
~ │ │ │ 0000f534: f9400fea ldr x10, [sp, #24]
-addr var pointer(struct vgic_global<b82b3>/<c7dfd>) 0xf520 0xf538 (DW_OP_breg31 0x20) lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:67
│ │ │ __vgic_v2_perform_cpuif_access:67.50 (vgic-v2-cpuif-proxy.c) sbepe addr = hyp_symbol_addr(kvm_vgic_global_state)->║vcpu_hyp_va;
~ │ │ │ 0000f538: f9400d4a ldr x10, [x10, #24]
│ │ │ __vgic_v2_perform_cpuif_access:67.8 (vgic-v2-cpuif-proxy.c) sbepe addr ║= hyp_symbol_addr(kvm_vgic_global_state)->vcpu_hyp_va;
~ │ │ │ 0000f53c: f9001bea str x10, [sp, #48]
│ │ │ __vgic_v2_perform_cpuif_access:68.10 (vgic-v2-cpuif-proxy.c) Sbepe addr += ║fault_ipa - vgic->vgic_cpu_base;
~ │ │ │ 0000f540: f9401fea ldr x10, [sp, #56]
│ │ │ __vgic_v2_perform_cpuif_access:68.22 (vgic-v2-cpuif-proxy.c) sbepe addr += fault_ipa - ║vgic->vgic_cpu_base;
~ │ │ │ 0000f544: f94023eb ldr x11, [sp, #64]
│ │ │ __vgic_v2_perform_cpuif_access:68.28 (vgic-v2-cpuif-proxy.c) sbepe addr += fault_ipa - vgic->║vgic_cpu_base;
~ │ │ │ 0000f548: f940116b ldr x11, [x11, #32]
│ │ │ __vgic_v2_perform_cpuif_access:68.20 (vgic-v2-cpuif-proxy.c) sbepe addr += fault_ipa ║- vgic->vgic_cpu_base;
~ │ │ │ 0000f54c: eb0b014a subs x10, x10, x11
│ │ │ __vgic_v2_perform_cpuif_access:68.7 (vgic-v2-cpuif-proxy.c) sbepe addr ║+= fault_ipa - vgic->vgic_cpu_base;
~ │ │ │ 0000f550: f9401beb ldr x11, [sp, #48]
~ │ │ │ 0000f554: 8b0a016a add x10, x11, x10
~ │ │ │ 0000f558: f9001bea str x10, [sp, #48]
│ │ │ __vgic_v2_perform_cpuif_access:70.28 (vgic-v2-cpuif-proxy.c) Sbepe if (kvm_vcpu_dabt_iswrite(║vcpu)) {
~ │ │ │ 0000f55c: f9402bea ldr x10, [sp, #80]
~ │ │ │ 0000f560: f81e03aa stur x10, [x29, #-32]
l: 0xf564 0xf578 kvm_vcpu_dabt_iswrite inlined from __vgic_v2_perform_cpuif_access:70 (vgic-v2-cpuif-proxy.c) <c7a5d>:
l │ │ │ kvm_vcpu_dabt_iswrite:290.26 (kvm_emulate.h) Sbepe return kvm_vcpu_get_esr(║vcpu) & ESR_ELx_WNR;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf564 0xf578 (DW_OP_fbreg -0x20) kvm_vcpu_dabt_iswrite(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~l │ │ │ 0000f564: f85e03aa ldur x10, [x29, #-32]
~l │ │ │ 0000f568: f81e83aa stur x10, [x29, #-24]
m: 0xf56c 0xf570 kvm_vcpu_get_esr inlined from kvm_vcpu_dabt_iswrite:290 (kvm_emulate.h) <c7a79>:<c7a5d>:
lm │ │ │ kvm_vcpu_get_esr:224.9 (kvm_emulate.h) Sbepe return ║vcpu->arch.fault.esr_el2;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf56c 0xf570 (DW_OP_fbreg -0x18) kvm_vcpu_get_esr(inlined):kvm_vcpu_dabt_iswrite(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~lm │ │ │ 0000f56c: f85e83aa ldur x10, [x29, #-24]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf56c 0xf570 (DW_OP_fbreg -0x18) kvm_vcpu_get_esr(inlined):kvm_vcpu_dabt_iswrite(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
l │ │ │ kvm_vcpu_dabt_iswrite:290.9 (kvm_emulate.h) Sbepe return ║kvm_vcpu_get_esr(vcpu) & ESR_ELx_WNR;
~l │ │ │ 0000f570: b9488948 ldr w8, [x10, #2184]
~l │ │ │ 0000f574: 2a0803e0 mov w0, w8
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf564 0xf578 (DW_OP_fbreg -0x20) kvm_vcpu_dabt_iswrite(inlined):__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ │ │ __vgic_v2_perform_cpuif_access:70.6 (vgic-v2-cpuif-proxy.c) Sbepe if (║kvm_vcpu_dabt_iswrite(vcpu)) {
~ │ │ │ ┌────0000f578: 36300560 tbz w0, #6, f624 <__vgic_v2_perform_cpuif_access+0x264>
│ │ │ │
~ │ │ │ │ ┌─0000f57c: 14000001 b f580 <__vgic_v2_perform_cpuif_access+0x1c0> <- 0000f578(b.cc-succ)<fallthrough>
│ │ │ │ │
│ │ │ │ │ __vgic_v2_perform_cpuif_access:71.27 (vgic-v2-cpuif-proxy.c) Sbepe u32 data = vcpu_get_reg(║vcpu, rd);
+data var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf580 0xf624 (DW_OP_breg31 0x14) lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:71
~ │ │ │ │ └>0000f580: f9402be8 ldr x8, [sp, #80] <- 0000f57c(b)<__vgic_v2_perform_cpuif_access+0x1c0>
│ │ │ │ __vgic_v2_perform_cpuif_access:71.33 (vgic-v2-cpuif-proxy.c) sbepe u32 data = vcpu_get_reg(vcpu, ║rd);
~ │ │ │ │ 0000f584: b9402fe9 ldr w9, [sp, #44]
~ │ │ │ │ 0000f588: f81f83a8 stur x8, [x29, #-8]
~ │ │ │ │ 0000f58c: 381f43a9 sturb w9, [x29, #-12]
n: 0xf590 0xf5c8 vcpu_get_reg inlined from __vgic_v2_perform_cpuif_access:71 (vgic-v2-cpuif-proxy.c) <c7ab3>:<lexical_block>:
n │ │ │ │ vcpu_get_reg:166.10 (kvm_emulate.h) Sbepe return (║reg_num == 31) ? 0 : vcpu_gp_regs(vcpu)->regs[reg_num];
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf590 0xf5c8 (DW_OP_fbreg -0x8) vcpu_get_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
+reg_num param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0xf590 0xf5c8 (DW_OP_fbreg -0xc) vcpu_get_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~n │ │ │ │ 0000f590: 385f43a9 ldurb w9, [x29, #-12]
n │ │ │ │ vcpu_get_reg:166.9 (kvm_emulate.h) sbepe return ║(reg_num == 31) ? 0 : vcpu_gp_regs(vcpu)->regs[reg_num];
~n │ │ │ │ 0000f594: 71007d29 subs w9, w9, #0x1f
~n │ │ │ │ ┌──0000f598: 540000a1 b.ne f5ac <__vgic_v2_perform_cpuif_access+0x1ec> // b.any
│ │ │ │ │
~n │ │ │ │ │┌─0000f59c: 14000001 b f5a0 <__vgic_v2_perform_cpuif_access+0x1e0> <- 0000f598(b.cc-succ)<fallthrough>
│ │ │ │ ││
~n │ │ │ │ │└>0000f5a0: aa1f03e0 mov x0, xzr <- 0000f59c(b)<__vgic_v2_perform_cpuif_access+0x1e0>
~n │ │ │ │ │ 0000f5a4: f90003e0 str x0, [sp]
n │ │ │ │ │ vcpu_get_reg:166.9 (kvm_emulate.h) sbepe return ║(reg_num == 31) ? 0 : vcpu_gp_regs(vcpu)->regs[reg_num];
~n │ │ │ │┌┼──0000f5a8: 14000008 b f5c8 <__vgic_v2_perform_cpuif_access+0x208>
│ │ │ │││
n │ │ │ │││ vcpu_get_reg:166.31 (kvm_emulate.h) sbepe return (reg_num == 31) ? 0 : ║vcpu_gp_regs(vcpu)->regs[reg_num];
~n │ │ │ ││└─>0000f5ac: f85f83a8 ldur x8, [x29, #-8] <- 0000f598(b.cc)<__vgic_v2_perform_cpuif_access+0x1ec>
n │ │ │ ││ vcpu_get_reg:166.56 (kvm_emulate.h) sbepe return (reg_num == 31) ? 0 : vcpu_gp_regs(vcpu)->regs[║reg_num];
~n │ │ │ ││ 0000f5b0: 385f43a9 ldurb w9, [x29, #-12]
~n │ │ │ ││ 0000f5b4: 2a0903ea mov w10, w9
n │ │ │ ││ vcpu_get_reg:166.31 (kvm_emulate.h) sbepe return (reg_num == 31) ? 0 : ║vcpu_gp_regs(vcpu)->regs[reg_num];
~n │ │ │ ││ 0000f5b8: 8b0a0d08 add x8, x8, x10, lsl #3
~n │ │ │ ││ 0000f5bc: f940b108 ldr x8, [x8, #352]
~n │ │ │ ││ 0000f5c0: f90003e8 str x8, [sp]
n │ │ │ ││ vcpu_get_reg:166.9 (kvm_emulate.h) sbepe return ║(reg_num == 31) ? 0 : vcpu_gp_regs(vcpu)->regs[reg_num];
~n │ │ │ ││ ┌─0000f5c4: 14000001 b f5c8 <__vgic_v2_perform_cpuif_access+0x208>
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf590 0xf5c8 (DW_OP_fbreg -0x8) vcpu_get_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-reg_num param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0xf590 0xf5c8 (DW_OP_fbreg -0xc) vcpu_get_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ │ │ ││ │
~ │ │ │ │└>└>0000f5c8: f94003e0 ldr x0, [sp] <- 0000f5a8(b)<__vgic_v2_perform_cpuif_access+0x208>,0000f5c4(b)<__vgic_v2_perform_cpuif_access+0x208>
│ │ │ │ __vgic_v2_perform_cpuif_access:71.7 (vgic-v2-cpuif-proxy.c) Sbepe u32 ║data = vcpu_get_reg(vcpu, rd);
~ │ │ │ │ 0000f5cc: b90017e0 str w0, [sp, #20]
│ │ │ │ __vgic_v2_perform_cpuif_access:72.15 (vgic-v2-cpuif-proxy.c) Sbepe if (__is_be(║vcpu)) {
~ │ │ │ │ 0000f5d0: f9402be0 ldr x0, [sp, #80]
│ │ │ │ __vgic_v2_perform_cpuif_access:72.7 (vgic-v2-cpuif-proxy.c) sbepe if (║__is_be(vcpu)) {
~ │ │ │ │ 0000f5d4: 94000071 bl f798 <__is_be>
│ │ │ │
│ │ │ │ __vgic_v2_perform_cpuif_access:72.7 (vgic-v2-cpuif-proxy.c) sbepe if (║__is_be(vcpu)) {
~ │ │ │ │┌───0000f5d8: 36000160 tbz w0, #0, f604 <__vgic_v2_perform_cpuif_access+0x244> <- 0000f5d4(bl-succ)<return>
│ │ │ ││
~ │ │ │ ││ ┌─0000f5dc: 14000001 b f5e0 <__vgic_v2_perform_cpuif_access+0x220> <- 0000f5d8(b.cc-succ)<fallthrough>
│ │ │ ││ │
│ │ │ ││ │ __vgic_v2_perform_cpuif_access:74.11 (vgic-v2-cpuif-proxy.c) Sbepe data = ║__kvm_swab32(data);
~ │ │ │ ││ └>0000f5e0: b94017e8 ldr w8, [sp, #20] <- 0000f5dc(b)<__vgic_v2_perform_cpuif_access+0x220>
~ │ │ │ ││ 0000f5e4: 12181d09 and w9, w8, #0xff00
~ │ │ │ ││ 0000f5e8: 53185d29 lsl w9, w9, #8
~ │ │ │ ││ 0000f5ec: 33081d09 bfi w9, w8, #24, #8
~ │ │ │ ││ 0000f5f0: 12101d0a and w10, w8, #0xff0000
~ │ │ │ ││ 0000f5f4: 2a4a2129 orr w9, w9, w10, lsr #8
~ │ │ │ ││ 0000f5f8: 33187d09 bfxil w9, w8, #24, #8
│ │ │ ││ __vgic_v2_perform_cpuif_access:74.9 (vgic-v2-cpuif-proxy.c) sbepe data ║= __kvm_swab32(data);
~ │ │ │ ││ 0000f5fc: b90017e9 str w9, [sp, #20]
│ │ │ ││ __vgic_v2_perform_cpuif_access:75.3 (vgic-v2-cpuif-proxy.c) Sbepe }
~ │ │ │ ││ ┌─0000f600: 14000001 b f604 <__vgic_v2_perform_cpuif_access+0x244>
│ │ │ ││ │
│ │ │ ││ │ __vgic_v2_perform_cpuif_access:76.3 (vgic-v2-cpuif-proxy.c) Sbepe ║writel_relaxed(data, addr);
~ │ │ │ │└>└>0000f604: b94017e8 ldr w8, [sp, #20] <- 0000f5d8(b.cc)<__vgic_v2_perform_cpuif_access+0x244>,0000f600(b)<__vgic_v2_perform_cpuif_access+0x244>
~ │ │ │ │ 0000f608: f9401be9 ldr x9, [sp, #48]
~ │ │ │ │ 0000f60c: b81dc3a8 stur w8, [x29, #-36]
~ │ │ │ │ 0000f610: f81d03a9 stur x9, [x29, #-48]
o: 0xf614 0xf620 __raw_writel inlined from __vgic_v2_perform_cpuif_access:76 (vgic-v2-cpuif-proxy.c) <c7ad8>:<lexical_block>:
o │ │ │ │ __raw_writel:39.41 (io.h) Sbepe asm volatile("str %w0, [%1]" : : "rZ" (║val), "r" (addr));
+val param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf614 0xf620 (DW_OP_fbreg -0x24) __raw_writel(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
+addr param pointer(missing at <b82b3>/<c78a7>) 0xf614 0xf620 (DW_OP_fbreg -0x30) __raw_writel(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~o │ │ │ │ 0000f614: b85dc3a8 ldur w8, [x29, #-36]
o │ │ │ │ __raw_writel:39.52 (io.h) sbepe asm volatile("str %w0, [%1]" : : "rZ" (val), "r" (║addr));
~o │ │ │ │ 0000f618: f85d03a9 ldur x9, [x29, #-48]
o │ │ │ │ __raw_writel:39.2 (io.h) sbepe ║asm volatile("str %w0, [%1]" : : "rZ" (val), "r" (addr));
~o │ │ │ │ 0000f61c: b9000128 str w8, [x9]
-val param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf614 0xf620 (DW_OP_fbreg -0x24) __raw_writel(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-addr param pointer(missing at <b82b3>/<c78a7>) 0xf614 0xf620 (DW_OP_fbreg -0x30) __raw_writel(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ │ │ │ __vgic_v2_perform_cpuif_access:77.2 (vgic-v2-cpuif-proxy.c) Sbepe ║} else {
~ │ │ │┌─┼────0000f620: 1400002c b f6d0 <__vgic_v2_perform_cpuif_access+0x310>
-data var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf580 0xf624 (DW_OP_breg31 0x14) lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:71
│ │ ││ │
│ │ ││ │ __vgic_v2_perform_cpuif_access:78.14 (vgic-v2-cpuif-proxy.c) Sbepe u32 data = ║readl_relaxed(addr);
+data var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf624 0xf6cc (DW_OP_breg31 0x10) lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:78
+__r var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf624 0xf64c (DW_OP_breg31 0xc) lexblock:lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:78
~ │ │ ││ └───>0000f624: f9401be8 ldr x8, [sp, #48] <- 0000f578(b.cc)<__vgic_v2_perform_cpuif_access+0x264>
~ │ │ ││ 0000f628: f81b83a8 stur x8, [x29, #-72]
p: 0xf62c 0xf63c __raw_readl inlined from __vgic_v2_perform_cpuif_access:78 (vgic-v2-cpuif-proxy.c) <c7b34>:<lexical_block>:<lexical_block>:
p │ │ ││ __raw_readl:78.28 (io.h) sbepe : "=r" (val) : "r" (║addr));
+addr param pointer(const(missing at <b82b3>/<c78a7>)) 0xf62c 0xf63c (DW_OP_fbreg -0x48) __raw_readl(inlined):lexblock:lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
+val var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf62c 0xf63c (DW_OP_fbreg -0x4c) __raw_readl(inlined):lexblock:lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~p │ │ ││ 0000f62c: f85b83a8 ldur x8, [x29, #-72]
p │ │ ││ __raw_readl:75.2 (io.h) Sbepe ║asm volatile(ALTERNATIVE("ldr %w0, [%1]",
~p │ │ ││ 0000f630: b9400109 ldr w9, [x8]
~p │ │ ││ 0000f634: b81b43a9 stur w9, [x29, #-76]
p │ │ ││ __raw_readl:79.9 (io.h) Sbepe return ║val;
~p │ │ ││ 0000f638: b85b43a9 ldur w9, [x29, #-76]
-addr param pointer(const(missing at <b82b3>/<c78a7>)) 0xf62c 0xf63c (DW_OP_fbreg -0x48) __raw_readl(inlined):lexblock:lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-val var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf62c 0xf63c (DW_OP_fbreg -0x4c) __raw_readl(inlined):lexblock:lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ │ ││ __vgic_v2_perform_cpuif_access:78.14 (vgic-v2-cpuif-proxy.c) Sbepe u32 data = ║readl_relaxed(addr);
~ │ │ ││ 0000f63c: b9000fe9 str w9, [sp, #12]
~ │ │ ││ 0000f640: b9400fe9 ldr w9, [sp, #12]
~ │ │ ││ 0000f644: b9000be9 str w9, [sp, #8]
~ │ │ ││ 0000f648: b9400be9 ldr w9, [sp, #8]
-__r var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf624 0xf64c (DW_OP_breg31 0xc) lexblock:lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:78
│ │ ││ __vgic_v2_perform_cpuif_access:78.7 (vgic-v2-cpuif-proxy.c) sbepe u32 ║data = readl_relaxed(addr);
~ │ │ ││ 0000f64c: b90013e9 str w9, [sp, #16]
│ │ ││ __vgic_v2_perform_cpuif_access:79.15 (vgic-v2-cpuif-proxy.c) Sbepe if (__is_be(║vcpu)) {
~ │ │ ││ 0000f650: f9402be0 ldr x0, [sp, #80]
│ │ ││ __vgic_v2_perform_cpuif_access:79.7 (vgic-v2-cpuif-proxy.c) sbepe if (║__is_be(vcpu)) {
~ │ │ ││ 0000f654: 94000051 bl f798 <__is_be>
│ │ ││
│ │ ││ __vgic_v2_perform_cpuif_access:79.7 (vgic-v2-cpuif-proxy.c) sbepe if (║__is_be(vcpu)) {
~ │ │ ││ ┌───0000f658: 36000160 tbz w0, #0, f684 <__vgic_v2_perform_cpuif_access+0x2c4> <- 0000f654(bl-succ)<return>
│ │ ││ │
~ │ │ ││ │ ┌─0000f65c: 14000001 b f660 <__vgic_v2_perform_cpuif_access+0x2a0> <- 0000f658(b.cc-succ)<fallthrough>
│ │ ││ │ │
│ │ ││ │ │ __vgic_v2_perform_cpuif_access:81.11 (vgic-v2-cpuif-proxy.c) Sbepe data = ║__kvm_swab32(data);
~ │ │ ││ │ └>0000f660: b94013e8 ldr w8, [sp, #16] <- 0000f65c(b)<__vgic_v2_perform_cpuif_access+0x2a0>
~ │ │ ││ │ 0000f664: 12181d09 and w9, w8, #0xff00
~ │ │ ││ │ 0000f668: 53185d29 lsl w9, w9, #8
~ │ │ ││ │ 0000f66c: 33081d09 bfi w9, w8, #24, #8
~ │ │ ││ │ 0000f670: 12101d0a and w10, w8, #0xff0000
~ │ │ ││ │ 0000f674: 2a4a2129 orr w9, w9, w10, lsr #8
~ │ │ ││ │ 0000f678: 33187d09 bfxil w9, w8, #24, #8
│ │ ││ │ __vgic_v2_perform_cpuif_access:81.9 (vgic-v2-cpuif-proxy.c) sbepe data ║= __kvm_swab32(data);
~ │ │ ││ │ 0000f67c: b90013e9 str w9, [sp, #16]
│ │ ││ │ __vgic_v2_perform_cpuif_access:82.3 (vgic-v2-cpuif-proxy.c) Sbepe }
~ │ │ ││ │ ┌─0000f680: 14000001 b f684 <__vgic_v2_perform_cpuif_access+0x2c4>
│ │ ││ │ │
│ │ ││ │ │ __vgic_v2_perform_cpuif_access:83.16 (vgic-v2-cpuif-proxy.c) Sbepe vcpu_set_reg(║vcpu, rd, data);
~ │ │ ││ └>└>0000f684: f9402be8 ldr x8, [sp, #80] <- 0000f658(b.cc)<__vgic_v2_perform_cpuif_access+0x2c4>,0000f680(b)<__vgic_v2_perform_cpuif_access+0x2c4>
│ │ ││ __vgic_v2_perform_cpuif_access:83.22 (vgic-v2-cpuif-proxy.c) sbepe vcpu_set_reg(vcpu, ║rd, data);
~ │ │ ││ 0000f688: b9402fe9 ldr w9, [sp, #44]
│ │ ││ __vgic_v2_perform_cpuif_access:83.26 (vgic-v2-cpuif-proxy.c) sbepe vcpu_set_reg(vcpu, rd, ║data);
~ │ │ ││ 0000f68c: b94013ea ldr w10, [sp, #16]
~ │ │ ││ 0000f690: 2a0a03eb mov w11, w10
~ │ │ ││ 0000f694: f81983a8 stur x8, [x29, #-104]
~ │ │ ││ 0000f698: 381943a9 sturb w9, [x29, #-108]
~ │ │ ││ 0000f69c: f9003feb str x11, [sp, #120]
q: 0xf6a0 0xf6cc vcpu_set_reg inlined from __vgic_v2_perform_cpuif_access:83 (vgic-v2-cpuif-proxy.c) <c7b5c>:<lexical_block>:
q │ │ ││ vcpu_set_reg:172.6 (kvm_emulate.h) Sbepe if (║reg_num != 31)
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf6a0 0xf6cc (DW_OP_fbreg -0x68) vcpu_set_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
+reg_num param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0xf6a0 0xf6cc (DW_OP_fbreg -0x6c) vcpu_set_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
+val param long unsigned int (base type, DW_ATE_unsigned size:8) 0xf6a0 0xf6cc (DW_OP_breg31 0x78) vcpu_set_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~q │ │ ││ 0000f6a0: 385943a9 ldurb w9, [x29, #-108]
q │ │ ││ vcpu_set_reg:172.6 (kvm_emulate.h) sbepe if (║reg_num != 31)
~q │ │ ││ 0000f6a4: 71007d29 subs w9, w9, #0x1f
~q │ │ ││┌─────0000f6a8: 54000120 b.eq f6cc <__vgic_v2_perform_cpuif_access+0x30c> // b.none
│ │ │││
~q │ │ │││ ┌─0000f6ac: 14000001 b f6b0 <__vgic_v2_perform_cpuif_access+0x2f0> <- 0000f6a8(b.cc-succ)<fallthrough>
│ │ │││ │
q │ │ │││ │ vcpu_set_reg:173.39 (kvm_emulate.h) Sbepe vcpu_gp_regs(vcpu)->regs[reg_num] = ║val;
~q │ │ │││ └>0000f6b0: f9403fe8 ldr x8, [sp, #120] <- 0000f6ac(b)<__vgic_v2_perform_cpuif_access+0x2f0>
q │ │ │││ vcpu_set_reg:173.3 (kvm_emulate.h) sbepe ║vcpu_gp_regs(vcpu)->regs[reg_num] = val;
~q │ │ │││ 0000f6b4: f85983a9 ldur x9, [x29, #-104]
q │ │ │││ vcpu_set_reg:173.28 (kvm_emulate.h) sbepe vcpu_gp_regs(vcpu)->regs[║reg_num] = val;
~q │ │ │││ 0000f6b8: 385943aa ldurb w10, [x29, #-108]
~q │ │ │││ 0000f6bc: 2a0a03eb mov w11, w10
q │ │ │││ vcpu_set_reg:173.3 (kvm_emulate.h) sbepe ║vcpu_gp_regs(vcpu)->regs[reg_num] = val;
~q │ │ │││ 0000f6c0: 8b0b0d29 add x9, x9, x11, lsl #3
q │ │ │││ vcpu_set_reg:173.37 (kvm_emulate.h) sbepe vcpu_gp_regs(vcpu)->regs[reg_num] ║= val;
~q │ │ │││ 0000f6c4: f900b128 str x8, [x9, #352]
q │ │ │││ vcpu_set_reg:173.3 (kvm_emulate.h) sbepe ║vcpu_gp_regs(vcpu)->regs[reg_num] = val;
~q │ │ │││ ┌─0000f6c8: 14000001 b f6cc <__vgic_v2_perform_cpuif_access+0x30c>
-data var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0xf624 0xf6cc (DW_OP_breg31 0x10) lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:78
-vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf6a0 0xf6cc (DW_OP_fbreg -0x68) vcpu_set_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-reg_num param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0xf6a0 0xf6cc (DW_OP_fbreg -0x6c) vcpu_set_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-val param long unsigned int (base type, DW_ATE_unsigned size:8) 0xf6a0 0xf6cc (DW_OP_breg31 0x78) vcpu_set_reg(inlined):lexblock:__vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ │ │││ │
~ │ │ ││└>┌─└>0000f6cc: 14000001 b f6d0 <__vgic_v2_perform_cpuif_access+0x310> <- 0000f6a8(b.cc)<__vgic_v2_perform_cpuif_access+0x30c>,0000f6c8(b)<__vgic_v2_perform_cpuif_access+0x30c>
│ │ ││ │
│ │ ││ │ __vgic_v2_perform_cpuif_access:86.19 (vgic-v2-cpuif-proxy.c) Sbepe __kvm_skip_instr(║vcpu);
~ │ │ │└─>└──>0000f6d0: f9402be0 ldr x0, [sp, #80] <- 0000f620(b)<__vgic_v2_perform_cpuif_access+0x310>,0000f6cc(b)<__vgic_v2_perform_cpuif_access+0x310>
│ │ │ __vgic_v2_perform_cpuif_access:86.2 (vgic-v2-cpuif-proxy.c) sbepe ║__kvm_skip_instr(vcpu);
~ │ │ │ 0000f6d4: 94000008 bl f6f4 <__kvm_skip_instr>
│ │ │
~ │ │ │ 0000f6d8: 52800028 mov w8, #0x1 // #1 <- 0000f6d4(bl-succ)<return>
│ │ │ __vgic_v2_perform_cpuif_access:88.2 (vgic-v2-cpuif-proxy.c) Sbepe ║return 1;
~ │ │ │ 0000f6dc: b9005fe8 str w8, [sp, #92]
~ │ │ │ ┌─0000f6e0: 14000001 b f6e4 <__vgic_v2_perform_cpuif_access+0x324>
│ │ │ │
│ │ │ │ __vgic_v2_perform_cpuif_access:89.1 (vgic-v2-cpuif-proxy.c) Sbepe ║}
~ └>└>└────>└>0000f6e4: b9405fe0 ldr w0, [sp, #92] <- 0000f48c(b)<__vgic_v2_perform_cpuif_access+0x324>,0000f4d4(b)<__vgic_v2_perform_cpuif_access+0x324>,0000f4f8(b)<__vgic_v2_perform_cpuif_access+0x324>,0000f6e0(b)<__vgic_v2_perform_cpuif_access+0x324>
~ 0000f6e8: a94f7bfd ldp x29, x30, [sp, #240]
~ 0000f6ec: 910403ff add sp, sp, #0x100
0000f3cc CFA:r29+16 r29:c-16 r30:c-8
~ 0000f6f0: d65f03c0 ret
-vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x50) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:37
-kvm var pointer(struct kvm<b82b3>/<b8684>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x48) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:39
-vgic var pointer(struct vgic_dist<b82b3>/<c675e>) 0xf3c0 0xf6f4 (DW_OP_breg31 0x40) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:40
-fault_ipa var typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xf3c0 0xf6f4 (DW_OP_breg31 0x38) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:41
-addr var pointer(no type) 0xf3c0 0xf6f4 (DW_OP_breg31 0x30) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:42
-rd var int (base type, DW_ATE_signed size:4) 0xf3c0 0xf6f4 (DW_OP_breg31 0x2c) __vgic_v2_perform_cpuif_access:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:43
**0000f6f4 <__kvm_skip_instr>:
+ __kvm_skip_instr params:
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf6f4 0xf798 (DW_OP_fbreg -0x18)
__kvm_skip_instr:36.0 (adjust_pc.h) Sbepe ║{
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf6f4 0xf798 (DW_OP_fbreg -0x18) __kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:35
~ 0000f6f4: d10183ff sub sp, sp, #0x60 <- 0000f4c8(bl)<__kvm_skip_instr>,0000f4ec(bl)<__kvm_skip_instr>,0000f6d4(bl)<__kvm_skip_instr>
~ 0000f6f8: a9057bfd stp x29, x30, [sp, #80]
0000f6f4 CFA:r31 r29:u r30:u
~ 0000f6fc: 910143fd add x29, sp, #0x50
~ 0000f700: f81e83a0 stur x0, [x29, #-24]
+reg var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf704 0xf718 (DW_OP_fbreg -0x20) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:37
~ 0000f704: d53c4028 mrs x8, elr_el2
__kvm_skip_instr:37.19 (adjust_pc.h) SbePe *vcpu_pc(vcpu) = ║read_sysreg_el2(SYS_ELR);
~ 0000f708: f81e03a8 stur x8, [x29, #-32]
~ 0000f70c: f85e03a8 ldur x8, [x29, #-32]
~ 0000f710: f90017e8 str x8, [sp, #40]
~ 0000f714: f94017e8 ldr x8, [sp, #40]
-reg var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf704 0xf718 (DW_OP_fbreg -0x20) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:37
__kvm_skip_instr:37.11 (adjust_pc.h) sbepe *vcpu_pc(║vcpu) = read_sysreg_el2(SYS_ELR);
~ 0000f718: f85e83a9 ldur x9, [x29, #-24]
~ 0000f71c: f81f03a9 stur x9, [x29, #-16]
r: 0xf720 0xf724 vcpu_pc inlined from __kvm_skip_instr:37 (adjust_pc.h) <c7be5>:
r vcpu_pc:132.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pc;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf720 0xf724 (DW_OP_fbreg -0x10) vcpu_pc(inlined):__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~r 0000f720: f85f03a9 ldur x9, [x29, #-16]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf720 0xf724 (DW_OP_fbreg -0x10) vcpu_pc(inlined):__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
__kvm_skip_instr:37.17 (adjust_pc.h) Sbepe *vcpu_pc(vcpu) ║= read_sysreg_el2(SYS_ELR);
~ 0000f724: f9013128 str x8, [x9, #608]
+reg var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf728 0xf73c (DW_OP_breg31 0x20) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:38
~ 0000f728: d53c4008 mrs x8, spsr_el2
__kvm_skip_instr:38.31 (adjust_pc.h) Sbepe vcpu_gp_regs(vcpu)->pstate = ║read_sysreg_el2(SYS_SPSR);
~ 0000f72c: f90013e8 str x8, [sp, #32]
~ 0000f730: f94013e8 ldr x8, [sp, #32]
~ 0000f734: f9000fe8 str x8, [sp, #24]
~ 0000f738: f9400fe8 ldr x8, [sp, #24]
-reg var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf728 0xf73c (DW_OP_breg31 0x20) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:38
__kvm_skip_instr:38.2 (adjust_pc.h) sbepe ║vcpu_gp_regs(vcpu)->pstate = read_sysreg_el2(SYS_SPSR);
~ 0000f73c: f85e83a9 ldur x9, [x29, #-24]
__kvm_skip_instr:38.29 (adjust_pc.h) sbepe vcpu_gp_regs(vcpu)->pstate ║= read_sysreg_el2(SYS_SPSR);
~ 0000f740: f9013528 str x8, [x9, #616]
__kvm_skip_instr:40.17 (adjust_pc.h) Sbepe kvm_skip_instr(║vcpu);
~ 0000f744: f85e83a0 ldur x0, [x29, #-24]
__kvm_skip_instr:40.2 (adjust_pc.h) sbepe ║kvm_skip_instr(vcpu);
~ 0000f748: 94000031 bl f80c <kvm_skip_instr>
__kvm_skip_instr:42.2 (adjust_pc.h) Sbepe ║write_sysreg_el2(vcpu_gp_regs(vcpu)->pstate, SYS_SPSR);
~ ┌─0000f74c: 14000001 b f750 <__kvm_skip_instr+0x5c> <- 0000f748(bl-succ)<return>
│
│ __kvm_skip_instr:42.2 (adjust_pc.h) sbepe ║write_sysreg_el2(vcpu_gp_regs(vcpu)->pstate, SYS_SPSR);
+__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf750 0xf768 (DW_OP_breg31 0x10) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:42
~ └>0000f750: f85e83a8 ldur x8, [x29, #-24] <- 0000f74c(b)<__kvm_skip_instr+0x5c>
~ 0000f754: f9413508 ldr x8, [x8, #616]
~ 0000f758: f9000be8 str x8, [sp, #16]
~ 0000f75c: f9400be8 ldr x8, [sp, #16]
~ 0000f760: d51c4008 msr spsr_el2, x8
~ ┌─0000f764: 14000001 b f768 <__kvm_skip_instr+0x74>
-__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf750 0xf768 (DW_OP_breg31 0x10) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:42
│
│ __kvm_skip_instr:43.2 (adjust_pc.h) Sbepe ║write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
~ ┌─└>0000f768: 14000001 b f76c <__kvm_skip_instr+0x78> <- 0000f764(b)<__kvm_skip_instr+0x74>
│
│ __kvm_skip_instr:43.2 (adjust_pc.h) sbepe ║write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
+__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf76c 0xf78c (DW_OP_breg31 0x8) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:43
~ └──>0000f76c: f85e83a8 ldur x8, [x29, #-24] <- 0000f768(b)<__kvm_skip_instr+0x78>
~ 0000f770: f81f83a8 stur x8, [x29, #-8]
s: 0xf774 0xf778 vcpu_pc inlined from __kvm_skip_instr:43 (adjust_pc.h) <c7c55>:<lexical_block>:
s vcpu_pc:132.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pc;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf774 0xf778 (DW_OP_fbreg -0x8) vcpu_pc(inlined):lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~s 0000f774: f85f83a8 ldur x8, [x29, #-8]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf774 0xf778 (DW_OP_fbreg -0x8) vcpu_pc(inlined):lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
__kvm_skip_instr:43.2 (adjust_pc.h) Sbepe ║write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
~ 0000f778: f9413108 ldr x8, [x8, #608]
~ 0000f77c: f90007e8 str x8, [sp, #8]
~ 0000f780: f94007e8 ldr x8, [sp, #8]
~ 0000f784: d51c4028 msr elr_el2, x8
~ ┌─0000f788: 14000001 b f78c <__kvm_skip_instr+0x98>
-__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf76c 0xf78c (DW_OP_breg31 0x8) lexblock:__kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:43
│
│ __kvm_skip_instr:44.1 (adjust_pc.h) Sbepe ║}
~ └>0000f78c: a9457bfd ldp x29, x30, [sp, #80] <- 0000f788(b)<__kvm_skip_instr+0x98>
~ 0000f790: 910183ff add sp, sp, #0x60
0000f700 CFA:r29+16 r29:c-16 r30:c-8
~ 0000f794: d65f03c0 ret
-vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf6f4 0xf798 (DW_OP_fbreg -0x18) __kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:35
**0000f798 <__is_be>:
+ __is_be params:
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf798 0xf80c (DW_OP_fbreg 0x20)
__is_be:19.0 (vgic-v2-cpuif-proxy.c) Sbepe ║{
0000f798 CFA:r31
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf798 0xf80c (DW_OP_fbreg 0x20) __is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:18
~ 0000f798: d10103ff sub sp, sp, #0x40 <- 0000f5d4(bl)<__is_be>,0000f654(bl)<__is_be>
~ 0000f79c: f90013e0 str x0, [sp, #32]
__is_be:20.25 (vgic-v2-cpuif-proxy.c) SbePe if (vcpu_mode_is_32bit(║vcpu))
~ 0000f7a0: f94013e8 ldr x8, [sp, #32]
~ 0000f7a4: f9001be8 str x8, [sp, #48]
t: 0xf7a8 0xf7b4 vcpu_mode_is_32bit inlined from __is_be:20 (vgic-v2-cpuif-proxy.c) <c7ccb>:
t vcpu_mode_is_32bit:142.23 (kvm_emulate.h) Sbepe return !!(*vcpu_cpsr(║vcpu) & PSR_MODE32_BIT);
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf7a8 0xf7b4 (DW_OP_fbreg 0x30) vcpu_mode_is_32bit(inlined):__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~t 0000f7a8: f9401be8 ldr x8, [sp, #48]
~t 0000f7ac: f9001fe8 str x8, [sp, #56]
u: 0xf7b0 0xf7b4 vcpu_cpsr inlined from vcpu_mode_is_32bit:142 (kvm_emulate.h) <c7ce7>:<c7ccb>:
tu vcpu_cpsr:137.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pstate;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf7b0 0xf7b4 (DW_OP_fbreg 0x38) vcpu_cpsr(inlined):vcpu_mode_is_32bit(inlined):__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~tu 0000f7b0: f9401fe8 ldr x8, [sp, #56]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf7a8 0xf7b4 (DW_OP_fbreg 0x30) vcpu_mode_is_32bit(inlined):__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf7b0 0xf7b4 (DW_OP_fbreg 0x38) vcpu_cpsr(inlined):vcpu_mode_is_32bit(inlined):__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
__is_be:20.6 (vgic-v2-cpuif-proxy.c) Sbepe if (║vcpu_mode_is_32bit(vcpu))
~ 0000f7b4: 3949a109 ldrb w9, [x8, #616]
~ ┌──0000f7b8: 36200149 tbz w9, #4, f7e0 <__is_be+0x48>
│
~ │┌─0000f7bc: 14000001 b f7c0 <__is_be+0x28> <- 0000f7b8(b.cc-succ)<fallthrough>
││
+reg var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf7c0 0xf7d4 (DW_OP_fbreg 0x18) lexblock:__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:21
~ │└>0000f7c0: d53c4008 mrs x8, spsr_el2 <- 0000f7bc(b)<__is_be+0x28>
│ __is_be:21.13 (vgic-v2-cpuif-proxy.c) Sbepe return !!(║read_sysreg_el2(SYS_SPSR) & PSR_AA32_E_BIT);
~ │ 0000f7c4: f9000fe8 str x8, [sp, #24]
~ │ 0000f7c8: f9400fe8 ldr x8, [sp, #24]
~ │ 0000f7cc: f9000be8 str x8, [sp, #16]
~ │ 0000f7d0: b94013e9 ldr w9, [sp, #16]
-reg var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf7c0 0xf7d4 (DW_OP_fbreg 0x18) lexblock:__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:21
│ __is_be:21.3 (vgic-v2-cpuif-proxy.c) sbepe ║return !!(read_sysreg_el2(SYS_SPSR) & PSR_AA32_E_BIT);
~ │ 0000f7d4: 53092529 ubfx w9, w9, #9, #1
~ │ 0000f7d8: 3900bfe9 strb w9, [sp, #47]
~ ┌┼──0000f7dc: 14000009 b f800 <__is_be+0x68>
││
││ __is_be:23.12 (vgic-v2-cpuif-proxy.c) Sbepe return !!(║read_sysreg(SCTLR_EL1) & SCTLR_ELx_EE);
+__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf7e0 0xf7f4 (DW_OP_fbreg 0x8) lexblock:__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:23
~ │└─>0000f7e0: d5381008 mrs x8, sctlr_el1 <- 0000f7b8(b.cc)<__is_be+0x48>
~ │ 0000f7e4: f90007e8 str x8, [sp, #8]
~ │ 0000f7e8: f94007e8 ldr x8, [sp, #8]
~ │ 0000f7ec: f90003e8 str x8, [sp]
~ │ 0000f7f0: b94003e9 ldr w9, [sp]
-__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xf7e0 0xf7f4 (DW_OP_fbreg 0x8) lexblock:__is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:23
│ __is_be:23.2 (vgic-v2-cpuif-proxy.c) sbepe ║return !!(read_sysreg(SCTLR_EL1) & SCTLR_ELx_EE);
~ │ 0000f7f4: 53196529 ubfx w9, w9, #25, #1
~ │ 0000f7f8: 3900bfe9 strb w9, [sp, #47]
~ │ ┌─0000f7fc: 14000001 b f800 <__is_be+0x68>
│ │
│ │ __is_be:24.1 (vgic-v2-cpuif-proxy.c) Sbepe ║}
~ └>└>0000f800: 3940bfe0 ldrb w0, [sp, #47] <- 0000f7dc(b)<__is_be+0x68>,0000f7fc(b)<__is_be+0x68>
~ 0000f804: 910103ff add sp, sp, #0x40
0000f79c CFA:r31+64
~ 0000f808: d65f03c0 ret
-vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf798 0xf80c (DW_OP_fbreg 0x20) __is_be:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:18
**0000f80c <kvm_skip_instr>:
+ kvm_skip_instr params:
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf80c 0xf8a0 (DW_OP_breg31 0x0)
kvm_skip_instr:19.0 (adjust_pc.h) Sbepe ║{
+vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf80c 0xf8a0 (DW_OP_breg31 0x0) kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:18
~ 0000f80c: d10103ff sub sp, sp, #0x40 <- 0000f748(bl)<kvm_skip_instr>
~ 0000f810: a9037bfd stp x29, x30, [sp, #48]
0000f80c CFA:r31 r29:u r30:u
~ 0000f814: 9100c3fd add x29, sp, #0x30
~ 0000f818: f90003e0 str x0, [sp]
kvm_skip_instr:20.25 (adjust_pc.h) SbePe if (vcpu_mode_is_32bit(║vcpu)) {
~ 0000f81c: f94003e8 ldr x8, [sp]
~ 0000f820: f90007e8 str x8, [sp, #8]
v: 0xf824 0xf830 vcpu_mode_is_32bit inlined from kvm_skip_instr:20 (adjust_pc.h) <c7d61>:
v vcpu_mode_is_32bit:142.23 (kvm_emulate.h) Sbepe return !!(*vcpu_cpsr(║vcpu) & PSR_MODE32_BIT);
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf824 0xf830 (DW_OP_breg31 0x8) vcpu_mode_is_32bit(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~v 0000f824: f94007e8 ldr x8, [sp, #8]
~v 0000f828: f9000be8 str x8, [sp, #16]
w: 0xf82c 0xf830 vcpu_cpsr inlined from vcpu_mode_is_32bit:142 (kvm_emulate.h) <c7d7d>:<c7d61>:
vw vcpu_cpsr:137.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pstate;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf82c 0xf830 (DW_OP_breg31 0x10) vcpu_cpsr(inlined):vcpu_mode_is_32bit(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~vw 0000f82c: f9400be8 ldr x8, [sp, #16]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf824 0xf830 (DW_OP_breg31 0x8) vcpu_mode_is_32bit(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf82c 0xf830 (DW_OP_breg31 0x10) vcpu_cpsr(inlined):vcpu_mode_is_32bit(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
kvm_skip_instr:20.6 (adjust_pc.h) Sbepe if (║vcpu_mode_is_32bit(vcpu)) {
~ 0000f830: 3949a109 ldrb w9, [x8, #616]
~ ┌──0000f834: 362000a9 tbz w9, #4, f848 <kvm_skip_instr+0x3c>
│
~ │┌─0000f838: 14000001 b f83c <kvm_skip_instr+0x30> <- 0000f834(b.cc-succ)<fallthrough>
││
││ kvm_skip_instr:21.20 (adjust_pc.h) Sbepe kvm_skip_instr32(║vcpu);
~ │└>0000f83c: f94003e0 ldr x0, [sp] <- 0000f838(b)<kvm_skip_instr+0x30>
│ kvm_skip_instr:21.3 (adjust_pc.h) sbepe ║kvm_skip_instr32(vcpu);
~ │ 0000f840: 97fffe68 bl f1e0 <kvm_skip_instr32>
│
│ kvm_skip_instr:22.2 (adjust_pc.h) Sbepe ║} else {
~ ┌┼──0000f844: 1400000e b f87c <kvm_skip_instr+0x70> <- 0000f840(bl-succ)<return>
││
││ kvm_skip_instr:23.12 (adjust_pc.h) Sbepe *vcpu_pc(║vcpu) += 4;
~ │└─>0000f848: f94003e8 ldr x8, [sp] <- 0000f834(b.cc)<kvm_skip_instr+0x3c>
~ │ 0000f84c: f81f83a8 stur x8, [x29, #-8]
x: 0xf850 0xf854 vcpu_pc inlined from kvm_skip_instr:23 (adjust_pc.h) <c7d9b>:
x │ vcpu_pc:132.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pc;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf850 0xf854 (DW_OP_fbreg -0x8) vcpu_pc(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~x │ 0000f850: f85f83a8 ldur x8, [x29, #-8]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf850 0xf854 (DW_OP_fbreg -0x8) vcpu_pc(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ kvm_skip_instr:23.18 (adjust_pc.h) Sbepe *vcpu_pc(vcpu) ║+= 4;
~ │ 0000f854: f9413109 ldr x9, [x8, #608]
~ │ 0000f858: 91001129 add x9, x9, #0x4
~ │ 0000f85c: f9013109 str x9, [x8, #608]
│ kvm_skip_instr:24.14 (adjust_pc.h) Sbepe *vcpu_cpsr(║vcpu) &= ~PSR_BTYPE_MASK;
~ │ 0000f860: f94003e8 ldr x8, [sp]
~ │ 0000f864: f81f03a8 stur x8, [x29, #-16]
y: 0xf868 0xf86c vcpu_cpsr inlined from kvm_skip_instr:24 (adjust_pc.h) <c7db8>:
y │ vcpu_cpsr:137.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pstate;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf868 0xf86c (DW_OP_fbreg -0x10) vcpu_cpsr(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~y │ 0000f868: f85f03a8 ldur x8, [x29, #-16]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf868 0xf86c (DW_OP_fbreg -0x10) vcpu_cpsr(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
│ kvm_skip_instr:24.20 (adjust_pc.h) Sbepe *vcpu_cpsr(vcpu) ║&= ~PSR_BTYPE_MASK;
~ │ 0000f86c: f9413509 ldr x9, [x8, #616]
~ │ 0000f870: 9274f529 and x9, x9, #0xfffffffffffff3ff
~ │ 0000f874: f9013509 str x9, [x8, #616]
~ │ ┌─0000f878: 14000001 b f87c <kvm_skip_instr+0x70>
│ │
│ │ kvm_skip_instr:28.13 (adjust_pc.h) Sbepe *vcpu_cpsr(║vcpu) &= ~DBG_SPSR_SS;
~ └>└>0000f87c: f94003e8 ldr x8, [sp] <- 0000f844(b)<kvm_skip_instr+0x70>,0000f878(b)<kvm_skip_instr+0x70>
~ 0000f880: f9000fe8 str x8, [sp, #24]
z: 0xf884 0xf888 vcpu_cpsr inlined from kvm_skip_instr:28 (adjust_pc.h) <c7dd5>:
z vcpu_cpsr:137.27 (kvm_emulate.h) Sbepe return (unsigned long *)&║vcpu_gp_regs(vcpu)->pstate;
+vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf884 0xf888 (DW_OP_breg31 0x18) vcpu_cpsr(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
~z 0000f884: f9400fe8 ldr x8, [sp, #24]
-vcpu param pointer(const(struct kvm_vcpu<b82b3>/<c5832>)) 0xf884 0xf888 (DW_OP_breg31 0x18) vcpu_cpsr(inlined):kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c
kvm_skip_instr:28.19 (adjust_pc.h) Sbepe *vcpu_cpsr(vcpu) ║&= ~DBG_SPSR_SS;
~ 0000f888: f9413509 ldr x9, [x8, #616]
~ 0000f88c: 926af929 and x9, x9, #0xffffffffffdfffff
~ 0000f890: f9013509 str x9, [x8, #616]
kvm_skip_instr:29.1 (adjust_pc.h) Sbepe ║}
~ 0000f894: a9437bfd ldp x29, x30, [sp, #48]
~ 0000f898: 910103ff add sp, sp, #0x40
~ 0000f89c: d65f03c0 ret
-vcpu param pointer(struct kvm_vcpu<b82b3>/<c5832>) 0xf80c 0xf8a0 (DW_OP_breg31 0x0) kvm_skip_instr:arch/arm64/kvm/hyp/nvhe/../vgic-v2-cpuif-proxy.c:18
~ 0000f8a0: 88dffd09 ldar w9, [x8]
~ 0000f8a4: d5384028 mrs x8, elr_el1
~ 0000f8a8: d5384008 mrs x8, spsr_el1
~ 0000f8ac: d5184008 msr spsr_el1, x8
~ 0000f8b0: d5184028 msr elr_el1, x8
0000f818 CFA:r29+16 r29:c-16 r30:c-8
~ 0000f8b4: d5384008 mrs x8, spsr_el1