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