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