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 00000000 000000cc arch/arm64/kvm/hyp/nvhe/timer-sr.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 **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <>: **00000000 <timer-sr.c>: **00000000 <sysreg-sr.c>: **00000000 <debug-sr.c>: **00000000 <switch.c>: **00000000 <tlb.c>: **00000000 <arch/arm64/kvm/hyp/nvhe/hyp-init.nvhe.o>: **00000000 <arch/arm64/kvm/hyp/nvhe/host.nvhe.o>: **00000000 <hyp-main.c>: **00000000 <hyp-smp.c>: **00000000 <psci-relay.c>: **00000000 <early_alloc.c>: **00000000 <stub.c>: **00000000 <page_alloc.c>: **00000000 <arch/arm64/kvm/hyp/nvhe/cache.nvhe.o>: **00000000 <cpufeature.c>: **00000000 <setup.c>: **00000000 <mm.c>: **00000000 <mem_protect.c>: **00000000 <vgic-v3-sr.c>: **00000000 <aarch32.c>: **00000000 <vgic-v2-cpuif-proxy.c>: **00000000 <arch/arm64/kvm/hyp/nvhe/../entry.nvhe.o>: **00000000 <arch/arm64/kvm/hyp/nvhe/../fpsimd.nvhe.o>: **00000000 <arch/arm64/kvm/hyp/nvhe/../hyp-entry.nvhe.o>: **00000000 <exception.c>: **00000000 <pgtable.c>: **00000000 <arch/arm64/kvm/hyp/nvhe/../../../lib/clear_page.nvhe.o>: **00000000 <arch/arm64/kvm/hyp/nvhe/../../../lib/copy_page.nvhe.o>: **00000000 <arch/arm64/kvm/hyp/nvhe/../../../lib/memcpy.nvhe.o>: **00000000 <arch/arm64/kvm/hyp/nvhe/../../../lib/memset.nvhe.o>: **00000000 <dummy.c>: **00000000 <__kvm_timer_set_cntvoff>: 00000000 <$x>: + __kvm_timer_set_cntvoff params: +cntvoff param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x0 0x28 (DW_OP_fbreg 0x8) __kvm_timer_set_cntvoff:14.0 (timer-sr.c) Sbepe ║{ 00000000 CFA:r31 +cntvoff param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x0 0x28 (DW_OP_fbreg 0x8) __kvm_timer_set_cntvoff:arch/arm64/kvm/hyp/nvhe/timer-sr.c:13 ~ 00000000: d10043ff sub sp, sp, #0x10 <- 0000480c(out-of-range)<sve_save_state>,00004878(out-of-range)<sve_load_state>,00007390(bl)<__kvm_timer_set_cntvoff>,00017324(out-of-range) ~ 00000004: f90007e0 str x0, [sp, #8] __kvm_timer_set_cntvoff:15.2 (timer-sr.c) SbePe ║write_sysreg(cntvoff, cntvoff_el2); ~ ┌─00000008: 14000001 b c <__kvm_timer_set_cntvoff+0xc> __kvm_timer_set_cntvoff:15.2 (timer-sr.c) sbepe ║write_sysreg(cntvoff, cntvoff_el2); +__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xc 0x20 (DW_OP_fbreg 0x0) lexblock:__kvm_timer_set_cntvoff:arch/arm64/kvm/hyp/nvhe/timer-sr.c:15 ~ └>0000000c: f94007e8 ldr x8, [sp, #8] <- 00000008(b)<__kvm_timer_set_cntvoff+0xc> ~ 00000010: f90003e8 str x8, [sp] ~ 00000014: f94003e8 ldr x8, [sp] ~ 00000018: d51ce068 msr cntvoff_el2, x8 ~ ┌─0000001c: 14000001 b 20 <__kvm_timer_set_cntvoff+0x20> -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xc 0x20 (DW_OP_fbreg 0x0) lexblock:__kvm_timer_set_cntvoff:arch/arm64/kvm/hyp/nvhe/timer-sr.c:15 __kvm_timer_set_cntvoff:16.1 (timer-sr.c) Sbepe ║} ~ └>00000020: 910043ff add sp, sp, #0x10 <- 0000001c(b)<__kvm_timer_set_cntvoff+0x20> 00000004 CFA:r31+16 ~ 00000024: d65f03c0 ret -cntvoff param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x0 0x28 (DW_OP_fbreg 0x8) __kvm_timer_set_cntvoff:arch/arm64/kvm/hyp/nvhe/timer-sr.c:13 **00000028 <__timer_disable_traps>: + __timer_disable_traps params: +vcpu param pointer(struct kvm_vcpu<0>/<429>) 0x28 0x74 (DW_OP_fbreg 0x28) __timer_disable_traps:23.0 (timer-sr.c) Sbepe ║{ 00000028 CFA:r31 +vcpu param pointer(struct kvm_vcpu<0>/<429>) 0x28 0x74 (DW_OP_fbreg 0x28) __timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:22 +val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x28 0x74 (DW_OP_fbreg 0x20) __timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:24 ~ 00000028: d100c3ff sub sp, sp, #0x30 <- 00002550(bl)<__timer_disable_traps>,00003790(bl)<__timer_disable_traps> ~ 0000002c: f90017e0 str x0, [sp, #40] __timer_disable_traps:27.8 (timer-sr.c) SbePe val = ║read_sysreg(cnthctl_el2); +__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x30 0x44 (DW_OP_fbreg 0x18) lexblock:__timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:27 ~ 00000030: d53ce108 mrs x8, cnthctl_el2 ~ 00000034: f9000fe8 str x8, [sp, #24] ~ 00000038: f9400fe8 ldr x8, [sp, #24] ~ 0000003c: f9000be8 str x8, [sp, #16] ~ 00000040: f9400be8 ldr x8, [sp, #16] -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x30 0x44 (DW_OP_fbreg 0x18) lexblock:__timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:27 __timer_disable_traps:27.6 (timer-sr.c) sbepe val ║= read_sysreg(cnthctl_el2); ~ 00000044: f90013e8 str x8, [sp, #32] __timer_disable_traps:28.6 (timer-sr.c) Sbepe val ║|= CNTHCTL_EL1PCTEN | CNTHCTL_EL1PCEN; ~ 00000048: f94013e8 ldr x8, [sp, #32] ~ 0000004c: b2400508 orr x8, x8, #0x3 ~ 00000050: f90013e8 str x8, [sp, #32] __timer_disable_traps:29.2 (timer-sr.c) Sbepe ║write_sysreg(val, cnthctl_el2); ~ ┌─00000054: 14000001 b 58 <__timer_disable_traps+0x30> __timer_disable_traps:29.2 (timer-sr.c) sbepe ║write_sysreg(val, cnthctl_el2); +__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x58 0x6c (DW_OP_fbreg 0x8) lexblock:__timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:29 ~ └>00000058: f94013e8 ldr x8, [sp, #32] <- 00000054(b)<__timer_disable_traps+0x30> ~ 0000005c: f90007e8 str x8, [sp, #8] ~ 00000060: f94007e8 ldr x8, [sp, #8] ~ 00000064: d51ce108 msr cnthctl_el2, x8 ~ ┌─00000068: 14000001 b 6c <__timer_disable_traps+0x44> -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x58 0x6c (DW_OP_fbreg 0x8) lexblock:__timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:29 __timer_disable_traps:30.1 (timer-sr.c) Sbepe ║} ~ └>0000006c: 9100c3ff add sp, sp, #0x30 <- 00000068(b)<__timer_disable_traps+0x44> 0000002c CFA:r31+48 ~ 00000070: d65f03c0 ret -vcpu param pointer(struct kvm_vcpu<0>/<429>) 0x28 0x74 (DW_OP_fbreg 0x28) __timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:22 -val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x28 0x74 (DW_OP_fbreg 0x20) __timer_disable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:24 **00000074 <__timer_enable_traps>: + __timer_enable_traps params: +vcpu param pointer(struct kvm_vcpu<0>/<429>) 0x74 0xcc (DW_OP_fbreg 0x28) __timer_enable_traps:37.0 (timer-sr.c) Sbepe ║{ 00000074 CFA:r31 +vcpu param pointer(struct kvm_vcpu<0>/<429>) 0x74 0xcc (DW_OP_fbreg 0x28) __timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:36 +val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x74 0xcc (DW_OP_fbreg 0x20) __timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:38 ~ 00000074: d100c3ff sub sp, sp, #0x30 <- 00002508(bl)<__timer_enable_traps> ~ 00000078: f90017e0 str x0, [sp, #40] __timer_enable_traps:44.8 (timer-sr.c) SbePe val = ║read_sysreg(cnthctl_el2); +__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7c 0x90 (DW_OP_fbreg 0x18) lexblock:__timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:44 ~ 0000007c: d53ce108 mrs x8, cnthctl_el2 ~ 00000080: f9000fe8 str x8, [sp, #24] ~ 00000084: f9400fe8 ldr x8, [sp, #24] ~ 00000088: f9000be8 str x8, [sp, #16] ~ 0000008c: f9400be8 ldr x8, [sp, #16] -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7c 0x90 (DW_OP_fbreg 0x18) lexblock:__timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:44 __timer_enable_traps:44.6 (timer-sr.c) sbepe val ║= read_sysreg(cnthctl_el2); ~ 00000090: f90013e8 str x8, [sp, #32] __timer_enable_traps:45.6 (timer-sr.c) Sbepe val ║&= ~CNTHCTL_EL1PCEN; ~ 00000094: f94013e8 ldr x8, [sp, #32] ~ 00000098: 927ef908 and x8, x8, #0xfffffffffffffffd ~ 0000009c: f90013e8 str x8, [sp, #32] __timer_enable_traps:46.6 (timer-sr.c) Sbepe val ║|= CNTHCTL_EL1PCTEN; ~ 000000a0: f94013e8 ldr x8, [sp, #32] ~ 000000a4: b2400108 orr x8, x8, #0x1 ~ 000000a8: f90013e8 str x8, [sp, #32] __timer_enable_traps:47.2 (timer-sr.c) Sbepe ║write_sysreg(val, cnthctl_el2); ~ ┌─000000ac: 14000001 b b0 <__timer_enable_traps+0x3c> __timer_enable_traps:47.2 (timer-sr.c) sbepe ║write_sysreg(val, cnthctl_el2); +__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xb0 0xc4 (DW_OP_fbreg 0x8) lexblock:__timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:47 ~ └>000000b0: f94013e8 ldr x8, [sp, #32] <- 000000ac(b)<__timer_enable_traps+0x3c> ~ 000000b4: f90007e8 str x8, [sp, #8] ~ 000000b8: f94007e8 ldr x8, [sp, #8] ~ 000000bc: d51ce108 msr cnthctl_el2, x8 ~ ┌─000000c0: 14000001 b c4 <__timer_enable_traps+0x50> -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0xb0 0xc4 (DW_OP_fbreg 0x8) lexblock:__timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:47 __timer_enable_traps:48.1 (timer-sr.c) Sbepe ║} ~ └>000000c4: 9100c3ff add sp, sp, #0x30 <- 000000c0(b)<__timer_enable_traps+0x50> 00000078 CFA:r31+48 ~ 000000c8: d65f03c0 ret -vcpu param pointer(struct kvm_vcpu<0>/<429>) 0x74 0xcc (DW_OP_fbreg 0x28) __timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:36 -val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x74 0xcc (DW_OP_fbreg 0x20) __timer_enable_traps:arch/arm64/kvm/hyp/nvhe/timer-sr.c:38