On 03/03/2016 08:38 AM, Marc Zyngier wrote: > On 03/03/16 14:26, Shanker Donthineni wrote: >> >> On 03/03/2016 08:03 AM, Marc Zyngier wrote: >>> On 03/03/16 13:25, Shanker Donthineni wrote: >>>> On 03/02/2016 11:35 AM, Marc Zyngier wrote: >>>>> On 02/03/16 15:48, Shanker Donthineni wrote: >>>>> >>>>>> We haven't started running heavy workloads in VMs. So far we >>>>>> have noticed this random nature behavior only during guest >>>>>> kernel boot (at EL1). >>>>>> >>>>>> We didn't see this problem on 4.3 kernel. Do you think it is >>>>>> related to TLB conflicts? >>>>> I cannot imagine why a DSB would solve a TLB conflict. But the fact >>>>> that >>>>> you didn't see it crashing on 4.3 is a good indication that something >>>>> else it at play. >>>>> >>>>> In 4.5, we've rewritten a large part of KVM in C, which has changed the >>>>> ordering of the various accesses a lot. It could be that a latent >>>>> problem is now exposed more widely. >>>>> >>>>> Can you try moving this DSB around and find out what is the earliest >>>>> point where it solves this problem? Some sort of bisection? >>>> The maximum I can move up 'dsb ishst' to the beginning of >>>> __guest_enter() but not out side of this function. >>>> >>>> I don't understand why it is failing below code, branch >>>> instruction causing problems. >>>> >>>> /* Jump in the fire! */ >>>> + dsb(ishst); >>>> exit_code = __guest_enter(vcpu, host_ctxt); >>>> /* And we're baaack! */ >>> That's very worrying. I can't see how the branch can have an influence >>> on the the DSB (nor why the DSB has an influence on the rest of the >>> execution, btw). >>> >>> What if you replace the DSB with an ISB? Do you observe a similar >>> behaviour (works if the barrier is in __guest_enter, but not if it is >>> outside)? >> I have already tried with isb without success. I did another >> experiment flush stage-2 TLBs before calling __guest_enetr(), >> it fixed the problem. > I suspected something like that. But it is such a massive hammer that it > will hide any sort of subtle bug (HW *and* SW). > >>> Another thing worth looking at is what happened just before we decided >>> to get back into the guest. Or to put it differently, what was the >>> reason to exit the first place. Was it a Stage-2 fault by any chance? >> I will collect as much possible debug data and update results >> to you. I went through your KVM refracted 'C' code and did not >> find any thing suspicious. I am thinking may be Qualcomm CPUs >> have a very aggressive prefech logic that causing the problem. > OK. Please keep me posted about your findings. Also maybe involving some > HW people ouwld be a good idea (running something in an emulator, for > example...). I am not able to reproduce the issue on emulation platforms at all, seems slow systems are hiding the problem since this is not a functional BUG. Failure is always consistent and seeing EL1 IABT page fault when executing an instruction 'eret' (switches from EL2 to EL1) whenever the problem happens. Prior to this, the VM was exited because it accessed unmapped stage-1 guest page that contains kernel instruction code, KVM has mapped the corresponding page at stage-2 level and reentering VM. Below ETM trace shows the execution path with an unexpected IABT. Also, I have attached the ETM trace file that contains more traces before failure. | | bl 0x4000866CB0 -000089| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -000088| | HX:0000004000866CD8 ptrace | | ret -000078| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -000077| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] _______|__|_ldp_____x12,x13,[x1,#0x60]__;_x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -000059| | NSX:FFFFFFC0000852C0 ptrace \\vmlinux\Global\el1_sync | + ENDPROC(el1_error_invalid) | | | | /* | | * EL1 mode handlers. | | */ | | .align 6 | | el1_sync: 334| | kernel_entry 1 | | sub SP,SP,#0x120 ; SP,SP,#288 | | stp x0,x1,[SP] | | stp x2,x3,[SP,#0x10] ; x2,x3,[SP,#16] | | stp x4,x5,[SP,#0x20] ; x4,x5,[SP,#32] | | stp x6,x7,[SP,#0x30] ; x6,x7,[SP,#48] | | stp x8,x9,[SP,#0x40] ; x8,x9,[SP,#64] | | stp x10,x11,[SP,#0x50] ; x10,x11,[SP,#80] | | stp x12,x13,[SP,#0x60] ; x12,x13,[SP,#96] | | stp x14,x15,[SP,#0x70] ; x14,x15,[SP,#112] | | stp x16,x17,[SP,#0x80] ; x16,x17,[SP,#128] | | stp x18,x19,[SP,#0x90] ; x18,x19,[SP,#144] | | stp x20,x21,[SP,#0xA0] ; x20,x21,[SP,#160] | | stp x22,x23,[SP,#0xB0] ; x22,x23,[SP,#176] | | stp x24,x25,[SP,#0xC0] ; x24,x25,[SP,#192] | | stp x26,x27,[SP,#0xD0] ; x26,x27,[SP,#208] | | stp x28,x29,[SP,#0xE0] ; x28,x29,[SP,#224] | | add x21,SP,#0x120 ; x21,SP,#288 | | mrs x22,#0x3,#0x0,c4,c0,#0x1; x22, ELR_EL3 | | mrs x23,#0x3,#0x0,c4,c0,#0x0; x23, SPSR_EL1 | | stp x30,x21,[SP,#0xF0] ; x30,x21,[SP,#240] | | stp x22,x23,[SP,#0x100] ; x22,x23,[SP,#256] 335| | mrs x1, esr_el1 // read the syndrome register | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 336| | lsr x24, x1, #ESR_ELx_EC_SHIFT // exception class | | lsr x24,x1,#0x1A ; x24,x1,#26 337| | cmp x24, #ESR_ELx_EC_IABT_CUR // instruction abort in EL1 | | cmp x24,#0x21 ; x24,#33 338| | b.eq el1_iabt | | b.eq 0xFFFFFFC000085464 ; el1_iabt -000056|BRK ----------------------- ------- ---------------- ------------------------------- > Thanks, > > M. -- Shanker Donthineni Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-064861| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -064860| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -064850| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -064849| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -064848| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -064847| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -064846| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -064836| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -064802| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -064801| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -064800| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -064799| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -064798| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -064788| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -064787| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -064786| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -064776| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064775| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064774| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064773| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064772| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064771| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064770| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064769| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064768| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064767| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064766| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064765| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064764| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064763| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064762| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064761| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064760| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064759| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064758| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064757| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064756| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064755| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064754| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064753| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064752| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064751| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064750| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064749| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064748| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064747| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064746| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064745| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064744| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064743| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064742| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064741| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064740| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064739| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064738| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064737| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064736| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064735| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064734| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064733| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064732| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064731| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064730| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064729| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064728| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064727| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064726| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064725| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064724| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064723| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064722| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064721| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064720| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064719| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064718| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064717| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064716| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064715| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064714| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064713| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064712| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064711| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064710| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064709| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064708| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064707| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064706| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064705| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064704| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064703| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064702| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064701| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064700| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064699| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064698| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064697| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064696| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064695| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064694| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064693| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064692| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064691| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064690| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064689| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064688| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064687| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064686| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064685| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064684| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064683| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064682| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064681| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064680| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064679| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064678| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064677| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064676| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064675| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064674| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -064664| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -064654| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -064653| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -064652| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -064651| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -064641| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064640| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064639| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064638| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064637| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064636| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064635| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064634| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -064624| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -064623| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -064622| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -064621| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -064611| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064610| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064609| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064608| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064607| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064606| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064605| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064604| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -064594| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -064584| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -064583| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -064573| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -064572| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -064571| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -064570| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -064569| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -064559| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -064549| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064548| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064547| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064546| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064545| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064544| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064543| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064542| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064541| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -064507| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -064497| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -064496| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -064486| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -064485| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -064484| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -064483| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -064473| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -064472| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -064471| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -064470| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -064469| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -064468| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -064458| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -064448| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -064447| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -064437| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -064436| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -064435| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -064434| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -064433| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -064432| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -064422| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064421| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064420| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064419| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064418| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064417| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064416| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064415| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064414| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -064404| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -064403| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -064402| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -064401| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -064400| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -064390| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064389| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064388| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064387| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064386| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064385| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064375| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064374| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064373| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064363| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064362| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064361| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064360| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064359| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064358| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064348| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064347| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064346| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064336| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064335| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064334| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064333| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064332| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064331| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064321| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064320| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064319| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064309| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064308| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064307| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064306| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064305| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064304| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -064294| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064293| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064292| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064291| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064290| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -064280| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -064270| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064269| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064268| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064267| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064266| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064265| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064264| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064263| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064262| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064261| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064260| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064259| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064258| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064257| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064256| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064255| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -064245| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -064235| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064234| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064233| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064232| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064231| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064230| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064229| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064228| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -064218| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -064208| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -064207| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -064206| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -064205| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -064195| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -064161| | NSX:FFFFFFC000349E34 unknown .gic_irq_set_irqchip_state+0x1C -064160| | NSX:FFFFFFC000349E34 unknown .gic_irq_set_irqchip_state+0x1C -064159| | NSX:FFFFFFC000349E34 unknown .gic_irq_set_irqchip_state+0x1C -064158| | NSX:FFFFFFC000349E34 unknown .gic_irq_set_irqchip_state+0x1C -064157| | NSX:FFFFFFC000349E34 unknown .gic_irq_set_irqchip_state+0x1C -064147| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -064146| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -064145| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -064144| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -064134| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -064124| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -064114| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -064104| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -064103| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -064102| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -064101| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -064091| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -064090| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -064089| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -064079| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -064069| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -064068| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -064058| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -064057| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -064056| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -064055| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -064054| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -064053| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -064043| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064042| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064041| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064040| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064039| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064038| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064037| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -064027| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -064026| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -064025| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -064024| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -064014| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -064004| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -064003| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -064002| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -063992| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -063991| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -063990| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -063989| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -063979| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -063969| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063968| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063967| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063966| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063965| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063964| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063963| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063962| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -063952| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -063951| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -063950| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -063949| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -063939| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -063938| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -063937| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -063936| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -063935| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -063925| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -063924| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -063897| | HX:0000004000868400 ptrace | | b 0x4000867800 -063896| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -063895| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -063894| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -063893| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -063883| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -063882| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -063872| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -063838| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -063837| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -063836| | HX:0000004000866D00 ptrace | | ret -063826| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -063818| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -063808| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -063807| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -063806| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -063805| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -063804| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -063803| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -063802| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -063792| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -063791| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -063790| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -063789| | HX:0000004000866368 ptrace | | ret -063779| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -063778| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -063777| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -063776| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -063766| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -063765| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -063764| | HX:0000004000866728 ptrace | | ret -063754| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -063753| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -063743| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -063742| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -063741| | HX:0000004000866CD8 ptrace | | ret -063731| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -063730| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -063712| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063711| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063710| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063709| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063708| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063707| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063706| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063705| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063704| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063703| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063702| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063701| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063700| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063699| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063698| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063697| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063696| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063695| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063694| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063693| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063692| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063691| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063690| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063689| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063688| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063687| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063686| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063685| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063684| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063683| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063682| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063681| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063680| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063679| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063678| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063677| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063676| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063675| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063674| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063673| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063672| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063671| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063670| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063669| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063668| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063667| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063666| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063665| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063664| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063663| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063662| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063661| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063660| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063659| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063658| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063657| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063656| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063655| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063654| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063653| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063652| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063651| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063650| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063649| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063648| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063647| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063646| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063645| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063644| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063643| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063642| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063641| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063640| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063639| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063638| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063637| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063636| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063635| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063634| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063633| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063632| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063631| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063630| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063629| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063628| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063627| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063626| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063625| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063624| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063623| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063622| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063621| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063620| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063619| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063618| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063617| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063616| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063615| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063614| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063613| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063612| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063611| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063610| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063609| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063608| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063607| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063606| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063605| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063604| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063603| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063602| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063601| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063600| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063599| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063598| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063597| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063596| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063595| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063594| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063593| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063592| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063591| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063590| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063589| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063588| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063587| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063586| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063585| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063584| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063583| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063582| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063581| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063580| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063579| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063578| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063577| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063576| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063575| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063574| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063573| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063572| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063571| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063537| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063536| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063535| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063534| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063533| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063532| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063531| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063530| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063529| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063528| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063527| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063526| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063525| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063524| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063523| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063522| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063521| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063520| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063519| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063518| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063517| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063516| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063515| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063514| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063513| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063512| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063511| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063510| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063509| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063508| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063507| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063506| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063505| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063504| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063503| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063502| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063501| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063500| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063499| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063498| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063497| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063496| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063495| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063494| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063493| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063492| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063491| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063490| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063489| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063488| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063487| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063486| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063485| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063484| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063483| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063482| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063481| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063480| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063479| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063478| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063477| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063476| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063475| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063474| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063473| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063472| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063471| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063470| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063469| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063468| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063467| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063466| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063465| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063464| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063463| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063462| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063461| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063460| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063459| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063458| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063457| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063456| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063455| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063454| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063453| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063452| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063451| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063450| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063449| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063448| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063447| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063446| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063445| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063444| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063443| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063442| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063441| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063440| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063439| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063438| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063437| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063436| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063435| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063434| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063433| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063432| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063431| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063430| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063429| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063428| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063427| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063426| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063425| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063424| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063423| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063422| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063421| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063420| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063419| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063418| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063417| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063416| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063415| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063414| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063413| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063412| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063411| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063410| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063409| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063408| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063407| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063406| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063405| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063404| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063403| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063402| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063401| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063400| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063399| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063398| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063397| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063396| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063395| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063394| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063393| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063392| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063391| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063390| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063389| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063388| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063387| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063386| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063385| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063384| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063383| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063382| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063381| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063380| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063379| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063378| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063377| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063376| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063375| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063374| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063373| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063372| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063371| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063370| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063369| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063368| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063367| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063366| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063365| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063364| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063363| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063362| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063361| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063360| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063359| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063358| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063357| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063356| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063355| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063354| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063353| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063352| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063351| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063350| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063349| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063348| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063347| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063346| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063345| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063344| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063343| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063342| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063341| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063340| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063339| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063338| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063337| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063336| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063335| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063334| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063333| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063332| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063331| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063330| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063329| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063328| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063327| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063326| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063325| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063324| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063323| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063322| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063321| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063320| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063319| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063318| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063317| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063316| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063315| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063314| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063313| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063312| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063311| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063310| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063309| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063275| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063274| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063273| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063272| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063271| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063270| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063269| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063268| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063267| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063266| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063265| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063264| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063263| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063262| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063261| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063260| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063259| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063258| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063257| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063256| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063255| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063254| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063253| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063252| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063251| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063250| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063249| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063248| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063247| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063246| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063245| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063244| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063243| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063242| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063241| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063240| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063239| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063238| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063237| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063236| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063235| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063234| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063233| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063232| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063231| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063230| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063229| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063228| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063227| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063226| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063225| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063224| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063223| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063222| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063221| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063220| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063219| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063218| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063217| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063216| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063215| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063214| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063213| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063212| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063211| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063210| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063209| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063208| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063207| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063206| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063205| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063204| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063203| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063202| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063201| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063200| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063199| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063198| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063197| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063196| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063195| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063194| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063193| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063192| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063191| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063190| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063189| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063188| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063187| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063186| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063185| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063184| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063183| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063182| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063181| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063180| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063179| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063178| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063177| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063176| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063175| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063174| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063173| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063172| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063171| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063170| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063169| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063168| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063167| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063166| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063165| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063164| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063163| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063162| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063161| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063160| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063159| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063158| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063157| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063156| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063155| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063154| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063153| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063152| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063151| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063150| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063149| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063148| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063147| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063146| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063145| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063144| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063143| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063142| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063141| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063140| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063139| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063138| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063137| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063136| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063135| | NSX:FFFFFFC00033D168 ptrace \\vmlinux\crc32\crc32_be+0x58 | + # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | ldr w4,[x8,#0x4] ; w4,[x8,#4] | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | add x3,x10,#0xD00 ; x3,x10,#3328 110| | q = *++b; | | ldr w5,[x8,#0x8]! ; w5,[x8,#8]! | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | subs x9,x9,#0x1 ; x9,x9,#1 | | # endif 105| | q = crc ^ *++b; /* use pre increment for speed */ | | eor w0,w0,w4 | | ubfx x7,x0,#0x8,#0x8 ; x7,x0,#8,#8 | | ubfx x6,x0,#0x10,#0x8 ; x6,x0,#16,#8 | | # if CRC_LE_BITS == 32 | | crc = DO_CRC4; | | # else 109| | crc = DO_CRC8; | | lsr w4,w0,#0x18 ; w4,w0,#24 | | ubfx x19,x5,#0x8,#0x8 ; x19,x5,#8,#8 | | ubfx x30,x5,#0x10,#0x8 ; x30,x5,#16,#8 | | add x7,x17,w7,uxtw #0x2 ; x7,x17,w7,uxtw #2 | | add x6,x16,w6,uxtw #0x2 ; x6,x16,w6,uxtw #2 | | add x4,x14,w4,uxtw #0x2 ; x4,x14,w4,uxtw #2 | | add x0,x15,w0,uxtb #0x2 ; x0,x15,w0,uxtb #2 111| | crc ^= DO_CRC4; | | lsr w22,w5,#0x18 ; w22,w5,#24 | | add x5,x13,w5,uxtb #0x2 ; x5,x13,w5,uxtb #2 | | add x19,x12,w19,uxtw #0x2; x19,x12,w19,uxtw #2 | | add x30,x11,w30,uxtw #0x2; x30,x11,w30,uxtw #2 | | ldr w21,[x3,x7,lsl #0x0]; w21,[x3,x7,lsl #0] | | ldr w0,[x3,x0,lsl #0x0] ; w0,[x3,x0,lsl #0] | | ldr w7,[x3,x6,lsl #0x0] ; w7,[x3,x6,lsl #0] | | ldr w6,[x3,x4,lsl #0x0] ; w6,[x3,x4,lsl #0] | | ldr w20,[x3,x5,lsl #0x0]; w20,[x3,x5,lsl #0] | | eor w7,w21,w7 | | ldr w4,[x3,w22,uxtw #0x2]; w4,[x3,w22,uxtw #2] | | eor w5,w0,w6 | | ldr w19,[x3,x19,lsl #0x0]; w19,[x3,x19,lsl #0] | | eor w0,w7,w5 | | ldr w6,[x3,x30,lsl #0x0]; w6,[x3,x30,lsl #0] | | eor w3,w20,w4 | | eor w3,w0,w3 | | eor w0,w19,w6 | | eor w0,w3,w0 | | # endif | | | | b = (const u32 *)buf; | | # ifdef CONFIG_X86 | | --b; | | for (i = 0; i < len; i++) { | | # else 103| | for (--b; len; --len) { | | b.ne 0xFFFFFFC00033D168 -063134| | NSX:FFFFFFC00033D1F0 ptrace \\vmlinux\crc32\crc32_be+0xE0 | | add x1,x1,x18,lsl #0x3 ; x1,x1,x18,lsl #3 | | # endif | | } | | len = rem_len; | | /* And the last few bytes */ 116| | if (len) { | | cbz x2,0xFFFFFFC00033D22C -063133| | NSX:FFFFFFC00033D22C ptrace \\vmlinux\crc32\crc32_be+0x11C | + return crc32_be_generic(crc, p, len, | | (const u32 (*)[256])crc32table_be, CRCPOLY_BE); 340| | } | | rev w0,w0 | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -063123| | NSX:FFFFFFC000CA1F94 ptrace ./fdt\early_init_dt_verify+0x40 | + str w0,[x20,#0x0C] ; w0,[x20,#12] | | mov w1,#0x1 ; w1,#1 | | fdt_totalsize(initial_boot_params)); | | return true; 1075| | } | | mov w0,w1 | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -063113| | NSX:FFFFFFC000CA2008 ptrace .of/fdt\early_init_dt_scan+0x0C | + uxtb w0,w0 1095| | if (!status) | | cbz w0,0xFFFFFFC000CA201C -063112| | NSX:FFFFFFC000CA2010 ptrace .of/fdt\early_init_dt_scan+0x14 | | 1098| | early_init_dt_scan_nodes(); | | bl 0xFFFFFFC000CA1FB8 ; early_init_dt_scan_nodes -063111| | NSX:FFFFFFC000CA1FB8 ptrace .f/fdt\early_init_dt_scan_nodes | + | | 1078| | void __init early_init_dt_scan_nodes(void) 1079| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | /* Retrieve various information from the /chosen node */ 1081| | of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line); | | adrp x1,0xFFFFFFC000CB4000 | | adrp x0,0xFFFFFFC000CA1000; x0,a4_driver_init 1079| | { | | mov x29,SP | | /* Retrieve various information from the /chosen node */ 1081| | of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line); | | add x1,x1,#0xB88 ; x1,x1,#2952 | | add x0,x0,#0x68C ; x0,x0,#1676 1079| | { | | /* Retrieve various information from the /chosen node */ 1081| | of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line); | | bl 0xFFFFFFC000CA14E4 ; of_scan_flat_dt -063110| | NSX:FFFFFFC000CA14E4 ptrace .vmlinux\of/fdt\of_scan_flat_dt | + ... | | * of_scan_flat_dt - scan flattened tree blob and call callback on each. | | * @it: callback function | | * @data: context data pointer | | * | | * This function is used to scan the flattened device-tree, it is | | * used to extract the memory information at boot before we can | | * unflatten the tree | | */ 626| | int __init of_scan_flat_dt(int (*it)(unsigned long node, | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | stp x29,x30,[SP,#-0x50]!; x29,x30,[SP,#-80]! 631| | const void *blob = initial_boot_params; | | adrp x3,0xFFFFFFC000DF6000 | | const char *pathp; 633| | int offset, rc = 0, depth = -1; | | movn w2,#0x0 ; w2,#0 | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | const char *pathp; 633| | int offset, rc = 0, depth = -1; | | add x20,x29,#0x50 ; x20,x29,#80 | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 631| | const void *blob = initial_boot_params; | | ldr x22,[x3,#0x858] ; x22,[x3,#2136] | | const char *pathp; 633| | int offset, rc = 0, depth = -1; | | mov w21,#0x0 ; w21,#0 | | str w2,[x20,#-0x4]! ; w2,[x20,#-4]! | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | stp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | mov x24,x0 | | mov x23,x1 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | mov x0,x22 | | mov w1,w2 | | mov x2,x20 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -063109| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -063108| | NSX:FFFFFFC0003246C0 ptrace .nux\lib/fdt\fdt_next_node+0xC8 | + mov w10,#0x0 ; w10,#0 | | b 0xFFFFFFC000324620 -063107| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | + return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -063106| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -063105| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -063104| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -063103| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -063102| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -063092| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -063091| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -063090| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -063080| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -063079| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -063078| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -063077| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -063076| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -063066| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -063065| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -063064| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -063063| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -063062| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -063061| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -063060| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -063050| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -063049| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -063039| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -063038| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -063037| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -063036| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -063035| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -063025| | NSX:FFFFFFC000CA1528 ptrace .ux\of/fdt\of_scan_flat_dt+0x44 | + mov w19,w0 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -063024| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -063023| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name | -> interrupt -062987| | NSX:FFFFFFC00085A8E0 cancel \\vmlinux\fdt_ro\fdt_get_name -062962| | HX:0000004000868400 ptrace | | b 0x4000867800 -062961| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -062960| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -062959| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -062958| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -062957| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -062956| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -062946| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -062945| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -062935| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -062934| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -062933| | HX:00000040008666D8 ptrace | | ret -062923| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -062922| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -062921| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -062911| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -062901| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -062900| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -062890| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -062889| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -062888| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -062887| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -062886| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -062885| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -062875| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -062867| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -062857| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -062856| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -062855| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -062854| | HX:0000004000866CA8 ptrace | | ret -062844| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -062843| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -062842| | HX:0000004000866D30 ptrace | | ret -062832| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -062822| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -062804| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -062794| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -062793| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -062792| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -062782| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062781| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062780| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062779| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062778| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062777| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062776| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -062766| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -062756| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -062755| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -062754| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -062744| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -062734| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -062733| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -062732| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -062722| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -062712| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -062711| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -062710| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -062700| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062699| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062698| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062697| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062696| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062695| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062685| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062684| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062683| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062682| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062672| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062671| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062670| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062669| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062668| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062667| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062657| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062623| | NSX:FFFFFFC0000A8A94 unknown .ic\kvm_vgic_sync_hwstate+0x18C -062622| | NSX:FFFFFFC0000A8A94 unknown .ic\kvm_vgic_sync_hwstate+0x18C -062621| | NSX:FFFFFFC0000A8A94 unknown .ic\kvm_vgic_sync_hwstate+0x18C -062611| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062610| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062609| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062608| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062607| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062606| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062596| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062595| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062594| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062593| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062583| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062582| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062581| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062580| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062579| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062578| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -062568| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062567| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062566| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062565| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -062555| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -062545| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -062544| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -062543| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -062542| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -062541| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -062531| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -062521| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -062520| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -062519| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -062509| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062508| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062507| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062506| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062505| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062504| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062503| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062502| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062501| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -062491| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -062490| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -062489| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -062479| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -062478| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -062477| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -062476| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -062475| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -062474| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -062464| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062463| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062462| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062461| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062460| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062459| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062458| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -062448| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -062447| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -062437| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062436| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062435| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062434| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062433| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062432| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062431| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062430| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062429| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062428| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -062418| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062417| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062416| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062415| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062414| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062413| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062412| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062411| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062410| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062409| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062408| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062407| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062406| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062405| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062404| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062403| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -062393| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -062392| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -062382| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062381| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062380| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062379| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062378| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062377| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062376| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -062366| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -062365| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -062364| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -062363| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -062362| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -062361| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -062351| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062350| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062349| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062348| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062347| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062346| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062345| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -062335| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062334| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062333| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062332| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062331| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062330| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062329| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062328| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062327| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -062293| | NSX:FFFFFFC00016D798 unknown .\gup\__get_user_pages_unlocked -062292| | NSX:FFFFFFC00016D798 unknown .\gup\__get_user_pages_unlocked -062291| | NSX:FFFFFFC00016D798 unknown .\gup\__get_user_pages_unlocked -062290| | NSX:FFFFFFC00016D798 unknown .\gup\__get_user_pages_unlocked -062280| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062279| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062278| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062277| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062276| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062275| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062274| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062273| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062272| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062271| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062270| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062269| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062268| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062267| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062266| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062265| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062264| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062263| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062262| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062261| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062260| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -062250| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -062249| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -062239| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -062238| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -062237| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -062227| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062226| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062225| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062224| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062223| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062222| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062221| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062220| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062219| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062218| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -062208| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -062207| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -062206| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -062196| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -062195| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -062194| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -062193| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -062192| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -062182| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -062181| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -062180| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -062179| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -062178| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -062177| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -062167| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062166| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062165| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062164| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062163| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062162| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062161| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062160| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -062150| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062149| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062148| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062147| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062146| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062145| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062144| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062143| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062142| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062141| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062140| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -062130| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -062129| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -062128| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -062127| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -062126| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -062116| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -062115| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -062114| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -062113| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -062103| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -062102| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -062092| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062091| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062090| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062089| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062088| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062087| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062086| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -062076| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062075| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062074| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062073| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062072| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062071| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062070| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -062060| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062059| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062058| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062057| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062056| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062055| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062054| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062053| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062052| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -062042| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -062032| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062031| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062030| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062029| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062028| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062027| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062026| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062025| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062024| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -062014| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062013| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062012| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062011| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062010| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062009| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062008| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062007| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062006| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062005| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062004| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062003| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062002| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062001| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -062000| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -061990| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -061989| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -061988| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -061987| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -061986| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -061985| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -061975| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -061941| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061940| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061939| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061938| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061937| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061936| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061935| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -061925| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -061915| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061914| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061913| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061912| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061911| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061910| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061909| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -061899| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061898| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061897| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061896| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061895| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061894| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061893| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061892| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061891| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061890| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061889| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061888| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061887| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -061877| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -061867| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -061866| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -061856| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -061855| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -061854| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -061853| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -061852| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -061842| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -061832| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -061831| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -061830| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -061829| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -061828| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -061818| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -061817| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -061816| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -061806| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061805| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061804| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061803| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061802| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061801| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061800| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061799| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061798| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061797| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061796| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061795| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061794| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061793| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061792| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061791| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061790| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061789| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061788| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061787| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061786| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061785| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061784| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061783| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061782| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061781| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061780| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061779| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061778| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061777| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061776| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061775| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061774| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061773| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061772| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061771| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061770| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061769| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061768| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061767| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061766| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061765| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061764| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061763| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061762| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061761| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061760| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061759| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061758| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061757| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061756| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061755| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061754| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061753| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061752| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061751| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061750| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061749| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061748| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061747| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061746| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061745| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061744| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061743| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061742| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061741| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061740| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061739| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061738| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061737| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061736| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061735| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061734| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061733| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061732| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061731| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061730| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061729| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061728| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061727| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061726| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061725| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061724| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061723| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061722| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061721| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061720| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061719| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061718| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061717| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061716| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061715| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061714| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061713| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061712| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061711| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061710| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061709| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061708| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061707| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061706| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061705| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061704| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -061694| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -061684| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -061683| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -061682| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -061681| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -061671| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061670| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061669| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061668| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061667| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061666| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061665| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061664| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -061654| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -061620| | NSX:FFFFFFC0008644F8 ptrace .inux\spinlock\_raw_spin_unlock | + ... | | | | return !tmp; | | } | | | | static inline void arch_spin_unlock(arch_spinlock_t *lock) | | { | | unsigned long tmp; | | 130| | asm volatile(ARM64_LSE_ATOMIC_INSN( | | __raw_spin_lock_bh(lock); | | } | | EXPORT_SYMBOL(_raw_spin_lock_bh); | | #endif | | | | #ifdef CONFIG_UNINLINE_SPIN_UNLOCK 181| | void __lockfunc _raw_spin_unlock(raw_spinlock_t *lock) 182| | { | | ldrh w1,[x0] | | add w1,w1,#0x1 ; w1,w1,#1 | | stlrh w1,[x0] | | ... | | | | /* | | * struct thread_info can be accessed directly via sp_el0. | | */ | | static inline struct thread_info *current_thread_info(void) | | { | | unsigned long sp_el0; | | 83| | asm ("mrs %0, sp_el0" : "=r" (sp_el0)); | | ... | | } | | | | #endif /* !CONFIG_GENERIC_LOCKBREAK || CONFIG_DEBUG_LOCK_ALLOC */ | | | | static inline void __raw_spin_unlock(raw_spinlock_t *lock) | | { | | spin_release(&lock->dep_map, 1, _RET_IP_); | | do_raw_spin_unlock(lock); 154| | preempt_enable(); | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | } | | | | static __always_inline bool __preempt_count_dec_and_test(void) | | { | | /* | | * Because of load-store architectures cannot do per-cpu atomic | | * operations; we cannot use PREEMPT_NEED_RESCHED because it might get | | * lost. | | */ 68| | return !--*preempt_count_ptr() && tif_need_resched(); | | ldr w0,[x1,#0x18] ; w0,[x1,#24] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x1,#0x18] ; w0,[x1,#24] | | cbnz w0,0xFFFFFFC000864538 -061619| | NSX:FFFFFFC000864518 ptrace .spinlock\_raw_spin_unlock+0x20 | | ... | | | | /** | | * test_bit - Determine whether a bit is set | | * @nr: bit number to test | | * @addr: Address to start counting from | | */ | | static inline int test_bit(int nr, const volatile unsigned long *addr) | | { 105| | return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1))); | | ldr x0,[x1] | | } | | | | static __always_inline bool __preempt_count_dec_and_test(void) | | { | | /* | | * Because of load-store architectures cannot do per-cpu atomic | | * operations; we cannot use PREEMPT_NEED_RESCHED because it might get | | * lost. | | */ 68| | return !--*preempt_count_ptr() && tif_need_resched(); | | tbz x0,#0x1,0xFFFFFFC000864538; x0,#1,0xFFFFFFC000864538 -061618| | NSX:FFFFFFC000864538 ptrace .spinlock\_raw_spin_unlock+0x40 | | ret -061608| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061607| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061606| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061605| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061604| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061603| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061602| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061601| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -061591| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -061581| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -061580| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -061570| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -061569| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -061568| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -061567| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -061566| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -061556| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -061546| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061545| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061544| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061543| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061542| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061541| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061540| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061539| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061538| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -061528| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -061518| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -061517| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -061507| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -061506| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -061505| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -061504| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -061494| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -061493| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -061492| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -061491| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -061490| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -061489| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -061479| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -061469| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -061468| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -061458| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -061457| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -061456| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -061455| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -061454| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -061453| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -061443| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061442| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061441| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061440| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061439| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061438| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061437| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061436| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061435| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -061425| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -061424| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -061423| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -061422| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -061421| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -061411| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061410| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061409| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061408| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061407| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061406| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061396| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061395| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061394| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061384| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061383| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061382| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061381| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061380| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061379| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061369| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061368| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061367| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061357| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061356| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061355| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061354| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061353| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061352| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061342| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061341| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061340| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061330| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061329| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061328| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061327| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061326| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061325| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -061315| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061314| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061313| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061312| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061311| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -061301| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -061267| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061266| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061265| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061264| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061263| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061262| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061261| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061260| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061259| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061258| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061257| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061256| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061255| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061254| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061253| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061252| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -061242| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -061232| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061231| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061230| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061229| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061228| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061227| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061226| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061225| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -061215| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -061205| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -061204| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -061203| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -061202| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -061192| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -061191| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -061190| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -061189| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -061188| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -061187| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -061177| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -061176| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -061175| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -061174| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -061164| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -061154| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -061144| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -061134| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -061133| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -061132| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -061131| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -061121| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -061120| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -061119| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -061109| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -061099| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -061098| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -061088| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -061087| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -061086| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -061085| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -061084| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -061083| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -061073| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061072| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061071| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061070| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061069| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061068| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061067| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -061057| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -061056| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -061055| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -061054| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -061044| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -061034| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -061033| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -061032| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -061022| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -061021| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -061020| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -061019| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -061009| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -060999| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060998| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060997| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060996| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060995| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060994| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060993| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060992| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -060982| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -060981| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -060980| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -060979| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -060969| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -060935| | NSX:FFFFFFC000103488 unknown .e\rcu_note_context_switch+0x88 -060934| | NSX:FFFFFFC000103488 unknown .e\rcu_note_context_switch+0x88 -060933| | NSX:FFFFFFC000103488 unknown .e\rcu_note_context_switch+0x88 -060932| | NSX:FFFFFFC000103488 unknown .e\rcu_note_context_switch+0x88 -060922| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -060921| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -060894| | HX:0000004000868400 ptrace | | b 0x4000867800 -060893| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -060892| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -060891| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -060890| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -060880| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -060879| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -060869| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -060868| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -060867| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -060866| | HX:0000004000866D00 ptrace | | ret -060856| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -060848| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -060838| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -060837| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -060836| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -060835| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -060834| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -060833| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -060832| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -060822| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -060821| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -060820| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -060819| | HX:0000004000866368 ptrace | | ret -060809| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -060808| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -060807| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -060806| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -060796| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -060795| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -060794| | HX:0000004000866728 ptrace | | ret -060784| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -060783| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -060773| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -060772| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -060771| | HX:0000004000866CD8 ptrace | | ret -060761| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -060760| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -060742| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -060741| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -060740| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -060739| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -060729| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -060728| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -060727| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -060726| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -060725| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060724| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060723| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060722| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060721| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060720| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060710| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060709| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060708| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060698| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060697| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060696| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060695| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060694| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060684| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060683| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060682| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060681| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060680| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060679| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060678| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060668| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -060667| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -060657| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -060656| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -060646| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -060645| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -060644| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -060634| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -060633| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -060623| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -060622| | NSX:FFFFFFC000CA1808 ptrace .arly_init_dt_scan_chosen+0x17C 951| + return 0; | | mov w1,#0x0 ; w1,#0 | | #endif /* CONFIG_CMDLINE */ | | | | pr_debug("Command line is: %s\n", (char*)data); | | | | /* break now */ | | return 1; 976| | } | | mov w0,w1 | | ret -060612| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -060578| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -060577| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -060576| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -060575| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -060574| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060573| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060572| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060571| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060570| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060569| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060559| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060558| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060557| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060547| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060546| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060545| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060544| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060543| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060533| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060532| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060531| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060530| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060529| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060528| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060527| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060517| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -060516| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -060506| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -060505| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -060495| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -060494| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060493| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060492| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060491| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060490| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060489| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060479| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060478| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060477| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060467| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060466| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060465| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060464| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060463| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060453| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -060452| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060451| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060450| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060449| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060448| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060438| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -060437| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -060427| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -060426| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -060425| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -060424| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060423| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060422| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060421| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060420| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060419| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060409| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060408| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060407| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060397| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060396| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060395| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060394| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060393| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060383| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -060382| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060381| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060380| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060379| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060378| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060368| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -060367| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -060357| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -060356| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -060355| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -060354| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060353| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060352| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060351| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060350| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060349| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060339| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060338| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060337| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060327| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060326| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060325| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060324| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060323| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060313| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -060312| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060311| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060310| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060309| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060308| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060298| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -060297| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -060287| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -060286| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -060285| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -060284| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060283| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060282| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060281| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060280| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060279| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060269| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060268| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060267| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060257| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060256| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060255| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060254| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060220| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060210| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -060209| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060208| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060207| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060206| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060205| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060195| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -060194| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -060184| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -060183| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -060182| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -060181| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -060180| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060179| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060178| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060177| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060176| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060166| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -060165| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -060164| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -060154| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060153| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060152| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060151| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060150| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060140| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060139| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060138| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060137| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060136| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060135| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060134| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060124| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060123| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060122| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060121| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060120| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060119| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060118| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060108| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060107| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060106| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060105| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060104| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060103| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060102| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060092| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060091| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060090| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060089| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060088| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060087| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060086| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060076| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060075| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060074| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060073| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060072| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060071| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060070| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060060| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060059| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060058| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -060020| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -060019| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -060009| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -060008| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -060007| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -060006| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -060005| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -060004| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -060003| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059993| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059992| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059991| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059990| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059989| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059988| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059987| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059977| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059976| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059975| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059974| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059973| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059972| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059971| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059961| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -059960| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -059950| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -059949| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -059948| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -059947| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -059946| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -059936| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -059935| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -059934| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -059933| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -059932| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -059931| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -059930| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -059929| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -059919| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -059885| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -059884| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -059883| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -059882| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -059881| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059880| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059879| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059878| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059877| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059867| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -059866| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -059865| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -059855| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059854| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059853| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059852| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059851| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059841| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059840| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059839| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059838| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059837| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059836| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059835| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059825| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059824| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059823| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059822| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059821| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059820| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059819| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059809| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059808| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059807| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059806| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059805| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059804| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059803| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059793| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059792| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -059754| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -059744| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059743| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059742| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059741| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059740| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059739| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059738| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059728| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059727| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059726| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059725| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059724| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059723| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059722| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059712| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059711| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059710| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059709| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059708| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059707| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059706| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059696| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -059695| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -059694| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -059693| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -059692| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -059691| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -059690| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -059680| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -059679| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -059669| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -059668| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -059658| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -059657| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -059656| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -059646| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -059645| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -059635| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -059634| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -059633| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -059632| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 | -> interrupt -059630| | NSX:FFFFFFC00032323C cancel .mlinux\Global\__pi_strcmp+0x8C -059605| | HX:0000004000868400 ptrace | | b 0x4000867800 -059604| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -059603| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -059602| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -059601| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -059600| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -059599| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -059589| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -059555| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -059545| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -059544| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -059543| | HX:00000040008666D8 ptrace | | ret -059533| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -059532| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -059531| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -059521| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -059511| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -059510| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -059500| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -059499| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -059498| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -059497| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -059496| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -059495| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -059485| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -059477| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -059467| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -059466| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -059465| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -059464| | HX:0000004000866CA8 ptrace | | ret -059454| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -059453| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -059452| | HX:0000004000866D30 ptrace | | ret -059442| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -059432| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -059414| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -059404| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -059403| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -059402| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -059392| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059391| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059390| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059389| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059388| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059387| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059386| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -059376| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -059366| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -059365| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -059364| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -059354| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -059344| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -059343| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -059342| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -059332| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -059322| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -059321| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -059320| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -059310| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059309| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059308| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059307| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059306| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059305| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059295| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059294| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059293| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059292| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059282| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059281| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059280| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059279| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059278| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059277| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059267| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059266| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059265| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059264| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059254| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059253| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059252| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059251| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059250| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059249| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059239| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059238| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059237| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059236| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059226| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -059192| | NSX:FFFFFFC0000ABAE8 unknown .ux\vgic-v3\vgic_v3_get_lr+0xB8 -059191| | NSX:FFFFFFC0000ABAE8 unknown .ux\vgic-v3\vgic_v3_get_lr+0xB8 -059190| | NSX:FFFFFFC0000ABAE8 unknown .ux\vgic-v3\vgic_v3_get_lr+0xB8 -059189| | NSX:FFFFFFC0000ABAE8 unknown .ux\vgic-v3\vgic_v3_get_lr+0xB8 -059188| | NSX:FFFFFFC0000ABAE8 unknown .ux\vgic-v3\vgic_v3_get_lr+0xB8 -059178| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059177| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059176| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059175| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -059165| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -059155| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -059154| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -059153| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -059152| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -059151| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -059141| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -059131| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -059130| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -059129| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -059119| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059118| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059117| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059116| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059115| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059114| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059113| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059112| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059111| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -059101| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -059100| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -059099| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -059089| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -059088| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -059087| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -059086| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -059085| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -059084| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -059074| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059073| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059072| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059071| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059070| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059069| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059068| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -059058| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -059057| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -059047| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059046| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059045| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059044| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059043| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059042| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059041| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059040| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059039| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059038| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059037| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -059027| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059026| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059025| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059024| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059023| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059022| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059021| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059020| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059019| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059018| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059017| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059016| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059015| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059014| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059013| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059012| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -059002| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -059001| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -058991| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058990| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058989| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058988| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058987| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058986| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058985| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -058975| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -058974| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -058973| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -058972| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -058971| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -058970| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -058960| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058959| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058958| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058957| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058956| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058955| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058954| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -058944| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058943| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058942| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058941| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058940| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058939| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058938| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058937| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058936| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058935| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058934| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058933| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058932| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -058922| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058921| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058920| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058919| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058918| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058917| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058916| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058915| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058914| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058913| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058912| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058911| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -058877| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058876| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058875| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058874| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058873| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058872| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058871| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058870| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058869| | NSX:FFFFFFC00016BD3C unknown .ux\vmacache\vmacache_find+0x54 -058859| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -058858| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -058848| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -058847| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -058846| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -058836| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058835| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058834| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058833| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058832| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058831| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058830| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058829| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058828| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058827| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -058817| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -058816| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -058815| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -058805| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -058804| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -058803| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -058802| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -058801| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -058791| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -058790| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -058789| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -058788| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -058787| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -058786| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -058776| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058775| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058774| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058773| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058772| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058771| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058770| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058769| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -058759| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058758| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058757| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058756| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058755| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058754| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058753| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058752| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058751| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058750| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058749| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -058739| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -058738| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -058737| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -058736| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -058735| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -058725| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -058724| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -058723| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -058722| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -058712| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -058711| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -058701| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058700| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058699| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058698| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058697| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058696| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058695| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -058685| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058684| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058683| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058682| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058681| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058680| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058679| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -058669| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058668| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058667| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058666| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058665| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058664| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058663| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058662| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058661| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -058651| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -058641| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058640| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058639| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058638| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058637| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058636| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058635| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058634| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058633| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -058623| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058622| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058621| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058620| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058619| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058618| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058617| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058616| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058615| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058614| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058613| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058612| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058611| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058610| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058609| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -058599| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -058598| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -058597| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -058596| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -058595| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -058594| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -058584| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -058574| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058573| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058572| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058571| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058570| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058569| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058568| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -058558| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -058524| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058523| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058522| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058521| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058520| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058519| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058518| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -058508| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058507| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058506| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058505| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058504| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058503| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058502| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058501| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058500| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058499| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058498| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058497| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058496| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -058486| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -058476| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -058475| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -058465| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -058464| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -058463| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -058462| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -058461| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -058451| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -058441| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -058440| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -058439| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -058438| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -058437| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -058427| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -058426| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -058425| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -058415| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058414| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058413| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058412| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058411| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058410| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058409| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058408| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058407| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058406| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058405| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058404| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058403| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058402| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058401| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058400| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058399| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058398| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058397| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058396| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058395| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058394| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058393| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058392| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058391| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058390| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058389| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058388| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058387| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058386| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058385| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058384| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058383| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058382| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058381| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058380| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058379| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058378| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058377| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058376| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058375| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058374| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058373| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058372| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058371| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058370| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058369| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058368| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058367| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058366| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058365| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058364| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058363| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058362| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058361| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058360| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058359| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058358| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058357| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058356| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058355| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058354| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058353| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058352| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058351| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058350| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058349| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058348| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058347| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058346| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058345| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058344| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058343| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058342| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058341| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058340| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058339| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058338| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058337| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058336| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058335| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058334| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058333| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058332| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058331| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058330| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058329| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058328| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058327| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058326| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058325| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058324| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058323| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058322| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058321| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058320| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058319| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058318| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058317| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058316| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058315| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058314| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058313| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -058303| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -058293| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -058292| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -058291| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -058290| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -058280| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058279| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058278| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058277| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058276| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058275| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058274| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058273| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -058263| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -058262| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -058261| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -058260| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -058250| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058249| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058248| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058247| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058246| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058245| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058244| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058243| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -058233| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -058199| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -058198| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -058188| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -058187| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -058186| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -058185| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -058184| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -058174| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -058164| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058163| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058162| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058161| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058160| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058159| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058158| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058157| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058156| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -058146| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -058136| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -058135| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -058125| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -058124| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -058123| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -058122| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -058112| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -058111| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -058110| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -058109| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -058108| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -058107| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -058097| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -058087| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -058086| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -058076| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -058075| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -058074| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -058073| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -058072| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -058071| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -058061| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058060| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058059| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058058| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058057| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058056| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058055| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058054| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058053| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -058043| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -058042| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -058041| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -058040| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -058039| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -058029| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058028| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058027| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058026| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058025| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058024| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058014| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -058013| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -058012| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -058002| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058001| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -058000| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057999| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057998| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057997| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057987| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057986| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057985| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057975| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057974| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057973| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057972| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057971| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057970| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057960| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057959| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057958| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057948| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057947| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057946| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057945| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057944| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057943| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057933| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057932| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057931| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057930| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057929| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -057919| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -057909| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057908| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057907| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057906| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057905| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057904| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057903| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057902| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057901| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057900| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057899| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057898| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057897| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057896| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057895| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057894| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -057884| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -057850| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057849| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057848| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057847| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057846| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057845| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057844| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057843| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -057833| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -057823| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -057822| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -057821| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -057820| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -057810| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -057809| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -057808| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -057807| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -057806| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -057805| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -057795| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -057794| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -057793| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -057792| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -057782| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -057772| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -057762| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -057752| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -057751| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -057750| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -057749| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -057739| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -057738| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -057737| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -057727| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -057717| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -057716| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -057706| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -057705| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -057704| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -057703| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -057702| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -057701| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -057691| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057690| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057689| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057688| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057687| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057686| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057685| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -057675| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -057674| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -057673| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -057672| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -057662| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -057652| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -057651| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -057650| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -057640| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -057639| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -057638| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -057637| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -057627| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -057617| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057616| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057615| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057614| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057613| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057612| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057611| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057610| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -057600| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -057599| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -057598| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -057597| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -057587| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -057586| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -057585| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -057584| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -057583| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -057573| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -057572| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -057545| | HX:0000004000868400 ptrace | | b 0x4000867800 -057511| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -057510| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -057509| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -057508| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -057498| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -057497| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -057487| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -057486| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -057485| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -057484| | HX:0000004000866D00 ptrace | | ret -057474| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -057466| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -057456| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -057455| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -057454| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -057453| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -057452| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -057451| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -057450| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -057440| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -057439| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -057438| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -057437| | HX:0000004000866368 ptrace | | ret -057427| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -057426| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -057425| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -057424| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -057414| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -057413| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -057412| | HX:0000004000866728 ptrace | | ret -057402| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -057401| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -057391| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -057390| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -057389| | HX:0000004000866CD8 ptrace | | ret -057379| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -057378| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -057360| | NSX:FFFFFFC00032323C ptrace .mlinux\Global\__pi_strcmp+0x8C 125| + ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -057359| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -057358| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -057348| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -057347| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -057346| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -057345| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 | -> interrupt -057343| | NSX:FFFFFFC00032323C cancel .mlinux\Global\__pi_strcmp+0x8C -057318| | HX:0000004000868400 ptrace | | b 0x4000867800 -057317| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -057316| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -057315| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -057314| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -057313| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -057312| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -057302| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -057301| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -057291| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -057290| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -057289| | HX:00000040008666D8 ptrace | | ret -057279| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -057278| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -057277| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -057267| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -057257| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -057256| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -057246| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -057245| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -057244| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -057243| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -057242| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -057241| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -057231| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -057223| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -057213| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -057212| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -057211| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -057210| | HX:0000004000866CA8 ptrace | | ret -057200| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -057199| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -057198| | HX:0000004000866D30 ptrace | | ret -057188| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -057178| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -057136| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -057126| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -057125| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -057124| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -057114| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057113| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057112| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057111| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057110| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057109| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057108| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -057098| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -057088| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -057087| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -057086| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -057076| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -057066| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -057065| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -057064| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -057054| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -057044| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -057043| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -057042| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -057032| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057031| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057030| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057029| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057028| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057027| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057017| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -057016| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -057015| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -057014| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -057004| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057003| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057002| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057001| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -057000| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056999| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056989| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056988| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056987| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056986| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056976| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056975| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056974| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056973| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056972| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056971| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056961| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056960| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056959| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056958| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056948| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056947| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056946| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056945| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056944| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056943| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -056933| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056932| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056931| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056930| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -056920| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -056910| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -056909| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -056908| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -056907| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -056906| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -056896| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -056886| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -056885| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -056884| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -056874| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056873| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056872| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056871| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056870| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056869| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056868| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056867| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056866| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -056832| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -056831| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -056830| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -056820| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -056819| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -056818| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -056817| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -056816| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -056815| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -056805| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056804| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056803| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056802| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056801| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056800| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056799| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -056789| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -056788| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -056778| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056777| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056776| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056775| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056774| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056773| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056772| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056771| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056770| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056769| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056768| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -056758| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056757| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056756| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056755| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056754| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056753| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056752| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056751| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056750| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056749| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056748| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056747| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056746| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056745| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056744| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056743| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -056733| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -056732| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -056722| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056721| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056720| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056719| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056718| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056717| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056716| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -056706| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -056705| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -056704| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -056703| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -056702| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -056701| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -056691| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056690| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056689| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056688| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056687| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056686| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056685| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -056675| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056674| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056673| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056672| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056671| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056670| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056669| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056668| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056667| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056666| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056665| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056664| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056663| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -056653| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056652| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056651| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056650| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056649| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056648| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056647| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056646| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056645| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056644| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056643| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056642| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056641| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056640| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056639| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056638| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056637| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056636| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056635| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056634| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056633| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -056623| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -056622| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -056612| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -056611| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -056610| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -056600| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056599| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056598| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056597| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056596| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056595| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056594| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056593| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056592| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056591| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -056581| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -056580| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -056579| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -056569| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -056568| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -056567| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -056566| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -056565| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -056555| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -056554| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -056553| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -056552| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -056551| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -056550| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -056540| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -056506| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056505| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056504| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056503| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056502| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056501| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056500| | NSX:FFFFFFC00016DE74 unknown .inux\gup\follow_page_mask+0xEC -056490| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056489| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056488| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056487| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056486| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056485| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056484| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056483| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056482| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056481| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056480| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -056470| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -056469| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -056468| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -056467| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -056466| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -056456| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -056455| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -056454| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -056453| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -056443| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -056442| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -056432| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056431| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056430| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056429| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056428| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056427| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056426| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -056416| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056415| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056414| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056413| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056412| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056411| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056410| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -056400| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056399| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056398| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056397| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056396| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056395| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056394| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056393| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056392| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -056382| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -056372| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056371| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056370| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056369| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056368| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056367| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056366| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056365| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056364| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -056354| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056353| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056352| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056351| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056350| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056349| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056348| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056347| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056346| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056345| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056344| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056343| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056342| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056341| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056340| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -056330| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -056329| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -056328| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -056327| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -056326| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -056325| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -056315| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -056305| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056304| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056303| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056302| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056301| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056300| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056299| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -056289| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -056279| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056278| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056277| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056276| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056275| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056274| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056273| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -056263| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056262| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056261| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056260| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056259| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056258| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056257| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056256| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056255| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056254| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056253| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056252| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056251| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -056241| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -056231| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -056197| | NSX:FFFFFFC00009A738 unknown ._main\kvm_is_reserved_pfn+0x18 -056187| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -056186| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -056185| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -056184| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -056183| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -056173| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -056163| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -056162| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -056161| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -056160| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -056159| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -056149| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -056148| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -056147| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -056137| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056136| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056135| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056134| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056133| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056132| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056131| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056130| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056129| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056128| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056127| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056126| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056125| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056124| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056123| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056122| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056121| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056120| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056119| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056118| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056117| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056116| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056115| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056114| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056113| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056112| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056111| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056110| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056109| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056108| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056107| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056106| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056105| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056104| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056103| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056102| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056101| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056100| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056099| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056098| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056097| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056096| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056095| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056094| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056093| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056092| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056091| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056090| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056089| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056088| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056087| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056086| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056085| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056084| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056083| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056082| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056081| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056080| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056079| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056078| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056077| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056076| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056075| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056074| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056073| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056072| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056071| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056070| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056069| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056068| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056067| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056066| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056065| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056064| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056063| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056062| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056061| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056060| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056059| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056058| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056057| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056056| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056055| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056054| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056053| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056052| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056051| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056050| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056049| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056048| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056047| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056046| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056045| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056044| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056043| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056042| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056041| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056040| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056039| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056038| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056037| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056036| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056035| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -056025| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -056015| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -056014| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -056013| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -056012| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -056002| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -056001| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -056000| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -055999| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -055998| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -055997| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -055996| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -055995| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -055985| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -055984| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -055983| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -055982| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -055972| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055971| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055970| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055969| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055968| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055967| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055966| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055965| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -055955| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -055945| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -055944| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -055934| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -055933| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -055932| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -055931| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -055930| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -055920| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -055910| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -055876| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055875| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055874| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055873| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055872| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055871| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055870| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055869| | NSX:FFFFFFC00009ABE8 unknown .kvm_main\kvm_release_pfn_clean -055859| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -055849| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -055848| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -055838| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -055837| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -055836| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -055835| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -055825| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -055824| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -055823| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -055822| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -055821| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -055820| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -055810| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -055800| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -055799| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -055789| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -055788| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -055787| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -055786| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -055785| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -055784| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -055774| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055773| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055772| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055771| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055770| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055769| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055768| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055767| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055766| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -055756| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -055755| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -055754| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -055753| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -055752| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -055742| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055741| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055740| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055739| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055738| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055737| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055727| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055726| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055725| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055715| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055714| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055713| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055712| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055711| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055710| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055700| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055699| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055698| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055688| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055687| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055686| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055685| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055684| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055683| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055673| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055672| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055671| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055661| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055660| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055659| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055658| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055657| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055656| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -055646| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055645| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055644| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055643| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055642| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -055632| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -055622| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055621| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055620| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055619| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055618| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055617| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055616| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055615| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055614| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055613| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055612| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055611| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055610| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055609| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055608| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055607| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -055597| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -055587| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055586| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055585| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055584| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055583| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055582| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055581| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055580| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -055570| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -055560| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -055526| | NSX:FFFFFFC0000F4DBC unknown .age\irq_set_irqchip_state+0x2C -055525| | NSX:FFFFFFC0000F4DBC unknown .age\irq_set_irqchip_state+0x2C -055524| | NSX:FFFFFFC0000F4DBC unknown .age\irq_set_irqchip_state+0x2C -055514| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -055513| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -055512| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -055511| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -055510| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -055509| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -055499| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -055498| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -055497| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -055496| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -055486| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -055476| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -055466| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -055456| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -055455| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -055454| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -055453| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -055443| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -055442| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -055441| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -055431| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -055421| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -055420| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -055410| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -055409| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -055408| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -055407| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -055406| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -055405| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -055395| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055394| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055393| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055392| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055391| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055390| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055389| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -055379| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -055378| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -055377| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -055376| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -055366| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -055356| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -055355| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -055354| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -055344| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -055343| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -055342| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -055341| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -055331| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -055321| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055320| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055319| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055318| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055317| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055316| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055315| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055314| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -055304| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -055303| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -055302| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -055301| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -055291| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -055290| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -055289| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -055288| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -055287| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -055277| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -055276| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -055249| | HX:0000004000868400 ptrace | | b 0x4000867800 -055248| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -055247| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -055246| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -055245| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -055235| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -055234| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -055224| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -055223| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -055222| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -055221| | HX:0000004000866D00 ptrace | | ret -055211| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -055170| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -055160| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -055159| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -055158| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -055157| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -055156| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -055155| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -055154| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -055144| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -055143| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -055142| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -055141| | HX:0000004000866368 ptrace | | ret -055131| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -055130| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -055129| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -055128| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -055118| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -055117| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -055116| | HX:0000004000866728 ptrace | | ret -055106| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -055105| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -055095| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -055094| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -055093| | HX:0000004000866CD8 ptrace | | ret -055083| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -055082| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -055064| | NSX:FFFFFFC00032323C ptrace .mlinux\Global\__pi_strcmp+0x8C 125| + ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -055063| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -055062| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -055052| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -055051| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -055041| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -055040| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -055039| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -055038| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -055037| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -055036| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -055035| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -055034| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -055033| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -055032| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -055031| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -055021| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -055020| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -055019| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -055009| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -055008| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -055007| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -055006| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -055005| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054995| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054994| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054993| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054992| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054991| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054990| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054989| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054979| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054978| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054977| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054976| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054975| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054974| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054973| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054963| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054962| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054961| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054960| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054959| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054958| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054957| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054947| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054946| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054945| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054944| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054943| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054942| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054941| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054931| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054930| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054929| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054928| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054927| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054926| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054925| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054915| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054914| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054913| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054912| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054911| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054910| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054909| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054899| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054865| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054864| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054863| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054862| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054861| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054860| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054850| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054849| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054848| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054847| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054846| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054845| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054844| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -054797| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -054796| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054786| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -054785| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -054784| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -054774| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054773| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054772| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054771| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054770| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054760| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -054759| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054758| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054757| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054756| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054755| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054745| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -054744| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -054734| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -054733| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -054732| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -054731| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -054730| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054729| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054728| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054727| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054726| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054716| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -054715| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -054714| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -054704| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054703| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054702| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054701| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054700| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054690| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -054689| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054688| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054687| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054686| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054685| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054675| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -054674| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -054664| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -054663| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -054662| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -054661| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -054660| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054659| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054658| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054657| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054656| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054646| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -054645| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -054644| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -054634| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054633| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054632| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054631| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054630| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054620| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -054619| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054618| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054617| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054616| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054615| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054605| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -054604| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -054594| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -054593| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -054592| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -054591| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -054590| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054589| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054588| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054587| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054586| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054576| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -054575| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -054574| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -054540| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054539| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054538| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054537| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054536| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054526| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -054525| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054524| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054523| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054522| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054521| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054511| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -054510| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -054500| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -054499| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -054498| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -054497| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -054496| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054495| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054494| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054493| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054492| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -054445| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -054444| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054443| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054442| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054441| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054440| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054430| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -054429| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -054428| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -054418| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054417| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054416| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054415| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054414| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054404| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054403| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054402| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054401| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054400| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054399| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054398| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054388| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054387| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054386| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054385| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054384| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054383| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054382| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054372| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054371| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054370| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054369| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054368| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054367| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054366| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054356| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054355| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054354| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054353| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054352| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054351| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054350| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054340| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054339| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054338| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054337| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054336| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054335| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054334| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054324| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054323| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054322| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054321| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054320| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054319| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054318| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054308| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054307| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054306| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054305| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054304| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054303| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054302| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054292| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054291| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054290| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054289| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054288| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054287| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054286| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054276| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054275| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054274| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054273| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054272| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054271| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054270| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054260| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054259| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -054221| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | | mov w19,w0 | | b 0xFFFFFFC000CA152C -054220| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -054219| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -054218| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -054217| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -054216| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -054215| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -054214| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -054204| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -054203| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -054202| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -054201| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -054200| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -054199| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054198| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054197| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054196| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054195| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054185| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -054151| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -054150| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -054140| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054139| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054138| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054137| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054136| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054126| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054125| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054124| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054123| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054122| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054121| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054120| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054110| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054109| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054108| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054107| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054106| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054105| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054104| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054094| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054093| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054092| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054091| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054090| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054089| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054088| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054078| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -054077| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -054076| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054075| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054074| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054073| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -054035| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -054034| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -054033| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -054032| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -054031| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -054021| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -054020| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -054010| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -054009| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -053999| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -053998| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -053997| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -053987| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -053986| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -053976| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -053975| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -053974| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -053973| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -053972| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -053971| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -053961| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -053960| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -053959| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -053958| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -053957| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -053956| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -053946| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -053945| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -053935| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -053934| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -053933| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -053932| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -053931| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -053930| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -053929| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053928| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053927| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053926| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053925| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053915| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -053914| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -053913| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -053903| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053902| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053901| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053900| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053899| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053889| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053888| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053887| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053886| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053885| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053884| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053883| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053873| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053872| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053871| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053870| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053869| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053868| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053867| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053857| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053856| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053855| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053854| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053853| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053852| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053851| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053841| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053807| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053806| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053805| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053804| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053803| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053802| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053792| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053791| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053790| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053789| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053788| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053787| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053786| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053776| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053775| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053774| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053773| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053772| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -053734| | NSX:FFFFFFC0003244A0 ptrace .inux\lib/fdt\fdt_next_tag+0x20 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053733| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053732| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053731| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053730| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053720| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -053719| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -053718| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -053708| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053707| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053706| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053705| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053704| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053694| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -053693| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053692| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053691| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053690| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053689| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053679| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -053678| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -053668| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -053667| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -053666| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -053665| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -053664| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053663| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053662| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053661| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053660| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053650| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -053649| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -053648| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -053638| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053637| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053636| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053635| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053634| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053624| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -053623| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053622| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053621| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053620| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053619| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053609| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -053608| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -053598| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -053597| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -053596| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -053595| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -053594| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053593| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053592| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053591| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053590| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053580| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -053579| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -053578| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -053568| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053567| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053566| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053565| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053564| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053554| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -053553| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -053543| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -053542| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -053541| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -053540| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -053539| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053538| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053537| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053536| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053535| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053525| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -053524| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -053523| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -053513| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053512| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053511| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053510| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053476| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053466| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053465| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053464| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053463| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053462| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053461| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053460| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053450| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053449| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053448| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053447| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053446| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053445| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053444| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053434| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053433| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053432| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053431| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053430| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053429| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053428| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053418| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053417| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053416| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053415| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053414| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053413| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053412| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053402| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053401| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053400| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053399| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053398| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053397| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053396| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053386| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053385| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053384| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -053346| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -053345| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053344| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053334| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053333| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053332| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053331| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053330| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053329| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053328| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053318| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053317| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053316| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053315| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053314| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053313| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053312| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053302| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053301| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053300| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053299| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053298| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053297| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053296| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053286| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053285| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053284| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053283| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053282| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053281| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053280| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053270| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053269| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053268| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053267| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053266| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053265| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053264| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053254| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -053216| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -053215| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053205| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053204| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053203| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053202| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053201| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053200| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053199| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053189| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053188| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053187| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053186| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053185| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053184| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053183| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053173| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053172| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053171| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053170| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053169| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053168| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053167| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053157| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053123| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053122| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053121| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053120| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053119| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053118| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053108| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053107| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053106| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -053068| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -053067| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053057| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053056| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053055| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053054| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053053| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053052| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053051| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053041| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -053040| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -053039| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -053038| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -053037| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -053036| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -053035| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -053025| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -053024| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -053014| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -053013| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -053003| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -053002| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -053001| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -052991| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -052990| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -052980| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -052979| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -052978| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -052977| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -052976| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -052975| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -052974| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -052964| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -052963| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -052962| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -052961| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -052960| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -052959| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -052958| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -052948| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -052947| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -052937| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -052936| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -052935| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -052934| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -052933| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -052932| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -052931| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052930| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052929| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052928| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052927| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052917| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -052916| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -052915| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -052905| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052904| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052903| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052902| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052901| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052891| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052890| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052889| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052888| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052887| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052886| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052885| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052875| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052874| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052873| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052872| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052871| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052870| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052869| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052859| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052858| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052857| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052856| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052855| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052854| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052853| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052843| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052842| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052841| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052840| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052839| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052838| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052837| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052827| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052826| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052825| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052824| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052823| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052822| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052821| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052787| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052786| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052785| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052784| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052783| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052782| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052781| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052771| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052770| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052769| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -052731| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -052721| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052720| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052719| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052718| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052717| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052716| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052715| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052705| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -052704| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -052694| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -052693| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -052683| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -052682| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -052681| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052680| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052679| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052678| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052677| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052667| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -052666| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -052665| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -052655| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052654| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052653| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052652| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052651| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052641| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -052640| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052639| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052638| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052637| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052636| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052626| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -052625| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -052615| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -052614| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -052613| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -052612| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -052611| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052610| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052609| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052608| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052607| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052597| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -052596| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -052595| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -052585| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052584| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052583| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052582| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052581| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052571| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -052570| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -052532| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052531| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052530| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052529| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052519| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -052518| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -052508| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -052507| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -052506| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -052505| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -052504| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052503| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052502| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052501| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052500| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052490| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -052489| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -052488| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -052478| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052477| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052476| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052475| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052474| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052464| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -052430| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -052420| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -052419| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -052418| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -052417| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -052416| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052415| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052414| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052413| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052412| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052402| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -052401| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -052400| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -052390| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052389| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052388| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052387| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052386| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052376| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052375| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052374| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052373| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052372| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052371| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052370| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052360| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052359| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052358| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052357| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052356| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052355| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052354| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052344| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052343| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052342| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052341| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052340| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -052302| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052301| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052300| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052290| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052289| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052288| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052287| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052286| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052285| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052284| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052274| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052273| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052272| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052271| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052270| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052269| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052268| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052258| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052257| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052256| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052255| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052254| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052253| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052252| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052242| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052241| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052240| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052239| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052238| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052237| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052236| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052226| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052225| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052224| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052223| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052222| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052221| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052220| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -052173| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -052172| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052162| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052161| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052160| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052159| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052158| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052157| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052156| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052146| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052145| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052144| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052143| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052142| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052141| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052140| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052130| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052129| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052128| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052127| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052126| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052125| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052124| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052114| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052080| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052079| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052078| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052077| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052076| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052075| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052065| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052064| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052063| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -052025| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052024| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052023| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052022| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052021| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052020| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -052010| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -052009| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -052008| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -052007| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -052006| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -052005| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -052004| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051994| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051993| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051992| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051991| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051990| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051989| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051988| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051978| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -051977| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -051967| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -051966| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -051956| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -051955| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -051954| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -051944| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -051943| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -051933| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -051932| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -051931| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -051930| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -051929| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -051928| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -051927| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -051917| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -051916| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -051915| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -051914| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -051913| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -051912| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -051911| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -051901| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -051900| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -051890| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -051889| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -051888| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -051887| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -051886| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -051885| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -051884| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051883| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051882| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051881| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051880| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051870| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -051869| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -051868| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -051858| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051857| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051856| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051855| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051854| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051844| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051843| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051842| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051841| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051840| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051839| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051838| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051828| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051827| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051826| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051825| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051824| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051823| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051822| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051812| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051811| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051810| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051809| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051808| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051807| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051806| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051796| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051762| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -051724| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051723| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051722| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051721| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051720| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051710| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051709| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051708| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051707| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051706| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051705| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051704| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051694| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051693| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051692| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051691| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051690| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051689| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051688| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051678| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051677| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051676| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051675| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051674| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051673| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051672| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051662| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -051624| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051623| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051622| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051612| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -051611| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -051601| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -051600| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -051599| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -051598| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -051597| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051596| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051595| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051594| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051593| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051583| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -051582| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -051581| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -051571| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051570| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051569| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051568| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051567| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051557| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -051556| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051555| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051554| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051553| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051552| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051542| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -051541| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -051531| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -051530| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -051529| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -051528| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -051527| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051526| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051525| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051524| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051523| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051513| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -051512| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -051511| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -051501| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051500| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051499| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051498| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051497| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051487| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -051486| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051485| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051484| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051483| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051482| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051472| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -051471| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -051461| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -051460| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -051459| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -051458| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -051457| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051456| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051455| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051454| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051453| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051443| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -051409| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -051408| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -051398| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051397| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051396| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051395| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051394| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051384| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -051383| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -051373| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -051372| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -051371| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -051370| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -051369| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051368| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051367| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051366| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051365| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051355| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -051354| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -051353| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -051343| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051342| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051341| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051340| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051339| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051329| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051328| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051327| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051326| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051325| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051324| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051323| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051313| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051312| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051311| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051310| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051309| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051308| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051307| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051297| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -051259| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051258| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051257| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051256| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051246| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051245| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051244| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051243| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051242| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051241| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051240| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051230| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051229| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051228| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051227| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051226| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051225| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051224| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051214| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051213| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051212| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051211| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051210| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051209| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051208| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051198| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051197| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051196| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051195| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051194| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051193| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051192| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051182| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051181| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051180| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051179| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051178| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051177| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051176| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051166| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051165| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051164| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -051126| | NSX:FFFFFFC0003244E8 ptrace .inux\lib/fdt\fdt_next_tag+0x68 | + add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -051116| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051115| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051114| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051113| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051112| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051102| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051101| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051100| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051099| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051098| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051097| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051096| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051086| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051052| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051051| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051050| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051049| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051048| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051047| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051037| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051036| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051035| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051034| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051033| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051032| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051031| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051021| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051020| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051019| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -051018| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -051017| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -051016| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -051015| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -051005| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -051004| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -051003| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -050965| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050964| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050963| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050962| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050961| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050960| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050959| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050949| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050948| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050947| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050946| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050945| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050944| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050943| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050933| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050932| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050931| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050930| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050929| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050928| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050927| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050917| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -050916| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -050906| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -050905| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -050895| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -050894| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -050893| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -050883| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -050882| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -050872| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -050871| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -050870| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -050869| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -050868| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -050867| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -050866| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -050856| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -050855| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -050854| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -050853| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -050852| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -050851| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -050850| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -050840| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -050839| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -050829| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -050828| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -050827| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -050826| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -050825| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -050824| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -050823| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050822| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050821| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050820| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -050782| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050781| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050780| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050770| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050769| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050768| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050767| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050766| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050765| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050764| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050754| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050753| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050752| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050751| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050750| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050749| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050748| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050738| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050737| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050736| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050735| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050734| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050733| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050732| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050722| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050688| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050687| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050686| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050685| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050684| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050683| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050673| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050672| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050671| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050670| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050669| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050668| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050667| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050657| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050656| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050655| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -050617| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | + ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050607| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -050606| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050605| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050604| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050603| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050602| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050592| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -050591| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -050581| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -050580| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -050579| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -050578| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -050577| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050576| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050575| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050574| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050573| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050563| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -050562| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -050561| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -050551| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050550| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050549| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050548| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050547| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050537| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -050536| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050535| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050534| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050533| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050532| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050522| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -050521| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -050511| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -050510| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -050472| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050471| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050470| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050469| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050468| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050458| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -050457| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -050447| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -050446| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -050445| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -050444| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -050443| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050442| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050441| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050440| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050439| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050429| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -050428| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -050427| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -050417| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050416| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050415| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050414| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050413| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050403| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050369| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050368| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050367| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050366| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050365| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050364| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050354| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050353| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050352| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050351| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050350| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050349| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050348| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050338| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050337| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050336| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050335| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050334| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050333| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050332| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050322| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050321| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050320| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050319| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050318| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050317| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050316| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050306| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050305| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050304| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050303| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -050265| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -050255| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050254| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050253| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050252| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050251| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050250| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050249| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050239| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050238| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050237| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050236| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050235| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050234| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050233| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050223| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050222| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050221| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050220| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050219| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050218| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050217| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050207| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -050206| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -050196| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -050195| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -050194| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -050193| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -050192| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -050182| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -050181| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -050180| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -050179| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -050178| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -050177| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -050176| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -050175| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -050165| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -050164| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -050163| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -050162| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -050161| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -050160| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050159| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050158| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050157| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050156| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050146| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -050145| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -050144| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -050134| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050133| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050132| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -050094| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050093| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050092| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050082| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050081| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050080| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050079| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050078| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050077| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050076| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050066| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050065| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050064| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050063| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050062| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050061| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050060| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050050| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050016| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -050015| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -050014| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -050013| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -050012| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -050011| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -050001| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -050000| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049999| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049998| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049997| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049996| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049995| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049985| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049984| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049983| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049982| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049981| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049980| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049979| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -049932| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -049931| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -049930| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -049929| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049928| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049927| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049926| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049925| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049915| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -049914| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -049913| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -049903| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049902| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049901| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049900| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049899| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049889| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049888| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049887| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049886| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049885| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049884| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049883| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049873| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049872| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049871| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049870| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049869| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049868| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049867| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049857| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049856| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049855| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049854| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049853| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049852| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049851| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049841| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049840| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049839| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049838| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049837| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049836| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -049798| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| | } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049797| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049796| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049795| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049794| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049793| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049783| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049782| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049781| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049780| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049779| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049778| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049777| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049767| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049766| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049765| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049764| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049763| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049762| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049761| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049751| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049750| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049749| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049748| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049747| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049746| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049745| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049735| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049734| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049733| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049732| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049731| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049730| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049729| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049719| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049685| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049684| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049683| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049682| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049681| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049680| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049670| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -049632| | NSX:FFFFFFC000324538 ptrace .inux\lib/fdt\fdt_next_tag+0xB8 | + add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049631| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049630| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049629| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049628| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049618| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -049617| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -049607| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -049606| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -049605| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -049604| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -049603| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049602| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049601| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049600| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049599| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049589| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -049588| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -049587| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -049577| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049576| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049575| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049574| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049573| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049563| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -049562| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049561| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049560| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049559| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049558| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049548| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -049547| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -049537| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -049536| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -049535| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -049534| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -049533| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049532| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049531| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049530| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049529| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049519| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -049518| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -049517| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -049507| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049506| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049505| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049504| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049503| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049493| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -049492| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -049482| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -049481| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -049480| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -049479| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -049478| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049477| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049476| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049475| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049474| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049464| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -049463| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -049462| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -049452| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049451| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049450| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049449| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049448| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049438| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049437| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049436| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049435| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049434| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049433| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049432| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049422| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049421| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049420| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049419| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049418| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049417| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049416| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049406| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049405| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049404| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049403| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049402| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049401| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049400| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049390| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049389| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049388| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049387| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049386| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049385| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049384| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049374| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049373| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049372| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049371| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049370| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049369| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049368| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049358| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049324| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049323| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049322| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049321| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049320| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049319| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049309| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049308| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049307| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -049269| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049259| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049258| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049257| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049256| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049255| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049254| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049253| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049243| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -049242| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -049232| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -049231| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -049230| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -049229| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -049228| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -049218| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -049217| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -049216| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -049215| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -049214| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -049213| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -049212| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -049211| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -049201| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -049200| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -049199| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -049198| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -049197| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -049196| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049195| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049194| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049193| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049192| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049182| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -049181| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -049180| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -049170| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049169| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049168| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049167| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049166| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049156| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049155| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049154| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049153| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049152| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049151| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049150| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049140| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049139| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -049101| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| | } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049100| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049099| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049098| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049097| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049096| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049086| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049085| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049084| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049083| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049082| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049081| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049080| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049070| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049069| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049068| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049067| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049066| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049065| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049064| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049054| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049053| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049052| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049051| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049050| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049049| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049048| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049038| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049037| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049036| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -049035| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -049034| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -049033| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -049032| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -049022| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -049021| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -049020| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048982| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -048972| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -048938| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -048937| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -048936| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -048935| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -048934| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -048933| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -048923| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -048922| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -048912| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -048911| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -048910| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -048909| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -048908| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -048907| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -048906| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048905| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048904| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048903| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048902| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048892| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -048891| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -048890| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -048880| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048879| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048878| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048877| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048876| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048866| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048865| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048864| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048863| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048825| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | | b.hi 0xFFFFFFC000324478 -048824| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048823| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048813| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048812| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048811| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048810| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048809| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048808| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048807| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048797| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048796| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048795| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048794| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048793| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048792| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048791| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048781| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048780| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048779| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048778| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048777| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048776| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048775| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048765| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048764| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048763| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048762| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048761| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048760| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048759| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048749| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048748| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048747| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048746| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048745| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048744| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048743| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048733| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048732| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048731| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048693| | NSX:FFFFFFC000324538 ptrace .inux\lib/fdt\fdt_next_tag+0xB8 | + add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048692| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048691| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048690| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048689| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048679| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -048678| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -048668| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -048667| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -048666| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -048665| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -048664| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048663| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048662| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048661| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048660| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048650| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -048649| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -048648| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -048638| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048637| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048636| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048635| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048634| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048624| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -048590| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048589| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048588| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048587| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048586| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048576| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -048575| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -048565| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -048564| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -048563| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -048562| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -048561| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048560| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048559| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048558| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048557| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048547| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -048546| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -048545| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -048535| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048534| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048533| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048532| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048531| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048521| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -048520| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048519| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048518| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048517| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048516| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048506| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -048505| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048458| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048457| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048456| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048455| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048454| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048444| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048443| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048442| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048441| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048440| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048439| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048438| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048428| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048427| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048426| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048425| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048424| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048423| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048422| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048412| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048411| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048410| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048409| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048408| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048407| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048406| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048396| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048395| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048394| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048393| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048392| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048391| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048390| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048380| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048379| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048378| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048340| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -048339| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048329| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048328| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048327| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048326| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048325| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048324| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048323| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048313| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048312| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048311| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048310| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048309| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048308| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048307| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048297| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048296| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048295| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048294| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048293| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048292| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048291| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048281| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048280| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048279| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048278| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048277| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048276| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048275| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048265| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048231| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048230| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048229| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048228| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048227| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048226| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048216| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048215| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048214| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048176| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -048175| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048165| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048164| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048163| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048162| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048161| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048160| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048159| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048149| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048148| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048147| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048146| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048145| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048144| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048143| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048133| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048132| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048131| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048130| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048129| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048128| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048127| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048117| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048116| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048115| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048114| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048113| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048112| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048111| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048101| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048100| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048099| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -048061| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -048060| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048050| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048049| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048048| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048047| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048046| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048045| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048044| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048034| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048033| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048032| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048031| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048030| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048029| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048028| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048018| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -048017| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -048016| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -048015| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -048014| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -048013| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -048012| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -048002| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -048001| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -047991| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -047990| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -047980| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -047979| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -047978| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -047968| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -047967| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -047957| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -047956| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -047955| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -047954| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -047953| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -047952| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -047951| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -047941| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -047940| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -047939| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -047938| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -047937| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -047936| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -047935| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -047925| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -047891| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -047881| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -047880| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -047879| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -047878| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -047877| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -047876| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -047875| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047874| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047873| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -047835| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047834| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047833| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047832| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047822| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047821| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047820| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047819| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047818| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047817| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047816| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047806| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047805| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047804| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047803| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047802| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047801| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047800| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047790| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047789| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047788| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047787| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047786| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047785| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047784| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047774| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047773| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047772| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047771| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047770| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047769| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047768| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047758| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047757| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047756| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047755| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047754| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047753| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047752| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047742| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -047704| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -047694| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -047693| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -047683| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -047682| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -047681| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -047680| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -047679| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047678| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047677| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047676| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047675| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047665| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -047664| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -047663| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -047653| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047652| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047651| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047650| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047649| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047639| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -047638| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047637| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047636| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047635| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047634| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047624| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -047623| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -047613| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -047612| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -047611| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -047610| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -047572| | NSX:FFFFFFC00032449C ptrace .inux\lib/fdt\fdt_next_tag+0x1C | + const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047571| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047570| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047569| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047568| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047558| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -047524| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -047523| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -047513| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047512| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047511| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047510| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047509| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047499| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -047498| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -047488| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -047487| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -047486| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -047485| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -047484| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047483| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047482| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047481| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047480| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047470| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -047469| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -047468| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -047458| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047457| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047456| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047455| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047454| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047444| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047443| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047442| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047441| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047440| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047439| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047438| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047428| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047427| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047426| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047425| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047424| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -047386| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | | b.hi 0xFFFFFFC000324478 -047385| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047384| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047374| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047373| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047372| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047371| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047370| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047369| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047368| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047358| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047357| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047356| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047355| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047354| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047353| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047352| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047342| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047341| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047340| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047339| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047338| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047337| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047336| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047326| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047325| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047324| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047323| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047322| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047321| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047320| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047310| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047309| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047308| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -047270| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -047269| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -047268| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -047267| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047266| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047265| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047264| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047263| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047253| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -047252| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -047251| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -047241| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047240| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047239| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047238| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047237| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047227| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047226| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047225| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047224| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047223| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047222| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047221| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047211| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047210| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047209| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047208| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047207| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047206| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047205| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047195| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047161| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047160| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047159| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047158| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047157| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047156| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047146| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047145| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047144| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047143| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047142| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047141| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047140| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047130| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047129| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047128| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -047090| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047089| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047088| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047087| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047086| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047085| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047084| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047074| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047073| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047072| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047071| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047070| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047069| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047068| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047058| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -047057| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -047056| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -047055| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -047054| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -047053| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -047052| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -047042| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -047041| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -047031| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -047030| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -047020| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -047019| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -047018| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -047008| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -047007| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -046997| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -046996| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -046995| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -046994| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -046993| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -046992| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -046991| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -046981| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -046980| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -046979| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -046978| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -046977| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -046976| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -046975| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -046965| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -046964| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -046954| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -046953| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -046952| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -046951| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -046950| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -046949| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -046948| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046947| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046946| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046945| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -046907| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046906| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046905| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046895| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046894| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046893| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046892| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046891| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046890| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046889| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046879| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046878| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046877| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046876| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046875| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046874| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046873| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046863| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046829| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046828| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046827| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046826| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046825| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046824| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046814| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046813| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046812| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046811| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046810| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046809| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046808| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046798| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046797| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046796| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -046758| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046757| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046756| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046755| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046754| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046744| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -046743| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046742| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046741| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046740| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046739| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046729| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -046728| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -046718| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -046717| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -046716| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -046715| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -046714| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046713| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046712| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046711| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046710| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046700| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -046699| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -046698| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -046688| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046687| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046686| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046685| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046684| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046674| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -046673| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046672| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046671| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046670| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046669| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046659| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -046658| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -046648| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -046647| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -046646| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -046645| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -046644| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046643| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -046605| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046604| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046603| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046602| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046601| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046591| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -046590| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -046580| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -046579| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -046578| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -046577| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -046576| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046575| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046574| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046573| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046572| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046562| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -046561| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -046560| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -046550| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046549| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046548| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046547| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046546| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046536| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046535| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046534| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046533| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046532| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046531| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046530| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046520| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046519| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046518| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046517| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046516| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046515| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046514| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046504| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046470| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046469| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046468| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046467| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046466| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046465| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046455| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046454| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046453| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046452| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046451| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046450| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -046412| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -046402| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046401| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046400| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046399| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046398| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046397| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046396| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046386| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046385| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046384| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046383| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046382| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046381| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046380| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046370| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046369| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046368| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046367| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046366| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046365| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046364| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046354| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046353| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046352| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046351| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046350| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046349| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046348| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046338| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -046337| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -046327| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -046326| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -046325| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -046324| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -046323| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -046313| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -046312| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -046311| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -046310| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -046309| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -046308| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -046307| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -046306| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -046296| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -046295| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -046294| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -046293| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -046292| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -046291| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -046253| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -046252| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046242| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046241| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046240| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046239| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046238| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046237| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046236| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046226| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046225| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046224| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046223| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046222| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046221| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046220| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046210| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046209| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046208| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046207| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046206| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046205| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046204| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046194| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046193| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046192| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046191| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046190| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046189| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046188| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046178| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -046177| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -046176| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046175| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046174| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046173| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046172| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- FLOW ERROR (BAD TRACE PACKET) ------------------------------------------------------------------------------------------------- |--- TRACE ENABLE ------------------------------------------------------------------------------------------------------------------ -046110| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -046109| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -046108| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -046107| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -046106| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -046096| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -046095| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -046085| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -046084| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -046074| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -046073| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -046072| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -046062| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -046061| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -046051| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -046050| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -046049| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -046048| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -046047| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -046046| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -046045| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -046035| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -046034| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -046033| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -046032| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -046031| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -046030| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -046029| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -046019| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -046018| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -046008| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -046007| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -045969| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| | } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045968| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045967| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045966| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045965| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045964| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045963| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045953| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045952| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045951| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045950| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045949| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045948| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045947| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045937| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045936| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045935| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045934| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045933| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045932| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045931| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045921| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045920| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045919| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045918| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045917| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045916| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045915| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045905| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045904| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045903| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045902| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045901| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045900| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045899| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -045852| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -045851| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -045850| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045849| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045848| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045847| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045846| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045836| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -045835| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -045834| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -045824| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045790| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045789| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045788| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045787| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045777| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -045776| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045775| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045774| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045773| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045772| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045762| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -045761| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -045751| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -045750| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -045749| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -045748| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -045747| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045746| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045745| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045744| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045743| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045733| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -045732| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -045731| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -045721| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045720| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045719| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045718| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045717| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045707| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -045669| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | | b.hi 0xFFFFFFC000324478 -045668| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045658| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -045657| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -045656| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -045646| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045645| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045644| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045643| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045642| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045632| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -045631| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -045621| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -045620| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -045619| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -045618| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -045617| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045616| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045615| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045614| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045613| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045603| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -045602| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -045601| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -045591| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045590| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045589| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045588| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045587| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045577| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045576| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045575| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045574| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045573| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045572| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045571| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045561| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045560| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045559| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045558| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045557| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045556| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045555| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045545| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045544| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045543| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045542| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045541| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045540| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045539| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045529| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045528| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045527| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045526| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045525| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045524| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045523| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045513| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045512| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045511| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -045473| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -045463| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045429| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045428| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045427| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045426| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045425| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045424| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045414| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045413| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045412| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045411| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045410| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045409| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045408| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045398| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045397| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045396| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045395| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045394| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045393| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045392| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045382| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045381| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045380| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045379| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045378| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045377| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045376| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045366| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045365| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045364| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045363| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -045325| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045324| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045323| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045322| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045312| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045311| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045310| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045309| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045308| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045307| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045306| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045296| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045295| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045294| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045293| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045292| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045291| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045290| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045280| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045279| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045278| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045277| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045276| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045275| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045274| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045264| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045263| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045262| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045261| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045260| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045259| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045258| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045248| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045247| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045246| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045245| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -045207| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045206| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045205| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045204| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045194| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045193| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045192| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045191| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045190| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045189| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045188| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045178| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045177| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045176| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045175| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045174| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045173| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045172| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045162| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -045161| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -045160| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045159| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045158| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -045157| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -045156| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -045146| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -045145| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -045135| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -045134| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -045124| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -045123| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -045122| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -045112| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -045078| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -045068| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -045067| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -045066| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -045065| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -045064| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -045063| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -045062| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -045052| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -045051| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -045050| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -045049| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -045048| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -045047| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -045046| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -045036| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -045035| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -045025| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -045024| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -045023| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -045022| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -045021| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -045020| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -045019| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -045018| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -045017| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044979| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -044969| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044968| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044967| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044966| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044965| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044964| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044963| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044953| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044952| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044951| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044950| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044949| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044948| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044947| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044937| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044936| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044935| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044934| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044933| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044932| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044931| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044921| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044920| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044919| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044918| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044917| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044916| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044915| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044905| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044904| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044903| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044902| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044901| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044900| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044899| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044889| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044888| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044887| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044849| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044848| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044847| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044846| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044845| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044835| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -044834| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044833| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044832| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044831| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044830| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044820| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -044819| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -044809| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -044808| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -044807| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -044806| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -044805| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044804| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044803| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044802| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044801| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044791| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -044757| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -044756| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -044746| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044745| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044744| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044743| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044742| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044732| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -044731| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044730| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044729| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044728| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044727| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044680| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044679| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044678| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044677| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044676| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044666| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -044665| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -044655| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -044654| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -044653| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -044652| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -044651| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044650| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044649| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044648| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044647| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044637| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -044636| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -044635| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -044625| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044624| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044623| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044622| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044621| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044611| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044610| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044609| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044608| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044607| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044606| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044605| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044595| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044594| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044593| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044592| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044591| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044590| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044589| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044579| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044578| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044577| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044576| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044575| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044574| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044573| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044563| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044562| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044561| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044560| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044559| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044558| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044557| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044510| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -044509| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044508| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044498| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044497| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044496| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044495| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044494| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044493| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044492| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044482| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044481| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044480| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044479| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044478| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044477| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044476| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044466| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044465| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044464| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044463| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044462| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044461| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044460| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044450| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044416| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044415| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044414| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044413| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044412| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044411| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044401| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044400| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044399| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044361| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044360| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044359| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044358| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044357| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044356| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044346| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044345| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044344| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044343| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044342| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044341| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044340| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044330| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044329| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044328| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044327| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044326| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044325| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044324| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044314| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044313| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044312| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044311| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044310| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044309| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044308| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044298| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044297| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044296| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044295| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044294| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044293| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044292| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044282| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044281| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044280| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044279| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044278| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044277| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044276| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044266| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044265| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044264| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044226| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044216| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044215| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044214| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044213| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044212| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044211| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044210| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044200| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044199| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044198| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044197| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044196| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044195| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044194| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044184| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -044183| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -044173| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -044172| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -044162| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -044128| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -044127| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -044117| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -044116| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -044106| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -044105| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -044104| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -044103| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -044102| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -044101| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -044100| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -044090| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -044089| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -044088| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -044087| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -044086| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -044085| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -044084| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -044074| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -044073| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -044063| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -044062| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -044061| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -044060| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -044059| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -044058| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -044057| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044056| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044055| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044054| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -044016| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -044006| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -044005| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -044004| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -044003| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -044002| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -044001| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -044000| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043990| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043989| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043988| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043987| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043986| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043985| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043984| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043974| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043973| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043972| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043971| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043970| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043969| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043968| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043958| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043957| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043956| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043955| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043954| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043953| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043952| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043942| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043941| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043940| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043939| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043938| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043937| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043936| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043926| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043925| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043924| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043923| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043922| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043921| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043920| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043910| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -043872| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -043862| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -043861| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -043851| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -043850| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -043849| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -043848| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -043847| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043846| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043845| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043844| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043843| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043833| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -043799| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -043798| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -043788| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043787| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043786| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043785| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043784| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043774| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -043773| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043772| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043771| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043770| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043769| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043759| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -043758| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -043748| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -043747| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -043746| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -043745| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -043744| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043743| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043742| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043741| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043740| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043730| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -043729| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -043728| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -043718| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043717| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043716| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043715| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043714| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043704| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -043703| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043702| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043701| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043700| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043699| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043689| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -043688| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -043678| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -043677| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -043676| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -043675| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -043674| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043673| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043672| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043671| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043670| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043660| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -043659| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -043658| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -043648| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043647| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043646| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043645| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043644| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043634| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -043633| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -043623| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -043622| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -043621| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -043620| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -043619| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043618| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043617| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043616| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043615| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043605| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -043604| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -043603| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -043593| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043592| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043591| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043590| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043589| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043579| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043578| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043577| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043576| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043575| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043574| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043573| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043563| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043562| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043561| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043560| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043559| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043558| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043557| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043547| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043546| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043545| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043544| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043543| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043542| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043541| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043531| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043530| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043529| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043528| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043527| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043526| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043525| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043515| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043514| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043513| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043512| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043511| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043510| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043509| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043499| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043465| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043464| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043463| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043462| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043461| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043460| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043450| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043449| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043448| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -043410| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -043409| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043399| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043398| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043397| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043396| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043395| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043394| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043393| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043383| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -043382| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -043372| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -043371| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -043370| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -043369| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -043368| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -043358| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -043357| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -043356| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -043355| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -043354| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -043353| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -043352| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -043351| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -043341| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -043340| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -043339| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -043338| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -043337| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -043336| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043335| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043334| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043333| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043332| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043322| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -043321| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -043320| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -043310| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043309| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043308| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043307| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043306| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043296| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043295| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043294| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043293| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043292| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043291| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043290| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043280| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043279| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043278| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043277| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043276| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043275| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043274| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -043227| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -043226| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043225| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043215| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043214| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043213| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043212| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043211| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043210| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043209| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043199| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043198| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043197| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043196| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043195| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043194| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043193| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043183| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043182| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043181| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043180| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043179| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043178| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043177| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043167| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043166| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043165| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043164| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043163| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043162| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043161| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043151| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043117| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043116| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -043078| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -043077| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -043076| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -043066| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043065| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043064| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043063| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043062| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043052| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043051| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043050| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043049| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043048| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043047| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043046| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043036| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043035| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043034| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043033| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043032| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043031| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043030| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043020| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043019| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043018| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043017| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043016| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -043015| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -043014| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -043004| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -043003| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -043002| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -043001| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -043000| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042999| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042998| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042988| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042987| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042986| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -042948| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042947| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042946| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042945| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042944| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042934| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042933| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042932| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042931| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042930| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042929| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042928| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042918| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042917| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042916| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042915| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042914| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042913| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042912| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042902| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042901| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042900| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042899| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042898| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042897| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042896| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042886| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042885| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042884| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042883| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042882| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042881| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042880| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042870| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042869| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042868| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042867| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042866| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042865| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042864| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042854| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -042816| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042815| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042814| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042813| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042803| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -042802| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -042792| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -042791| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -042790| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -042789| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -042788| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042787| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042786| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042785| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042784| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042774| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -042740| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -042739| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -042729| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042728| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042727| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042726| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042725| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042715| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -042714| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042713| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042712| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042711| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042710| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042700| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -042699| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -042689| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -042688| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -042687| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -042686| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -042648| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | + ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042647| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042637| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -042636| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -042635| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -042625| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042624| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042623| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042622| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042621| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042611| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -042610| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -042600| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -042599| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -042598| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -042597| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -042596| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042595| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042594| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042593| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042592| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042582| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -042581| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -042580| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -042570| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042569| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042568| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042567| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042566| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042556| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042555| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042554| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042553| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042552| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042551| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042550| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042540| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042539| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042538| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042537| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042536| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042535| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042534| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042524| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042523| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042522| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042521| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042520| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042519| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042518| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042508| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042507| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042506| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042505| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042504| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042503| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042502| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042492| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042491| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042490| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042489| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042488| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042487| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042486| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042476| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042475| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042474| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -042436| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042402| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042401| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042400| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042390| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042389| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042388| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042387| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042386| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042385| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042384| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042374| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042373| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042372| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042371| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042370| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042369| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042368| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042358| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042357| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042356| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042355| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042354| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042353| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042352| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042342| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042341| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042340| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042339| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042338| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042337| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042336| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -042289| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -042288| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042278| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042277| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042276| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042275| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042274| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042273| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042272| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042262| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042261| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042260| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042259| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042258| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042257| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042256| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042246| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042245| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042244| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042243| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042242| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042241| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042240| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042230| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042229| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042228| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042227| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042226| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042225| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042224| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042214| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042213| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042212| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -042174| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042173| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042172| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042171| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042170| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042169| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042159| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042158| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042157| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042156| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042155| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042154| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042153| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042143| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042142| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042141| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042140| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042139| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042138| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042137| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042127| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042126| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042125| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042124| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042123| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042122| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042121| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042111| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -042110| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -042109| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -042108| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -042107| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -042106| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -042105| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -042095| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -042094| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -042084| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -042083| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -042073| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -042072| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -042071| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -042061| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -042060| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -042050| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -042049| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -042048| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -042047| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -042046| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -042045| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -042044| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -042034| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -042000| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -041999| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -041998| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -041997| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -041996| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -041995| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -041985| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -041984| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -041937| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041936| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041935| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041934| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041924| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041923| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041922| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041921| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041920| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041919| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041918| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041908| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041907| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041906| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041905| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041904| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041903| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041902| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041892| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041891| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041890| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041889| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041888| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041887| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041886| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041876| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041875| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041874| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041873| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041872| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041871| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041870| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041860| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041859| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041858| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -041820| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041819| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041818| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041817| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041816| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041806| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -041805| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041804| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041803| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041802| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041801| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041791| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -041790| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -041780| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -041779| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -041778| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -041777| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -041776| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041775| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041774| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041773| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041772| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041762| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -041761| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -041760| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -041750| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041749| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041748| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041747| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041746| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041736| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -041735| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041734| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041733| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041732| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041731| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041721| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -041720| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -041710| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -041709| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -041708| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -041707| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -041661| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -041660| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -041659| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -041649| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041648| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041647| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041646| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041645| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041635| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -041634| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -041624| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -041623| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -041622| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -041621| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -041620| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041619| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041618| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041617| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041616| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041606| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -041605| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -041604| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -041594| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041593| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041592| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041591| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041590| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041580| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041579| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041578| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041577| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041576| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041575| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041574| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041564| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041563| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041562| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041561| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041560| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041559| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041558| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041548| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041547| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041546| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041545| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041544| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041543| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041542| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041532| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041531| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041530| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041529| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041528| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041527| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041526| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041516| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041515| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041514| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -041476| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -041475| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041465| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041464| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041463| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041462| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041461| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041460| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041459| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041449| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041448| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041447| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041446| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041445| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041444| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041443| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041433| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041432| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041431| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041430| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041429| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041428| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041427| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041417| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041416| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041415| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041414| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041413| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041412| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041411| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041401| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041400| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041399| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041398| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041397| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041396| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041395| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041385| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041384| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041383| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -041328| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041327| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041326| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041325| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041324| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041323| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041322| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041312| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041311| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041310| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041309| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041308| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041307| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041306| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041296| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041295| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041294| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041293| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041292| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041291| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041290| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041280| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041279| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041278| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041277| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041276| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041275| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041274| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041264| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041263| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041262| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -041224| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041223| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041222| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041221| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041220| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041210| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041209| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041208| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041207| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041206| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041205| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041204| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041194| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041193| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041192| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041191| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041190| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041189| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041188| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041178| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041177| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041176| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041175| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041174| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041173| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041172| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041162| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041161| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041160| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041159| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041158| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041157| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041156| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041146| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -041145| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -041144| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -041143| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -041142| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -041141| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -041140| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -041130| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -041129| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -041119| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -041118| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -041108| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -041107| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -041106| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -041096| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -041095| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -041085| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -041084| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -041083| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -041082| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -041081| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -041080| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -041079| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -041069| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -041035| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -041034| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -041033| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -041032| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -041031| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -041030| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -041020| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -041019| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -041009| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -041008| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -041007| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -041006| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -041005| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -041004| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -041003| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -040965| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040964| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040963| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040962| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040961| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040960| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040950| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040949| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040948| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040947| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040946| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040945| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040944| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040934| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040933| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040932| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040931| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040930| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040929| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040928| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040918| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040917| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040916| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040915| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040914| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040913| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040912| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040902| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040901| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040900| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040899| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040898| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040897| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040896| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040886| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040885| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040884| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040883| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040882| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040881| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040880| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040870| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -040869| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -040859| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -040858| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -040848| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -040847| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -040846| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040845| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040844| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040843| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040842| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040832| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -040831| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -040830| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -040820| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040819| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040818| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040817| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040816| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040806| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -040805| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040804| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040803| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040802| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040801| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040791| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -040790| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -040780| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -040779| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -040778| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -040777| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -040776| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040775| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -040737| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| | if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -040736| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -040735| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -040725| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040724| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040723| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040722| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040721| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040711| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -040710| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040709| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040708| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040707| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040706| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040696| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -040662| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -040652| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -040651| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -040650| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -040649| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -040648| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040647| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040646| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040645| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040644| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040634| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -040633| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -040632| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -040622| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040621| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040620| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040619| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040618| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040608| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -040607| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -040597| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -040596| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -040595| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -040594| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -040593| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040592| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040591| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040590| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040589| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040579| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -040578| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -040540| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040530| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040529| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040528| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040527| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040526| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040525| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040524| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040514| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040513| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040512| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040511| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040510| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040509| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040508| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040498| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040497| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040496| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040495| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040494| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040493| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040492| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040482| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040481| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040480| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040479| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040478| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040477| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040476| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040466| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040465| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040464| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040463| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040462| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040461| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040460| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -040413| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040412| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040411| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040410| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040409| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040399| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -040398| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -040388| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -040387| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -040386| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -040385| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -040384| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -040374| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -040373| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -040372| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -040371| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -040370| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -040369| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -040368| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -040367| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -040357| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -040356| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -040355| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -040354| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -040353| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -040352| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040351| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040350| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040349| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040348| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040338| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -040337| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -040336| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -040326| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040292| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040291| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040290| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040289| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -040242| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -040232| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040231| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040230| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040229| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040228| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040227| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040226| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040216| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040215| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040214| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040213| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040212| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040211| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040210| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040200| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040199| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040198| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040197| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040196| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040195| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040194| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040184| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040183| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040182| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040181| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040180| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040179| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040178| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040168| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040167| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040166| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -040128| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -040127| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -040126| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -040125| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -040124| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -040123| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -040122| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040121| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040120| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040119| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040118| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040108| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -040107| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -040106| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -040096| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040095| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040094| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040093| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040092| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040082| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040081| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040080| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040079| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040078| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040077| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040076| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040066| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040065| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040064| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040063| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040062| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040061| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040060| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040050| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040049| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040048| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040047| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040046| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040045| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040044| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -040034| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -040033| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -040032| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -040031| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -040030| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -040029| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -040028| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- FLOW ERROR (BAD TRACE PACKET) ------------------------------------------------------------------------------------------------- |--- TRACE ENABLE ------------------------------------------------------------------------------------------------------------------ -039966| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039965| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039964| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039963| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039962| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039952| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039951| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039950| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039949| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039948| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039947| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039946| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039936| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039935| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039934| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039933| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039932| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039931| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039930| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039920| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039919| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039918| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039917| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039916| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039915| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039914| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039904| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039903| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039902| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039901| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039900| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -039862| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039861| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039860| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039859| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039849| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -039848| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -039838| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -039837| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -039836| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -039835| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -039834| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039833| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039832| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039831| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039830| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039820| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -039819| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -039818| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -039808| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039807| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039806| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039805| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039804| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039794| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -039793| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039792| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039791| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039790| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039789| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039779| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -039778| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -039768| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -039767| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -039766| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -039765| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -039764| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039763| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -039725| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | | cbz x0,0xFFFFFFC0003244C8 -039724| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -039714| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -039713| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -039712| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -039711| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -039710| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039709| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039708| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039707| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039706| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039696| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -039695| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -039694| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -039684| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039650| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039649| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039648| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039647| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039637| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -039636| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -039626| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -039625| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -039624| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -039623| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -039622| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039621| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039620| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039619| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039618| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039608| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -039607| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -039606| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -039596| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039595| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039594| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039593| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039592| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039582| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039581| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039580| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039579| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039578| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039577| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039576| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039566| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039565| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -039527| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039517| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039516| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039515| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039514| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039513| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039512| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039511| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039501| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039500| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039499| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039498| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039497| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039496| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039495| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039485| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039484| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039483| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039482| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039481| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039480| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039479| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039469| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039468| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039467| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039466| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039465| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039464| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039463| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039453| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039452| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039451| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039450| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039449| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039448| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039447| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039437| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039436| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039435| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -039397| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039396| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039395| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039394| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039393| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039392| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039391| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039381| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039380| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039379| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039378| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039377| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039376| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039375| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039365| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039364| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039363| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039362| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039361| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039360| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039359| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039349| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039348| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039347| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039346| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039345| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039344| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039343| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039333| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039332| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039331| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039330| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039329| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039328| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039327| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039317| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039283| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039282| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039281| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039280| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039279| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039278| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039268| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039267| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039266| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -039228| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -039227| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039226| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039216| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039215| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039214| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039213| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039212| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039211| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039210| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039200| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -039199| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -039189| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -039188| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -039178| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -039177| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -039176| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -039166| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -039165| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -039155| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -039154| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -039153| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -039152| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -039151| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -039150| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -039149| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -039139| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -039138| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -039137| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -039136| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -039135| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -039134| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -039133| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -039123| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -039122| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -039112| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -039111| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -039110| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -039109| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -039108| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -039107| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -039106| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039105| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039104| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039103| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -039065| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| | } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039064| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039063| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039062| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039061| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039060| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039050| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039049| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039048| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039047| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039046| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039045| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039044| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039034| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039033| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039032| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039031| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039030| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039029| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039028| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039018| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039017| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039016| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -039015| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -039014| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -039013| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -039012| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -039002| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -039001| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -039000| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038999| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038998| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038997| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038996| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038962| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038961| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038960| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038959| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038958| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038957| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038956| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038946| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038945| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038944| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -038906| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038905| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038904| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038903| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038902| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038892| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -038891| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038890| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038889| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038888| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038887| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038877| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -038876| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -038866| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -038865| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -038864| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -038863| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -038862| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038861| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038860| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038859| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038858| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038848| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -038847| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -038846| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -038836| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038835| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038834| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038833| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038832| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038822| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -038821| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038820| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038819| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038818| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038817| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038807| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -038806| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -038796| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -038795| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -038794| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -038793| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -038755| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038754| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038753| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038752| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038751| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038741| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -038740| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -038730| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -038729| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -038728| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -038727| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -038726| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038725| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038724| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038723| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038722| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038712| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -038711| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -038710| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -038700| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038699| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038698| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038697| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038696| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038686| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038685| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038684| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038683| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038682| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038681| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038680| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038670| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038669| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038668| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038667| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038666| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038665| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038664| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038654| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038653| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038652| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038651| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038650| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038649| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038648| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038638| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038604| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038603| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038602| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038601| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038600| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -038562| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038561| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038560| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038559| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038558| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038548| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038547| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038546| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038545| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038544| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038543| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038542| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038532| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038531| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038530| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038529| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038528| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038527| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038526| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038516| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038515| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038514| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038513| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038512| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038511| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038510| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038500| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -038499| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -038489| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -038488| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -038487| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -038486| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -038485| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -038475| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -038474| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -038473| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -038472| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -038471| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -038470| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -038469| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -038468| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -038458| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -038457| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -038456| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -038455| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -038454| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -038453| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038452| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038451| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038450| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038449| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038439| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -038438| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -038437| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -038427| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038426| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038425| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038424| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038423| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038413| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -038375| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038374| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038373| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038372| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038362| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038361| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038360| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038359| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038358| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038357| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038356| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038346| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038345| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038344| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038343| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038342| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038341| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038340| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038330| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038329| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038328| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038327| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038326| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038325| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038324| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038314| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038313| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038312| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038311| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038310| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038309| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038275| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038265| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038264| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038263| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038262| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038261| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038260| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038259| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038249| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038248| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038247| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -038209| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038208| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038207| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038206| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038196| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038195| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038194| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038193| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038192| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038191| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038190| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038180| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038179| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038178| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038177| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038176| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038175| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038174| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038164| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038163| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038162| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038161| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038160| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038159| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038158| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038148| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038147| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038146| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038145| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038144| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038143| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038142| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038132| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038131| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038130| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038129| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038128| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038127| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038126| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038116| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038115| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -038077| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| | } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038076| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038075| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038074| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038073| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038072| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038062| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038061| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038060| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038059| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038058| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038057| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038056| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038046| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038045| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038044| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038043| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038042| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038041| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038040| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038030| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038029| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038028| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038027| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038026| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038025| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038024| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -038014| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -038013| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -038012| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -038011| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -038010| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -038009| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -038008| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037998| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -037960| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -037959| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037949| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -037915| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -037905| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -037904| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -037903| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -037902| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -037901| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037900| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037899| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037898| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037897| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037887| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -037886| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -037885| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -037875| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037874| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037873| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037872| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037871| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037861| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -037860| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037859| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037858| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037857| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037856| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037846| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -037845| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -037835| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -037834| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -037833| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -037832| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -037831| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037830| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037829| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037828| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037827| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037817| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -037816| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -037815| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -037805| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037804| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037803| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037802| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037801| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037791| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -037790| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037789| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037788| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037787| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037786| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -037739| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037738| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037737| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037736| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037726| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037725| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037724| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037723| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037722| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037721| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037720| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037710| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037709| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037708| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037707| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037706| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037705| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037704| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037694| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037693| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037692| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037691| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037690| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037689| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037688| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037678| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037677| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037676| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037675| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037674| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037673| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037672| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037662| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037661| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037660| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -037622| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037621| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037620| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037610| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037609| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037608| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037607| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037606| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037605| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037604| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037594| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037593| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037592| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037591| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037590| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037589| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037588| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037578| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037544| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037543| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037542| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037541| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037540| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037539| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037529| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037528| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037527| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037526| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037525| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037524| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037523| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037513| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -037512| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -037502| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -037501| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -037500| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -037499| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -037498| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -037488| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -037487| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -037486| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -037485| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -037484| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -037483| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -037482| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -037481| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -037471| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -037470| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -037469| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -037468| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -037430| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| | } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037429| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037428| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037427| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037426| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037425| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037415| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037414| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037413| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037412| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037411| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037410| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037409| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037399| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037398| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037397| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037396| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037395| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037394| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037393| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037383| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037382| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037381| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037380| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037379| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037378| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037377| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037367| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037366| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037365| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037364| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037363| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037362| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037361| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037351| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037350| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037349| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037348| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037347| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037346| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037345| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037335| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037334| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037333| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037332| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037331| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037330| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037329| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037319| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037318| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037317| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -037279| | NSX:FFFFFFC000324600 ptrace .inux\lib/fdt\fdt_next_node+0x8 | + mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -037278| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -037277| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -037276| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -037275| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -037274| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037273| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037272| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037271| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037270| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037260| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -037259| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -037258| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -037248| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037247| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037246| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037245| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037244| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037234| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037233| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037232| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037198| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037197| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037196| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037195| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037185| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037184| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037183| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037182| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037181| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037180| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037179| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037169| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037168| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037167| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037166| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037165| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037164| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037163| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037153| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037152| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037151| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037150| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037149| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037148| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -037110| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037100| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037099| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037098| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037097| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037096| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037095| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037094| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037084| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037083| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037082| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037081| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037080| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037079| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037078| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037068| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -037067| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -037066| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037065| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037064| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037063| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037062| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037052| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -037051| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -037041| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -037040| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -037030| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -037029| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -037028| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037027| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037026| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -037025| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -037024| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -037014| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -037013| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -037012| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -037002| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -037001| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -037000| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036999| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036998| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036988| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -036987| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036986| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036985| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036984| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036983| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036973| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -036972| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -036962| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -036961| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -036960| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -036959| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -036958| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036957| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036956| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036955| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036954| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036944| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -036943| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -036942| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -036932| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036931| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036930| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036929| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036928| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036918| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -036917| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036879| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -036845| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -036835| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -036834| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -036833| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -036832| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -036831| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036830| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036829| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036828| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036827| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036817| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -036816| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -036815| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -036805| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036804| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036803| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036802| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036801| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036791| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -036790| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -036780| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -036779| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -036778| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -036777| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -036776| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036775| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036774| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036773| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036772| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036762| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -036761| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036723| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -036722| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036721| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036711| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036710| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036709| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036708| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036707| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036706| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036705| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036695| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036694| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036693| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036692| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036691| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036690| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036689| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036679| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036678| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036677| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036676| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036675| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036674| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036673| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036663| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036662| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036661| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036660| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036659| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036658| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036657| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036647| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036646| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036645| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036644| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036643| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036642| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036641| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036631| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036630| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036629| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036591| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | + cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -036590| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -036589| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -036579| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -036578| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -036577| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -036576| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -036575| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -036574| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -036573| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -036572| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -036562| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -036561| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -036560| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -036559| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -036558| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -036557| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036556| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036555| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036554| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036553| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036543| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -036542| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -036541| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -036531| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036530| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036529| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036528| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036527| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036517| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036516| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036515| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036514| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036513| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036512| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036511| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036501| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036467| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036466| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036428| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036427| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036426| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036425| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036424| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036414| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036413| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036412| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036411| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036410| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036409| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036408| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036398| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036397| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036396| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036395| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036394| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036393| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036392| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036382| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036381| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036380| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036379| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036378| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036377| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036376| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036366| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036365| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036364| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036363| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036362| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036361| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036360| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036350| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036349| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036348| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036310| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -036309| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036299| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -036298| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -036297| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -036287| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036286| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036285| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036284| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036283| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036273| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036272| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036271| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036270| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036269| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036268| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036267| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036257| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036256| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036255| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036254| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036253| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036252| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036251| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036241| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036240| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036239| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036238| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036237| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036236| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036235| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036225| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036224| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036223| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036222| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036221| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036220| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036182| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | | b.hi 0xFFFFFFC000324478 -036181| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036171| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036170| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036169| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036168| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036167| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036166| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036165| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036155| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036154| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036153| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036152| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036151| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036150| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036149| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036139| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036105| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036104| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036103| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036102| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036101| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036100| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036090| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036089| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036088| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036087| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036086| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036085| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036084| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036074| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036073| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036072| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036071| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036070| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036069| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036068| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -036058| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -036057| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -036056| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -036018| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -036017| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -036016| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -036006| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -036005| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -036004| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -036003| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -036002| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035992| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -035991| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035990| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035989| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035988| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035987| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035977| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -035976| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -035966| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -035965| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -035964| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -035963| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -035962| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035961| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035960| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035959| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035958| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035948| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -035947| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -035946| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -035936| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035935| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035934| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035933| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035932| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035922| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -035921| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035920| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035919| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035918| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035917| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035907| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -035906| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -035896| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -035895| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -035894| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -035893| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -035892| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035891| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035890| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035889| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035888| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035878| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -035877| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -035876| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -035866| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035865| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035864| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035863| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035862| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035852| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -035851| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -035841| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -035840| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -035839| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -035838| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -035837| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035836| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035835| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035834| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035833| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035799| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -035798| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -035797| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -035787| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035786| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035785| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035784| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035783| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035773| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035772| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035771| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035770| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035769| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035768| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035767| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035757| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035756| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035755| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035754| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035753| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035752| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035751| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035741| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035740| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035739| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035738| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035737| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035736| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035735| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035725| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035724| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035723| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -035685| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035684| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035683| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035682| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035681| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035680| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035670| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035669| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035668| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035667| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035666| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035665| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035664| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035654| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035653| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035652| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035651| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035650| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035649| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035648| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035638| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035637| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035636| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035635| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035634| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035633| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035632| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035622| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035621| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035620| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035619| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035618| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035617| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035616| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035606| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035605| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035604| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035603| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035602| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035601| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035600| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035590| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -035552| | NSX:FFFFFFC0003244E8 ptrace .inux\lib/fdt\fdt_next_tag+0x68 | + add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -035542| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035541| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035540| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035539| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035538| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035528| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035527| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035526| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035525| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035524| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035523| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035522| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035512| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035511| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035510| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035509| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035508| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035507| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035506| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035496| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035495| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035494| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035493| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035492| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035491| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035490| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035480| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035479| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035478| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035477| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035476| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035442| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035441| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -035394| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -035393| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035383| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035382| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035381| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035380| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035379| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035378| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035377| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035367| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035366| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035365| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035364| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035363| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035362| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035361| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035351| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035350| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035349| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035348| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035347| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035346| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035345| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035335| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -035334| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -035324| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -035323| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -035313| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -035312| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -035311| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -035301| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -035300| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -035290| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -035289| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -035288| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -035287| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -035286| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -035285| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -035284| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -035274| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -035273| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -035272| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -035271| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -035270| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -035269| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -035268| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -035258| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -035257| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -035247| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -035246| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -035245| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -035244| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -035243| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -035242| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -035241| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035240| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035239| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -035201| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035200| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035199| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035198| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035188| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035187| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035186| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035185| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035184| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035183| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035182| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035172| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035171| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035170| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035169| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035168| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035167| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035166| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035156| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035155| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035154| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035153| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035152| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035151| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035150| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035140| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035139| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035138| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035137| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035136| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035135| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035134| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035124| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035123| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035122| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035121| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035120| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035119| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035118| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035108| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035074| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -035073| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035072| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035071| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035070| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035069| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -035059| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -035058| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -035020| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| | switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -035010| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -035009| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -035008| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -035007| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -035006| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034996| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -034995| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034994| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034993| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034992| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034991| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034981| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -034980| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -034970| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -034969| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -034968| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -034967| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -034966| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034965| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034964| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034963| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034962| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034952| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -034951| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -034950| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -034940| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034939| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034938| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034937| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034936| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034926| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -034888| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -034887| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -034886| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -034885| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034884| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034883| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034882| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034881| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034871| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -034870| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -034869| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -034859| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034858| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034857| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034856| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034855| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034845| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -034844| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -034834| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -034833| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -034832| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -034831| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -034830| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034829| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034828| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034827| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034826| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034816| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -034815| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -034814| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -034804| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034803| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034802| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034801| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034800| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034790| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034789| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034788| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034787| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034786| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034785| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034784| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034774| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034773| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034772| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034771| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034770| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034769| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034768| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034758| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034724| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034723| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034722| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034721| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034720| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034719| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034709| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034708| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034707| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034706| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034705| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034704| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034703| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034693| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034692| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034691| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -034653| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034643| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034642| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034641| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034640| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034639| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034638| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034637| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034627| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034626| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034625| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034624| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034623| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034622| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034621| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034611| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034610| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034609| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034608| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034607| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034606| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034605| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034595| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -034594| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -034584| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -034583| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -034582| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -034581| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -034580| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -034570| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -034569| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -034568| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -034567| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -034566| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -034565| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -034564| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -034563| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -034553| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -034552| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -034551| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -034550| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -034549| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -034548| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034547| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034546| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034545| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034544| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034534| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -034533| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -034532| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -034522| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034521| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034520| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034519| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034518| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034508| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034507| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034506| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034505| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034504| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034503| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -034465| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| | } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034464| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034463| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034462| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034461| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034460| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034459| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034449| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034448| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034447| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034446| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034445| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034444| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034443| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034433| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034432| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034431| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034430| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034429| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034428| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034427| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034417| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034383| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034382| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034381| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034380| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034379| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034378| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034368| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034367| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034366| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034365| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034364| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034363| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034362| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034352| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034351| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034350| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034349| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034348| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034347| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034346| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -034299| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -034289| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034288| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034287| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034286| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034285| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034275| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034274| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034273| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034272| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034271| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034270| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034269| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034259| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034258| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034257| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034256| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034255| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034254| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034253| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034243| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034242| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034241| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034240| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034239| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034238| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034237| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034227| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034226| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034225| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034224| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034223| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034222| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034221| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -034174| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034164| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034163| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034162| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034161| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034160| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034159| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034158| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034148| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034147| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034146| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034145| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034144| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034143| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034142| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034132| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034131| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034130| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034129| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034128| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034127| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034126| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034116| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034115| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034114| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034113| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034112| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034111| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034110| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034100| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -034099| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -034098| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -034041| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034040| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034039| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034038| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034037| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034027| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -034026| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -034025| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -034024| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -034023| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -034022| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -034012| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -034011| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -034001| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -034000| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -033999| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -033998| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -033997| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033996| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033995| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033994| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033993| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033983| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -033982| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -033981| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -033971| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033970| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033969| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033968| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033967| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033957| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -033919| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | | cbz x0,0xFFFFFFC0003244C8 -033918| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -033908| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -033907| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -033906| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -033905| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -033904| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033903| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033902| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033901| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033900| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033890| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -033889| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -033888| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -033878| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033877| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033876| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033875| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033874| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033864| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -033863| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -033853| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -033852| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -033851| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -033850| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -033849| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033848| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033847| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033846| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033845| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033835| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -033834| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -033833| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -033823| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033822| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033821| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033820| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033819| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033809| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033808| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033807| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033806| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033805| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033804| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033803| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033793| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033792| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033791| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033790| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033789| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033788| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033787| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033777| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033776| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033775| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033774| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033773| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033772| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033771| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033761| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033727| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033726| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033725| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033724| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033723| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -033685| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033684| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033683| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033682| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033672| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033671| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033670| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033669| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033668| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033667| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033666| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033656| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033655| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033654| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033653| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033652| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033651| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033650| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033640| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033639| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033638| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033637| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033636| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033635| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033634| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033624| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -033623| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -033613| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -033612| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -033611| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -033610| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -033609| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -033599| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -033598| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -033597| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -033596| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -033595| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -033594| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -033593| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -033592| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -033582| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -033581| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -033580| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -033579| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -033578| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -033577| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033576| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033575| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033574| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033573| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033563| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -033562| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -033561| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -033551| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033550| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033549| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033548| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033547| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033537| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -033499| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033498| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033497| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033496| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033495| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033494| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033484| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033483| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033482| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033481| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033480| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033479| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033478| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033468| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033467| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033466| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033465| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033464| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033463| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033462| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033452| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033451| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033450| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033449| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033448| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033447| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033446| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033436| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033435| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033434| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033433| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033432| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033431| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033430| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033420| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033386| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033385| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033384| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033383| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033382| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033381| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033371| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033370| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033369| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -033331| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033330| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033329| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033319| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033318| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033317| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033316| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033315| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033314| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033313| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033303| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033302| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033301| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033300| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033299| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033298| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033297| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033287| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033286| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033285| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033284| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033283| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033282| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033281| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033271| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033270| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033269| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033268| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033267| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033266| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033265| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033255| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033254| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033253| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033252| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033251| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033250| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033249| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033239| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033238| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033237| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -033199| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033198| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033197| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033196| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033195| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033194| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033184| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033183| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033182| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033181| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033180| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033179| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033178| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033168| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033167| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033166| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033165| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033164| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033163| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033162| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033152| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033151| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033150| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033149| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033148| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033147| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033146| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033136| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -033135| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -033134| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033133| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033132| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033131| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033130| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033120| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -033082| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -033048| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033038| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -033037| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -033027| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -033026| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -033025| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -033024| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -033023| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -033022| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -033021| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -033020| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -033019| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -033009| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -033008| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -033007| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -032997| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032996| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032995| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032994| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032993| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032983| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -032982| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032981| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032980| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032979| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032978| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032968| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -032967| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -032957| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -032956| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -032955| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -032954| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -032953| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032952| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032951| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032950| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032949| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032939| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -032938| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -032937| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -032927| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032926| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032925| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032924| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032923| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032913| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -032912| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032911| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032910| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032909| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032908| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032898| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -032897| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -032887| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -032849| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032848| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032847| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032846| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032845| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032835| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032834| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032833| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032832| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032831| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032830| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032829| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032819| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032818| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032817| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032816| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032815| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032814| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032813| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032803| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032802| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032801| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032800| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032799| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032798| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032797| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032787| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032786| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032785| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032784| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032783| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032782| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032781| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032771| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032770| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032769| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -032712| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032711| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032710| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032709| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032708| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032707| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032697| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032696| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032695| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032694| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032693| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032692| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032691| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032681| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032680| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032679| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032678| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032677| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032676| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032675| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032665| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032664| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032663| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032662| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032661| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032660| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032659| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032649| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032648| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032647| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032646| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -032608| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032607| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032606| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032605| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032595| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032594| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032593| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032592| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032591| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032590| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032589| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032579| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032578| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032577| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032576| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032575| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032574| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032573| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032563| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032562| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032561| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032560| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032559| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032558| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032557| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032547| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032546| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032545| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032544| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032543| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032542| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032541| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032531| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032530| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032529| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032528| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032527| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032526| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032525| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -032478| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -032477| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032467| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032466| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032465| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032464| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032463| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032462| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032461| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032451| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032417| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032416| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032415| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032414| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032413| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032412| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032402| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032401| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032400| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032399| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032398| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032397| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032396| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032386| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032385| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032384| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032383| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032382| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032381| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032380| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032370| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032369| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032368| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -032330| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -032320| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032319| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032318| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032317| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032316| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032315| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032314| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032304| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032303| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032302| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032301| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032300| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032299| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032298| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032288| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032287| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032286| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032285| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032284| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032283| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032282| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032272| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032271| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032270| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032269| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032268| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032267| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032266| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032256| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032255| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032254| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032253| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -032215| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| | } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032214| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032213| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032212| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032211| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032210| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032209| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032199| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032198| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032197| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032196| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032195| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032194| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032193| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032183| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032182| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032181| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032180| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032179| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032178| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032177| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032167| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032166| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032165| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032164| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032163| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032162| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032161| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032151| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -032150| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -032149| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032148| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032147| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032146| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032145| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032135| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -032101| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -032091| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -032090| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -032080| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -032079| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -032078| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032077| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032076| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032075| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032074| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032064| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -032063| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -032062| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -032052| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032051| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032050| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032049| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032048| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032038| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -032037| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -032036| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -032035| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -032034| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -032033| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -032023| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -032022| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -032012| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -032011| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -032010| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -032009| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -032008| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -031970| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -031969| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -031959| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -031958| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -031957| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -031956| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -031955| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031954| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031953| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031952| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031951| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031941| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -031940| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -031939| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -031929| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031928| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031927| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031926| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031925| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031915| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -031914| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -031904| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -031903| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -031902| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -031901| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -031900| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031899| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031898| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031897| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031896| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031886| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -031885| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -031884| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -031874| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031873| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031872| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031871| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031870| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031860| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031859| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031858| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031857| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031856| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031855| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031854| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031844| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031843| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031842| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031841| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031840| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031839| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031838| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031828| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031827| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031826| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031825| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031824| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031823| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031822| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031812| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031811| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031810| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -031772| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031738| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031737| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031736| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031735| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031734| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031724| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031723| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031722| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031721| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031720| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031719| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031718| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031708| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031707| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031706| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031705| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031704| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031703| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031702| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031692| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031691| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031690| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031689| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031688| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031687| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031686| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031676| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031675| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031674| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031673| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031672| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -031634| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031633| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031632| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031631| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031630| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031620| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031619| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031618| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031617| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031616| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031615| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031614| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031604| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031603| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031602| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031601| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031600| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031599| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031598| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031588| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031587| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031586| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031585| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031584| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031583| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031582| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031572| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031571| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031570| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031569| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031568| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031567| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031566| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031556| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031555| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031554| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031553| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031552| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031551| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031550| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031540| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031539| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031538| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -031500| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -031490| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031489| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031488| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031487| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031486| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031485| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031484| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031474| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031473| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031472| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031471| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031470| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031469| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031468| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031458| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031457| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031456| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031455| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031454| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031453| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031452| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031442| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031408| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031407| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031406| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031405| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031404| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031403| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031393| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -031355| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031354| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031353| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031352| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031351| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031350| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031349| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031339| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031338| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031337| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031336| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031335| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031334| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031333| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031323| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031322| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031321| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031320| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031319| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031318| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031317| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031307| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031306| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031305| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031304| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031303| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031302| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031301| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031291| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031290| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031289| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031288| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031287| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031286| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031285| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031275| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031274| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031273| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -031235| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -031234| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031224| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031223| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031222| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031221| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031220| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031219| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031218| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031208| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031207| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031206| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031205| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031204| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031203| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031202| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031192| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031191| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031190| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031189| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031188| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031187| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031186| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031176| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -031175| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -031174| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031173| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031172| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031171| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031170| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031160| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -031159| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -031149| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -031115| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -031105| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -031104| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -031103| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031102| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031101| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031100| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031099| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031089| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -031088| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -031087| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -031077| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031076| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031075| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031074| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031073| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031063| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -031062| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031061| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -031060| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -031059| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -031058| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -031048| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -031047| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -031037| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -031036| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -031035| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -031034| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -031033| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -031032| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -030994| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -030984| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -030983| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -030982| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -030981| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -030980| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030979| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030978| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030977| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030976| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030966| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -030965| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -030964| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -030954| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030953| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030952| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030951| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030950| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030940| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030939| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030938| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030937| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030936| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030935| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030934| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030924| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030923| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030922| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030921| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030920| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030919| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030918| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030908| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030907| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030906| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030905| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030904| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030903| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030902| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030892| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030891| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030890| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030889| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030888| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030887| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030886| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030876| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030875| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030874| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030873| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030872| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030871| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030870| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030860| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030859| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030858| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -030820| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030819| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030818| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030817| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030816| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030806| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030772| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030771| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030770| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030769| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030768| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030767| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030757| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030756| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030755| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030754| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030753| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030752| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030751| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030741| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030740| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030739| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030738| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030737| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030736| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030735| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030725| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030724| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030723| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030722| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030721| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030720| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030719| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030709| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -030671| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030670| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030669| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030668| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030658| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030657| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030656| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030655| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030654| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030653| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030652| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030642| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030641| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030640| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030639| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030638| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030637| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030636| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030626| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030625| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030624| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030623| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030622| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030621| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030620| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030610| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030609| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030608| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030607| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030606| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030605| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030604| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030594| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030593| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030592| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -030554| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030553| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030552| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030551| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030550| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030540| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030539| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030538| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030537| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030536| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030535| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030534| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030524| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030523| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030522| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030521| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030520| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030519| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030518| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030508| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -030507| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -030497| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -030496| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -030486| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -030485| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -030484| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -030474| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -030473| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -030463| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -030429| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -030428| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -030427| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -030426| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -030425| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -030424| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -030414| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -030413| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -030412| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -030411| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -030410| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -030409| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -030408| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -030398| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -030397| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -030387| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -030386| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -030385| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -030384| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -030383| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -030382| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -030381| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030380| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030379| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030378| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -030340| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030339| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030338| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030337| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030327| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030326| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030325| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030324| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030323| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030322| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030321| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030311| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030310| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030309| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030308| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030307| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030306| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030305| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030295| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030294| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030293| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030292| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030291| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030290| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030289| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030279| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030278| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030277| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030276| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030275| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030274| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030273| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030263| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030262| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030261| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030260| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030259| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030258| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030257| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030247| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -030246| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -030245| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030244| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030243| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030242| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030241| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030231| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -030193| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -030183| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -030182| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -030172| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -030171| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -030170| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -030169| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -030168| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030167| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030166| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030165| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030164| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030154| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -030153| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -030152| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -030142| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030141| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030140| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030139| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030138| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030128| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -030127| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030126| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030125| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030124| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030123| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030113| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -030112| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -030102| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -030101| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -030100| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -030099| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -030098| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030097| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030096| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030095| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030094| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030084| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -030083| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -030082| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -030072| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030038| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030037| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030036| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030035| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030025| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -030024| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -030023| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -030022| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -030021| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -030020| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -030010| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -030009| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -029999| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -029998| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -029997| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -029996| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -029995| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029994| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029993| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029992| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029991| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029981| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -029980| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -029942| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -029941| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029931| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029930| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029929| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029928| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029927| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029926| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029925| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029915| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029914| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029913| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029912| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029911| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029910| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029909| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029899| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029898| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029897| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029896| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029895| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029894| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029893| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029883| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029882| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029881| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029880| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029879| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029878| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029877| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029867| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029866| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029865| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029864| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029863| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029862| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029861| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029851| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029850| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029849| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -029811| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029810| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029809| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029808| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029807| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029797| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -029796| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -029786| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -029785| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -029784| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -029783| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -029782| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -029772| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -029771| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -029770| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -029769| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -029768| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -029767| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -029766| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -029765| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -029755| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -029754| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -029753| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -029752| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -029751| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -029750| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029749| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029748| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029747| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029746| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029736| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -029735| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -029734| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -029724| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029690| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029689| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029688| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029687| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029677| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029676| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029675| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029674| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029673| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029672| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029671| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029661| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029660| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029659| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029658| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029657| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029656| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -029618| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029617| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029616| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029615| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029614| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029604| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029603| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029602| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029601| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029600| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029599| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029598| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029588| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029587| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029586| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029585| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029584| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029583| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029582| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029572| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029571| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029570| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029569| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029568| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029567| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029566| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029556| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029555| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029554| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029553| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029552| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029551| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029550| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029540| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029539| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029538| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029537| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029536| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029535| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029534| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029524| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -029523| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -029513| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -029512| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -029502| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -029501| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -029500| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -029490| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -029489| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -029479| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -029478| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -029477| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -029476| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -029475| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -029474| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -029473| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -029463| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -029462| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -029461| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -029460| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -029459| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -029458| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -029457| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -029447| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -029446| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -029436| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -029435| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -029434| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -029433| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -029432| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -029394| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -029384| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029383| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029382| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029381| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029380| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029379| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029378| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029344| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029343| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029342| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029341| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029340| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029339| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029338| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029328| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029327| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029326| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029325| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029324| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029323| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029322| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029312| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029311| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029310| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029309| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029308| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029307| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029306| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029296| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029295| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029294| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029293| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029292| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029291| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029290| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029280| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -029279| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -029278| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -029240| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029239| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029238| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029228| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -029227| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -029217| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -029216| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -029215| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -029214| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -029213| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029212| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029211| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029210| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029209| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029199| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -029198| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -029197| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -029187| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029186| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029185| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029184| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029183| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029173| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -029172| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029171| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029170| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029169| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029168| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029158| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -029157| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -029147| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -029146| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -029145| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -029144| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -029143| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029142| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029141| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029140| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -029102| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029101| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029100| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029099| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029098| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029088| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -029087| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -029077| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -029076| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -029075| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -029074| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -029073| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029072| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029071| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029070| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029069| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029059| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -029025| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -029024| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -029014| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -029013| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -029012| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -029011| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -029010| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -029000| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028999| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028998| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028997| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028996| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028995| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028994| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028984| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028983| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028982| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028981| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028980| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028979| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028978| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028968| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028967| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028966| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028965| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028964| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028963| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028962| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028952| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028951| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028950| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028949| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -028911| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028910| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028909| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028908| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028898| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028897| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028896| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028895| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028894| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028893| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028892| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028882| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028881| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028880| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028879| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028878| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028877| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028876| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028866| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028865| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028864| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028863| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028862| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028861| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028860| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028850| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028849| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028848| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028847| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028846| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028845| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028844| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028834| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028833| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028832| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028831| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028830| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028829| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028828| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028818| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028817| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028816| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028815| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028814| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028813| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028812| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028802| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028801| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028800| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028799| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028798| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028797| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028796| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028786| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028785| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028784| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028783| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028782| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028781| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028780| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- FLOW ERROR (BAD TRACE PACKET) ------------------------------------------------------------------------------------------------- |--- TRACE ENABLE ------------------------------------------------------------------------------------------------------------------ -028718| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -028717| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -028716| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -028715| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -028714| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -028704| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -028703| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -028702| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -028701| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -028700| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -028699| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -028698| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -028697| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -028687| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -028686| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -028685| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -028684| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -028683| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -028682| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028681| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028680| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028679| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028678| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028668| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -028667| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -028666| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -028656| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028655| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028654| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028653| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028652| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028642| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028641| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028640| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028639| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028638| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028637| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028636| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -028589| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028588| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028587| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028577| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028576| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028575| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028574| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028573| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028572| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028571| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028561| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028560| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028559| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028558| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028557| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028556| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028555| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028545| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028544| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028543| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028542| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028541| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028540| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028539| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028529| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028528| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028527| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028526| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028525| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028524| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028523| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028513| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028512| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028511| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028510| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028509| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -028471| | NSX:FFFFFFC000CA16BC ptrace .early_init_dt_scan_chosen+0x30 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -028470| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -028469| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -028468| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -028467| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -028466| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -028456| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -028455| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -028454| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -028453| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -028452| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -028451| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -028450| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -028440| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -028406| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -028396| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -028395| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -028394| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -028393| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -028392| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -028391| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -028390| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028389| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028388| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028387| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028386| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028376| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -028375| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -028374| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -028364| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028363| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028362| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028361| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028360| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028350| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028349| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028348| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028347| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028346| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028345| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028344| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028334| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028333| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028332| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028331| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -028293| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028292| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028291| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028290| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028280| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028279| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028278| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028277| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028276| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028275| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028274| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028264| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028263| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028262| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028261| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028260| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028259| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028258| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028248| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028247| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028246| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028245| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028244| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028243| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028242| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028232| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028231| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028230| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028229| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028228| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028227| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028226| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028216| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -028215| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -028214| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028213| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028212| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028211| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028210| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028200| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -028199| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -028189| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -028188| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -028178| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -028177| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -028176| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028175| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028174| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028173| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028172| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028162| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -028161| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -028160| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -028150| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028149| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028148| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028147| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028146| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028136| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -028135| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028134| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028133| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028132| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028131| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028121| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -028120| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -028110| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -028076| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -028075| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -028074| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -028073| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028072| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028071| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028070| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028069| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -028059| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -028058| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -028057| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -028047| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -028046| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -028045| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -028044| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -028043| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027996| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027995| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027994| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027993| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027992| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027982| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -027981| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -027980| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -027970| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027969| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027968| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027967| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027966| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027956| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -027955| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -027945| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -027944| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -027943| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -027942| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -027941| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027940| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027939| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027938| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027937| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027927| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -027926| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -027925| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -027915| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027914| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027913| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027912| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027911| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027901| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027900| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027899| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027898| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027897| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027896| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027895| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027885| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027884| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027883| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027882| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027881| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027880| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027879| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027869| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027868| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027867| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027866| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027865| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027864| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027863| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027853| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027852| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027851| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027850| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027849| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027848| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027847| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027837| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027836| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027835| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027797| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027796| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027795| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027794| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027793| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027792| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027782| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027781| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027780| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027779| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027778| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027777| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027776| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027766| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027765| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027764| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027763| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027762| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027761| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027760| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027750| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027749| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027748| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027747| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027746| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027745| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027744| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027734| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027733| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027732| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027731| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027730| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027729| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027728| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027718| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027684| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027683| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027682| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027681| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027680| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027679| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027669| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027631| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -027630| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027620| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027619| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027618| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027617| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027616| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027615| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027614| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027604| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027603| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027602| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027601| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027600| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027599| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027598| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027588| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027587| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027586| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027585| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027584| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027583| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027582| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027572| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027571| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027570| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027569| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027568| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027567| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027566| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027556| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027555| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027554| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027516| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -027506| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027505| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027504| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027503| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027502| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027501| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027500| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027490| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027489| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027488| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027487| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027486| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027485| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027484| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027474| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027473| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027472| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027471| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027470| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027469| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027468| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027458| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027457| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027456| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027455| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027454| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027453| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027452| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027442| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -027441| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -027431| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -027430| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -027420| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -027419| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -027418| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -027408| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -027407| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -027397| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -027396| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -027395| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -027394| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -027393| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -027392| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -027391| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -027381| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -027380| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -027379| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -027378| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -027377| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -027376| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -027375| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -027365| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -027331| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -027321| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -027320| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -027319| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027281| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027271| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027270| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027269| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027268| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027267| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027266| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027265| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027255| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027254| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027253| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027252| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027251| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027250| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027249| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027239| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027238| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027237| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027236| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027235| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027234| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027233| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027223| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027222| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027221| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027220| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027219| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027218| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027217| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027207| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -027206| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -027205| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027167| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027166| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027165| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027164| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027163| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027153| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -027152| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027151| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027150| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027149| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027148| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027138| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -027137| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -027127| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -027126| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -027125| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -027124| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -027123| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027122| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027121| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027120| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027119| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027109| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -027108| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -027107| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -027097| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027096| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027095| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027094| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027093| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027083| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -027082| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -027081| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -027080| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -027079| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -027078| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -027068| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -027067| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -027057| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -027056| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -027055| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -027054| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -027016| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026982| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026981| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026980| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026979| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026969| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026968| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026967| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026966| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026965| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026964| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026963| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026953| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026952| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026951| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026950| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026949| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026948| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026947| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026937| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026936| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026935| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026934| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026933| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026932| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026931| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026921| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026920| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026919| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026918| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026917| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026916| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026915| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -026868| | NSX:FFFFFFC000324460 ptrace .ux\lib/fdt\fdt_offset_ptr+0x38 | + add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026858| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026857| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026856| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026855| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026854| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026853| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026852| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026842| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026841| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026840| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026839| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026838| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026837| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026836| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026826| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026825| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026824| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026823| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026822| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026821| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026820| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026810| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026809| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026808| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026807| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026806| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026805| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026804| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026794| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -026756| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -026755| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026754| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026744| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026743| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026742| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026741| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026740| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026739| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026738| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026728| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026727| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026726| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026725| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026724| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026723| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026722| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026712| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026711| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026710| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026709| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026708| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026707| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026706| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026696| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026695| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026694| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026693| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026692| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026691| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026657| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026647| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026646| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026645| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026644| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026643| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026642| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026641| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026631| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026630| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026629| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -026591| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026590| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026589| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026588| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026587| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026586| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026576| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -026575| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -026565| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -026564| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -026554| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -026553| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -026552| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -026542| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -026541| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -026531| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -026530| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -026529| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -026528| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -026527| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -026526| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -026525| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -026515| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -026514| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -026513| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -026512| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -026511| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -026510| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -026509| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -026499| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -026498| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -026488| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -026487| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -026486| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -026485| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -026484| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -026483| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -026482| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026481| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026480| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026479| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026478| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026468| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -026467| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -026466| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -026419| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -026409| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026408| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026407| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026406| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026405| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026404| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026403| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026393| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026392| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026391| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026390| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026389| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026388| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026387| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026377| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026376| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026375| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026374| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026373| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026372| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026371| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026361| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026327| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026326| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026325| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026324| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026323| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026322| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026312| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026311| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026310| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -026272| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026271| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026270| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026269| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026268| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026258| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -026257| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026256| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026255| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026254| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026253| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026243| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -026242| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -026232| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -026231| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -026230| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -026229| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -026228| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026227| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026226| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026225| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026224| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026214| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -026213| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -026212| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -026202| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026201| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026200| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026199| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026198| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026188| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -026187| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026186| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026185| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026184| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026183| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026173| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -026172| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -026162| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -026161| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -026160| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -026159| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -026121| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026120| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026119| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026118| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026117| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026107| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026106| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026105| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026104| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026103| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026102| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026101| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026091| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026090| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026089| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026088| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026087| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026086| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026085| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026075| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026074| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026073| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026072| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026071| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026070| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026069| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026059| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026058| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026057| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026056| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026055| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026054| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026053| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026019| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026018| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026017| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026016| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -026015| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -026014| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -026013| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -026003| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -026002| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -026001| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -026000| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025999| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025998| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025997| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025987| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025986| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025985| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025947| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025946| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025945| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025935| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025934| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025933| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025932| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025931| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025930| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025929| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025919| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -025918| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -025908| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -025907| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -025906| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -025905| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -025904| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -025894| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -025893| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -025892| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -025891| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -025890| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -025889| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -025888| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -025887| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -025877| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -025876| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -025875| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -025874| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -025873| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -025872| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025871| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025870| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025869| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025868| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025858| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -025857| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -025856| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -025846| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025845| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025844| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025843| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025842| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025832| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025831| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025830| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025829| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025828| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025827| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025826| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025816| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025815| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025814| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025813| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025812| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025774| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025773| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025772| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025771| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025761| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025760| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025759| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025758| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025757| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025756| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025755| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025745| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025744| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025743| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025742| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025741| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025740| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025739| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025729| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025728| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025727| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025726| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025725| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025724| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025723| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025713| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025679| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025678| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025677| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025676| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025675| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025674| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025664| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025663| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025662| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025661| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025660| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025622| | NSX:FFFFFFC0003244E8 ptrace .inux\lib/fdt\fdt_next_tag+0x68 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -025612| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025611| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025610| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025609| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025608| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025598| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025597| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025596| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025595| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025594| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025593| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025592| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025582| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025581| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025580| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025579| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025578| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025577| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025576| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025566| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025565| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025564| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025563| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025562| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025561| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025560| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025550| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025549| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025548| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025547| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025546| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025545| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025544| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025534| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025533| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025532| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025494| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025493| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025492| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025491| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025490| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025480| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025479| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025478| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025477| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025476| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025475| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025474| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025464| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025463| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025462| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025461| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025460| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025459| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025458| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025448| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025447| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025446| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025445| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025444| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025443| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025442| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025432| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025431| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025430| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025429| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025428| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025427| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025426| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025416| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025415| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025414| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025413| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025412| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025411| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025410| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025400| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025338| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | + ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025337| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025336| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025335| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025334| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025324| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -025323| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -025313| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -025312| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -025311| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -025310| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -025309| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025308| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025307| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025306| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025305| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025295| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -025294| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -025293| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -025283| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025282| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025281| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025280| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025279| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025269| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -025268| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025267| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025266| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025265| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025264| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025254| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025216| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025215| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025214| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025213| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025212| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025202| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025201| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025200| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025199| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025198| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025197| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025196| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025186| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025185| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025184| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025183| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025182| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025181| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025180| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025170| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025169| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025168| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025167| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025166| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025165| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025164| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025154| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025153| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025152| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025151| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025150| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025149| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025148| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025138| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025137| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025136| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025135| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025134| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025133| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025132| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025122| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025121| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025120| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025119| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025118| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025117| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025116| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025106| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025105| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025104| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -025066| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025065| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025064| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025063| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025062| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025052| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025018| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025017| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025016| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -025015| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -025014| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -025013| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -025003| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -025002| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -025001| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -025000| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024999| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024998| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024997| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024987| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024986| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024985| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024984| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024983| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024982| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024981| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024971| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024970| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024969| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024968| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024967| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024966| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024965| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024955| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -024954| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -024944| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -024943| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -024942| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024904| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024903| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024902| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024901| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024891| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024890| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024889| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024888| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024887| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024886| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024885| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024875| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024874| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024873| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024872| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024871| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024870| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024869| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024859| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024858| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024857| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024856| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024855| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024854| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024853| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024843| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024842| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024841| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024840| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024839| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024838| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024837| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024827| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024826| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024825| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024824| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024823| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024822| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024821| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024811| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024810| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024809| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024771| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024770| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024769| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024768| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024767| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024757| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -024756| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -024746| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -024745| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -024735| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -024701| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -024700| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -024690| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -024689| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -024679| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -024678| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -024677| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -024676| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -024675| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -024674| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -024673| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -024663| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -024662| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -024661| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -024660| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -024659| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -024658| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -024657| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -024647| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -024646| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -024636| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -024635| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -024634| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -024633| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -024632| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -024631| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -024630| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024629| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024628| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024627| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024589| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024588| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024587| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024577| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024576| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024575| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024574| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024573| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024572| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024571| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024561| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024560| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024559| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024558| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024557| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024556| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024555| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024545| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024544| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024543| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024542| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024541| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024540| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024539| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024529| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024528| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024527| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024526| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024525| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024524| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024523| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024513| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024512| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024511| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024510| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024509| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024508| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024507| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024497| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024496| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024495| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024457| | NSX:FFFFFFC000324540 ptrace .inux\lib/fdt\fdt_next_tag+0xC0 | + mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024456| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024455| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024454| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024453| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024443| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -024442| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -024432| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -024431| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -024430| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -024429| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -024428| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024427| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024426| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024425| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024424| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024414| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -024413| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -024412| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -024402| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024401| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024400| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024399| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024398| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024388| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -024354| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024353| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024352| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024351| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024350| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024340| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -024339| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -024329| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -024328| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -024327| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -024326| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -024325| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024324| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024286| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | | b.hi 0xFFFFFFC000324478 -024285| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024275| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024274| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024273| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024272| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024271| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024270| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024269| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024259| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024258| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024257| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024256| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024255| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024254| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024253| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024243| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024242| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024241| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024240| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024239| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024238| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024237| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024227| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024226| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024225| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024224| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024223| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024222| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024221| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024211| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024210| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024209| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024171| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024170| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024169| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024168| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024158| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024157| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024156| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024155| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024154| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024153| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024152| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024142| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024141| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024140| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024139| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024138| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024137| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024136| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024126| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024125| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024124| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024123| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024122| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024121| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024120| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024110| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024109| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024108| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024107| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024106| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024105| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024104| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024094| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -024093| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -024092| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024091| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024090| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024089| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024088| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -024078| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -024040| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -024039| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -024005| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -024004| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -024003| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023993| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023992| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023991| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023990| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023989| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023988| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023987| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023977| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023976| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023975| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023974| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023973| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023972| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023971| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023961| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023960| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023959| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023958| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023957| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023956| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023955| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023945| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023944| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023943| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023942| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023941| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023940| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023939| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -023892| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023891| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023890| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023889| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023888| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023878| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023877| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023876| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023875| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023874| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023873| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023872| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023862| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023861| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023860| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023859| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023858| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023857| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023856| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023846| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023845| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023844| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023843| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023842| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023841| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023840| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023830| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -023829| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -023819| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -023818| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -023808| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -023807| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -023806| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -023796| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -023795| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -023785| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -023784| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -023783| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -023782| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -023781| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -023780| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -023779| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -023769| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -023768| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -023767| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -023766| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -023765| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -023764| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -023763| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -023753| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -023752| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -023742| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -023741| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -023740| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -023739| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -023738| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -023737| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -023736| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023735| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023734| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -023696| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| | } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023662| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023661| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023660| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023659| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023658| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023648| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023647| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023646| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023645| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023644| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023643| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023642| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023632| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023631| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023630| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023629| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023628| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023627| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023626| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023616| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023615| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023614| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023613| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023612| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023611| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023610| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023600| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023599| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023598| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023597| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023596| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -023558| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | | if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023557| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023556| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023555| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023554| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023544| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -023543| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023542| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023541| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023540| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023539| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023529| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -023528| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -023518| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -023517| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -023516| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -023515| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -023514| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023513| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023512| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023511| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023510| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023500| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -023499| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -023498| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -023488| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023487| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023486| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023485| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023484| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023474| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -023473| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023472| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023471| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023470| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023469| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023459| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -023458| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -023448| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -023447| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -023446| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -023445| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -023444| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023443| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -023405| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023404| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023403| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023393| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -023392| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -023391| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -023381| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023380| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023379| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023378| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023377| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023367| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023366| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023365| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023364| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023363| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023362| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023361| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023351| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023317| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023316| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023315| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023314| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023313| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023312| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023302| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023301| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023300| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023299| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023298| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023297| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023296| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023286| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023285| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023284| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023283| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023282| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023281| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023280| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023270| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023269| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023268| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023267| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023266| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023265| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023264| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023254| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023253| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023252| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023251| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -023213| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023212| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023211| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023201| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023200| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023199| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023198| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023197| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023196| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023195| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023185| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023184| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023183| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023182| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023181| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023180| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023179| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023169| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -023168| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -023158| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -023157| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -023156| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -023155| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -023154| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -023144| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -023143| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -023142| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -023141| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -023140| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -023139| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -023138| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -023137| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -023127| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -023126| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -023125| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -023124| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -023123| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -023122| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023121| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023120| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023119| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023118| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023108| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -023107| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -023106| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -023096| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023095| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023094| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023093| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023092| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023082| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023081| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023080| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -023042| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -023041| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023031| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023030| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023029| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023028| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023027| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023026| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023025| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -023015| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -023014| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -023013| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -023012| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -023011| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -023010| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -023009| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022999| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022998| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022997| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022996| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022995| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022994| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022993| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022983| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022982| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022981| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022980| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022979| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022978| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022977| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022967| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022933| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022932| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022931| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022930| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022929| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022928| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022918| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022917| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022916| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -022878| | NSX:FFFFFFC0003244C0 ptrace .inux\lib/fdt\fdt_next_tag+0x40 | + cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -022877| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -022867| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022866| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022865| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022864| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022863| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022853| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022852| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022851| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022850| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022849| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022848| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022847| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022837| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022836| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022835| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022834| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022833| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022832| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022831| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022821| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022820| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022819| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022818| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022817| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022816| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022815| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022805| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022804| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022803| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022802| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022801| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022800| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022799| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022789| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022788| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022787| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -022749| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022748| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022747| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022746| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022745| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022735| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022734| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022733| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022732| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022731| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022730| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022729| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022719| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022718| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022717| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022716| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022715| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022714| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022713| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022703| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022702| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022701| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022700| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022699| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022698| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022697| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022687| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022686| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022685| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022684| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022683| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022682| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022681| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022671| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022670| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022669| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -022631| | NSX:FFFFFFC000324538 ptrace .inux\lib/fdt\fdt_next_tag+0xB8 | + add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022630| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022629| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022628| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022627| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022617| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -022616| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -022606| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -022605| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -022604| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -022603| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -022602| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022601| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022600| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022599| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022598| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022588| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -022587| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -022586| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -022576| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022575| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022574| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022573| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022572| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022562| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -022528| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022527| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022526| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022525| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022524| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022514| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -022513| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -022503| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -022502| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -022501| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -022500| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -022499| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022498| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -022460| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022459| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022458| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022457| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022456| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022446| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022445| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022444| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022443| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022442| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022441| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022440| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022430| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022429| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022428| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022427| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022426| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022425| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022424| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022414| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022413| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022412| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022411| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022410| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022409| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022408| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022398| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022397| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022396| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022395| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022394| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022393| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022392| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022382| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022381| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022380| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -022342| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022341| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022340| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022339| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022338| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022328| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -022327| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -022317| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -022316| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -022315| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -022314| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -022313| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -022303| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -022302| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -022301| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -022300| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -022299| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -022298| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -022297| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -022296| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -022286| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -022285| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -022284| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -022283| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -022282| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -022281| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022280| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022279| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022278| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022277| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022267| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -022266| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -022265| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -022255| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022254| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022253| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022252| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022251| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022241| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022240| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022239| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022238| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022237| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022236| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022235| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022225| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022224| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022223| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022222| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022221| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022220| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -022170| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | | b.hi 0xFFFFFFC000324478 -022169| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022168| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022158| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022157| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022156| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022155| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022154| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022153| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022152| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022142| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022141| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022140| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022139| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022138| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022137| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022136| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022126| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -022125| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -022124| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -022123| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -022122| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -022121| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -022120| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -022110| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -022109| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -022099| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -022098| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -022088| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -022087| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -022086| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -022076| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -022075| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -022065| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -022064| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -022063| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -022062| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -022061| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -022060| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -022059| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -022049| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -022048| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -022047| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -022046| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -022045| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -022044| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -022043| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -022033| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -022032| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021985| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -021984| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021983| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021973| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021972| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021971| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021970| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021969| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021968| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021967| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021957| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021956| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021955| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021954| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021953| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021952| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021951| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021941| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021940| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021939| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021938| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021937| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021936| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021935| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021925| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021924| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021923| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021922| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021921| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021920| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021919| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021909| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021871| | NSX:FFFFFFC000324540 ptrace .inux\lib/fdt\fdt_next_tag+0xC0 | + mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021870| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021869| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021868| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021867| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021857| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021823| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021813| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -021812| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -021811| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -021810| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -021809| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021808| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021807| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021806| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021805| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021795| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -021794| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -021793| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -021783| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021782| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021781| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021780| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021779| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021769| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -021768| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021767| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021766| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021765| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021764| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021754| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021753| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021743| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021705| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -021704| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021703| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021693| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -021692| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -021691| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -021681| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021680| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021679| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021678| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021677| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021667| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -021666| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021665| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021664| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021663| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021662| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021652| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021651| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021641| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -021640| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -021639| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -021638| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -021637| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021636| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021635| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021634| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021633| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021623| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -021622| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -021621| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -021611| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021610| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021609| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021608| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021607| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021597| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -021596| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021595| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021557| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | | if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021556| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021555| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021554| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021553| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021543| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -021542| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021541| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021540| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021539| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021538| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021528| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021527| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021517| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -021516| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -021515| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -021514| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -021513| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021512| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021511| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021510| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021509| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021499| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -021465| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -021464| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -021454| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021453| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021452| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021451| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021450| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021440| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -021439| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021438| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021437| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021436| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021435| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021425| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021424| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021414| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -021413| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -021412| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -021411| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -021410| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021409| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021371| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -021361| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021360| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021359| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021358| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021357| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021356| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021355| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021345| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021344| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021343| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021342| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021341| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021340| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021339| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021329| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021328| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021327| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021326| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021325| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021324| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021323| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021313| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021312| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021311| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021310| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021309| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021308| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021307| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021297| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021296| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -021295| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021257| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021256| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021255| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021254| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021253| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021243| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021242| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021232| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -021231| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -021230| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -021229| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -021228| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -021218| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -021217| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -021216| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -021215| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -021214| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -021213| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -021212| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -021211| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -021201| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -021200| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -021199| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -021198| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -021164| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -021163| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021162| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021161| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021160| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021159| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021149| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -021148| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -021147| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -021137| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021136| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021135| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021134| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021133| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021123| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -021122| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -021084| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -021083| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -021082| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -021081| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -021080| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -021070| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -021069| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -021059| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -021058| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -021048| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -021047| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -021046| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -021036| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -021035| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -021025| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -021024| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -021023| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -021022| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -021021| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -021020| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -021019| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -021009| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -021008| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -021007| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -021006| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -021005| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -021004| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -021003| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -020993| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -020992| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -020982| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -020981| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -020980| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -020979| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -020978| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -020977| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -020976| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020975| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020974| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020973| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020972| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020962| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -020961| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -020960| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -020913| | NSX:FFFFFFC000324500 ptrace .inux\lib/fdt\fdt_next_tag+0x80 | + mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020912| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020911| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020910| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020909| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020899| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020898| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020897| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020896| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020895| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020894| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020893| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020883| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020882| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020881| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020880| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020879| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020878| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020877| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020867| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020866| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020865| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020864| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020863| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020862| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020861| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020851| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020817| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020816| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020815| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020814| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020813| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020812| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020802| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -020801| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -020791| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -020790| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -020780| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -020779| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -020778| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020777| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020776| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020775| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020774| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020764| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -020763| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -020762| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -020752| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020751| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020750| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020749| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020748| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020738| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -020737| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020736| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020735| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020734| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020733| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -020686| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -020685| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020675| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -020674| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -020673| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -020663| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020662| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020661| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020660| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020659| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020649| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -020648| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020647| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020646| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020645| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020644| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020634| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -020633| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -020623| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -020622| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -020621| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -020620| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -020619| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020618| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020617| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020616| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020615| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020605| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -020604| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -020566| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020565| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020564| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020563| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020562| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020552| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020551| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020550| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020549| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020548| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020547| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020546| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020536| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020535| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020534| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020533| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020532| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020531| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020530| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020520| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020519| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020518| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020517| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020516| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020515| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020481| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020471| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020470| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020469| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020468| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020467| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020466| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020465| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020455| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020454| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020453| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020452| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020451| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020450| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020449| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020439| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020438| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020437| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020436| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020435| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020434| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020433| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020423| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020422| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020421| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -020383| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020382| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020381| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020380| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020370| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -020369| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -020368| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -020358| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020357| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020356| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020355| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020354| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020344| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020343| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020342| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020341| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020340| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020339| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020338| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020328| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020327| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020326| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020325| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020324| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020323| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020322| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020312| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020311| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020310| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020309| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020308| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020307| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020306| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020296| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020295| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020294| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020293| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -020255| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | | 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020254| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020253| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020252| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020242| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020241| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020240| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020239| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020238| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020237| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020236| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020226| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -020225| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -020215| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -020214| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -020204| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -020203| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -020202| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -020192| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -020191| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -020181| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -020147| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -020146| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -020145| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -020144| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -020143| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -020142| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -020132| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -020131| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -020130| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -020129| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -020128| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -020127| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -020126| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -020116| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -020115| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -020105| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -020104| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -020103| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -020102| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -020101| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -020100| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -020099| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020098| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020097| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020096| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -020058| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | | b.hi 0xFFFFFFC000324478 -020057| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020047| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020046| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020045| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020044| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020043| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020042| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020041| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020031| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -020030| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -020029| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -020028| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -020027| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -020026| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -020025| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -020015| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -020014| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -020004| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -020003| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -019993| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -019992| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019991| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019990| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019989| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019988| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019987| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019977| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019976| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019975| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019965| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019964| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019963| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019962| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019961| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019951| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -019950| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019949| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019948| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019947| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019946| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019936| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -019935| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -019925| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -019924| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -019923| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -019922| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019921| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019920| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019919| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019918| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019917| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019907| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019906| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019905| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019895| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019894| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019893| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019892| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019891| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019881| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -019843| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | | b.hi 0xFFFFFFC000324478 -019842| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019832| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -019798| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -019788| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -019787| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -019786| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -019785| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019784| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019783| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019782| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019781| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019780| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019770| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019769| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019768| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019758| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019757| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019756| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019755| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019754| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019744| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -019743| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019742| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019741| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019740| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019739| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019729| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -019728| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -019718| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -019717| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -019716| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -019715| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019714| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -019676| | NSX:FFFFFFC00032442C ptrace .nux\lib/fdt\fdt_offset_ptr+0x4 | + rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019675| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019674| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019673| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019663| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -019662| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -019652| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -019651| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -019650| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -019649| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019648| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019647| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019646| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019645| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019644| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019634| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019633| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019632| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019622| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019621| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019620| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019619| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019618| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019608| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019607| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019606| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019605| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019604| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019603| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019602| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019592| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019591| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019590| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019589| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019588| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019587| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019586| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019576| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019575| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019574| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019573| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019572| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019571| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019570| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019560| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019559| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019558| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019557| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019556| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019555| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -019517| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | | b.hi 0xFFFFFFC000324478 -019516| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019515| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019505| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019504| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019503| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019493| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019492| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019491| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019490| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019489| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019479| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019445| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019444| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019443| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019442| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019441| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019440| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019430| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019429| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019428| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019427| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019426| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019425| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019424| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019414| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019413| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019412| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019411| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019410| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019409| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019408| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019398| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019397| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019396| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019395| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -019357| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | | | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -019356| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -019355| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -019345| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -019344| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -019334| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -019333| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -019332| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -019331| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -019330| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -019329| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019328| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019327| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019326| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019325| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019324| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019314| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019313| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019312| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019302| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019301| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019300| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019299| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019298| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019288| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019287| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019286| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019285| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019284| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019283| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019282| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019272| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019271| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019270| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019269| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019268| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019267| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019266| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019256| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019255| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019254| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019253| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019252| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019251| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019250| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019240| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019239| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019238| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019237| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019236| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019235| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019234| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019224| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -019223| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -019222| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019221| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019220| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019219| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019218| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019208| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -019207| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -019197| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -019196| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -019186| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -019185| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019184| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019183| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019182| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019181| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019180| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019170| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019169| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019168| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019158| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019157| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019156| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019155| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019154| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019144| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -019143| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019142| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019141| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019140| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019139| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019129| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -019095| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -019085| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -019084| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -019083| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -019082| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -019081| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019080| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -019042| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -019032| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -019031| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -019030| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -019020| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019019| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019018| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019017| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019016| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -019006| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -019005| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -019004| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -019003| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -019002| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -019001| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018991| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018990| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018980| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -018979| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018978| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018977| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018976| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018975| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018974| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018973| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018972| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018962| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018961| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -018960| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -018950| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018949| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018948| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018947| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018946| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018936| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -018935| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -018897| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018896| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018895| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018894| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018884| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018883| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018873| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -018872| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018871| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018870| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018869| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018868| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018867| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018866| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018865| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018855| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018854| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -018853| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -018843| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018842| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018841| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018840| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018839| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018829| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -018828| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018827| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018826| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018825| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018824| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018814| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018813| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018803| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -018802| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018801| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018800| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018799| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018798| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018797| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018796| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018795| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018785| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018751| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -018713| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018712| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018711| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018710| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018700| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018699| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018698| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018697| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018696| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018695| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018694| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018684| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018683| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018682| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018681| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018680| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018679| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018678| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018668| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018667| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018666| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018665| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018664| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018663| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018662| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018652| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018651| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018641| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -018640| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018639| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018638| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -018637| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -018627| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -018626| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -018625| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -018624| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -018623| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -018622| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -018621| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -018620| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -018610| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -018609| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -018608| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -018607| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -018606| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018605| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018604| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018603| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018602| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018601| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018591| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018590| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -018589| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -018579| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018578| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018577| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018576| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018575| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018565| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -018527| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018526| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018525| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018524| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018523| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018513| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018512| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018502| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -018501| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -018491| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -018490| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -018489| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -018479| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -018478| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -018468| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -018467| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -018466| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -018465| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -018464| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -018463| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -018462| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -018452| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -018451| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -018450| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -018449| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -018448| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -018447| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -018446| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -018412| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -018411| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -018401| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -018400| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -018399| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -018398| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -018397| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -018396| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018395| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018394| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -018356| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | | if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018355| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018354| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018353| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018352| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018342| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -018341| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018340| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018339| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018338| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018337| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018327| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018326| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018316| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -018315| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018314| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018313| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018312| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018311| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018310| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018309| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018308| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018298| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018297| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -018296| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -018286| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018285| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018284| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018283| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018282| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018272| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -018271| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018270| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018269| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018268| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018267| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018257| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018256| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018246| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -018245| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018244| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018243| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018242| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018241| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018240| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018239| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018238| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018228| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018227| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -018226| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -018216| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018215| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018214| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018213| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018212| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018202| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -018201| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018200| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018199| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018198| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018197| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018187| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -018186| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -018176| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -018175| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -018174| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -018173| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -018172| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018171| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018170| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018169| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018168| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018158| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -018157| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -018119| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018118| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018117| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018116| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018115| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018105| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018104| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018103| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018102| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018068| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018067| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018066| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018056| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018055| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018054| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018053| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018052| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018051| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018050| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018040| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018039| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018038| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018037| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018036| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018035| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018034| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018024| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -018023| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -018022| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -018021| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -018020| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -018019| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -018018| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -018008| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -017970| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| + if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017969| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017968| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017958| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017957| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017956| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017955| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017954| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017953| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017952| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017942| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017941| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017940| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017939| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017938| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017937| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017936| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017926| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -017925| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -017915| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -017914| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -017904| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -017903| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -017902| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -017892| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -017891| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -017881| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -017880| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -017879| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -017878| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -017877| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -017876| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -017866| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -017865| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -017864| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -017863| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -017862| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -017861| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -017851| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -017850| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -017840| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -017839| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -017838| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -017837| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -017836| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -017835| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -017834| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017833| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017832| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017831| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017830| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017820| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -017819| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -017818| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -017808| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017807| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017806| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017805| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017804| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017794| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017793| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017792| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017791| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017790| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017789| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017788| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017778| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017744| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017743| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -017705| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -017704| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017694| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -017693| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017692| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017691| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017690| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017689| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017679| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -017678| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -017668| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -017667| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -017666| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -017665| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -017664| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017663| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017662| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017661| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017660| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017650| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -017649| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -017648| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -017638| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017637| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017636| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017635| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017634| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017624| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -017623| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017622| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017621| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017620| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017619| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017609| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -017608| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -017598| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -017597| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -017596| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -017595| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -017557| | NSX:FFFFFFC000324470 ptrace .ux\lib/fdt\fdt_offset_ptr+0x48 | | ret -017547| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -017546| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -017545| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -017535| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017534| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017533| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017532| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017531| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017521| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -017520| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017519| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017518| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017517| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017516| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017506| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -017505| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -017495| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -017494| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -017493| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -017492| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -017491| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017490| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017489| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017488| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017487| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017477| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -017476| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -017475| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -017465| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017464| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017463| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017462| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017461| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017451| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -017450| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -017388| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017387| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017386| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017385| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017384| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017374| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017373| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017372| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017371| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017370| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017369| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017368| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017358| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017357| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017356| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017355| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017354| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017353| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017352| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017342| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017341| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017340| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017339| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017338| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017337| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017336| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017326| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017325| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017324| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017323| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017322| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017321| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017320| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -017273| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017272| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017271| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017270| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017269| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017268| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017258| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017257| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017256| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017255| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017254| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017253| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017252| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017242| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017241| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017240| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017239| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017238| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017237| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017236| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017226| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -017225| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -017224| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017223| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017222| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017221| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017220| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017210| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -017209| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -017199| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -017198| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -017188| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -017187| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -017186| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -017176| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -017175| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -017165| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -017164| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -017163| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -017162| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -017161| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -017160| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -017159| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -017149| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -017148| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -017147| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -017146| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -017145| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -017144| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -017143| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -017133| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -017132| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -017122| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -017121| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -017120| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -017119| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -017118| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -017117| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -017116| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017115| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017114| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -017076| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | | if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017075| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017074| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017073| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017072| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017062| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -017028| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -017027| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -017026| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -017025| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -017024| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -017014| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -017013| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -017003| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -017002| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -017001| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -017000| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -016999| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016998| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016997| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016996| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016995| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016985| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -016984| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -016983| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016973| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016972| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016971| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016970| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016969| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016959| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -016958| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016957| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016956| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016955| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016954| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016944| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -016906| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016905| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016904| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016903| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016902| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016892| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -016891| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -016881| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -016880| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -016879| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -016878| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -016877| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -016867| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -016866| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -016865| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -016864| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -016863| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -016862| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -016861| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -016860| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -016850| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -016849| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -016848| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -016847| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -016846| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -016845| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016844| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016843| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016842| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016841| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016831| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -016830| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -016829| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016819| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016818| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016817| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016816| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016815| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016805| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016804| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016803| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -016765| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -016755| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -016754| | NSX:FFFFFFC000CA1808 ptrace .arly_init_dt_scan_chosen+0x17C 951| + return 0; | | mov w1,#0x0 ; w1,#0 | | #endif /* CONFIG_CMDLINE */ | | | | pr_debug("Command line is: %s\n", (char*)data); | | | | /* break now */ | | return 1; 976| | } | | mov w0,w1 | | ret -016744| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -016743| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -016742| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -016741| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -016740| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -016739| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -016738| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016737| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016736| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016735| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016734| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016724| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -016723| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -016722| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016712| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016711| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016677| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016676| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016675| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016665| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016664| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016663| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016662| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016661| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016660| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016659| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016649| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016648| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016647| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016646| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016645| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016644| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016643| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016633| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016632| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016631| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016630| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016629| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016628| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016627| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016617| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016616| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016615| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016614| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016613| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016612| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016611| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -016564| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | + b.hi 0xFFFFFFC000324478 -016563| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016562| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016552| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -016551| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -016550| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016540| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016539| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016538| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016537| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016536| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016526| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -016525| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016524| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016523| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016522| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016521| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016511| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -016510| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -016500| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -016499| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -016498| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -016497| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -016496| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016495| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016494| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016493| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016492| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016482| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -016481| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -016480| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016470| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016469| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016468| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016467| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016466| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016456| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -016455| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -016417| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | + break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -016416| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -016415| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -016414| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016413| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016412| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016411| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016410| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016400| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -016399| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -016398| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016388| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016387| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016386| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016385| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016384| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016374| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016340| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016339| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016338| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016337| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016336| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016335| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016325| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016324| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016323| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016322| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016321| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016320| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016319| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016309| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016308| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016307| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016306| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016305| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016304| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016303| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016293| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016292| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016291| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016290| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016289| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016288| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016287| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016277| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016276| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016275| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016274| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016273| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016272| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016271| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016261| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -016223| | NSX:FFFFFFC000324450 ptrace .ux\lib/fdt\fdt_offset_ptr+0x28 | + b.hi 0xFFFFFFC000324478 -016222| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016212| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016211| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016210| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016209| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016208| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016207| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016206| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016196| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016195| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016194| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016193| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016192| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016191| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016190| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016180| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -016179| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -016178| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016177| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016176| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016175| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016174| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016164| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -016163| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -016153| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -016152| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -016142| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -016141| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -016140| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -016130| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -016129| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -016119| | NSX:FFFFFFC000CA168C ptrace ./fdt\early_init_dt_scan_chosen | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cmp w2,#0x1 ; w2,#1 | | ccmp x3,xZR,#0x4,eq ; x3,xZR,#4,eq | | b.eq 0xFFFFFFC000CA1808 -016118| | NSX:FFFFFFC000CA1698 ptrace .early_init_dt_scan_chosen+0x0C | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | str x21,[SP,#0x20] ; x21,[SP,#32] | | mov x21,x1 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000B4C000 | | | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -016117| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -016116| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -016115| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -016114| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -016113| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -016103| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -016102| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -016101| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -016100| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -016099| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -016098| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -016097| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -016087| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -016086| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -016076| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -016075| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -016074| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -016073| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -016072| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -016071| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -016070| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016069| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016068| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -016030| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| | switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -016020| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016019| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016018| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016017| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016016| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -016006| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -016005| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -016004| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -016003| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -016002| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -016001| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015991| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -015957| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015947| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -015946| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -015945| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -015944| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015943| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015942| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015941| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015940| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015939| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015929| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015928| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015927| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015917| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015916| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015915| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015914| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015913| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015903| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -015902| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015901| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015900| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015899| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015898| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015888| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -015887| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015877| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -015876| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -015875| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -015874| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015873| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015872| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015871| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015870| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015869| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015859| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015858| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015857| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015847| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015846| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015845| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015844| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015843| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015833| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -015832| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015822| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -015821| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -015820| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -015819| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015818| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015817| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015816| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015815| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015814| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015804| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015803| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015802| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015792| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015791| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015790| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015789| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015788| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015778| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015777| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015776| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015775| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015774| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015773| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015772| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015762| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015761| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015760| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015759| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015758| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015757| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015756| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015746| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -015708| | NSX:FFFFFFC00032455C ptrace .inux\lib/fdt\fdt_next_tag+0xDC | + str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015698| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -015697| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -015696| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -015695| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -015694| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -015684| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -015683| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -015682| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -015681| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -015680| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -015679| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -015678| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -015677| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -015667| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -015666| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -015665| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -015664| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -015663| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015662| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015661| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015660| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015659| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015658| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015648| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015647| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015646| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015612| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015611| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015610| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015609| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015608| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015598| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015597| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015596| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -015558| | NSX:FFFFFFC000CA16AC ptrace .early_init_dt_scan_chosen+0x20 | + | | int __init early_init_dt_scan_chosen(unsigned long node, const char *uname, | | int depth, void *data) 943| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | add x1,x1,#0xBD8 ; x1,x1,#3032 | | mov x20,x0 | | mov x0,x21 | | mov x19,x3 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -015557| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -015556| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -015555| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -015554| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -015553| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -015543| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -015542| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -015541| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -015540| | NSX:FFFFFFC0003231C0 ptrace .mlinux\Global\__pi_strcmp+0x10 68| | ands tmp1, src1, #7 | | ands x7,x0,#0x7 ; x7,x0,#7 69| | b.ne .Lmutual_align | | b.ne 0xFFFFFFC0003231EC -015539| | NSX:FFFFFFC0003231C8 ptrace .mlinux\Global\__pi_strcmp+0x18 | | | | /* | | * NUL detection works on the principle that (X - 1) & (~X) & 0x80 | | * (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and | | * can be done in parallel across the entire word. | | */ | | .Lloop_aligned: 77| | ldr data1, [src1], #8 | | ldr x2,[x0],#0x8 ; x2,[x0],#8 78| | ldr data2, [src2], #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | | .Lstart_realigned: 80| | sub tmp1, data1, zeroones | | sub x7,x2,x10 81| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 82| | eor diff, data1, data2 /* Non-zero if differences found. */ | | eor x5,x2,x3 83| | bic has_nul, tmp1, tmp2 /* Non-zero if NUL terminator. */ | | bic x4,x7,x8 84| | orr syndrome, diff, has_nul | | orr x6,x5,x4 85| | cbz syndrome, .Lloop_aligned | | cbz x6,0xFFFFFFC0003231C8 -015538| | NSX:FFFFFFC0003231E8 ptrace .mlinux\Global\__pi_strcmp+0x38 86| | b .Lcal_cmpresult | | b 0xFFFFFFC0003232E0 -015537| | NSX:FFFFFFC0003232E0 ptrace .linux\Global\__pi_strcmp+0x130 | + | | .Lcal_cmpresult: | | /* | | * reversed the byte-order as big-endian,then CLZ can find the most | | * significant zero bits. | | */ 192| | CPU_LE( rev syndrome, syndrome ) | | rev x6,x6 193| | CPU_LE( rev data1, data1 ) | | rev x2,x2 194| | CPU_LE( rev data2, data2 ) | | rev x3,x3 | | ... | | /*Re-compute the NUL-byte detection, using a byte-reversed value. */ | | CPU_BE( rev tmp3, data1 ) | | CPU_BE( sub tmp1, tmp3, zeroones ) | | CPU_BE( orr tmp2, tmp3, #REP8_7f ) | | CPU_BE( bic has_nul, tmp1, tmp2 ) | | CPU_BE( rev has_nul, has_nul ) | | CPU_BE( orr syndrome, diff, has_nul ) | | 218| | clz pos, syndrome | | clz x11,x6 | | /* | | * The MS-non-zero bit of the syndrome marks either the first bit | | * that is different, or the top bit of the first zero byte. | | * Shifting left now will bring the critical information into the | | * top bits. | | */ 225| | lsl data1, data1, pos | | lsl x2,x2,x11 226| | lsl data2, data2, pos | | lsl x3,x3,x11 | | /* | | * But we need to zero-extend (char is unsigned) the value and then | | * perform a signed 32-bit subtraction. | | */ 231| | lsr data1, data1, #56 | | lsr x2,x2,#0x38 ; x2,x2,#56 232| | sub result, data1, data2, lsr #56 | | sub x0,x2,x3,lsr #0x38 ; x0,x2,x3,lsr #56 233| | ret | | ret -015527| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -015526| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -015516| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -015515| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -015514| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -015513| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -015512| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -015511| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015510| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015509| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015508| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015507| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015506| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015496| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015495| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015494| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015484| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015483| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015482| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015481| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015480| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015470| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015469| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015468| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015467| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015466| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015465| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015464| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015454| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015453| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015452| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015451| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015450| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015449| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -015411| | NSX:FFFFFFC000324440 ptrace .ux\lib/fdt\fdt_offset_ptr+0x18 | | b.hi 0xFFFFFFC000324478 -015410| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015409| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015399| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -015398| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015388| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -015387| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -015377| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -015376| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015375| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015374| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015373| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015372| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015371| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015361| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015360| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015359| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015349| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015348| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015347| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015346| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015345| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015335| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -015334| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015333| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015332| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015331| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015330| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015320| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -015319| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015309| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -015308| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -015307| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -015306| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015305| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015304| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015303| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015302| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015301| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015291| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015290| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015289| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015279| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015278| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015277| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015276| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015275| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -015204| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015203| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015202| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015201| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015200| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015190| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015189| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015188| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015178| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015177| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015176| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015175| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015174| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015164| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -015163| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -015153| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -015152| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -015151| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -015150| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -015149| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015148| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015147| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015146| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015145| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015135| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -015134| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015133| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -015123| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015122| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015121| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015120| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015119| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015109| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015108| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015107| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015106| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015105| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015104| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015103| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015093| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015092| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015091| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015090| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015089| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015088| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015087| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015077| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015076| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015075| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015074| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015073| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015072| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015071| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015061| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015060| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015059| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -015058| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -015057| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -015056| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -015055| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -015045| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -015044| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -015043| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -015005| | NSX:FFFFFFC0003244C0 ptrace .inux\lib/fdt\fdt_next_tag+0x40 | + cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -015004| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014994| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014993| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014992| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014991| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014990| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014980| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014979| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014978| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014977| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014976| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014975| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014974| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014964| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014963| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014962| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014961| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014960| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014959| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014958| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014948| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014947| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014946| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014945| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014944| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014943| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014942| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014932| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014931| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014930| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014929| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014928| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014927| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014926| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014916| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014915| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -014858| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | | | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014857| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -014856| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -014846| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -014845| | NSX:FFFFFFC000CA16C8 ptrace .early_init_dt_scan_chosen+0x3C 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | adrp x1,0xFFFFFFC000BEF000 | | mov x0,x21 | | add x1,x1,#0x218 ; x1,x1,#536 | | bl 0xFFFFFFC0003231B0 ; __pi_strcmp -014844| | NSX:FFFFFFC0003231B0 ptrace \\vmlinux\Global\__pi_strcmp | + ... | | syndrome .req x6 | | tmp1 .req x7 | | tmp2 .req x8 | | tmp3 .req x9 | | zeroones .req x10 | | pos .req x11 | | | | ENTRY(strcmp) 64| | eor tmp1, src1, src2 | | eor x7,x0,x1 65| | mov zeroones, #REP8_01 | | mov x10,#0x101010101010101; x10,#72340172838076673 66| | tst tmp1, #7 | | tst x7,#0x7 ; x7,#7 67| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000323218 -014843| | NSX:FFFFFFC000323218 ptrace .mlinux\Global\__pi_strcmp+0x68 | + | | .Lmisaligned8: | | /* | | * Get the align offset length to compare per byte first. | | * After this process, one string's address will be aligned. | | */ 115| | and tmp1, src1, #7 | | and x7,x0,#0x7 ; x7,x0,#7 116| | neg tmp1, tmp1 | | neg x7,x7 117| | add tmp1, tmp1, #8 | | add x7,x7,#0x8 ; x7,x7,#8 118| | and tmp2, src2, #7 | | and x8,x1,#0x7 ; x8,x1,#7 119| | neg tmp2, tmp2 | | neg x8,x8 120| | add tmp2, tmp2, #8 | | add x8,x8,#0x8 ; x8,x8,#8 121| | subs tmp3, tmp1, tmp2 | | subs x9,x7,x8 122| | csel pos, tmp1, tmp2, hi /*Choose the maximum. */ | | csel x11,x7,x8,hi | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014842| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -014841| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -014831| | NSX:FFFFFFC000CA16D8 ptrace .early_init_dt_scan_chosen+0x4C 951| + return 0; | | mov w1,#0x0 ; w1,#0 950| | (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) | | cbnz w0,0xFFFFFFC000CA1814 -014830| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -014820| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -014819| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -014818| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -014817| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -014816| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -014815| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -014814| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014813| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014812| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014811| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014810| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014800| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -014799| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014798| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014788| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014787| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014786| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014785| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014784| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014774| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014773| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014772| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014771| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -014733| | NSX:FFFFFFC0003244A0 ptrace .inux\lib/fdt\fdt_next_tag+0x20 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014732| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014731| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014730| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014729| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014719| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -014718| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014717| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014707| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014706| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014705| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014704| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014703| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014693| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -014692| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014691| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014690| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014689| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014688| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014678| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -014677| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -014667| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -014666| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -014665| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -014664| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -014663| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014662| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014661| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014660| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014659| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014649| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -014648| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014647| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014637| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014636| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014635| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014634| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014633| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014623| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -014622| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014621| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014620| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014619| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014618| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014608| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -014607| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -014597| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -014596| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | + cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -014595| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -014594| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -014593| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014592| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014591| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014590| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014589| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014579| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -014578| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014577| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014567| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014566| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014565| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014564| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014563| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014553| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -014552| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -014542| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -014541| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -014540| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -014539| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -014538| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014537| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014536| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014535| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014534| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014524| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -014490| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014489| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014479| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014478| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014477| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014476| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014475| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014465| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014464| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014463| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014462| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014461| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014460| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014459| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014449| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014448| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014447| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014446| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014445| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014444| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014443| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014433| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014432| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014431| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014430| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014429| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014428| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014427| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014417| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014416| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014415| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -014377| | NSX:FFFFFFC0003244C0 ptrace .inux\lib/fdt\fdt_next_tag+0x40 | + cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014376| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014366| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014365| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014364| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014363| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014362| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014352| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014351| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014350| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014349| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014348| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014347| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014346| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014336| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014335| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014334| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014333| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014332| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014331| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014330| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014320| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014319| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014318| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014317| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014316| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014315| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014314| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014304| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014303| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014302| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014301| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014300| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014299| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014298| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014288| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014287| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014286| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014285| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -014247| | NSX:FFFFFFC000323238 ptrace .mlinux\Global\__pi_strcmp+0x88 | | .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014246| | NSX:FFFFFFC000323238 ptrace .mlinux\Global\__pi_strcmp+0x88 | + .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014245| | NSX:FFFFFFC000323238 ptrace .mlinux\Global\__pi_strcmp+0x88 | + .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014244| | NSX:FFFFFFC000323238 ptrace .mlinux\Global\__pi_strcmp+0x88 | + .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014243| | NSX:FFFFFFC000323238 ptrace .mlinux\Global\__pi_strcmp+0x88 | + .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014242| | NSX:FFFFFFC000323238 ptrace .mlinux\Global\__pi_strcmp+0x88 | + .Ltinycmp: 124| | ldrb data1w, [src1], #1 | | ldrb w2,[x0],#0x1 ; w2,[x0],#1 125| | ldrb data2w, [src2], #1 | | ldrb w3,[x1],#0x1 ; w3,[x1],#1 126| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 127| | ccmp data1w, #1, #0, ne /* NZCV = 0b0000. */ | | ccmp w2,#0x1,#0x0,ne ; w2,#1,#0,ne 128| | ccmp data1w, data2w, #0, cs /* NZCV = 0b0000. */ | | ccmp w2,w3,#0x0,cs ; w2,w3,#0,cs 129| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000323238 -014241| | NSX:FFFFFFC000323250 ptrace .mlinux\Global\__pi_strcmp+0xA0 130| | cbnz pos, 1f /*find the null or unequal...*/ | | cbnz x11,0xFFFFFFC000323260 -014240| | NSX:FFFFFFC000323260 ptrace .mlinux\Global\__pi_strcmp+0xB0 | + 1: 135| | sub result, data1, data2 | | sub x0,x2,x3 136| | ret | | ret -014230| | NSX:FFFFFFC000CA16C4 ptrace .early_init_dt_scan_chosen+0x38 | + int l; | | const char *p; | | | | pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | | 949| | if (depth != 1 || !data || | | cbz w0,0xFFFFFFC000CA16E0 -014229| | NSX:FFFFFFC000CA16E0 ptrace .early_init_dt_scan_chosen+0x54 | + ... | | static void __init early_init_dt_check_for_initrd(unsigned long node) | | { | | u64 start, end; | | int len; | | const __be32 *prop; | | | | pr_debug("Looking for initrd properties... "); | | 775| | prop = of_get_flat_dt_prop(node, "linux,initrd-start", &len); | | adrp x1,0xFFFFFFC000BEF000 | | add x2,x29,#0x3C ; x2,x29,#60 | | add x1,x1,#0x228 ; x1,x1,#552 | | mov x0,x20 | | bl 0xFFFFFFC000CA15D0 ; of_get_flat_dt_prop -014228| | NSX:FFFFFFC000CA15D0 ptrace .nux\of/fdt\of_get_flat_dt_prop | + | | /** | | * of_get_flat_dt_prop - Given a node in the flat blob, return the property ptr | | * | | * This function can be used within scan_flattened_dt callback to get | | * access to properties | | */ 669| | const void *__init of_get_flat_dt_prop(unsigned long node, const char *name, 672| | return fdt_getprop(initial_boot_params, node, name, size); | | adrp x4,0xFFFFFFC000DF6000 | | mov x3,x2 | | int *size) 671| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! 672| | return fdt_getprop(initial_boot_params, node, name, size); | | mov x2,x1 | | mov w1,w0 | | int *size) 671| | { | | mov x29,SP 672| | return fdt_getprop(initial_boot_params, node, name, size); | | ldr x0,[x4,#0x858] ; x0,[x4,#2136] | | bl 0xFFFFFFC00085AC30 ; fdt_getprop -014227| | NSX:FFFFFFC00085AC30 ptrace \\vmlinux\fdt_ro\fdt_getprop | + 323| | const void *fdt_getprop(const void *fdt, int nodeoffset, | | const char *name, int *lenp) 325| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | mov x20,x0 326| | return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); | | mov x0,x2 | | const char *name, int *lenp) 325| | { | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | const char *name, int *lenp) 325| | { | | mov x19,x2 | | mov x22,x3 | | mov w21,w1 326| | return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); | | bl 0xFFFFFFC000323310 ; __pi_strlen -014226| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -014225| | NSX:FFFFFFC000323368 ptrace .mlinux\Global\__pi_strlen+0x58 | + | | .Lmisaligned: 111| | cmp tmp1, #8 | | cmp x7,#0x8 ; x7,#8 112| | neg tmp1, tmp1 | | neg x7,x7 113| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 114| | lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ | | lsl x7,x7,#0x3 ; x7,x7,#3 115| | mov tmp2, #~0 | | movn x8,#0x0 ; x8,#0 | | /* Big-endian. Early bytes are at MSB. */ | | CPU_BE( lsl tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | /* Little-endian. Early bytes are at LSB. */ 119| | CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | lsr x8,x8,x7 | | 121| | orr data1, data1, tmp2 | | orr x2,x2,x8 122| | orr data2a, data2, tmp2 | | orr x4,x3,x8 123| | csinv data1, data1, xzr, le | | csinv x2,x2,xZR,le 124| | csel data2, data2, data2a, le | | csel x3,x3,x4,le 125| | b .Lrealigned | | b 0xFFFFFFC000323324 -014224| | NSX:FFFFFFC000323324 ptrace .mlinux\Global\__pi_strlen+0x14 | + .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -014190| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -014189| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -014188| | NSX:FFFFFFC000323354 ptrace .mlinux\Global\__pi_strlen+0x44 | + ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -014178| | NSX:FFFFFFC00085AC58 ptrace .mlinux\fdt_ro\fdt_getprop+0x28 | + const struct fdt_property *prop; | | 303| | prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp); | | mov x4,x22 | | mov w3,w0 | | mov x2,x19 | | mov w1,w21 | | mov x0,x20 | | bl 0xFFFFFFC00085AA68 ; fdt_get_property_namelen -014177| | NSX:FFFFFFC00085AA68 ptrace .dt_ro\fdt_get_property_namelen | + 266| | const struct fdt_property *fdt_get_property_namelen(const void *fdt, | | int offset, | | const char *name, | | int namelen, int *lenp) 270| | { | | stp x29,x30,[SP,#-0x50]!; x29,x30,[SP,#-80]! | | mov x29,SP | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | str x25,[SP,#0x40] ; x25,[SP,#64] | | int offset, | | const char *name, | | int namelen, int *lenp) 270| | { | | mov x21,x0 | | sxtw x22,x3 | | mov x24,x4 | | mov x25,x2 271| | for (offset = fdt_first_property_offset(fdt, offset); | | bl 0xFFFFFFC00085A988 ; fdt_first_property_offset -014176| | NSX:FFFFFFC00085A988 ptrace .t_ro\fdt_first_property_offset | + 227| | int fdt_first_property_offset(const void *fdt, int nodeoffset) 228| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP | | str x19,[SP,#0x10] ; x19,[SP,#16] 228| | { | | mov x19,x0 | | int offset; | | 231| | if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -014175| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -014174| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -014173| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -014172| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014171| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014170| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014169| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014168| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014158| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -014157| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -014156| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -014146| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014145| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014144| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014143| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014142| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014132| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014131| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014130| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014129| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014128| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014127| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014126| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014116| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014115| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014114| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014113| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014112| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014111| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014110| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014100| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014099| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014098| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014097| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014096| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014095| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014094| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014084| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014083| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014082| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014081| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014080| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014079| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014078| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014068| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014067| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014066| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014065| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014064| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014063| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014062| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014052| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -014051| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -014050| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -014049| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -014048| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -014047| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -014046| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -014036| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -013998| | NSX:FFFFFFC00085A678 ptrace \\vmlinux\fdt_ro\_nextprop | + 108| | static int _nextprop(const void *fdt, int offset) 109| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 109| | { | | mov x20,x0 | | mov w19,w1 | | uint32_t tag; | | int nextoffset; | | | | do { 114| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w19 | | add x2,x29,#0x2C ; x2,x29,#44 | | mov x0,x20 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013997| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013996| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013995| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013994| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013993| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013983| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013982| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013981| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013971| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013970| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013969| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013968| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013967| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013957| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -013956| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013955| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013954| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013953| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013952| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013942| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013941| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013931| | NSX:FFFFFFC00085A69C ptrace \\vmlinux\fdt_ro\_nextprop+0x24 | + 116| | switch (tag) { | | cmp w0,#0x3 ; w0,#3 | | b.eq 0xFFFFFFC00085A6E0 -013930| | NSX:FFFFFFC00085A6E0 ptrace \\vmlinux\fdt_ro\_nextprop+0x68 | + 116| | switch (tag) { | | mov w0,w19 130| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -013920| | NSX:FFFFFFC00085A9AC ptrace .fdt_first_property_offset+0x24 235| + } | | ldr x19,[SP,#0x10] ; x19,[SP,#16] | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013910| | NSX:FFFFFFC00085AA94 ptrace .\fdt_get_property_namelen+0x2C | + mov w19,w0 | | tbz x0,#0x1F,0xFFFFFFC00085AAB4; x0,#31,0xFFFFFFC00085AAB4 -013909| | NSX:FFFFFFC00085AAB4 ptrace .\fdt_get_property_namelen+0x4C | + const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x2,x24 | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9E8 ; fdt_get_property_by_offset -013908| | NSX:FFFFFFC00085A9E8 ptrace ._ro\fdt_get_property_by_offset | + 245| | const struct fdt_property *fdt_get_property_by_offset(const void *fdt, | | int offset, | | int *lenp) 248| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | str x21,[SP,#0x20] ; x21,[SP,#32] | | int offset, | | int *lenp) 248| | { | | mov w19,w1 | | mov x20,x2 | | mov x21,x0 | | int err; | | const struct fdt_property *prop; | | 252| | if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset -013907| | NSX:FFFFFFC0003245B0 ptrace .lib/fdt\_fdt_check_prop_offset | + 152| | int _fdt_check_prop_offset(const void *fdt, int offset) 153| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 153| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 154| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245E8; x1,#31,0xFFFFFFC0003245E8 -013906| | NSX:FFFFFFC0003245C0 ptrace .dt\_fdt_check_prop_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245E8 -013905| | NSX:FFFFFFC0003245C8 ptrace .dt\_fdt_check_prop_offset+0x18 155| | || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013904| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013903| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013902| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013901| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013900| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013890| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013889| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013888| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013878| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013877| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013876| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013875| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013874| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013864| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -013863| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013862| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013861| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013860| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013859| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013849| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013815| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013805| | NSX:FFFFFFC0003245D0 ptrace .dt\_fdt_check_prop_offset+0x20 | + cmp w0,#0x3 ; w0,#3 | | b.ne 0xFFFFFFC0003245E8 -013804| | NSX:FFFFFFC0003245D8 ptrace .dt\_fdt_check_prop_offset+0x28 | | 158| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 159| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013794| | NSX:FFFFFFC00085AA08 ptrace .dt_get_property_by_offset+0x20 | + tbnz x0,#0x1F,0xFFFFFFC00085AA40; x0,#31,0xFFFFFFC00085AA40 -013793| | NSX:FFFFFFC00085AA0C ptrace .dt_get_property_by_offset+0x24 | | ldr w0,[x21,#0x8] ; w0,[x21,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w0,w0 | | add x0,x0,w19 | | add x0,x21,x0 | | } | | | | prop = _fdt_offset_ptr(fdt, offset); | | 260| | if (lenp) | | cbz x20,0xFFFFFFC00085AA2C -013792| | NSX:FFFFFFC00085AA20 ptrace .dt_get_property_by_offset+0x38 | | ldr w1,[x0,#0x4] ; w1,[x0,#4] | | rev w1,w1 261| | *lenp = fdt32_to_cpu(prop->len); | | str w1,[x20] | | | | return prop; 264| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -013782| | NSX:FFFFFFC00085AAC4 ptrace .\fdt_get_property_namelen+0x5C | + mov x20,x0 | | | | static int _fdt_string_eq(const void *fdt, int stroffset, | | const char *s, int len) | | { 86| | const char *p = fdt_string(fdt, stroffset); | | mov x0,x21 | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | cbz x20,0xFFFFFFC00085AB20 -013781| | NSX:FFFFFFC00085AAD0 ptrace .\fdt_get_property_namelen+0x68 | | ldr w1,[x20,#0x8] ; w1,[x20,#8] | | | | static int _fdt_string_eq(const void *fdt, int stroffset, | | const char *s, int len) | | { 86| | const char *p = fdt_string(fdt, stroffset); | | rev w1,w1 | | bl 0xFFFFFFC00085A6F0 ; fdt_string -013780| | NSX:FFFFFFC00085A6F0 ptrace \\vmlinux\fdt_ro\fdt_string | + return 1; | | else | | return 0; | | } | | 78| | const char *fdt_string(const void *fdt, int stroffset) 79| | { | | ldr w2,[x0,#0x0C] ; w2,[x0,#12] 80| | return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset; | | rev w2,w2 | | add x1,x2,w1 81| | } | | add x0,x0,x1 | | ret -013770| | NSX:FFFFFFC00085AADC ptrace .\fdt_get_property_namelen+0x74 | + mov x23,x0 | | 88| | return (strlen(p) == len) && (memcmp(p, s, len) == 0); | | bl 0xFFFFFFC000323310 ; __pi_strlen -013769| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -013768| | NSX:FFFFFFC000323368 ptrace .mlinux\Global\__pi_strlen+0x58 | + | | .Lmisaligned: 111| | cmp tmp1, #8 | | cmp x7,#0x8 ; x7,#8 112| | neg tmp1, tmp1 | | neg x7,x7 113| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 114| | lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ | | lsl x7,x7,#0x3 ; x7,x7,#3 115| | mov tmp2, #~0 | | movn x8,#0x0 ; x8,#0 | | /* Big-endian. Early bytes are at MSB. */ | | CPU_BE( lsl tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | /* Little-endian. Early bytes are at LSB. */ 119| | CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | lsr x8,x8,x7 | | 121| | orr data1, data1, tmp2 | | orr x2,x2,x8 122| | orr data2a, data2, tmp2 | | orr x4,x3,x8 123| | csinv data1, data1, xzr, le | | csinv x2,x2,xZR,le 124| | csel data2, data2, data2a, le | | csel x3,x3,x4,le 125| | b .Lrealigned | | b 0xFFFFFFC000323324 -013767| | NSX:FFFFFFC000323324 ptrace .mlinux\Global\__pi_strlen+0x14 | + .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -013766| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -013765| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -013764| | NSX:FFFFFFC000323354 ptrace .mlinux\Global\__pi_strlen+0x44 | + ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -013754| | NSX:FFFFFFC00085AAE4 ptrace .\fdt_get_property_namelen+0x7C | + cmp x0,x22 | | b.ne 0xFFFFFFC00085AAA0 -013753| | NSX:FFFFFFC00085AAA0 ptrace .\fdt_get_property_namelen+0x38 | + (offset >= 0); 273| | (offset = fdt_next_property_offset(fdt, offset))) { | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9B8 ; fdt_next_property_offset -013752| | NSX:FFFFFFC00085A9B8 ptrace .dt_ro\fdt_next_property_offset | + 237| | int fdt_next_property_offset(const void *fdt, int offset) 238| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP | | str x19,[SP,#0x10] ; x19,[SP,#16] 238| | { | | mov x19,x0 239| | if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset -013751| | NSX:FFFFFFC0003245B0 ptrace .lib/fdt\_fdt_check_prop_offset | + 152| | int _fdt_check_prop_offset(const void *fdt, int offset) 153| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 153| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 154| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245E8; x1,#31,0xFFFFFFC0003245E8 -013750| | NSX:FFFFFFC0003245C0 ptrace .dt\_fdt_check_prop_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245E8 -013749| | NSX:FFFFFFC0003245C8 ptrace .dt\_fdt_check_prop_offset+0x18 155| | || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013748| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013747| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013746| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013745| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013744| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013734| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013733| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013732| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013722| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013721| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013720| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013719| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013718| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013708| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -013707| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013706| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013705| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013704| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013703| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013693| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013692| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013682| | NSX:FFFFFFC0003245D0 ptrace .dt\_fdt_check_prop_offset+0x20 | + cmp w0,#0x3 ; w0,#3 | | b.ne 0xFFFFFFC0003245E8 -013681| | NSX:FFFFFFC0003245D8 ptrace .dt\_fdt_check_prop_offset+0x28 | | 158| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 159| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013671| | NSX:FFFFFFC00085A9CC ptrace .\fdt_next_property_offset+0x14 | + tbnz x0,#0x1F,0xFFFFFFC00085A9DC; x0,#31,0xFFFFFFC00085A9DC -013670| | NSX:FFFFFFC00085A9D0 ptrace .\fdt_next_property_offset+0x18 | | return offset; | | 242| | return _nextprop(fdt, offset); | | mov w1,w0 | | mov x0,x19 | | bl 0xFFFFFFC00085A678 ; _nextprop -013669| | NSX:FFFFFFC00085A678 ptrace \\vmlinux\fdt_ro\_nextprop | + 108| | static int _nextprop(const void *fdt, int offset) 109| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 109| | { | | mov x20,x0 | | mov w19,w1 | | uint32_t tag; | | int nextoffset; | | | | do { 114| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w19 | | add x2,x29,#0x2C ; x2,x29,#44 | | mov x0,x20 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013668| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013667| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013666| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013665| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013664| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013654| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013653| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013652| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013642| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013641| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013640| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013639| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013638| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013628| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -013627| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013626| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013625| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013624| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013623| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013613| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013612| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013602| | NSX:FFFFFFC00085A69C ptrace \\vmlinux\fdt_ro\_nextprop+0x24 | + 116| | switch (tag) { | | cmp w0,#0x3 ; w0,#3 | | b.eq 0xFFFFFFC00085A6E0 -013601| | NSX:FFFFFFC00085A6E0 ptrace \\vmlinux\fdt_ro\_nextprop+0x68 | + 116| | switch (tag) { | | mov w0,w19 130| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -013591| | NSX:FFFFFFC00085A9DC ptrace .\fdt_next_property_offset+0x24 243| + } | | ldr x19,[SP,#0x10] ; x19,[SP,#16] | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013581| | NSX:FFFFFFC00085AAAC ptrace .\fdt_get_property_namelen+0x44 | + mov w19,w0 271| | for (offset = fdt_first_property_offset(fdt, offset); | | tbnz x0,#0x1F,0xFFFFFFC00085AB24; x0,#31,0xFFFFFFC00085AB24 -013580| | NSX:FFFFFFC00085AAB4 ptrace .\fdt_get_property_namelen+0x4C | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x2,x24 | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9E8 ; fdt_get_property_by_offset -013579| | NSX:FFFFFFC00085A9E8 ptrace ._ro\fdt_get_property_by_offset | + 245| | const struct fdt_property *fdt_get_property_by_offset(const void *fdt, | | int offset, | | int *lenp) 248| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | str x21,[SP,#0x20] ; x21,[SP,#32] | | int offset, | | int *lenp) 248| | { | | mov w19,w1 | | mov x20,x2 | | mov x21,x0 | | int err; | | const struct fdt_property *prop; | | 252| | if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset -013578| | NSX:FFFFFFC0003245B0 ptrace .lib/fdt\_fdt_check_prop_offset | + 152| | int _fdt_check_prop_offset(const void *fdt, int offset) 153| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 153| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 154| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245E8; x1,#31,0xFFFFFFC0003245E8 -013577| | NSX:FFFFFFC0003245C0 ptrace .dt\_fdt_check_prop_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245E8 -013576| | NSX:FFFFFFC0003245C8 ptrace .dt\_fdt_check_prop_offset+0x18 155| | || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013575| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013574| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013573| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013572| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013571| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013561| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013560| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013559| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013549| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013548| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013547| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013546| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013545| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013535| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -013534| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013533| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013532| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013531| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013530| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013520| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013519| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013509| | NSX:FFFFFFC0003245D0 ptrace .dt\_fdt_check_prop_offset+0x20 | + cmp w0,#0x3 ; w0,#3 | | b.ne 0xFFFFFFC0003245E8 -013508| | NSX:FFFFFFC0003245D8 ptrace .dt\_fdt_check_prop_offset+0x28 | | 158| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 159| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013498| | NSX:FFFFFFC00085AA08 ptrace .dt_get_property_by_offset+0x20 | + tbnz x0,#0x1F,0xFFFFFFC00085AA40; x0,#31,0xFFFFFFC00085AA40 -013497| | NSX:FFFFFFC00085AA0C ptrace .dt_get_property_by_offset+0x24 | | ldr w0,[x21,#0x8] ; w0,[x21,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w0,w0 | | add x0,x0,w19 | | add x0,x21,x0 | | } | | | | prop = _fdt_offset_ptr(fdt, offset); | | 260| | if (lenp) | | cbz x20,0xFFFFFFC00085AA2C -013496| | NSX:FFFFFFC00085AA20 ptrace .dt_get_property_by_offset+0x38 | | ldr w1,[x0,#0x4] ; w1,[x0,#4] | | rev w1,w1 261| | *lenp = fdt32_to_cpu(prop->len); | | str w1,[x20] | | | | return prop; 264| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -013462| | NSX:FFFFFFC00085AAC4 ptrace .\fdt_get_property_namelen+0x5C | + mov x20,x0 | | | | static int _fdt_string_eq(const void *fdt, int stroffset, | | const char *s, int len) | | { 86| | const char *p = fdt_string(fdt, stroffset); | | mov x0,x21 | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | cbz x20,0xFFFFFFC00085AB20 -013461| | NSX:FFFFFFC00085AAD0 ptrace .\fdt_get_property_namelen+0x68 | | ldr w1,[x20,#0x8] ; w1,[x20,#8] | | | | static int _fdt_string_eq(const void *fdt, int stroffset, | | const char *s, int len) | | { 86| | const char *p = fdt_string(fdt, stroffset); | | rev w1,w1 | | bl 0xFFFFFFC00085A6F0 ; fdt_string -013460| | NSX:FFFFFFC00085A6F0 ptrace \\vmlinux\fdt_ro\fdt_string | + return 1; | | else | | return 0; | | } | | 78| | const char *fdt_string(const void *fdt, int stroffset) 79| | { | | ldr w2,[x0,#0x0C] ; w2,[x0,#12] 80| | return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset; | | rev w2,w2 | | add x1,x2,w1 81| | } | | add x0,x0,x1 | | ret -013450| | NSX:FFFFFFC00085AADC ptrace .\fdt_get_property_namelen+0x74 | + mov x23,x0 | | 88| | return (strlen(p) == len) && (memcmp(p, s, len) == 0); | | bl 0xFFFFFFC000323310 ; __pi_strlen -013449| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -013448| | NSX:FFFFFFC000323368 ptrace .mlinux\Global\__pi_strlen+0x58 | + | | .Lmisaligned: 111| | cmp tmp1, #8 | | cmp x7,#0x8 ; x7,#8 112| | neg tmp1, tmp1 | | neg x7,x7 113| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 114| | lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ | | lsl x7,x7,#0x3 ; x7,x7,#3 115| | mov tmp2, #~0 | | movn x8,#0x0 ; x8,#0 | | /* Big-endian. Early bytes are at MSB. */ | | CPU_BE( lsl tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | /* Little-endian. Early bytes are at LSB. */ 119| | CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | lsr x8,x8,x7 | | 121| | orr data1, data1, tmp2 | | orr x2,x2,x8 122| | orr data2a, data2, tmp2 | | orr x4,x3,x8 123| | csinv data1, data1, xzr, le | | csinv x2,x2,xZR,le 124| | csel data2, data2, data2a, le | | csel x3,x3,x4,le 125| | b .Lrealigned | | b 0xFFFFFFC000323324 -013447| | NSX:FFFFFFC000323324 ptrace .mlinux\Global\__pi_strlen+0x14 | + .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -013446| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -013445| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -013444| | NSX:FFFFFFC000323354 ptrace .mlinux\Global\__pi_strlen+0x44 | + ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -013434| | NSX:FFFFFFC00085AAE4 ptrace .\fdt_get_property_namelen+0x7C | + cmp x0,x22 | | b.ne 0xFFFFFFC00085AAA0 -013433| | NSX:FFFFFFC00085AAEC ptrace .\fdt_get_property_namelen+0x84 | | mov x2,x22 | | mov x1,x25 | | mov x0,x23 | | bl 0xFFFFFFC000322AC0 ; __pi_memcmp -013432| | NSX:FFFFFFC000322AC0 ptrace \\vmlinux\Global\__pi_memcmp | + ... | | tmp1 .req x8 | | tmp2 .req x9 | | tmp3 .req x10 | | pos .req x11 | | limit_wd .req x12 | | mask .req x13 | | | | ENTRY(memcmp) 62| | cbz limit, .Lret0 | | cbz x2,0xFFFFFFC000322C70 -013431| | NSX:FFFFFFC000322AC4 ptrace .vmlinux\Global\__pi_memcmp+0x4 63| | eor tmp1, src1, src2 | | eor x8,x0,x1 64| | tst tmp1, #7 | | tst x8,#0x7 ; x8,#7 65| | b.ne .Lmisaligned8 | | b.ne 0xFFFFFFC000322B64 -013430| | NSX:FFFFFFC000322B64 ptrace .mlinux\Global\__pi_memcmp+0xA4 | + | | /*src1 and src2 have different alignment offset.*/ | | .Lmisaligned8: 138| | cmp limit, #8 | | cmp x2,#0x8 ; x2,#8 139| | b.lo .Ltiny8proc /*limit < 8: compare byte by byte*/ | | b.cc 0xFFFFFFC000322C54 -013429| | NSX:FFFFFFC000322B6C ptrace .mlinux\Global\__pi_memcmp+0xAC | | 141| | and tmp1, src1, #7 | | and x8,x0,#0x7 ; x8,x0,#7 142| | neg tmp1, tmp1 | | neg x8,x8 143| | add tmp1, tmp1, #8/*valid length in the first 8 bytes of src1*/ | | add x8,x8,#0x8 ; x8,x8,#8 144| | and tmp2, src2, #7 | | and x9,x1,#0x7 ; x9,x1,#7 145| | neg tmp2, tmp2 | | neg x9,x9 146| | add tmp2, tmp2, #8/*valid length in the first 8 bytes of src2*/ | | add x9,x9,#0x8 ; x9,x9,#8 147| | subs tmp3, tmp1, tmp2 | | subs x10,x8,x9 148| | csel pos, tmp1, tmp2, hi /*Choose the maximum.*/ | | csel x11,x8,x9,hi | | 150| | sub limit, limit, pos | | sub x2,x2,x11 | | /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013428| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013427| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013426| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013425| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013424| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013423| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013422| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013421| | NSX:FFFFFFC000322BA4 ptrace .mlinux\Global\__pi_memcmp+0xE4 158| | cbnz pos, 1f /*diff occurred before the last byte.*/ | | cbnz x11,0xFFFFFFC000322BB0 -013420| | NSX:FFFFFFC000322BA8 ptrace .mlinux\Global\__pi_memcmp+0xE8 159| | cmp data1w, data2w | | cmp w3,w4 160| | b.eq .Lstart_align | | b.eq 0xFFFFFFC000322BB8 -013419| | NSX:FFFFFFC000322BB8 ptrace .mlinux\Global\__pi_memcmp+0xF8 | + | | .Lstart_align: 166| | lsr limit_wd, limit, #3 | | lsr x12,x2,#0x3 ; x12,x2,#3 167| | cbz limit_wd, .Lremain8 | | cbz x12,0xFFFFFFC000322C4C -013418| | NSX:FFFFFFC000322BC0 ptrace .linux\Global\__pi_memcmp+0x100 | | 169| | ands xzr, src1, #7 | | tst x0,#0x7 ; x0,#7 170| | b.eq .Lrecal_offset | | b.eq 0xFFFFFFC000322BF8 -013417| | NSX:FFFFFFC000322BC8 ptrace .linux\Global\__pi_memcmp+0x108 | | /*process more leading bytes to make src1 aligned...*/ 172| | add src1, src1, tmp3 /*backwards src1 to alignment boundary*/ | | add x0,x0,x10 173| | add src2, src2, tmp3 | | add x1,x1,x10 174| | sub limit, limit, tmp3 | | sub x2,x2,x10 175| | lsr limit_wd, limit, #3 | | lsr x12,x2,#0x3 ; x12,x2,#3 176| | cbz limit_wd, .Lremain8 | | cbz x12,0xFFFFFFC000322C4C -013416| | NSX:FFFFFFC000322BDC ptrace .linux\Global\__pi_memcmp+0x11C | | /*load 8 bytes from aligned SRC1..*/ 178| | ldr data1, [src1], #8 | | ldr x3,[x0],#0x8 ; x3,[x0],#8 179| | ldr data2, [src2], #8 | | ldr x4,[x1],#0x8 ; x4,[x1],#8 | | 181| | subs limit_wd, limit_wd, #1 | | subs x12,x12,#0x1 ; x12,x12,#1 182| | eor diff, data1, data2 /*Non-zero if differences found.*/ | | eor x6,x3,x4 183| | csinv endloop, diff, xzr, ne | | csinv x7,x6,xZR,ne 184| | cbnz endloop, .Lunequal_proc | | cbnz x7,0xFFFFFFC000322C24 -013415| | NSX:FFFFFFC000322C24 ptrace .linux\Global\__pi_memcmp+0x164 | + .Lunequal_proc: 212| | cbz diff, .Lremain8 | | cbz x6,0xFFFFFFC000322C4C -013414| | NSX:FFFFFFC000322C4C ptrace .linux\Global\__pi_memcmp+0x18C | + | | .Lremain8: | | /* Limit % 8 == 0 =>. all data are equal.*/ 243| | ands limit, limit, #7 | | ands x2,x2,#0x7 ; x2,x2,#7 244| | b.eq .Lret0 | | b.eq 0xFFFFFFC000322C70 -013413| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | | | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -013412| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -013411| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -013410| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -013409| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -013408| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -013407| | NSX:FFFFFFC000322C68 ptrace .linux\Global\__pi_memcmp+0x1A8 253| | sub result, data1, data2 | | sub x0,x3,x4 254| | ret | | ret -013397| | NSX:FFFFFFC00085AAFC ptrace .\fdt_get_property_namelen+0x94 | + cbnz w0,0xFFFFFFC00085AAA0 -013396| | NSX:FFFFFFC00085AB00 ptrace .\fdt_get_property_namelen+0x98 | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x0,x20 288| | } | | ldr x25,[SP,#0x40] ; x25,[SP,#64] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | ldp x29,x30,[SP],#0x50 ; x29,x30,[SP],#80 | | ret -013386| | NSX:FFFFFFC00085AC70 ptrace .mlinux\fdt_ro\fdt_getprop+0x40 | + return NULL; | | 307| | return prop->data; | | add x1,x0,#0x0C ; x1,x0,#12 | | cmp x0,xZR 327| | } | | csel x0,x1,xZR,ne | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -013376| | NSX:FFFFFFC000CA15F0 ptrace .f/fdt\of_get_flat_dt_prop+0x20 673| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013366| | NSX:FFFFFFC000CA16F4 ptrace .early_init_dt_scan_chosen+0x68 776| + if (!prop) | | cbz x0,0xFFFFFFC000CA17A4 -013365| | NSX:FFFFFFC000CA16F8 ptrace .early_init_dt_scan_chosen+0x6C | | ldr w2,[x29,#0x3C] ; w2,[x29,#60] | | mov w3,#0x4 ; w3,#4 | | return; 778| | start = of_read_number(prop, len/4); | | mov x1,#0x0 ; x1,#0 | | ... | | | | /* | | * OF address retrieval & translation | | */ | | | | /* Helper to read a big number; size is in cells (not bytes) */ | | static inline u64 of_read_number(const __be32 *cell, int size) | | { 201| | u64 r = 0; | | mov x21,#0x0 ; x21,#0 | | sdiv w2,w2,w3 202| | while (size--) | | cmp x2,x1 | | b.eq 0xFFFFFFC000CA1728 -013364| | NSX:FFFFFFC000CA1714 ptrace .early_init_dt_scan_chosen+0x88 | | ldr w3,[x0,x1,lsl #0x2] ; w3,[x0,x1,lsl #2] | | add x1,x1,#0x1 ; x1,x1,#1 203| | r = (r << 32) | be32_to_cpu(*(cell++)); | | rev w3,w3 | | orr x21,x3,x21,lsl #0x20; x21,x3,x21,lsl #32 | | b 0xFFFFFFC000CA170C -013363| | NSX:FFFFFFC000CA170C ptrace .early_init_dt_scan_chosen+0x80 202| + while (size--) | | cmp x2,x1 | | b.eq 0xFFFFFFC000CA1728 -013362| | NSX:FFFFFFC000CA1728 ptrace .early_init_dt_scan_chosen+0x9C | + 780| | prop = of_get_flat_dt_prop(node, "linux,initrd-end", &len); | | adrp x1,0xFFFFFFC000BEF000 | | add x2,x29,#0x3C ; x2,x29,#60 | | add x1,x1,#0x240 ; x1,x1,#576 | | mov x0,x20 | | bl 0xFFFFFFC000CA15D0 ; of_get_flat_dt_prop -013361| | NSX:FFFFFFC000CA15D0 ptrace .nux\of/fdt\of_get_flat_dt_prop | + | | /** | | * of_get_flat_dt_prop - Given a node in the flat blob, return the property ptr | | * | | * This function can be used within scan_flattened_dt callback to get | | * access to properties | | */ 669| | const void *__init of_get_flat_dt_prop(unsigned long node, const char *name, 672| | return fdt_getprop(initial_boot_params, node, name, size); | | adrp x4,0xFFFFFFC000DF6000 | | mov x3,x2 | | int *size) 671| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! 672| | return fdt_getprop(initial_boot_params, node, name, size); | | mov x2,x1 | | mov w1,w0 | | int *size) 671| | { | | mov x29,SP 672| | return fdt_getprop(initial_boot_params, node, name, size); | | ldr x0,[x4,#0x858] ; x0,[x4,#2136] | | bl 0xFFFFFFC00085AC30 ; fdt_getprop -013360| | NSX:FFFFFFC00085AC30 ptrace \\vmlinux\fdt_ro\fdt_getprop | + 323| | const void *fdt_getprop(const void *fdt, int nodeoffset, | | const char *name, int *lenp) 325| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | mov x20,x0 326| | return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); | | mov x0,x2 | | const char *name, int *lenp) 325| | { | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | const char *name, int *lenp) 325| | { | | mov x19,x2 | | mov x22,x3 | | mov w21,w1 326| | return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); | | bl 0xFFFFFFC000323310 ; __pi_strlen -013359| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -013358| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | | ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -013357| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -013356| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -013355| | NSX:FFFFFFC00032334C ptrace .mlinux\Global\__pi_strlen+0x3C | | CPU_BE( mov data2, data1 ) /*prepare data to re-calculate the syndrome*/ 90| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 91| | mov has_nul2, has_nul1 | | mov x6,x5 | | ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -013345| | NSX:FFFFFFC00085AC58 ptrace .mlinux\fdt_ro\fdt_getprop+0x28 | + const struct fdt_property *prop; | | 303| | prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp); | | mov x4,x22 | | mov w3,w0 | | mov x2,x19 | | mov w1,w21 | | mov x0,x20 | | bl 0xFFFFFFC00085AA68 ; fdt_get_property_namelen -013344| | NSX:FFFFFFC00085AA68 ptrace .dt_ro\fdt_get_property_namelen | + 266| | const struct fdt_property *fdt_get_property_namelen(const void *fdt, | | int offset, | | const char *name, | | int namelen, int *lenp) 270| | { | | stp x29,x30,[SP,#-0x50]!; x29,x30,[SP,#-80]! | | mov x29,SP | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | str x25,[SP,#0x40] ; x25,[SP,#64] | | int offset, | | const char *name, | | int namelen, int *lenp) 270| | { | | mov x21,x0 | | sxtw x22,x3 | | mov x24,x4 | | mov x25,x2 271| | for (offset = fdt_first_property_offset(fdt, offset); | | bl 0xFFFFFFC00085A988 ; fdt_first_property_offset -013343| | NSX:FFFFFFC00085A988 ptrace .t_ro\fdt_first_property_offset | + 227| | int fdt_first_property_offset(const void *fdt, int nodeoffset) 228| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP | | str x19,[SP,#0x10] ; x19,[SP,#16] 228| | { | | mov x19,x0 | | int offset; | | 231| | if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -013342| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -013341| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -013340| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013339| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013338| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013337| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013336| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013335| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013325| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013324| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013323| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013313| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013312| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013311| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013310| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013309| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013299| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013298| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013297| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013296| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013295| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013294| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013293| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013283| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013282| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013281| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013280| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013279| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013278| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013277| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013267| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013266| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013265| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013264| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013263| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013262| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013261| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013251| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013250| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013249| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013248| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013247| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013246| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013245| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013235| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013234| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013233| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013232| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013231| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013230| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013229| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013219| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013218| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013217| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013216| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013215| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013214| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013213| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013203| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -013202| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -013201| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013200| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013199| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013198| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013197| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013187| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013186| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013176| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -013175| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013165| | NSX:FFFFFFC00085A99C ptrace .fdt_first_property_offset+0x14 | + tbnz x0,#0x1F,0xFFFFFFC00085A9AC; x0,#31,0xFFFFFFC00085A9AC -013131| | NSX:FFFFFFC00085A9A0 ptrace .fdt_first_property_offset+0x18 | | return offset; | | 234| | return _nextprop(fdt, offset); | | mov w1,w0 | | mov x0,x19 | | bl 0xFFFFFFC00085A678 ; _nextprop -013130| | NSX:FFFFFFC00085A678 ptrace \\vmlinux\fdt_ro\_nextprop | + 108| | static int _nextprop(const void *fdt, int offset) 109| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 109| | { | | mov x20,x0 | | mov w19,w1 | | uint32_t tag; | | int nextoffset; | | | | do { 114| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w19 | | add x2,x29,#0x2C ; x2,x29,#44 | | mov x0,x20 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -013129| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013128| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013127| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013126| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013125| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013115| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -013114| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -013113| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -013103| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013102| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013101| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013100| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013099| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013089| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -013088| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -013087| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -013086| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -013085| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -013084| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -013074| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -013073| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -013063| | NSX:FFFFFFC00085A69C ptrace \\vmlinux\fdt_ro\_nextprop+0x24 | + 116| | switch (tag) { | | cmp w0,#0x3 ; w0,#3 | | b.eq 0xFFFFFFC00085A6E0 -013062| | NSX:FFFFFFC00085A6E0 ptrace \\vmlinux\fdt_ro\_nextprop+0x68 | + 116| | switch (tag) { | | mov w0,w19 130| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -013052| | NSX:FFFFFFC00085A9AC ptrace .fdt_first_property_offset+0x24 235| + } | | ldr x19,[SP,#0x10] ; x19,[SP,#16] | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -013042| | NSX:FFFFFFC00085AA94 ptrace .\fdt_get_property_namelen+0x2C | + mov w19,w0 | | tbz x0,#0x1F,0xFFFFFFC00085AAB4; x0,#31,0xFFFFFFC00085AAB4 -013041| | NSX:FFFFFFC00085AAB4 ptrace .\fdt_get_property_namelen+0x4C | + const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x2,x24 | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9E8 ; fdt_get_property_by_offset -013040| | NSX:FFFFFFC00085A9E8 ptrace ._ro\fdt_get_property_by_offset | + 245| | const struct fdt_property *fdt_get_property_by_offset(const void *fdt, | | int offset, | | int *lenp) 248| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | str x21,[SP,#0x20] ; x21,[SP,#32] | | int offset, | | int *lenp) 248| | { | | mov w19,w1 | | mov x20,x2 | | mov x21,x0 | | int err; | | const struct fdt_property *prop; | | 252| | if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -013002| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013001| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -013000| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012999| | NSX:FFFFFFC000322BA4 ptrace .mlinux\Global\__pi_memcmp+0xE4 158| | cbnz pos, 1f /*diff occurred before the last byte.*/ | | cbnz x11,0xFFFFFFC000322BB0 -012998| | NSX:FFFFFFC000322BA8 ptrace .mlinux\Global\__pi_memcmp+0xE8 159| | cmp data1w, data2w | | cmp w3,w4 160| | b.eq .Lstart_align | | b.eq 0xFFFFFFC000322BB8 -012997| | NSX:FFFFFFC000322BB8 ptrace .mlinux\Global\__pi_memcmp+0xF8 | + | | .Lstart_align: 166| | lsr limit_wd, limit, #3 | | lsr x12,x2,#0x3 ; x12,x2,#3 167| | cbz limit_wd, .Lremain8 | | cbz x12,0xFFFFFFC000322C4C -012996| | NSX:FFFFFFC000322BC0 ptrace .linux\Global\__pi_memcmp+0x100 | | 169| | ands xzr, src1, #7 | | tst x0,#0x7 ; x0,#7 170| | b.eq .Lrecal_offset | | b.eq 0xFFFFFFC000322BF8 -012995| | NSX:FFFFFFC000322BC8 ptrace .linux\Global\__pi_memcmp+0x108 | | /*process more leading bytes to make src1 aligned...*/ 172| | add src1, src1, tmp3 /*backwards src1 to alignment boundary*/ | | add x0,x0,x10 173| | add src2, src2, tmp3 | | add x1,x1,x10 174| | sub limit, limit, tmp3 | | sub x2,x2,x10 175| | lsr limit_wd, limit, #3 | | lsr x12,x2,#0x3 ; x12,x2,#3 176| | cbz limit_wd, .Lremain8 | | cbz x12,0xFFFFFFC000322C4C -012994| | NSX:FFFFFFC000322BDC ptrace .linux\Global\__pi_memcmp+0x11C | | /*load 8 bytes from aligned SRC1..*/ 178| | ldr data1, [src1], #8 | | ldr x3,[x0],#0x8 ; x3,[x0],#8 179| | ldr data2, [src2], #8 | | ldr x4,[x1],#0x8 ; x4,[x1],#8 | | 181| | subs limit_wd, limit_wd, #1 | | subs x12,x12,#0x1 ; x12,x12,#1 182| | eor diff, data1, data2 /*Non-zero if differences found.*/ | | eor x6,x3,x4 183| | csinv endloop, diff, xzr, ne | | csinv x7,x6,xZR,ne 184| | cbnz endloop, .Lunequal_proc | | cbnz x7,0xFFFFFFC000322C24 -012993| | NSX:FFFFFFC000322C24 ptrace .linux\Global\__pi_memcmp+0x164 | + .Lunequal_proc: 212| | cbz diff, .Lremain8 | | cbz x6,0xFFFFFFC000322C4C -012992| | NSX:FFFFFFC000322C4C ptrace .linux\Global\__pi_memcmp+0x18C | + | | .Lremain8: | | /* Limit % 8 == 0 =>. all data are equal.*/ 243| | ands limit, limit, #7 | | ands x2,x2,#0x7 ; x2,x2,#7 244| | b.eq .Lret0 | | b.eq 0xFFFFFFC000322C70 -012991| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | | | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012990| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012989| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012988| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012987| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012986| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012985| | NSX:FFFFFFC000322C54 ptrace .linux\Global\__pi_memcmp+0x194 | + | | .Ltiny8proc: 247| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 248| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 249| | subs limit, limit, #1 | | subs x2,x2,#0x1 ; x2,x2,#1 | | 251| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 252| | b.eq .Ltiny8proc | | b.eq 0xFFFFFFC000322C54 -012984| | NSX:FFFFFFC000322C68 ptrace .linux\Global\__pi_memcmp+0x1A8 253| | sub result, data1, data2 | | sub x0,x3,x4 254| | ret | | ret -012974| | NSX:FFFFFFC00085AAFC ptrace .\fdt_get_property_namelen+0x94 | + cbnz w0,0xFFFFFFC00085AAA0 -012973| | NSX:FFFFFFC00085AB00 ptrace .\fdt_get_property_namelen+0x98 | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x0,x20 288| | } | | ldr x25,[SP,#0x40] ; x25,[SP,#64] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | ldp x29,x30,[SP],#0x50 ; x29,x30,[SP],#80 | | ret -012963| | NSX:FFFFFFC00085AC70 ptrace .mlinux\fdt_ro\fdt_getprop+0x40 | + return NULL; | | 307| | return prop->data; | | add x1,x0,#0x0C ; x1,x0,#12 | | cmp x0,xZR 327| | } | | csel x0,x1,xZR,ne | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -012953| | NSX:FFFFFFC000CA15F0 ptrace .f/fdt\of_get_flat_dt_prop+0x20 673| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012943| | NSX:FFFFFFC000CA173C ptrace .early_init_dt_scan_chosen+0xB0 781| + if (!prop) | | cbz x0,0xFFFFFFC000CA17A4 -012942| | NSX:FFFFFFC000CA1740 ptrace .early_init_dt_scan_chosen+0xB4 | | ldr w1,[x29,#0x3C] ; w1,[x29,#60] | | mov w4,#0x4 ; w4,#4 | | return; 783| | end = of_read_number(prop, len/4); | | mov x2,#0x0 ; x2,#0 | | ... | | | | /* | | * OF address retrieval & translation | | */ | | | | /* Helper to read a big number; size is in cells (not bytes) */ | | static inline u64 of_read_number(const __be32 *cell, int size) | | { 201| | u64 r = 0; | | mov x3,#0x0 ; x3,#0 | | sdiv w1,w1,w4 202| | while (size--) | | cmp x2,x1 | | b.eq 0xFFFFFFC000CA1770 -012941| | NSX:FFFFFFC000CA175C ptrace .early_init_dt_scan_chosen+0xD0 | | ldr w4,[x0,x2,lsl #0x2] ; w4,[x0,x2,lsl #2] | | add x2,x2,#0x1 ; x2,x2,#1 203| | r = (r << 32) | be32_to_cpu(*(cell++)); | | rev w4,w4 | | orr x3,x4,x3,lsl #0x20 ; x3,x4,x3,lsl #32 | | b 0xFFFFFFC000CA1754 -012940| | NSX:FFFFFFC000CA1754 ptrace .early_init_dt_scan_chosen+0xC8 202| + while (size--) | | cmp x2,x1 | | b.eq 0xFFFFFFC000CA1770 -012939| | NSX:FFFFFFC000CA1770 ptrace .early_init_dt_scan_chosen+0xE4 | + 785| | initrd_start = (unsigned long)__va(start); | | adrp x1,0xFFFFFFC000D32000; x1,__boot_cpu_mode | | adrp x5,0xFFFFFFC000DC9000; x5,reset_devices 786| | initrd_end = (unsigned long)__va(end); | | adrp x4,0xFFFFFFC000DC9000; x4,reset_devices 787| | initrd_below_start_ok = 1; | | adrp x0,0xFFFFFFC000DC9000; x0,reset_devices | | orr x2,xZR,#-0x4000000000; x2,xZR,#-274877906944 | | ldr x1,[x1,#0xAA8] ; x1,[x1,#2728] | | sub x1,x2,x1 | | mov w2,#0x1 ; w2,#1 | | 785| | initrd_start = (unsigned long)__va(start); | | add x21,x21,x1 787| | initrd_below_start_ok = 1; | | str w2,[x0,#0x64] ; w2,[x0,#100] 786| | initrd_end = (unsigned long)__va(end); | | add x1,x3,x1 | | 785| | initrd_start = (unsigned long)__va(start); | | str x21,[x5,#0x70] ; x21,[x5,#112] 786| | initrd_end = (unsigned long)__va(end); | | str x1,[x4,#0x68] ; x1,[x4,#104] | | | | early_init_dt_check_for_initrd(node); | | | | /* Retrieve command line */ 956| | p = of_get_flat_dt_prop(node, "bootargs", &l); | | adrp x1,0xFFFFFFC000BEF000 | | add x2,x29,#0x3C ; x2,x29,#60 | | add x1,x1,#0x258 ; x1,x1,#600 | | mov x0,x20 | | bl 0xFFFFFFC000CA15D0 ; of_get_flat_dt_prop -012938| | NSX:FFFFFFC000CA15D0 ptrace .nux\of/fdt\of_get_flat_dt_prop | + | | /** | | * of_get_flat_dt_prop - Given a node in the flat blob, return the property ptr | | * | | * This function can be used within scan_flattened_dt callback to get | | * access to properties | | */ 669| | const void *__init of_get_flat_dt_prop(unsigned long node, const char *name, 672| | return fdt_getprop(initial_boot_params, node, name, size); | | adrp x4,0xFFFFFFC000DF6000 | | mov x3,x2 | | int *size) 671| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! 672| | return fdt_getprop(initial_boot_params, node, name, size); | | mov x2,x1 | | mov w1,w0 | | int *size) 671| | { | | mov x29,SP 672| | return fdt_getprop(initial_boot_params, node, name, size); | | ldr x0,[x4,#0x858] ; x0,[x4,#2136] | | bl 0xFFFFFFC00085AC30 ; fdt_getprop -012937| | NSX:FFFFFFC00085AC30 ptrace \\vmlinux\fdt_ro\fdt_getprop | + 323| | const void *fdt_getprop(const void *fdt, int nodeoffset, | | const char *name, int *lenp) 325| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | mov x20,x0 326| | return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); | | mov x0,x2 | | const char *name, int *lenp) 325| | { | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | const char *name, int *lenp) 325| | { | | mov x19,x2 | | mov x22,x3 | | mov w21,w1 326| | return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp); | | bl 0xFFFFFFC000323310 ; __pi_strlen -012936| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -012935| | NSX:FFFFFFC000323368 ptrace .mlinux\Global\__pi_strlen+0x58 | + | | .Lmisaligned: 111| | cmp tmp1, #8 | | cmp x7,#0x8 ; x7,#8 112| | neg tmp1, tmp1 | | neg x7,x7 113| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 114| | lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ | | lsl x7,x7,#0x3 ; x7,x7,#3 115| | mov tmp2, #~0 | | movn x8,#0x0 ; x8,#0 | | /* Big-endian. Early bytes are at MSB. */ | | CPU_BE( lsl tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | /* Little-endian. Early bytes are at LSB. */ 119| | CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | lsr x8,x8,x7 | | 121| | orr data1, data1, tmp2 | | orr x2,x2,x8 122| | orr data2a, data2, tmp2 | | orr x4,x3,x8 123| | csinv data1, data1, xzr, le | | csinv x2,x2,xZR,le 124| | csel data2, data2, data2a, le | | csel x3,x3,x4,le 125| | b .Lrealigned | | b 0xFFFFFFC000323324 -012934| | NSX:FFFFFFC000323324 ptrace .mlinux\Global\__pi_strlen+0x14 | + .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -012933| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -012932| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -012931| | NSX:FFFFFFC00032334C ptrace .mlinux\Global\__pi_strlen+0x3C | | CPU_BE( mov data2, data1 ) /*prepare data to re-calculate the syndrome*/ 90| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 91| | mov has_nul2, has_nul1 | | mov x6,x5 | | ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -012921| | NSX:FFFFFFC00085AC58 ptrace .mlinux\fdt_ro\fdt_getprop+0x28 | + const struct fdt_property *prop; | | 303| | prop = fdt_get_property_namelen(fdt, nodeoffset, name, namelen, lenp); | | mov x4,x22 | | mov w3,w0 | | mov x2,x19 | | mov w1,w21 | | mov x0,x20 | | bl 0xFFFFFFC00085AA68 ; fdt_get_property_namelen -012920| | NSX:FFFFFFC00085AA68 ptrace .dt_ro\fdt_get_property_namelen | + 266| | const struct fdt_property *fdt_get_property_namelen(const void *fdt, | | int offset, | | const char *name, | | int namelen, int *lenp) 270| | { | | stp x29,x30,[SP,#-0x50]!; x29,x30,[SP,#-80]! | | mov x29,SP | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | str x25,[SP,#0x40] ; x25,[SP,#64] | | int offset, | | const char *name, | | int namelen, int *lenp) 270| | { | | mov x21,x0 | | sxtw x22,x3 | | mov x24,x4 | | mov x25,x2 271| | for (offset = fdt_first_property_offset(fdt, offset); | | bl 0xFFFFFFC00085A988 ; fdt_first_property_offset -012919| | NSX:FFFFFFC00085A988 ptrace .t_ro\fdt_first_property_offset | + 227| | int fdt_first_property_offset(const void *fdt, int nodeoffset) 228| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP | | str x19,[SP,#0x10] ; x19,[SP,#16] 228| | { | | mov x19,x0 | | int offset; | | 231| | if ((offset = _fdt_check_node_offset(fdt, nodeoffset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -012918| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -012917| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -012916| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -012915| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012914| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012913| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012912| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012911| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012901| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -012900| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -012899| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -012889| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012888| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012887| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012886| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012885| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012875| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012874| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012873| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012872| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012871| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012870| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012869| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012859| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012858| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012857| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012856| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012855| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012854| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012853| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012843| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012842| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012841| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012840| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012839| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012838| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012837| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012827| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012793| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012792| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012791| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012790| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012789| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012788| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012778| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012777| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012776| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012775| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012774| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012773| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012772| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012762| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012761| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012760| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012759| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012758| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012757| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012756| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012746| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -012745| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -012744| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012743| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012742| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012741| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012740| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012730| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -012729| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012719| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -012718| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -012708| | NSX:FFFFFFC00085A99C ptrace .fdt_first_property_offset+0x14 | + tbnz x0,#0x1F,0xFFFFFFC00085A9AC; x0,#31,0xFFFFFFC00085A9AC |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -012670| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | | cbz x0,0xFFFFFFC0003244C8 -012669| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012659| | NSX:FFFFFFC0003245D0 ptrace .dt\_fdt_check_prop_offset+0x20 | + cmp w0,#0x3 ; w0,#3 | | b.ne 0xFFFFFFC0003245E8 -012658| | NSX:FFFFFFC0003245D8 ptrace .dt\_fdt_check_prop_offset+0x28 | | 158| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 159| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -012648| | NSX:FFFFFFC00085AA08 ptrace .dt_get_property_by_offset+0x20 | + tbnz x0,#0x1F,0xFFFFFFC00085AA40; x0,#31,0xFFFFFFC00085AA40 -012647| | NSX:FFFFFFC00085AA0C ptrace .dt_get_property_by_offset+0x24 | | ldr w0,[x21,#0x8] ; w0,[x21,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w0,w0 | | add x0,x0,w19 | | add x0,x21,x0 | | } | | | | prop = _fdt_offset_ptr(fdt, offset); | | 260| | if (lenp) | | cbz x20,0xFFFFFFC00085AA2C -012646| | NSX:FFFFFFC00085AA20 ptrace .dt_get_property_by_offset+0x38 | | ldr w1,[x0,#0x4] ; w1,[x0,#4] | | rev w1,w1 261| | *lenp = fdt32_to_cpu(prop->len); | | str w1,[x20] | | | | return prop; 264| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -012636| | NSX:FFFFFFC00085AAC4 ptrace .\fdt_get_property_namelen+0x5C | + mov x20,x0 | | | | static int _fdt_string_eq(const void *fdt, int stroffset, | | const char *s, int len) | | { 86| | const char *p = fdt_string(fdt, stroffset); | | mov x0,x21 | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | cbz x20,0xFFFFFFC00085AB20 -012635| | NSX:FFFFFFC00085AAD0 ptrace .\fdt_get_property_namelen+0x68 | | ldr w1,[x20,#0x8] ; w1,[x20,#8] | | | | static int _fdt_string_eq(const void *fdt, int stroffset, | | const char *s, int len) | | { 86| | const char *p = fdt_string(fdt, stroffset); | | rev w1,w1 | | bl 0xFFFFFFC00085A6F0 ; fdt_string -012634| | NSX:FFFFFFC00085A6F0 ptrace \\vmlinux\fdt_ro\fdt_string | + return 1; | | else | | return 0; | | } | | 78| | const char *fdt_string(const void *fdt, int stroffset) 79| | { | | ldr w2,[x0,#0x0C] ; w2,[x0,#12] 80| | return (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset; | | rev w2,w2 | | add x1,x2,w1 81| | } | | add x0,x0,x1 | | ret -012624| | NSX:FFFFFFC00085AADC ptrace .\fdt_get_property_namelen+0x74 | + mov x23,x0 | | 88| | return (strlen(p) == len) && (memcmp(p, s, len) == 0); | | bl 0xFFFFFFC000323310 ; __pi_strlen -012623| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -012622| | NSX:FFFFFFC000323368 ptrace .mlinux\Global\__pi_strlen+0x58 | + | | .Lmisaligned: 111| | cmp tmp1, #8 | | cmp x7,#0x8 ; x7,#8 112| | neg tmp1, tmp1 | | neg x7,x7 113| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 114| | lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ | | lsl x7,x7,#0x3 ; x7,x7,#3 115| | mov tmp2, #~0 | | movn x8,#0x0 ; x8,#0 | | /* Big-endian. Early bytes are at MSB. */ | | CPU_BE( lsl tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | /* Little-endian. Early bytes are at LSB. */ 119| | CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | lsr x8,x8,x7 | | 121| | orr data1, data1, tmp2 | | orr x2,x2,x8 122| | orr data2a, data2, tmp2 | | orr x4,x3,x8 123| | csinv data1, data1, xzr, le | | csinv x2,x2,xZR,le 124| | csel data2, data2, data2a, le | | csel x3,x3,x4,le 125| | b .Lrealigned | | b 0xFFFFFFC000323324 -012621| | NSX:FFFFFFC000323324 ptrace .mlinux\Global\__pi_strlen+0x14 | + .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -012620| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -012619| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -012618| | NSX:FFFFFFC000323354 ptrace .mlinux\Global\__pi_strlen+0x44 | + ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -012608| | NSX:FFFFFFC00085AAE4 ptrace .\fdt_get_property_namelen+0x7C | + cmp x0,x22 | | b.ne 0xFFFFFFC00085AAA0 -012607| | NSX:FFFFFFC00085AAA0 ptrace .\fdt_get_property_namelen+0x38 | + (offset >= 0); 273| | (offset = fdt_next_property_offset(fdt, offset))) { | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9B8 ; fdt_next_property_offset -012606| | NSX:FFFFFFC00085A9B8 ptrace .dt_ro\fdt_next_property_offset | + 237| | int fdt_next_property_offset(const void *fdt, int offset) 238| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP | | str x19,[SP,#0x10] ; x19,[SP,#16] 238| | { | | mov x19,x0 239| | if ((offset = _fdt_check_prop_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset -012605| | NSX:FFFFFFC0003245B0 ptrace .lib/fdt\_fdt_check_prop_offset | + 152| | int _fdt_check_prop_offset(const void *fdt, int offset) 153| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 153| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 154| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245E8; x1,#31,0xFFFFFFC0003245E8 -012604| | NSX:FFFFFFC0003245C0 ptrace .dt\_fdt_check_prop_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245E8 -012603| | NSX:FFFFFFC0003245C8 ptrace .dt\_fdt_check_prop_offset+0x18 155| | || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -012602| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012601| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012600| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012599| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012598| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012588| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -012587| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -012586| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -012576| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012575| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012574| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012573| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012572| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012562| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -012561| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012560| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012559| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012558| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012557| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012547| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -012546| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012536| | NSX:FFFFFFC0003245D0 ptrace .dt\_fdt_check_prop_offset+0x20 | + cmp w0,#0x3 ; w0,#3 | | b.ne 0xFFFFFFC0003245E8 -012535| | NSX:FFFFFFC0003245D8 ptrace .dt\_fdt_check_prop_offset+0x28 | | 158| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 159| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -012525| | NSX:FFFFFFC00085A9CC ptrace .\fdt_next_property_offset+0x14 | + tbnz x0,#0x1F,0xFFFFFFC00085A9DC; x0,#31,0xFFFFFFC00085A9DC -012524| | NSX:FFFFFFC00085A9D0 ptrace .\fdt_next_property_offset+0x18 | | return offset; | | 242| | return _nextprop(fdt, offset); | | mov w1,w0 | | mov x0,x19 | | bl 0xFFFFFFC00085A678 ; _nextprop -012523| | NSX:FFFFFFC00085A678 ptrace \\vmlinux\fdt_ro\_nextprop | + 108| | static int _nextprop(const void *fdt, int offset) 109| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] 109| | { | | mov x20,x0 | | mov w19,w1 | | uint32_t tag; | | int nextoffset; | | | | do { 114| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w19 | | add x2,x29,#0x2C ; x2,x29,#44 | | mov x0,x20 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -012522| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012521| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012520| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012519| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012518| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012508| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -012474| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -012473| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -012463| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012462| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012461| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012460| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012459| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012449| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -012448| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012447| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012446| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012445| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012444| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012434| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -012433| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012423| | NSX:FFFFFFC00085A69C ptrace \\vmlinux\fdt_ro\_nextprop+0x24 | + 116| | switch (tag) { | | cmp w0,#0x3 ; w0,#3 | | b.eq 0xFFFFFFC00085A6E0 -012422| | NSX:FFFFFFC00085A6E0 ptrace \\vmlinux\fdt_ro\_nextprop+0x68 | + 116| | switch (tag) { | | mov w0,w19 130| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -012412| | NSX:FFFFFFC00085A9DC ptrace .\fdt_next_property_offset+0x24 243| + } | | ldr x19,[SP,#0x10] ; x19,[SP,#16] | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -012402| | NSX:FFFFFFC00085AAAC ptrace .\fdt_get_property_namelen+0x44 | + mov w19,w0 271| | for (offset = fdt_first_property_offset(fdt, offset); | | tbnz x0,#0x1F,0xFFFFFFC00085AB24; x0,#31,0xFFFFFFC00085AB24 -012401| | NSX:FFFFFFC00085AAB4 ptrace .\fdt_get_property_namelen+0x4C | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x2,x24 | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9E8 ; fdt_get_property_by_offset -012400| | NSX:FFFFFFC00085A9E8 ptrace ._ro\fdt_get_property_by_offset | + 245| | const struct fdt_property *fdt_get_property_by_offset(const void *fdt, | | int offset, | | int *lenp) 248| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | str x21,[SP,#0x20] ; x21,[SP,#32] | | int offset, | | int *lenp) 248| | { | | mov w19,w1 | | mov x20,x2 | | mov x21,x0 | | int err; | | const struct fdt_property *prop; | | 252| | if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset -012399| | NSX:FFFFFFC0003245B0 ptrace .lib/fdt\_fdt_check_prop_offset | + 152| | int _fdt_check_prop_offset(const void *fdt, int offset) 153| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 153| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 154| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245E8; x1,#31,0xFFFFFFC0003245E8 -012398| | NSX:FFFFFFC0003245C0 ptrace .dt\_fdt_check_prop_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245E8 -012397| | NSX:FFFFFFC0003245C8 ptrace .dt\_fdt_check_prop_offset+0x18 155| | || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -012396| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012395| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012394| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012393| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012392| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012382| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -012381| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -012343| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012342| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012341| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012340| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012339| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012329| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -012328| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012327| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012326| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012325| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012324| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012314| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -012313| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012303| | NSX:FFFFFFC00085A69C ptrace \\vmlinux\fdt_ro\_nextprop+0x24 | + 116| | switch (tag) { | | cmp w0,#0x3 ; w0,#3 | | b.eq 0xFFFFFFC00085A6E0 -012302| | NSX:FFFFFFC00085A6E0 ptrace \\vmlinux\fdt_ro\_nextprop+0x68 | + 116| | switch (tag) { | | mov w0,w19 130| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -012292| | NSX:FFFFFFC00085A9DC ptrace .\fdt_next_property_offset+0x24 243| + } | | ldr x19,[SP,#0x10] ; x19,[SP,#16] | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -012282| | NSX:FFFFFFC00085AAAC ptrace .\fdt_get_property_namelen+0x44 | + mov w19,w0 271| | for (offset = fdt_first_property_offset(fdt, offset); | | tbnz x0,#0x1F,0xFFFFFFC00085AB24; x0,#31,0xFFFFFFC00085AB24 -012281| | NSX:FFFFFFC00085AAB4 ptrace .\fdt_get_property_namelen+0x4C | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x2,x24 | | mov w1,w19 | | mov x0,x21 | | bl 0xFFFFFFC00085A9E8 ; fdt_get_property_by_offset -012280| | NSX:FFFFFFC00085A9E8 ptrace ._ro\fdt_get_property_by_offset | + 245| | const struct fdt_property *fdt_get_property_by_offset(const void *fdt, | | int offset, | | int *lenp) 248| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | str x21,[SP,#0x20] ; x21,[SP,#32] | | int offset, | | int *lenp) 248| | { | | mov w19,w1 | | mov x20,x2 | | mov x21,x0 | | int err; | | const struct fdt_property *prop; | | 252| | if ((err = _fdt_check_prop_offset(fdt, offset)) < 0) { | | bl 0xFFFFFFC0003245B0 ; _fdt_check_prop_offset -012279| | NSX:FFFFFFC0003245B0 ptrace .lib/fdt\_fdt_check_prop_offset | + 152| | int _fdt_check_prop_offset(const void *fdt, int offset) 153| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 153| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 154| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245E8; x1,#31,0xFFFFFFC0003245E8 -012278| | NSX:FFFFFFC0003245C0 ptrace .dt\_fdt_check_prop_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245E8 -012277| | NSX:FFFFFFC0003245C8 ptrace .dt\_fdt_check_prop_offset+0x18 155| | || (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -012276| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012275| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012274| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012273| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012272| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012262| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -012261| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -012260| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -012250| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012249| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012248| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012247| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012246| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012236| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -012235| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -012234| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -012233| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -012232| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -012231| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -012221| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -012220| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012210| | NSX:FFFFFFC0003245D0 ptrace .dt\_fdt_check_prop_offset+0x20 | + cmp w0,#0x3 ; w0,#3 | | b.ne 0xFFFFFFC0003245E8 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -012172| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | | /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012171| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012170| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012169| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012168| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012167| | NSX:FFFFFFC000322B90 ptrace .mlinux\Global\__pi_memcmp+0xD0 | + /*compare the proceeding bytes in the first 8 byte segment.*/ | | .Ltinycmp: 153| | ldrb data1w, [src1], #1 | | ldrb w3,[x0],#0x1 ; w3,[x0],#1 154| | ldrb data2w, [src2], #1 | | ldrb w4,[x1],#0x1 ; w4,[x1],#1 155| | subs pos, pos, #1 | | subs x11,x11,#0x1 ; x11,x11,#1 156| | ccmp data1w, data2w, #0, ne /* NZCV = 0b0000. */ | | ccmp w3,w4,#0x0,ne ; w3,w4,#0,ne 157| | b.eq .Ltinycmp | | b.eq 0xFFFFFFC000322B90 -012166| | NSX:FFFFFFC000322BA4 ptrace .mlinux\Global\__pi_memcmp+0xE4 158| | cbnz pos, 1f /*diff occurred before the last byte.*/ | | cbnz x11,0xFFFFFFC000322BB0 -012165| | NSX:FFFFFFC000322BA8 ptrace .mlinux\Global\__pi_memcmp+0xE8 159| | cmp data1w, data2w | | cmp w3,w4 160| | b.eq .Lstart_align | | b.eq 0xFFFFFFC000322BB8 -012164| | NSX:FFFFFFC000322BB8 ptrace .mlinux\Global\__pi_memcmp+0xF8 | + | | .Lstart_align: 166| | lsr limit_wd, limit, #3 | | lsr x12,x2,#0x3 ; x12,x2,#3 167| | cbz limit_wd, .Lremain8 | | cbz x12,0xFFFFFFC000322C4C -012163| | NSX:FFFFFFC000322C4C ptrace .linux\Global\__pi_memcmp+0x18C | + | | .Lremain8: | | /* Limit % 8 == 0 =>. all data are equal.*/ 243| | ands limit, limit, #7 | | ands x2,x2,#0x7 ; x2,x2,#7 244| | b.eq .Lret0 | | b.eq 0xFFFFFFC000322C70 -012162| | NSX:FFFFFFC000322C70 ptrace .linux\Global\__pi_memcmp+0x1B0 | + .Lret0: 256| | mov result, #0 | | mov x0,#0x0 ; x0,#0 257| | ret | | ret -012152| | NSX:FFFFFFC00085AAFC ptrace .\fdt_get_property_namelen+0x94 | + cbnz w0,0xFFFFFFC00085AAA0 -012118| | NSX:FFFFFFC00085AB00 ptrace .\fdt_get_property_namelen+0x98 | | const struct fdt_property *prop; | | 276| | if (!(prop = fdt_get_property_by_offset(fdt, offset, lenp))) { | | mov x0,x20 288| | } | | ldr x25,[SP,#0x40] ; x25,[SP,#64] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | ldp x29,x30,[SP],#0x50 ; x29,x30,[SP],#80 | | ret -012108| | NSX:FFFFFFC00085AC70 ptrace .mlinux\fdt_ro\fdt_getprop+0x40 | + return NULL; | | 307| | return prop->data; | | add x1,x0,#0x0C ; x1,x0,#12 | | cmp x0,xZR 327| | } | | csel x0,x1,xZR,ne | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -012098| | NSX:FFFFFFC000CA15F0 ptrace .f/fdt\of_get_flat_dt_prop+0x20 673| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -012088| | NSX:FFFFFFC000CA17B8 ptrace .arly_init_dt_scan_chosen+0x12C 957| + if (p != NULL && l > 0) | | cbz x0,0xFFFFFFC000CA17E4 -012087| | NSX:FFFFFFC000CA17BC ptrace .arly_init_dt_scan_chosen+0x130 | | ldr w2,[x29,#0x3C] ; w2,[x29,#60] | | cmp w2,wZR | | b.le 0xFFFFFFC000CA17E4 -012086| | NSX:FFFFFFC000CA17C8 ptrace .arly_init_dt_scan_chosen+0x13C 958| | strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE)); | | mov w1,#0x800 ; w1,#2048 | | cmp w2,w1 | | csel w2,w2,w1,le | | mov x1,x0 | | mov x0,x19 | | sxtw x2,x2 | | bl 0xFFFFFFC00032AF48 ; strlcpy | -> interrupt -012083| | NSX:FFFFFFC00032AF48 cancel \\vmlinux\string\strlcpy -012058| | HX:0000004000868400 ptrace | | b 0x4000867800 -012057| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -012056| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -012055| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -012054| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -012053| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -012052| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -012042| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -012041| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -012031| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -012030| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -012029| | HX:00000040008666D8 ptrace | | ret -012019| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -012018| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -012017| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -012007| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -011997| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -011996| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -011986| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -011985| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -011984| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -011983| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -011982| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -011981| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -011971| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -011963| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -011953| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -011952| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -011951| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -011950| | HX:0000004000866CA8 ptrace | | ret -011940| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -011939| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -011938| | HX:0000004000866D30 ptrace | | ret -011928| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -011918| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -011900| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -011890| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -011889| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -011888| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -011878| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011877| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011876| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011875| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011874| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011873| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011872| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -011862| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -011852| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -011851| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -011850| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -011840| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -011830| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -011829| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -011828| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -011818| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -011808| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -011807| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -011806| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -011796| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011795| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011794| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011793| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011792| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011791| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011781| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011747| | NSX:FFFFFFC0000A8A94 unknown .ic\kvm_vgic_sync_hwstate+0x18C -011746| | NSX:FFFFFFC0000A8A94 unknown .ic\kvm_vgic_sync_hwstate+0x18C -011745| | NSX:FFFFFFC0000A8A94 unknown .ic\kvm_vgic_sync_hwstate+0x18C -011735| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011734| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011733| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011732| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011731| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011730| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011720| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011719| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011718| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011717| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011707| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011706| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011705| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011704| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011703| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011702| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011692| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011691| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011690| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011689| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011679| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011678| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011677| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011676| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011675| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011674| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -011664| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011663| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011662| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011661| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -011651| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -011641| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -011640| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -011639| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -011638| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -011637| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -011627| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -011617| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -011616| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -011615| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -011605| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011604| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011603| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011602| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011601| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011600| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011599| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011598| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011597| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -011587| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -011586| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -011585| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -011575| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -011574| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -011573| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -011572| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -011571| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -011570| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -011560| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011559| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011558| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011557| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011556| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011555| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011554| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -011544| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -011543| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -011533| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011532| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011531| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011530| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011529| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011528| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011527| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011526| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011525| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011524| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -011514| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011513| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011512| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011511| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011510| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011509| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011508| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011507| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011506| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011505| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011504| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011503| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011502| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011501| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011500| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011499| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -011489| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -011488| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -011478| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011477| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011476| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011475| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011474| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011473| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011472| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -011462| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -011461| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -011460| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -011459| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -011458| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -011457| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -011447| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -011413| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -011412| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -011411| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -011410| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -011409| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -011408| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -011398| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011397| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011396| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011395| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011394| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011393| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011392| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011391| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011390| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011389| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011388| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011387| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011386| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -011376| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011375| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011374| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011373| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011372| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011371| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011370| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011369| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011368| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011367| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011366| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011365| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011364| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011363| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011362| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011361| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011360| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011359| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011358| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011357| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011356| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -011346| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -011345| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -011335| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -011334| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -011333| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -011323| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011322| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011321| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011320| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011319| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011318| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011317| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011316| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011315| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011314| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -011304| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -011303| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -011302| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -011292| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -011291| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -011290| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -011289| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -011288| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -011278| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -011277| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -011276| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -011275| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -011274| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -011273| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -011263| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011262| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011261| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011260| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011259| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011258| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011257| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011256| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -011246| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011245| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011244| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011243| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011242| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011241| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011240| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011239| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011238| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011237| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011236| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -011226| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -011225| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -011224| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -011223| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -011222| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -011212| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -011211| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -011210| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -011209| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -011199| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -011198| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -011188| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011187| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011186| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011185| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011184| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011183| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011182| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -011172| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011171| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011170| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011169| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011168| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011167| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011166| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -011156| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011155| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011154| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011153| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011152| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011151| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011150| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011149| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011148| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -011138| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -011128| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011127| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011126| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011125| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011124| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011123| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011122| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011121| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011120| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -011110| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011109| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011108| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011107| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011106| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011105| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011104| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011103| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011102| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011101| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011100| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -011066| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -011065| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -011064| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -011063| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -011053| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -011052| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -011051| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -011050| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -011049| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -011048| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -011038| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -011028| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011027| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011026| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011025| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011024| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011023| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011022| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -011012| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -011002| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -011001| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -011000| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -010999| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -010998| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -010997| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -010996| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -010986| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010985| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010984| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010983| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010982| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010981| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010980| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010979| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010978| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010977| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010976| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010975| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010974| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -010964| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -010954| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -010953| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -010943| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -010942| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -010941| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -010940| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -010939| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -010929| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -010919| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -010918| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -010917| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -010916| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -010915| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -010905| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -010904| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -010903| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -010893| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010892| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010891| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010890| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010889| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010888| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010887| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010886| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010885| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010884| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010883| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010882| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010881| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010880| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010879| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010878| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010877| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010876| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010875| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010874| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010873| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010872| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010871| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010870| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010869| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010868| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010867| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010866| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010865| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010864| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010863| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010862| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010861| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010860| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010859| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010858| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010857| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010856| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010855| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010854| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010853| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010852| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010851| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010850| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010849| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010848| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010847| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010846| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010845| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010844| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010843| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010842| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010841| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010840| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010839| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010838| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010837| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010836| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010835| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010834| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010833| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010832| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010831| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010830| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010829| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010828| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010827| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010826| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010825| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010824| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010823| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010822| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010821| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010820| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010819| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010818| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010817| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010816| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010815| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010814| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010813| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010812| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010811| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010810| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010809| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010808| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010807| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010806| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010805| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010804| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010803| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010802| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010801| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010800| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010799| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010798| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010797| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010796| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010795| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010794| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010793| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010792| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010791| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -010781| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -010747| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -010746| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -010745| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -010744| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -010734| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010733| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010732| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010731| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010730| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010729| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010728| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010727| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -010717| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -010716| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -010715| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -010714| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -010704| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010703| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010702| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010701| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010700| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010699| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010698| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010697| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -010687| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -010677| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -010676| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -010666| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -010665| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -010664| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -010663| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -010662| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -010652| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -010642| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010641| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010640| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010639| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010638| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010637| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010636| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010635| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010634| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -010624| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -010614| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -010613| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -010603| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -010602| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -010601| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -010600| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -010590| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -010589| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -010588| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -010587| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -010586| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -010585| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -010575| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -010565| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -010564| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -010554| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -010553| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -010552| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -010551| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -010550| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -010549| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -010539| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010538| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010537| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010536| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010535| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010534| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010533| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010532| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010531| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -010521| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -010520| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -010519| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -010518| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -010517| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -010507| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010506| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010505| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010504| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010503| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010502| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010492| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010491| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010490| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010480| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010479| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010478| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010477| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010476| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010475| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010465| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010464| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010463| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010453| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010452| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010451| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010450| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010449| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010448| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010438| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010404| | NSX:FFFFFFC0000A8368 unknown .ic\kvm_vgic_map_is_active+0x30 -010403| | NSX:FFFFFFC0000A8368 unknown .ic\kvm_vgic_map_is_active+0x30 -010393| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010392| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010391| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010390| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010389| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010388| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -010378| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010377| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010376| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010375| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010374| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -010364| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -010354| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010353| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010352| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010351| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010350| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010349| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010348| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010347| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010346| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010345| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010344| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010343| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010342| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010341| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010340| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010339| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -010329| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -010319| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010318| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010317| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010316| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010315| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010314| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010313| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010312| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -010302| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -010292| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -010291| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -010290| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -010289| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -010279| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -010278| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -010277| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -010276| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -010275| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -010274| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -010264| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -010263| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -010262| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -010261| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -010251| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -010241| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -010231| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -010221| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -010220| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -010219| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -010218| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -010208| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -010207| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -010206| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -010196| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -010186| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -010185| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -010175| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -010174| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -010173| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -010172| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -010171| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -010170| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -010160| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010159| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010158| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010157| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010156| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010155| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010154| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -010144| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -010143| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -010142| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -010141| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -010131| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -010121| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -010120| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -010119| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -010109| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -010108| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -010107| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -010106| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -010096| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -010062| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010061| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010060| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010059| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010058| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010057| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010056| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010055| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -010045| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -010044| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -010043| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -010042| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -010032| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -010031| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -010030| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -010029| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -010028| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -010018| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -010017| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -009990| | HX:0000004000868400 ptrace | | b 0x4000867800 -009989| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -009988| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -009987| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -009986| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -009976| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -009975| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -009965| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -009964| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -009963| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -009962| | HX:0000004000866D00 ptrace | | ret -009952| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -009944| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -009934| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -009933| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -009932| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -009931| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -009930| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -009929| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -009928| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -009918| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -009917| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -009916| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -009915| | HX:0000004000866368 ptrace | | ret -009905| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -009904| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -009903| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -009902| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -009892| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -009891| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -009890| | HX:0000004000866728 ptrace | | ret -009880| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -009879| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -009869| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -009868| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -009867| | HX:0000004000866CD8 ptrace | | ret -009857| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -009856| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -009838| | NSX:FFFFFFC00032AF48 ptrace \\vmlinux\string\strlcpy | + ... | | * @src: Where to copy the string from | | * @size: size of destination buffer | | * | | * Compatible with *BSD: the result is always a valid | | * NUL-terminated string that fits in the buffer (unless, | | * of course, the buffer size is zero). It does not pad | | * out the result like strncpy() does. | | */ 139| | size_t strlcpy(char *dest, const char *src, size_t size) 140| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 140| | { | | mov x19,x2 | | mov x22,x0 141| | size_t ret = strlen(src); | | mov x0,x1 140| | { | | mov x21,x1 141| | size_t ret = strlen(src); | | bl 0xFFFFFFC000323310 ; __pi_strlen -009837| | NSX:FFFFFFC000323310 ptrace \\vmlinux\Global\__pi_strlen | + ... | | zeroones .req x11 | | pos .req x12 | | | | #define REP8_01 0x0101010101010101 | | #define REP8_7f 0x7f7f7f7f7f7f7f7f | | #define REP8_80 0x8080808080808080 | | | | ENTRY(strlen) 60| | mov zeroones, #REP8_01 | | mov x11,#0x101010101010101; x11,#72340172838076673 61| | bic src, srcin, #15 | | and x1,x0,#-0x10 ; x1,x0,#-16 62| | ands tmp1, srcin, #15 | | ands x7,x0,#0x0F ; x7,x0,#15 63| | b.ne .Lmisaligned | | b.ne 0xFFFFFFC000323368 -009836| | NSX:FFFFFFC000323368 ptrace .mlinux\Global\__pi_strlen+0x58 | + | | .Lmisaligned: 111| | cmp tmp1, #8 | | cmp x7,#0x8 ; x7,#8 112| | neg tmp1, tmp1 | | neg x7,x7 113| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 114| | lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ | | lsl x7,x7,#0x3 ; x7,x7,#3 115| | mov tmp2, #~0 | | movn x8,#0x0 ; x8,#0 | | /* Big-endian. Early bytes are at MSB. */ | | CPU_BE( lsl tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | /* Little-endian. Early bytes are at LSB. */ 119| | CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ | | lsr x8,x8,x7 | | 121| | orr data1, data1, tmp2 | | orr x2,x2,x8 122| | orr data2a, data2, tmp2 | | orr x4,x3,x8 123| | csinv data1, data1, xzr, le | | csinv x2,x2,xZR,le 124| | csel data2, data2, data2a, le | | csel x3,x3,x4,le 125| | b .Lrealigned | | b 0xFFFFFFC000323324 -009835| | NSX:FFFFFFC000323324 ptrace .mlinux\Global\__pi_strlen+0x14 | + .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -009834| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -009833| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -009832| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -009831| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -009830| | NSX:FFFFFFC000323320 ptrace .mlinux\Global\__pi_strlen+0x10 | + ... | | */ | | /* | | * The inner loop deals with two Dwords at a time. This has a | | * slightly higher start-up cost, but we should win quite quickly, | | * especially on cores with a high number of issue slots per | | * cycle, as we get much better parallelism out of the operations. | | */ | | .Lloop: 76| | ldp data1, data2, [src], #16 | | ldp x2,x3,[x1],#0x10 ; x2,x3,[x1],#16 | | .Lrealigned: 78| | sub tmp1, data1, zeroones | | sub x7,x2,x11 79| | orr tmp2, data1, #REP8_7f | | orr x8,x2,#0x7F7F7F7F7F7F7F7F; x8,x2,#9187201950435737471 80| | sub tmp3, data2, zeroones | | sub x9,x3,x11 81| | orr tmp4, data2, #REP8_7f | | orr x10,x3,#0x7F7F7F7F7F7F7F7F; x10,x3,#9187201950435737471 82| | bic has_nul1, tmp1, tmp2 | | bic x5,x7,x8 83| | bics has_nul2, tmp3, tmp4 | | bics x6,x9,x10 84| | ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ | | ccmp x5,#0x0,#0x0,eq ; x5,#0,#0,eq 85| | b.eq .Lloop | | b.eq 0xFFFFFFC000323320 -009829| | NSX:FFFFFFC000323344 ptrace .mlinux\Global\__pi_strlen+0x34 | | 87| | sub len, src, srcin | | sub x0,x1,x0 88| | cbz has_nul1, .Lnul_in_data2 | | cbz x5,0xFFFFFFC000323354 -009828| | NSX:FFFFFFC00032334C ptrace .mlinux\Global\__pi_strlen+0x3C | | CPU_BE( mov data2, data1 ) /*prepare data to re-calculate the syndrome*/ 90| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 91| | mov has_nul2, has_nul1 | | mov x6,x5 | | ... | | * easiest way to get the correct byte is to byte-swap the data | | * and calculate the syndrome a second time. | | */ | | CPU_BE( rev data2, data2 ) | | CPU_BE( sub tmp1, data2, zeroones ) | | CPU_BE( orr tmp2, data2, #REP8_7f ) | | CPU_BE( bic has_nul2, tmp1, tmp2 ) | | 104| | sub len, len, #8 | | sub x0,x0,#0x8 ; x0,x0,#8 105| | rev has_nul2, has_nul2 | | rev x6,x6 106| | clz pos, has_nul2 | | clz x12,x6 107| | add len, len, pos, lsr #3 /* Bits to bytes. */ | | add x0,x0,x12,lsr #0x3 ; x0,x0,x12,lsr #3 108| | ret | | ret -009818| | NSX:FFFFFFC00032AF6C ptrace \\vmlinux\string\strlcpy+0x24 | + mov x20,x0 | | 143| | if (size) { | | cbz x19,0xFFFFFFC00032AF94 -009817| | NSX:FFFFFFC00032AF74 ptrace \\vmlinux\string\strlcpy+0x2C 144| | size_t len = (ret >= size) ? size - 1 : ret; | | cmp x0,x19 | | sub x19,x19,#0x1 ; x19,x19,#1 | | csel x19,x19,x0,cs 145| | memcpy(dest, src, len); | | mov x1,x21 | | mov x2,x19 | | mov x0,x22 | | bl 0xFFFFFFC000322C80 ; __memcpy -009816| | NSX:FFFFFFC000322C80 ptrace \\vmlinux\Global\__memcpy | + ... | | A_h .req x8 | | B_l .req x9 | | B_h .req x10 | | C_l .req x11 | | C_h .req x12 | | D_l .req x13 | | D_h .req x14 | | 54| | mov dst, dstin | | mov x6,x0 55| | cmp count, #16 | | cmp x2,#0x10 ; x2,#16 | | /*When memory length is less than 16, the accessed are not aligned.*/ 57| | b.lo .Ltiny15 | | b.cc 0xFFFFFFC000322D00 -009815| | NSX:FFFFFFC000322C8C ptrace \\vmlinux\Global\__memcpy+0x0C | | 59| | neg tmp2, src | | neg x4,x1 60| | ands tmp2, tmp2, #15/* Bytes to reach alignment. */ | | ands x4,x4,#0x0F ; x4,x4,#15 61| | b.eq .LSrcAligned | | b.eq 0xFFFFFFC000322CCC -009814| | NSX:FFFFFFC000322C98 ptrace \\vmlinux\Global\__memcpy+0x18 62| | sub count, count, tmp2 | | sub x2,x2,x4 | | /* | | * Copy the leading memory data from src to dst in an increasing | | * address order.By this way,the risk of overwritting the source | | * memory data is eliminated when the distance between src and | | * dst is less than 16. The memory accesses here are alignment. | | */ 69| | tbz tmp2, #0, 1f | | tbz x4,#0x0,0xFFFFFFC000322CA8; x4,#0,0xFFFFFFC000322CA8 -009813| | NSX:FFFFFFC000322CA8 ptrace \\vmlinux\Global\__memcpy+0x28 | + 1: 73| | tbz tmp2, #1, 2f | | tbz x4,#0x1,0xFFFFFFC000322CB4; x4,#1,0xFFFFFFC000322CB4 -009812| | NSX:FFFFFFC000322CB4 ptrace \\vmlinux\Global\__memcpy+0x34 | + 2: 77| | tbz tmp2, #2, 3f | | tbz x4,#0x2,0xFFFFFFC000322CC0; x4,#2,0xFFFFFFC000322CC0 -009811| | NSX:FFFFFFC000322CC0 ptrace \\vmlinux\Global\__memcpy+0x40 | + 3: 81| | tbz tmp2, #3, .LSrcAligned | | tbz x4,#0x3,0xFFFFFFC000322CCC; x4,#3,0xFFFFFFC000322CCC -009810| | NSX:FFFFFFC000322CC4 ptrace \\vmlinux\Global\__memcpy+0x44 82| | ldr1 tmp1, src, #8 | | ldr x3,[x1],#0x8 ; x3,[x1],#8 | -> interrupt -009808| | NSX:FFFFFFC000322CC8 cancel \\vmlinux\Global\__memcpy+0x48 -009783| | HX:0000004000868400 ptrace | | b 0x4000867800 -009782| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -009781| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -009780| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -009779| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -009778| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -009777| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -009767| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -009766| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -009756| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -009755| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -009754| | HX:00000040008666D8 ptrace | | ret -009744| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -009743| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -009742| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -009732| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -009722| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -009721| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -009687| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -009686| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -009685| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -009684| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -009683| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -009682| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -009672| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -009664| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -009654| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -009653| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -009652| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -009651| | HX:0000004000866CA8 ptrace | | ret -009641| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -009640| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -009639| | HX:0000004000866D30 ptrace | | ret -009629| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -009619| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -009601| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -009591| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -009590| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -009589| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -009579| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009578| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009577| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009576| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009575| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009574| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009573| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -009563| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -009553| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -009552| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -009551| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -009541| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -009531| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -009530| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -009529| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -009519| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -009509| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -009508| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -009507| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -009497| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009496| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009495| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009494| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009493| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009492| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009482| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009481| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009480| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009479| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009469| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009468| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009467| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009466| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009465| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009464| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009454| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009453| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009452| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009451| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009441| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009440| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009439| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009438| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009437| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009436| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009426| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009425| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009424| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009423| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009413| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009412| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009411| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009410| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009409| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009408| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -009398| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009397| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009396| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009395| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -009385| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -009375| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -009374| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -009373| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -009372| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -009371| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -009361| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -009327| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -009326| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -009325| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -009315| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009314| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009313| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009312| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009311| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009310| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009309| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009308| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009307| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -009297| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -009296| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -009295| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -009285| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -009284| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -009283| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -009282| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -009281| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -009280| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -009270| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009269| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009268| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009267| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009266| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009265| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009264| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -009254| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -009253| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -009243| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009242| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009241| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009240| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009239| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009238| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009237| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009236| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009235| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009234| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009233| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009232| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -009222| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009221| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009220| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009219| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009218| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009217| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009216| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009215| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009214| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009213| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009212| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009211| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009210| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009209| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009208| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009207| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -009197| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -009196| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -009186| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009185| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009184| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009183| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009182| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009181| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009180| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -009170| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -009169| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -009168| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -009167| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -009166| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -009165| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -009155| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009154| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009153| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009152| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009151| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009150| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009149| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -009139| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009138| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009137| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009136| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009135| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009134| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009133| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009132| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009131| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009130| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009129| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009128| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009127| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -009117| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009116| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009115| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009114| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009113| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009112| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009111| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009110| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009109| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009108| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009107| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009106| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009105| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009104| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009103| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009102| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009101| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009100| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009099| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009098| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009097| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -009087| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -009086| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -009076| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -009075| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -009074| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -009064| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009063| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009062| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009061| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009060| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009059| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009058| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009057| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009056| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009055| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -009045| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -009044| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -009043| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -009033| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -008999| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -008998| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -008997| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -008996| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -008986| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -008985| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -008984| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -008983| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -008982| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -008981| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -008971| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008970| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008969| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008968| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008967| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008966| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008965| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008964| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -008954| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008953| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008952| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008951| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008950| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008949| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008948| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008947| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008946| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008945| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008944| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008943| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -008933| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -008932| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -008931| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -008930| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -008929| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -008919| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -008918| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -008917| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -008916| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -008906| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -008905| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -008895| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008894| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008893| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008892| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008891| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008890| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008889| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -008879| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008878| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008877| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008876| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008875| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008874| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008873| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -008863| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008862| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008861| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008860| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008859| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008858| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008857| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008856| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008855| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -008845| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -008835| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -008834| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -008833| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -008832| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -008831| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -008821| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -008811| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008810| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008809| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008808| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008807| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008806| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008805| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -008795| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -008785| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008784| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008783| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008782| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008781| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008780| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008779| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -008769| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008768| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008767| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008766| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008765| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008764| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008763| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008762| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008761| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008760| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008759| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008758| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008757| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -008747| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -008737| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -008736| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -008726| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -008725| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -008724| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -008723| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -008722| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -008712| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -008702| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -008701| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -008700| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -008699| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -008698| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -008688| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -008654| | NSX:FFFFFFC000098538 unknown .\kvm_main\mark_page_dirty+0x10 -008653| | NSX:FFFFFFC000098538 unknown .\kvm_main\mark_page_dirty+0x10 -008643| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008642| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008641| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008640| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008639| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008638| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008637| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008636| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008635| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008634| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008633| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008632| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008631| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008630| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008629| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008628| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008627| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008626| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008625| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008624| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008623| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008622| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008621| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008620| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008619| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008618| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008617| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008616| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008615| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008614| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008613| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008612| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008611| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008610| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008609| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008608| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008607| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008606| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008605| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008604| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008603| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008602| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008601| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008600| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008599| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008598| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008597| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008596| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008595| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008594| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008593| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008592| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008591| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008590| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008589| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008588| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008587| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008586| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008585| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008584| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008583| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008582| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008581| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008580| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008579| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008578| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008577| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008576| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008575| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008574| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008573| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008572| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008571| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008570| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008569| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008568| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008567| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008566| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008565| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008564| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008563| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008562| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008561| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008560| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008559| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008558| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008557| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008556| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008555| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008554| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008553| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008552| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008551| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008550| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008549| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008548| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008547| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008546| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008545| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008544| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008543| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008542| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008541| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -008531| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -008521| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -008520| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -008519| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -008518| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -008508| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008507| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008506| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008505| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008504| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008503| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008502| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008501| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -008491| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -008490| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -008489| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -008488| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -008478| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008477| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008476| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008475| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008474| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008473| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008472| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008471| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -008461| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -008451| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -008450| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -008440| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -008439| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -008438| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -008437| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -008436| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -008426| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -008416| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008415| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008414| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008413| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008412| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008411| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008410| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008409| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008408| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -008398| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -008388| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -008387| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -008377| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -008376| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -008375| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -008374| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -008364| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -008330| | NSX:FFFFFFC0000A274C unknown .u\kvm_handle_guest_abort+0x1BC -008329| | NSX:FFFFFFC0000A274C unknown .u\kvm_handle_guest_abort+0x1BC -008328| | NSX:FFFFFFC0000A274C unknown .u\kvm_handle_guest_abort+0x1BC -008327| | NSX:FFFFFFC0000A274C unknown .u\kvm_handle_guest_abort+0x1BC -008326| | NSX:FFFFFFC0000A274C unknown .u\kvm_handle_guest_abort+0x1BC -008316| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -008306| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -008305| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -008295| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -008294| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -008293| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -008292| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -008291| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -008290| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -008280| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008279| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008278| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008277| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008276| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008275| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008274| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008273| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008272| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -008262| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -008261| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -008260| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -008259| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -008258| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -008248| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008247| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008246| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008245| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008244| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008243| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008233| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008232| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008231| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008221| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008220| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008219| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008218| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008217| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008216| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008206| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008205| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008204| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008194| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008193| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008192| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008191| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008190| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008189| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008179| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008178| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008177| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008167| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008166| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008165| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008164| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008163| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008162| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -008152| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008151| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008150| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008149| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008148| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -008138| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -008128| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008127| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008126| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008125| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008124| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008123| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008122| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008121| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008120| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008119| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008118| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008117| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008116| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008115| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008114| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008113| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -008103| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -008093| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008092| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008091| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008090| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008089| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008088| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008087| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008086| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -008076| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -008066| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -008065| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -008064| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -008063| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -008053| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -008052| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -008051| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -008050| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -008049| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -008048| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -008038| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -008037| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -008036| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -008035| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -008025| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -007991| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -007981| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -007971| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -007970| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -007969| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -007968| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -007958| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -007957| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -007956| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -007946| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -007936| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -007935| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -007925| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -007924| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -007923| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -007922| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -007921| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -007920| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -007910| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007909| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007908| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007907| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007906| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007905| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007904| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -007894| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -007893| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -007892| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -007891| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -007881| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -007871| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -007870| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -007869| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -007859| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -007858| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -007857| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -007856| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -007846| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -007836| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007835| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007834| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007833| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007832| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007831| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007830| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007829| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -007819| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -007818| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -007817| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -007816| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -007806| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -007805| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -007804| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -007803| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -007802| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -007792| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -007791| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -007764| | HX:0000004000868400 ptrace | | b 0x4000867800 -007763| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -007762| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -007761| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -007760| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -007750| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -007749| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -007739| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -007738| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -007737| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -007736| | HX:0000004000866D00 ptrace | | ret -007726| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -007718| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -007708| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -007707| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -007706| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -007705| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -007704| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -007703| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -007702| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -007692| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -007691| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -007690| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -007689| | HX:0000004000866368 ptrace | | ret -007679| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -007678| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -007677| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -007676| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -007666| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -007665| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -007664| | HX:0000004000866728 ptrace | | ret -007654| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -007653| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -007643| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -007609| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -007608| | HX:0000004000866CD8 ptrace | | ret -007598| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -007597| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -007579| | NSX:FFFFFFC000322CC8 ptrace \\vmlinux\Global\__memcpy+0x48 83| + str1 tmp1, dst, #8 | | str x3,[x6],#0x8 ; x3,[x6],#8 | | | | .LSrcAligned: 86| | cmp count, #64 | | cmp x2,#0x40 ; x2,#64 87| | b.ge .Lcpy_over64 | | b.ge 0xFFFFFFC000322D34 -007578| | NSX:FFFFFFC000322D34 ptrace \\vmlinux\Global\__memcpy+0xB4 | + | | .Lcpy_over64: 141| | subs count, count, #128 | | subs x2,x2,#0x80 ; x2,x2,#128 142| | b.ge .Lcpy_body_large | | b.ge 0xFFFFFFC000322D80 -007577| | NSX:FFFFFFC000322D3C ptrace \\vmlinux\Global\__memcpy+0xBC | | /* | | * Less than 128 bytes to copy, so handle 64 here and then jump | | * to the tail. | | */ 147| | ldp1 A_l, A_h, src, #16 | | ldp x7,x8,[x1],#0x10 ; x7,x8,[x1],#16 148| | stp1 A_l, A_h, dst, #16 | | stp x7,x8,[x6],#0x10 ; x7,x8,[x6],#16 149| | ldp1 B_l, B_h, src, #16 | | ldp x9,x10,[x1],#0x10 ; x9,x10,[x1],#16 150| | ldp1 C_l, C_h, src, #16 | | ldp x11,x12,[x1],#0x10 ; x11,x12,[x1],#16 151| | stp1 B_l, B_h, dst, #16 | | stp x9,x10,[x6],#0x10 ; x9,x10,[x6],#16 152| | stp1 C_l, C_h, dst, #16 | | stp x11,x12,[x6],#0x10 ; x11,x12,[x6],#16 153| | ldp1 D_l, D_h, src, #16 | | ldp x13,x14,[x1],#0x10 ; x13,x14,[x1],#16 154| | stp1 D_l, D_h, dst, #16 | | stp x13,x14,[x6],#0x10 ; x13,x14,[x6],#16 | | 156| | tst count, #0x3f | | tst x2,#0x3F ; x2,#63 157| | b.ne .Ltail63 | | b.ne 0xFFFFFFC000322CD4 -007576| | NSX:FFFFFFC000322CD4 ptrace \\vmlinux\Global\__memcpy+0x54 | + /* | | * Deal with small copies quickly by dropping straight into the | | * exit block. | | */ | | .Ltail63: | | /* | | * Copy up to 48 bytes of data. At this point we only need the | | * bottom 6 bits of count to be accurate. | | */ 97| | ands tmp1, count, #0x30 | | ands x3,x2,#0x30 ; x3,x2,#48 98| | b.eq .Ltiny15 | | b.eq 0xFFFFFFC000322D00 -007575| | NSX:FFFFFFC000322D00 ptrace \\vmlinux\Global\__memcpy+0x80 | + ... | | * bytes from (src-16) to (dst-16) and to backward the src to aligned | | * address,which way is used in original cortex memcpy. If keeping | | * the original memcpy process here, memmove need to satisfy the | | * precondition that src address is at least 16 bytes bigger than dst | | * address,otherwise some source data will be overwritten when memove | | * call memcpy directly. To make memmove simpler and decouple the | | * memcpy's dependency on memmove, withdrew the original process. | | */ 122| | tbz count, #3, 1f | | tbz x2,#0x3,0xFFFFFFC000322D0C; x2,#3,0xFFFFFFC000322D0C -007574| | NSX:FFFFFFC000322D0C ptrace \\vmlinux\Global\__memcpy+0x8C | + 1: 126| | tbz count, #2, 2f | | tbz x2,#0x2,0xFFFFFFC000322D18; x2,#2,0xFFFFFFC000322D18 -007573| | NSX:FFFFFFC000322D10 ptrace \\vmlinux\Global\__memcpy+0x90 127| | ldr1 tmp1w, src, #4 | | ldr w3,[x1],#0x4 ; w3,[x1],#4 128| | str1 tmp1w, dst, #4 | | str w3,[x6],#0x4 ; w3,[x6],#4 | | 2: 130| | tbz count, #1, 3f | | tbz x2,#0x1,0xFFFFFFC000322D24; x2,#1,0xFFFFFFC000322D24 -007572| | NSX:FFFFFFC000322D1C ptrace \\vmlinux\Global\__memcpy+0x9C 131| | ldrh1 tmp1w, src, #2 | | ldrh w3,[x1],#0x2 ; w3,[x1],#2 132| | strh1 tmp1w, dst, #2 | | strh w3,[x6],#0x2 ; w3,[x6],#2 | | 3: 134| | tbz count, #0, .Lexitfunc | | tbz x2,#0x0,0xFFFFFFC000322DD0; x2,#0,0xFFFFFFC000322DD0 -007571| | NSX:FFFFFFC000322DD0 ptrace \\vmlinux\Global\__memcpy+0x150 | + ... | | .macro stp1 ptr, regB, regC, val | | stp \ptr, \regB, [\regC], \val | | .endm | | | | .weak memcpy | | ENTRY(__memcpy) | | ENTRY(memcpy) | | #include "copy_template.S" 75| | ret | | ret -007561| | NSX:FFFFFFC00032AF90 ptrace \\vmlinux\string\strlcpy+0x48 146| + dest[len] = '\0'; | | strb wZR,[x22,x19,lsl] | | } | | return ret; 149| | } | | mov x0,x20 | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -007551| | NSX:FFFFFFC000CA17E4 ptrace .arly_init_dt_scan_chosen+0x158 | + | | /* | | * CONFIG_CMDLINE is meant to be a default in case nothing else | | * managed to set the command line, unless CONFIG_CMDLINE_FORCE | | * is set in which case we override whatever was found earlier. | | */ | | #ifdef CONFIG_CMDLINE | | #ifndef CONFIG_CMDLINE_FORCE 967| | if (!((char *)data)[0]) | | ldrb w0,[x19] | | cbnz w0,0xFFFFFFC000CA1800 -007550| | NSX:FFFFFFC000CA1800 ptrace .arly_init_dt_scan_chosen+0x174 | + mov w1,#0x1 ; w1,#1 | | b 0xFFFFFFC000CA1814 -007549| | NSX:FFFFFFC000CA1814 ptrace .arly_init_dt_scan_chosen+0x188 | + ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldr x21,[SP,#0x20] ; x21,[SP,#32] | | mov w0,w1 | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -007539| | NSX:FFFFFFC000CA1580 ptrace .ux\of/fdt\of_scan_flat_dt+0x9C | + mov w21,w0 637| | offset = fdt_next_node(blob, offset, &depth)) { | | mov w1,w19 | | mov x2,x20 | | mov x0,x22 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -007538| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -007537| | NSX:FFFFFFC000324610 ptrace .nux\lib/fdt\fdt_next_node+0x18 167| | if ((nextoffset = _fdt_check_node_offset(fdt, offset)) < 0) | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -007536| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -007535| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -007534| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -007533| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007532| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007531| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007530| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007529| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007519| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -007518| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -007517| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -007507| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007506| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007505| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007504| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007503| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007493| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007492| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007491| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007490| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007489| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007488| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007487| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007477| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007476| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007475| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007474| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007473| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007472| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007471| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007461| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007460| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007459| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007458| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007457| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007456| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007455| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007445| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007444| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007443| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007442| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007441| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007440| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007439| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007429| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007428| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007427| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007426| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007425| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007424| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007423| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007413| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007412| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007411| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | | case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007410| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007409| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007408| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007407| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007397| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007396| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007395| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007394| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007393| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007392| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007391| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007381| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -007380| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -007370| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -007369| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -007359| | NSX:FFFFFFC000324614 ptrace .nux\lib/fdt\fdt_next_node+0x1C | + str w0,[x29,#0x1C] ; w0,[x29,#28] | | mov w10,w0 | | tbnz x0,#0x1F,0xFFFFFFC000324690; x0,#31,0xFFFFFFC000324690 -007358| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -007357| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007356| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007355| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007354| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007353| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007343| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -007342| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -007341| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -007331| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007330| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007329| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007328| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007327| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007317| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -007316| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007315| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007314| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007313| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007312| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007302| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -007301| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -007291| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -007290| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -007289| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -007288| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -007287| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007286| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007285| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007284| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007283| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007273| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -007239| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -007238| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -007228| | NSX:FFFFFFC000324518 ptrace .inux\lib/fdt\fdt_next_tag+0x98 | + if (!p) | | return FDT_END; /* premature end */ | | break; | | | | case FDT_PROP: 119| | lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp)); | | mov w2,#0x4 ; w2,#4 | | mov w1,w5 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007227| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007226| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007225| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007224| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007214| | NSX:FFFFFFC000324528 ptrace .inux\lib/fdt\fdt_next_tag+0xA8 120| + if (!lenp) | | cbz x0,0xFFFFFFC0003244C8 -007213| | NSX:FFFFFFC00032452C ptrace .inux\lib/fdt\fdt_next_tag+0xAC | | ldr w1,[x0] | | return FDT_END; /* premature end */ | | /* skip-name offset, length and value */ 123| | offset += sizeof(struct fdt_property) - FDT_TAGSIZE | | add w5,w9,#0x0C ; w5,w9,#12 | | rev w1,w1 | | add w5,w5,w1 | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007212| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007211| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007210| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 |--- TARGET FIFO OVERFLOW, PROGRAM FLOW LOST --------------------------------------------------------------------------------------- -007172| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | | } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007171| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007170| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007169| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007168| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007158| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -007157| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -007147| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -007146| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -007145| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -007144| | NSX:FFFFFFC000324648 ptrace .nux\lib/fdt\fdt_next_node+0x50 | + ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | mov w1,w10 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -007143| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007142| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007141| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007140| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007139| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007129| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -007128| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -007127| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -007117| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007116| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007115| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007114| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007113| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007103| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -007102| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -007092| | NSX:FFFFFFC00032465C ptrace .nux\lib/fdt\fdt_next_node+0x64 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.ne 0xFFFFFFC000324638 -007091| | NSX:FFFFFFC000324664 ptrace .nux\lib/fdt\fdt_next_node+0x6C | | break; | | | | case FDT_END_NODE: 185| | if (depth && ((--(*depth)) < 0)) | | cbz x11,0xFFFFFFC000324648 -007090| | NSX:FFFFFFC000324668 ptrace .nux\lib/fdt\fdt_next_node+0x70 | | ldr w0,[x11] | | sub w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | tbz x0,#0x1F,0xFFFFFFC000324648; x0,#31,0xFFFFFFC000324648 -007089| | NSX:FFFFFFC000324678 ptrace .nux\lib/fdt\fdt_next_node+0x80 186| | return nextoffset; | | ldr w10,[x29,#0x1C] ; w10,[x29,#28] | | b 0xFFFFFFC000324690 -007088| | NSX:FFFFFFC000324690 ptrace .nux\lib/fdt\fdt_next_node+0x98 | + else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -007078| | NSX:FFFFFFC000CA1594 ptrace .ux\of/fdt\of_scan_flat_dt+0xB0 | + mov w19,w0 | | b 0xFFFFFFC000CA152C -007077| | NSX:FFFFFFC000CA152C ptrace .ux\of/fdt\of_scan_flat_dt+0x48 | + 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -007076| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -007075| | NSX:FFFFFFC000CA159C ptrace .ux\of/fdt\of_scan_flat_dt+0xB8 | + } | | return rc; 645| | } | | mov w0,w21 | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | ldp x29,x30,[SP],#0x50 ; x29,x30,[SP],#80 | | ret -007065| | NSX:FFFFFFC000CA1FD4 ptrace .\early_init_dt_scan_nodes+0x1C | + | | /* Initialize {size,address}-cells info */ 1084| | of_scan_flat_dt(early_init_dt_scan_root, NULL); | | adrp x0,0xFFFFFFC000CA1000; x0,a4_driver_init | | mov x1,#0x0 ; x1,#0 | | add x0,x0,#0x5F8 ; x0,x0,#1528 | | bl 0xFFFFFFC000CA14E4 ; of_scan_flat_dt -007064| | NSX:FFFFFFC000CA14E4 ptrace .vmlinux\of/fdt\of_scan_flat_dt | + ... | | * of_scan_flat_dt - scan flattened tree blob and call callback on each. | | * @it: callback function | | * @data: context data pointer | | * | | * This function is used to scan the flattened device-tree, it is | | * used to extract the memory information at boot before we can | | * unflatten the tree | | */ 626| | int __init of_scan_flat_dt(int (*it)(unsigned long node, | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | stp x29,x30,[SP,#-0x50]!; x29,x30,[SP,#-80]! 631| | const void *blob = initial_boot_params; | | adrp x3,0xFFFFFFC000DF6000 | | const char *pathp; 633| | int offset, rc = 0, depth = -1; | | movn w2,#0x0 ; w2,#0 | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | const char *pathp; 633| | int offset, rc = 0, depth = -1; | | add x20,x29,#0x50 ; x20,x29,#80 | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 631| | const void *blob = initial_boot_params; | | ldr x22,[x3,#0x858] ; x22,[x3,#2136] | | const char *pathp; 633| | int offset, rc = 0, depth = -1; | | mov w21,#0x0 ; w21,#0 | | str w2,[x20,#-0x4]! ; w2,[x20,#-4]! | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | stp x23,x24,[SP,#0x30] ; x23,x24,[SP,#48] | | const char *uname, int depth, | | void *data), | | void *data) 630| | { | | mov x24,x0 | | mov x23,x1 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | mov x0,x22 | | mov w1,w2 | | mov x2,x20 | | bl 0xFFFFFFC0003245F8 ; fdt_next_node -007063| | NSX:FFFFFFC0003245F8 ptrace \\vmlinux\lib/fdt\fdt_next_node | + 161| | int fdt_next_node(const void *fdt, int offset, int *depth) 162| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x12,x0 | | mov x11,x2 | | mov x29,SP 163| | int nextoffset = 0; | | str wZR,[x29,#0x1C] ; wZR,[x29,#28] | | uint32_t tag; | | 166| | if (offset >= 0) | | tbnz x1,#0x1F,0xFFFFFFC0003246C0; x1,#31,0xFFFFFFC0003246C0 -007062| | NSX:FFFFFFC0003246C0 ptrace .nux\lib/fdt\fdt_next_node+0xC8 | + mov w10,#0x0 ; w10,#0 | | b 0xFFFFFFC000324620 -007061| | NSX:FFFFFFC000324620 ptrace .nux\lib/fdt\fdt_next_node+0x28 | + return nextoffset; | | | | do { | | offset = nextoffset; 172| | tag = fdt_next_tag(fdt, offset, &nextoffset); | | mov w1,w10 | | add x2,x29,#0x1C ; x2,x29,#28 | | mov x0,x12 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -007060| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007059| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007058| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007057| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007056| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007046| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -007045| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -007044| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -007034| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007033| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007032| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007031| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007030| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007020| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -007019| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -007018| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -007017| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -007016| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -007015| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -007014| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -007004| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -007003| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -006993| | NSX:FFFFFFC000324630 ptrace .nux\lib/fdt\fdt_next_node+0x38 | + 174| | switch (tag) { | | cmp w0,#0x2 ; w0,#2 | | b.eq 0xFFFFFFC000324664 -006992| | NSX:FFFFFFC000324638 ptrace .nux\lib/fdt\fdt_next_node+0x40 | | cmp w0,#0x9 ; w0,#9 | | b.eq 0xFFFFFFC0003246A0 -006991| | NSX:FFFFFFC000324640 ptrace .nux\lib/fdt\fdt_next_node+0x48 | | cmp w0,#0x1 ; w0,#1 | | b.eq 0xFFFFFFC000324680 -006990| | NSX:FFFFFFC000324680 ptrace .nux\lib/fdt\fdt_next_node+0x88 | + case FDT_PROP: | | case FDT_NOP: | | break; | | | | case FDT_BEGIN_NODE: 180| | if (depth) | | cbz x11,0xFFFFFFC000324690 -006989| | NSX:FFFFFFC000324684 ptrace .nux\lib/fdt\fdt_next_node+0x8C 181| | (*depth)++; | | ldr w0,[x11] | | add w0,w0,#0x1 ; w0,w0,#1 | | str w0,[x11] | | else | | return nextoffset; | | } | | } while (tag != FDT_BEGIN_NODE); | | | | return offset; 199| | } | | mov w0,w10 | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -006979| | NSX:FFFFFFC000CA1528 ptrace .ux\of/fdt\of_scan_flat_dt+0x44 | + mov w19,w0 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov w1,w19 | | mov x2,#0x0 ; x2,#0 | | mov x0,x22 | | 635| | for (offset = fdt_next_node(blob, -1, &depth); | | tbnz x19,#0x1F,0xFFFFFFC000CA159C; x19,#31,0xFFFFFFC000CA159C -006978| | NSX:FFFFFFC000CA153C ptrace .ux\of/fdt\of_scan_flat_dt+0x58 636| | offset >= 0 && depth >= 0 && !rc; | | ldr w3,[x29,#0x4C] ; w3,[x29,#76] | | cmp w3,wZR | | ccmp w21,wZR,#0x0,ge ; w21,wZR,#0,ge | | b.ne 0xFFFFFFC000CA159C -006977| | NSX:FFFFFFC000CA154C ptrace .ux\of/fdt\of_scan_flat_dt+0x68 | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | bl 0xFFFFFFC00085A8E0 ; fdt_get_name -006976| | NSX:FFFFFFC00085A8E0 ptrace \\vmlinux\fdt_ro\fdt_get_name | + 207| | const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) 208| | { | | stp x29,x30,[SP,#-0x30]!; x29,x30,[SP,#-48]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] 208| | { | | mov w22,w1 | | mov x21,x0 | | ldr w1,[x0,#0x8] ; w1,[x0,#8] | | mov x20,x2 | | rev w19,w1 | | const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); | | int err; | | 212| | if (((err = fdt_check_header(fdt)) != 0) | | bl 0xFFFFFFC0003243B0 ; fdt_check_header -006975| | NSX:FFFFFFC0003243B0 ptrace .linux\lib/fdt\fdt_check_header | + ... | | */ | | #include "libfdt_env.h" | | | | #include <fdt.h> | | #include <libfdt.h> | | | | #include "libfdt_internal.h" | | 58| | int fdt_check_header(const void *fdt) 59| | { | | ldr w1,[x0] 60| | if (fdt_magic(fdt) == FDT_MAGIC) { | | mov w2,#0xFEED ; w2,#65261 | | movk w2,#0xD00D,lsl #0x10; w2,#53261,lsl #16 | | rev w1,w1 | | cmp w1,w2 | | b.ne 0xFFFFFFC0003243F0 -006974| | NSX:FFFFFFC0003243C8 ptrace .\lib/fdt\fdt_check_header+0x18 | | ldr w1,[x0,#0x14] ; w1,[x0,#20] | | rev w1,w1 | | /* Complete tree */ 62| | if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION) | | cmp w1,#0x0F ; w1,#15 | | b.ls 0xFFFFFFC000324418 -006973| | NSX:FFFFFFC0003243D8 ptrace .\lib/fdt\fdt_check_header+0x28 | | ldr w1,[x0,#0x18] ; w1,[x0,#24] 63| | return -FDT_ERR_BADVERSION; | | movn w0,#0x9 ; w0,#9 | | rev w1,w1 | | cmp w1,#0x12 ; w1,#18 | | csel w0,wZR,w0,cc | | ret -006963| | NSX:FFFFFFC00085A908 ptrace .linux\fdt_ro\fdt_get_name+0x28 | | cbz w0,0xFFFFFFC00085A928 -006962| | NSX:FFFFFFC00085A928 ptrace .linux\fdt_ro\fdt_get_name+0x48 213| + || ((err = _fdt_check_node_offset(fdt, nodeoffset)) < 0)) | | mov w1,w22 | | mov x0,x21 | | bl 0xFFFFFFC000324568 ; _fdt_check_node_offset -006961| | NSX:FFFFFFC000324568 ptrace .lib/fdt\_fdt_check_node_offset | + 143| | int _fdt_check_node_offset(const void *fdt, int offset) 144| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | mov x29,SP 144| | { | | str w1,[x29,#0x1C] ; w1,[x29,#28] 145| | if ((offset < 0) || (offset % FDT_TAGSIZE) | | tbnz x1,#0x1F,0xFFFFFFC0003245A0; x1,#31,0xFFFFFFC0003245A0 -006960| | NSX:FFFFFFC000324578 ptrace .dt\_fdt_check_node_offset+0x10 | | and w2,w1,#0x3 ; w2,w1,#3 | | cbnz w2,0xFFFFFFC0003245A0 -006959| | NSX:FFFFFFC000324580 ptrace .dt\_fdt_check_node_offset+0x18 146| | || (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)) | | add x2,x29,#0x1C ; x2,x29,#28 | | bl 0xFFFFFFC000324480 ; fdt_next_tag -006958| | NSX:FFFFFFC000324480 ptrace \\vmlinux\lib/fdt\fdt_next_tag | + 93| | uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) 94| | { | | stp x29,x30,[SP,#-0x10]!; x29,x30,[SP,#-16]! | | mov x8,x2 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | movn w3,#0x7 ; w3,#7 94| | { | | mov x29,SP 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | mov w2,#0x4 ; w2,#4 94| | { | | mov x7,x0 | | mov w9,w1 | | const fdt32_t *tagp, *lenp; | | uint32_t tag; | | int offset = startoffset; | | const char *p; | | 100| | *nextoffset = -FDT_ERR_TRUNCATED; | | str w3,[x8] 101| | tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -006957| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -006956| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -006955| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -006954| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -006944| | NSX:FFFFFFC0003244A4 ptrace .inux\lib/fdt\fdt_next_tag+0x24 102| + if (!tagp) | | cbz x0,0xFFFFFFC0003244C8 -006943| | NSX:FFFFFFC0003244A8 ptrace .inux\lib/fdt\fdt_next_tag+0x28 | | ldr w0,[x0] | | 107| | *nextoffset = -FDT_ERR_BADSTRUCTURE; | | movn w1,#0x0A ; w1,#10 | | str w1,[x8] | | return FDT_END; /* premature end */ | | tag = fdt32_to_cpu(*tagp); 105| | offset += FDT_TAGSIZE; | | add w5,w9,#0x4 ; w5,w9,#4 | | rev w6,w0 108| | switch (tag) { | | sub w0,w6,#0x1 ; w0,w6,#1 | | cmp w0,#0x8 ; w0,#8 | | b.ls 0xFFFFFFC0003244D8 -006942| | NSX:FFFFFFC0003244D8 ptrace .inux\lib/fdt\fdt_next_tag+0x58 108| + switch (tag) { | | adrp x1,0xFFFFFFC0008A0000 | | add x1,x1,#0xBB8 ; x1,x1,#3000 | | ldrb w0,[x1,w0,uxtw] | | adr x1,0xFFFFFFC0003244F0 | | add x0,x1,w0,sxtb #0x2 ; x0,x1,w0,sxtb #2 | | br x0 -006932| | NSX:FFFFFFC0003244F8 ptrace .inux\lib/fdt\fdt_next_tag+0x78 | + case FDT_BEGIN_NODE: | | /* skip name */ | | do { 112| | p = fdt_offset_ptr(fdt, offset++, 1); | | mov w2,#0x1 ; w2,#1 | | mov w1,w5 | | mov x0,x7 | | add w5,w5,w2 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -006931| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -006930| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -006929| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -006928| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -006918| | NSX:FFFFFFC00032450C ptrace .inux\lib/fdt\fdt_next_tag+0x8C 113| + } while (p && (*p != '\0')); | | cbnz x0,0xFFFFFFC0003244F0 -006884| | NSX:FFFFFFC0003244F0 ptrace .inux\lib/fdt\fdt_next_tag+0x70 113| + } while (p && (*p != '\0')); | | ldrb w0,[x0] | | cbz w0,0xFFFFFFC00032453C -006883| | NSX:FFFFFFC00032453C ptrace .inux\lib/fdt\fdt_next_tag+0xBC | + } | | 136| | if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset)) | | sub w2,w5,w9 | | mov w1,w9 | | mov x0,x7 | | bl 0xFFFFFFC000324428 ; fdt_offset_ptr -006882| | NSX:FFFFFFC000324428 ptrace .vmlinux\lib/fdt\fdt_offset_ptr | + 77| | const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) 78| | { | | ldr w3,[x0,#0x14] ; w3,[x0,#20] | | rev w3,w3 | | const char *p; | | 81| | if (fdt_version(fdt) >= 0x11) | | cmp w3,#0x10 ; w3,#16 | | b.ls 0xFFFFFFC000324454 -006881| | NSX:FFFFFFC000324438 ptrace .ux\lib/fdt\fdt_offset_ptr+0x10 82| | if (((offset + len) < offset) | | add w4,w1,w2 | | cmp w1,w4 | | b.hi 0xFFFFFFC000324478 -006880| | NSX:FFFFFFC000324444 ptrace .ux\lib/fdt\fdt_offset_ptr+0x1C | | ldr w3,[x0,#0x24] ; w3,[x0,#36] | | rev w3,w3 83| | || ((offset + len) > fdt_size_dt_struct(fdt))) | | cmp w4,w3 | | b.hi 0xFFFFFFC000324478 -006879| | NSX:FFFFFFC000324454 ptrace .ux\lib/fdt\fdt_offset_ptr+0x2C | | ldr w3,[x0,#0x8] ; w3,[x0,#8] | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | rev w3,w3 | | add x1,x3,w1 | | add x0,x0,x1 | | return NULL; | | | | p = _fdt_offset_ptr(fdt, offset); | | 88| | if (p + len < p) | | add x2,x0,w2 89| | return NULL; | | cmp x0,x2 | | csel x0,x0,xZR,ls | | ret -006869| | NSX:FFFFFFC00032454C ptrace .inux\lib/fdt\fdt_next_tag+0xCC | + cbz x0,0xFFFFFFC0003244C8 -006868| | NSX:FFFFFFC000324550 ptrace .inux\lib/fdt\fdt_next_tag+0xD0 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | add w5,w5,#0x3 ; w5,w5,#3 140| | return tag; | | mov w0,w6 | | return FDT_END; /* premature end */ | | 139| | *nextoffset = FDT_TAGALIGN(offset); | | and w5,w5,#0xFFFFFFFC ; w5,w5,#4294967292 | | str w5,[x8] 141| | } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -006858| | NSX:FFFFFFC000324588 ptrace .dt\_fdt_check_node_offset+0x20 | + cmp w0,#0x1 ; w0,#1 | | b.ne 0xFFFFFFC0003245A0 -006857| | NSX:FFFFFFC000324590 ptrace .dt\_fdt_check_node_offset+0x28 | | 149| | return offset; | | ldr w0,[x29,#0x1C] ; w0,[x29,#28] 150| | } | | ldp x29,x30,[SP],#0x20 ; x29,x30,[SP],#32 | | ret -006847| | NSX:FFFFFFC00085A934 ptrace .linux\fdt_ro\fdt_get_name+0x54 | + tbnz x0,#0x1F,0xFFFFFFC00085A90C; x0,#31,fail -006846| | NSX:FFFFFFC00085A938 ptrace .linux\fdt_ro\fdt_get_name+0x58 | | ... | | | | int _fdt_check_node_offset(const void *fdt, int offset); | | int _fdt_check_prop_offset(const void *fdt, int offset); | | const char *_fdt_find_string(const char *strtab, int tabsize, const char *s); | | int _fdt_node_end_offset(void *fdt, int nodeoffset); | | | | static inline const void *_fdt_offset_ptr(const void *fdt, int offset) | | { 72| | return (const char *)fdt + fdt_off_dt_struct(fdt) + offset; | | sxtw x0,x22 | | add x0,x0,w19 | | add x0,x21,x0 217| | *len = strlen(nh->name); | | add x19,x0,#0x4 ; x19,x0,#4 | | goto fail; | | 216| | if (len) | | cbz x20,0xFFFFFFC00085A958 -006845| | NSX:FFFFFFC00085A958 ptrace .linux\fdt_ro\fdt_get_name+0x78 | + 219| | return nh->name; | | mov x0,x19 225| | } | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x30 ; x29,x30,[SP],#48 | | ret -006835| | NSX:FFFFFFC000CA1550 ptrace .ux\of/fdt\of_scan_flat_dt+0x6C 640| + if (*pathp == '/') | | ldrb w1,[x0] | | 639| | pathp = fdt_get_name(blob, offset, NULL); | | mov x21,x0 640| | if (*pathp == '/') | | cmp w1,#0x2F ; w1,#47 | | b.ne 0xFFFFFFC000CA156C -006834| | NSX:FFFFFFC000CA156C ptrace .ux\of/fdt\of_scan_flat_dt+0x88 | + pathp = kbasename(pathp); 642| | rc = it(offset, pathp, depth, data); | | ldr w2,[x29,#0x4C] ; w2,[x29,#76] | | mov x1,x21 | | mov x3,x23 | | sxtw x0,x19 | | blr x24 -006824| | NSX:FFFFFFC000CA15F8 ptrace .of/fdt\early_init_dt_scan_root | + early_param("earlycon", setup_of_earlycon); | | #endif | | | | /** | | * early_init_dt_scan_root - fetch the top level address and size cells | | */ | | int __init early_init_dt_scan_root(unsigned long node, const char *uname, | | int depth, void *data) 862| | { | | const __be32 *prop; | | 865| | if (depth != 0) | | cbnz w2,0xFFFFFFC000CA1678 -006823| | NSX:FFFFFFC000CA15FC ptrace .dt\early_init_dt_scan_root+0x4 | | early_param("earlycon", setup_of_earlycon); | | #endif | | | | /** | | * early_init_dt_scan_root - fetch the top level address and size cells | | */ | | int __init early_init_dt_scan_root(unsigned long node, const char *uname, | | int depth, void *data) 862| | { | | stp x29,x30,[SP,#-0x20]!; x29,x30,[SP,#-32]! | | 868| | dt_root_size_cells = OF_ROOT_NODE_SIZE_CELLS_DEFAULT; | | adrp x3,0xFFFFFFC000CBF000 | | 871| | prop = of_get_flat_dt_prop(node, "#size-cells", NULL); | | adrp x1,0xFFFFFFC000B79000 | | 868| | dt_root_size_cells = OF_ROOT_NODE_SIZE_CELLS_DEFAULT; | | add x5,x3,#0x59C ; x5,x3,#1436 | | early_param("earlycon", setup_of_earlycon); | | #endif | | | | /** | | * early_init_dt_scan_root - fetch the top level address and size cells | | */ | | int __init early_init_dt_scan_root(unsigned long node, const char *uname, | | int depth, void *data) 862| | { | | mov x29,SP | | 868| | dt_root_size_cells = OF_ROOT_NODE_SIZE_CELLS_DEFAULT; | | mov w4,#0x1 ; w4,#1 | | 871| | prop = of_get_flat_dt_prop(node, "#size-cells", NULL); | | early_param("earlycon", setup_of_earlycon); | | #endif | | | | /** | | * early_init_dt_scan_root - fetch the top level address and size cells | | */ | | int __init early_init_dt_scan_root(unsigned long node, const char *uname, | | int depth, void *data) 862| | { | | mov x2,#0x0 ; x2,#0 | | add x1,x1,#0x2C8 ; x1,x1,#712 | | early_param("earlycon", setup_of_earlycon); | | #endif | | | | /** | | * early_init_dt_scan_root - fetch the top level address and size cells | | */ | | int __init early_init_dt_scan_root(unsigned long node, const char *uname, | | int depth, void *data) 862| | { | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | -> interrupt -006821| | NSX:FFFFFFC000CA1620 cancel .t\early_init_dt_scan_root+0x28 -006796| | HX:0000004000868400 ptrace | | b 0x4000867800 -006795| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -006794| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -006793| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -006792| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -006791| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -006790| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -006780| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -006779| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -006769| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -006768| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -006767| | HX:00000040008666D8 ptrace | | ret -006757| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -006756| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -006755| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -006745| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -006735| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -006734| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -006724| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -006723| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -006722| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -006721| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -006720| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -006719| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -006709| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -006701| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -006691| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -006690| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -006689| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -006688| | HX:0000004000866CA8 ptrace | | ret -006678| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -006677| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -006676| | HX:0000004000866D30 ptrace | | ret -006666| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -006656| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -006638| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -006628| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -006627| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -006626| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -006616| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006615| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006614| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006613| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006612| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006611| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006610| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -006600| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -006590| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -006589| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -006588| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -006578| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -006568| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -006567| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -006566| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -006556| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -006522| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -006521| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -006520| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -006510| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006509| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006508| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006507| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006506| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006505| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006495| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006494| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006493| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006492| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006482| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006481| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006480| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006479| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006478| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006477| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006467| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006466| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006465| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006464| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006454| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006453| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006452| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006451| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006450| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006449| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006439| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006438| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006437| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006436| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006426| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006425| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006424| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006423| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006422| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006421| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -006411| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006410| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006409| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006408| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -006398| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -006388| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -006387| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -006386| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -006385| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -006384| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -006374| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -006364| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -006363| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -006362| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -006352| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006351| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006350| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006349| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006348| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006347| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006346| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006345| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006344| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -006334| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -006333| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -006332| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -006322| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -006321| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -006320| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -006319| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -006318| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -006317| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -006307| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006306| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006305| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006304| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006303| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006302| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006301| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -006291| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -006290| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -006280| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006279| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006278| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006277| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006276| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006275| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006274| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006273| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006272| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006271| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006270| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006269| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -006259| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006258| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006257| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006256| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006255| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006254| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006253| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006252| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006251| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006250| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006249| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006248| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006247| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006246| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006245| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006244| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -006234| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -006233| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -006223| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006222| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006221| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006220| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006219| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006218| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006217| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -006207| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -006173| | NSX:FFFFFFC0000A2850 unknown .u\kvm_handle_guest_abort+0x2C0 -006172| | NSX:FFFFFFC0000A2850 unknown .u\kvm_handle_guest_abort+0x2C0 -006171| | NSX:FFFFFFC0000A2850 unknown .u\kvm_handle_guest_abort+0x2C0 -006170| | NSX:FFFFFFC0000A2850 unknown .u\kvm_handle_guest_abort+0x2C0 -006169| | NSX:FFFFFFC0000A2850 unknown .u\kvm_handle_guest_abort+0x2C0 -006159| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006158| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006157| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006156| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006155| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006154| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006153| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -006143| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006142| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006141| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006140| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006139| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006138| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006137| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006136| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006135| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006134| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006133| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006132| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006131| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -006121| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006120| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006119| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006118| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006117| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006116| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006115| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006114| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006113| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006112| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006111| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006110| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006109| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006108| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006107| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006106| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006105| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006104| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006103| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006102| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006101| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -006091| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -006090| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -006080| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -006079| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -006078| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -006068| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006067| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006066| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006065| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006064| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006063| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006062| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006061| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006060| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006059| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -006049| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -006048| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -006047| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -006037| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -006036| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -006035| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -006034| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -006033| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -006023| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -006022| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -006021| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -006020| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -006019| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -006018| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -006008| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006007| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006006| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006005| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006004| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006003| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006002| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -006001| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -005991| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005990| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005989| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005988| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005987| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005986| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005985| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005984| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005983| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005982| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005981| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005980| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -005970| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -005969| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -005968| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -005967| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -005966| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -005956| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -005955| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -005954| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -005953| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -005943| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -005942| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -005932| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005931| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005930| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005929| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005928| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005927| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005926| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -005916| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005915| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005914| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005913| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005912| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005911| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005910| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -005900| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005899| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005898| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005897| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005896| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005895| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005894| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005893| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005892| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -005882| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -005872| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -005871| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -005870| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -005869| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -005868| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -005858| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -005824| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005823| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005822| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005821| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005820| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005819| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005818| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -005808| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -005798| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005797| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005796| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005795| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005794| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005793| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005792| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -005782| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005781| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005780| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005779| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005778| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005777| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005776| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005775| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005774| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005773| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005772| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005771| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005770| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -005760| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -005750| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -005749| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -005739| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -005738| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -005737| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -005736| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -005735| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -005725| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -005715| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -005714| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -005713| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -005712| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -005711| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -005701| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -005700| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -005699| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -005689| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005688| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005687| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005686| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005685| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005684| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005683| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005682| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005681| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005680| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005679| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005678| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005677| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005676| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005675| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005674| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005673| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005672| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005671| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005670| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005669| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005668| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005667| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005666| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005665| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005664| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005663| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005662| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005661| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005660| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005659| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005658| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005657| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005656| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005655| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005654| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005653| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005652| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005651| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005650| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005649| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005648| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005647| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005646| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005645| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005644| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005643| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005642| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005641| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005640| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005639| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005638| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005637| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005636| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005635| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005634| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005633| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005632| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005631| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005630| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005629| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005628| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005627| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005626| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005625| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005624| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005623| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005622| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005621| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005620| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005619| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005618| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005617| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005616| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005615| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005614| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005613| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005612| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005611| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005610| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005609| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005608| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005607| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005606| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005605| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005604| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005603| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005602| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005601| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005600| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005599| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005598| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005597| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005596| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005595| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005594| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005593| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005592| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005591| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005590| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005589| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005588| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005587| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -005577| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -005567| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -005533| | NSX:FFFFFFC0000A1B20 unknown .vmlinux\kvm/mmu\stage2_set_pte -005532| | NSX:FFFFFFC0000A1B20 unknown .vmlinux\kvm/mmu\stage2_set_pte -005531| | NSX:FFFFFFC0000A1B20 unknown .vmlinux\kvm/mmu\stage2_set_pte -005521| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005520| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005519| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005518| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005517| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005516| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005515| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005514| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -005504| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -005503| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -005502| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -005501| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -005491| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005490| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005489| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005488| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005487| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005486| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005485| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005484| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -005474| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -005464| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -005463| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -005453| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -005452| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -005451| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -005450| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -005449| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -005439| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -005429| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005428| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005427| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005426| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005425| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005424| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005423| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005422| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005421| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -005411| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -005401| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -005400| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -005390| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -005389| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -005388| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -005387| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -005377| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -005376| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -005375| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -005374| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -005373| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -005372| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -005362| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -005352| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -005351| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -005341| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -005340| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -005339| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -005338| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -005337| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -005336| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -005326| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005325| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005324| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005323| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005322| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005321| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005320| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005319| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005318| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -005308| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -005307| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -005306| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -005305| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -005304| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -005294| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005293| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005292| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005291| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005290| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005289| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005279| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005278| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005277| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005267| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005266| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005265| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005264| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005263| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005262| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005252| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005251| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005250| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005240| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005239| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005238| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005237| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005236| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005235| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005225| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005224| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005223| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005189| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005188| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005187| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005186| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005185| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005184| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -005174| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005173| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005172| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005171| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005170| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -005160| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -005150| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005149| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005148| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005147| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005146| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005145| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005144| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005143| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005142| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005141| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005140| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005139| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005138| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005137| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005136| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005135| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -005125| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -005115| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005114| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005113| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005112| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005111| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005110| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005109| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005108| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -005098| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -005088| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -005087| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -005086| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -005085| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -005075| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -005074| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -005073| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -005072| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -005071| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -005070| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -005060| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -005059| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -005058| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -005057| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -005047| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -005037| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -005027| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -005017| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -005016| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -005015| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -005014| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -005004| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -005003| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -005002| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -004992| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -004982| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -004981| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -004971| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -004970| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -004969| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -004968| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -004967| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -004966| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -004956| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004955| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004954| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004953| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004952| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004951| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004950| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -004940| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -004939| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -004938| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -004937| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -004927| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -004917| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -004916| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -004915| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -004905| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -004904| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -004903| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -004902| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -004892| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -004882| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004881| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004880| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004879| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004878| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004877| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004876| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004875| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -004865| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -004864| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -004830| | NSX:FFFFFFC000102560 unknown \\vmlinux\tree\rcu_sched_qs -004829| | NSX:FFFFFFC000102560 unknown \\vmlinux\tree\rcu_sched_qs -004819| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -004818| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -004817| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -004816| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -004815| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -004805| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -004804| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -004777| | HX:0000004000868400 ptrace | | b 0x4000867800 -004776| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -004775| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -004774| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -004773| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -004763| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -004762| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -004752| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -004751| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -004750| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -004749| | HX:0000004000866D00 ptrace | | ret -004739| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -004731| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -004721| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -004720| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -004719| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -004718| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -004717| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -004716| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -004715| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -004705| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -004704| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -004703| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -004702| | HX:0000004000866368 ptrace | | ret -004692| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -004691| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -004690| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -004689| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -004679| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -004678| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -004677| | HX:0000004000866728 ptrace | | ret -004667| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -004666| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -004656| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -004655| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -004654| | HX:0000004000866CD8 ptrace | | ret -004644| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -004643| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret | -> interrupt -004623| | NSX:FFFFFFC000CA1620 cancel .t\early_init_dt_scan_root+0x28 | -> interrupt -004603| | NSX:FFFFFFC000084A00 cancel \\vmlinux\Global\vectors+0x200 -004578| | HX:0000004000868400 ptrace | | b 0x4000867800 -004577| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -004576| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -004575| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -004574| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -004573| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -004572| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -004562| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -004561| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -004551| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -004550| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -004549| | HX:00000040008666D8 ptrace | | ret -004539| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -004538| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -004537| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -004527| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -004517| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -004516| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -004506| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -004505| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -004504| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -004503| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -004502| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -004468| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -004458| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -004450| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -004440| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -004439| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -004438| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -004437| | HX:0000004000866CA8 ptrace | | ret -004427| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -004426| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -004425| | HX:0000004000866D30 ptrace | | ret -004415| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -004405| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -004387| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -004377| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -004376| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -004375| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -004365| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004364| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004363| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004362| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004361| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004360| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004359| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -004349| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -004339| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -004338| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -004337| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -004327| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -004317| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -004316| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -004315| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -004305| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -004295| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -004294| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -004293| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -004283| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004282| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004281| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004280| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004279| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004278| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004268| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004267| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004266| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004265| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004255| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004254| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004253| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004252| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004251| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004250| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004240| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004239| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004238| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004237| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004227| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004226| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004225| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004224| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004223| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004222| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004212| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004211| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004210| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004209| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004199| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004198| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004197| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004196| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004195| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004194| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -004184| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004183| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004182| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004181| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -004171| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -004161| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -004160| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -004159| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -004158| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -004157| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -004147| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -004137| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -004103| | NSX:FFFFFFC0000A8AE4 unknown .ic\kvm_vgic_sync_hwstate+0x1DC -004102| | NSX:FFFFFFC0000A8AE4 unknown .ic\kvm_vgic_sync_hwstate+0x1DC -004092| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004091| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004090| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004089| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004088| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004087| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004086| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004085| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004084| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -004074| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -004073| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -004072| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -004062| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -004061| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -004060| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -004059| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -004058| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -004057| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -004047| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004046| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004045| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004044| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004043| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004042| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004041| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -004031| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -004030| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -004020| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004019| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004018| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004017| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004016| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004015| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004014| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004013| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004012| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004011| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -004001| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -004000| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003999| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003998| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003997| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003996| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003995| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003994| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003993| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003992| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003991| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003990| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003989| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003988| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003987| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003986| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -003976| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -003975| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -003965| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003964| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003963| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003962| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003961| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003960| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003959| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -003949| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -003948| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -003947| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -003946| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -003945| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -003944| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -003934| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003933| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003932| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003931| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003930| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003929| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003928| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -003918| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003917| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003916| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003915| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003914| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003913| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003912| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003911| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003910| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003909| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003908| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003907| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003906| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -003896| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003895| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003894| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003893| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003892| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003891| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003890| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003889| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003888| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003887| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003886| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003885| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003884| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003883| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003882| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003881| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003880| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003879| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003878| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003877| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003876| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -003866| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -003865| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -003855| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -003854| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -003853| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -003843| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003842| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003841| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003840| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003839| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003838| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003837| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003836| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003835| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003834| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -003824| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -003823| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -003822| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -003812| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -003778| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -003777| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -003776| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -003775| | NSX:FFFFFFC00016DDF0 unknown .inux\gup\follow_page_mask+0x68 -003765| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -003764| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -003763| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -003762| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -003761| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -003760| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -003750| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003749| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003748| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003747| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003746| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003745| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003744| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003743| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -003733| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003732| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003731| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003730| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003729| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003728| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003727| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003726| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003725| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003724| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003723| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -003713| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -003712| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -003711| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -003710| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -003709| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -003699| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -003698| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -003697| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -003696| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -003686| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -003685| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -003675| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003674| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003673| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003672| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003671| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003670| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003669| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -003659| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003658| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003657| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003656| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003655| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003654| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003653| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -003643| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003642| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003641| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003640| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003639| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003638| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003637| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003636| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003635| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -003625| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -003615| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003614| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003613| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003612| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003611| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003610| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003609| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003608| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003607| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -003597| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003596| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003595| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003594| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003593| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003592| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003591| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003590| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003589| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003588| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003587| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003586| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003585| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003584| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003583| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -003573| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -003572| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -003571| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -003570| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -003569| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -003568| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -003558| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -003548| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003547| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003546| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003545| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003544| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003543| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003542| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -003532| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -003522| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003521| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003520| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003519| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003518| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003517| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003516| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -003506| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003505| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003504| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003503| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003502| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003501| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003500| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003499| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003498| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003497| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003496| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003495| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003494| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -003484| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -003474| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -003440| | NSX:FFFFFFC00009A738 unknown ._main\kvm_is_reserved_pfn+0x18 -003430| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -003429| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -003428| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -003427| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -003426| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -003416| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -003406| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -003405| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -003404| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -003403| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -003402| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -003392| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -003391| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -003390| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -003380| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003379| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003378| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003377| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003376| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003375| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003374| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003373| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003372| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003371| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003370| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003369| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003368| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003367| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003366| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003365| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003364| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003363| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003362| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003361| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003360| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003359| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003358| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003357| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003356| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003355| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003354| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003353| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003352| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003351| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003350| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003349| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003348| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003347| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003346| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003345| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003344| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003343| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003342| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003341| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003340| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003339| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003338| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003337| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003336| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003335| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003334| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003333| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003332| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003331| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003330| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003329| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003328| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003327| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003326| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003325| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003324| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003323| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003322| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003321| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003320| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003319| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003318| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003317| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003316| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003315| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003314| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003313| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003312| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003311| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003310| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003309| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003308| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003307| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003306| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003305| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003304| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003303| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003302| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003301| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003300| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003299| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003298| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003297| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003296| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003295| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003294| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003293| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003292| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003291| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003290| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003289| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003288| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003287| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003286| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003285| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003284| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003283| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003282| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003281| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003280| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003279| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003278| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -003268| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -003258| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -003257| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -003256| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -003255| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -003245| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003244| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003243| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003242| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003241| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003240| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003239| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003238| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -003228| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -003227| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -003226| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -003225| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -003215| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003214| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003213| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003212| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003211| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003210| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003209| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003208| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -003198| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -003188| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -003187| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -003177| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -003176| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -003175| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -003141| | NSX:FFFFFFC000157070 unknown .x\swap\mark_page_accessed+0x58 -003140| | NSX:FFFFFFC000157070 unknown .x\swap\mark_page_accessed+0x58 -003130| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -003120| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003119| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003118| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003117| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003116| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003115| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003114| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003113| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003112| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -003102| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -003092| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -003091| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -003081| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -003080| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -003079| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -003078| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -003068| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -003067| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -003066| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -003065| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -003064| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -003063| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -003053| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -003043| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -003042| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -003032| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -003031| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -003030| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -003029| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -003028| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -003027| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -003017| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003016| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003015| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003014| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003013| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003012| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003011| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003010| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -003009| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -002999| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -002998| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -002997| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -002996| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -002995| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -002985| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002984| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002983| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002982| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002981| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002980| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002970| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002969| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002968| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002958| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002957| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002956| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002955| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002954| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002953| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002943| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002942| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002941| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002931| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002930| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002929| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002928| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002927| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002926| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002916| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002915| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002914| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002904| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002903| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002902| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002901| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002900| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002899| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002889| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002888| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002887| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002886| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002885| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -002875| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -002865| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002864| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002863| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002862| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002861| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002860| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002859| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002858| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002857| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002856| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002855| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002854| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002853| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002852| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002851| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002850| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -002840| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -002806| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002805| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002804| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002803| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002802| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002801| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002800| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002799| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -002789| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -002779| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -002778| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -002777| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -002776| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -002766| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -002765| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -002764| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -002763| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -002762| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -002761| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -002751| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -002750| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -002749| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -002748| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -002738| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -002728| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -002718| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -002708| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -002707| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -002706| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -002705| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -002695| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -002694| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -002693| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -002683| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -002673| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -002672| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -002662| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -002661| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -002660| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -002659| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -002658| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -002657| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -002647| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002646| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002645| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002644| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002643| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002642| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002641| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -002631| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -002630| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -002629| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -002628| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -002618| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -002608| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -002607| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -002606| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -002596| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -002595| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -002594| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -002593| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -002583| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -002573| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002572| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002571| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002570| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002569| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002568| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002567| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002566| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -002556| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -002555| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -002554| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -002553| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -002543| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -002542| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -002541| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -002540| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -002539| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -002529| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -002528| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -002501| | HX:0000004000868400 ptrace | | b 0x4000867800 -002500| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -002499| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -002498| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -002497| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -002487| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -002486| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -002476| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -002475| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -002474| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -002473| | HX:0000004000866D00 ptrace | | ret -002463| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -002455| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -002445| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -002444| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -002443| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -002442| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -002441| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -002440| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -002439| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -002429| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -002428| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -002427| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -002426| | HX:0000004000866368 ptrace | | ret -002416| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -002382| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -002381| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -002380| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -002370| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -002369| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -002368| | HX:0000004000866728 ptrace | | ret -002358| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -002357| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -002347| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -002346| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -002345| | HX:0000004000866CD8 ptrace | | ret -002335| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -002334| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] | | ldp x12,x13,[x1,#0x60] ; x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -002316| | NSX:FFFFFFC000084A00 ptrace \\vmlinux\Global\vectors+0x200 | + 253| | ventry el1_sync // Synchronous EL1h | | b 0xFFFFFFC0000852C0 ; el1_sync | -> interrupt -002313| | NSX:FFFFFFC0000852C0 cancel \\vmlinux\Global\el1_sync -002288| | HX:0000004000868400 ptrace | | b 0x4000867800 -002287| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -002286| | HX:0000004000867858 ptrace | + cmp x2,#0x7 ; x2,#7 | | b.eq 0x4000866E60 -002285| | HX:0000004000867860 ptrace | | cmp x2,#0x24 ; x2,#36 | | mov x0,#0x20 ; x0,#32 | | ccmp x2,x0,#0x4,ne ; x2,x0,#4,ne | | b.ne 0x40008678B0 -002284| | HX:0000004000867870 ptrace | | and x2,x1,#0x3C ; x2,x1,#60 | | cmp x2,#0x0C ; x2,#12 | | b.ne 0x40008678B0 -002283| | HX:00000040008678B0 ptrace | + mrs x3,#0x3,#0x4,c6,c0,#0x4; x3, HPFAR_EL2 | | mrs x2,#0x3,#0x4,c6,c0,#0x0; x2, FAR_EL2 | | mrs x0,#0x3,#0x4,c13,c0,#0x2; x0, TPIDR_EL2 | | str w1,[x0,#0x5A0] ; w1,[x0,#1440] | | str x2,[x0,#0x5A8] ; x2,[x0,#1448] | | str x3,[x0,#0x5B0] ; x3,[x0,#1456] | | mov x1,#0x1 ; x1,#1 | | b 0x4000866DF0 -002282| | HX:0000004000866DF0 ptrace | + add x2,x0,#0x150 ; x2,x0,#336 | | stp x4,x5,[x2,#0x20] ; x4,x5,[x2,#32] | | stp x6,x7,[x2,#0x30] ; x6,x7,[x2,#48] | | stp x8,x9,[x2,#0x40] ; x8,x9,[x2,#64] | | stp x10,x11,[x2,#0x50] ; x10,x11,[x2,#80] | | stp x12,x13,[x2,#0x60] ; x12,x13,[x2,#96] | | stp x14,x15,[x2,#0x70] ; x14,x15,[x2,#112] | | stp x16,x17,[x2,#0x80] ; x16,x17,[x2,#128] | | str x18,[x2,#0x90] ; x18,[x2,#144] | | ldp x6,x7,[SP],#0x10 ; x6,x7,[SP],#16 | | ldp x4,x5,[SP],#0x10 ; x4,x5,[SP],#16 | | stp x4,x5,[x2] | | stp x6,x7,[x2,#0x10] ; x6,x7,[x2,#16] | | stp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | stp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | stp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | stp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | stp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | stp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | ldp x0,x2,[SP],#0x10 ; x0,x2,[SP],#16 | | ldp x19,x20,[x2,#0x98] ; x19,x20,[x2,#152] | | ldp x21,x22,[x2,#0xA8] ; x21,x22,[x2,#168] | | ldp x23,x24,[x2,#0xB8] ; x23,x24,[x2,#184] | | ldp x25,x26,[x2,#0xC8] ; x25,x26,[x2,#200] | | ldp x27,x28,[x2,#0xD8] ; x27,x28,[x2,#216] | | ldp x29,x30,[x2,#0xE8] ; x29,x30,[x2,#232] | | mov x0,x1 | | ret -002272| | HX:0000004000866FA4 ptrace | + mov x23,x0 | | mrs x22,#0x3,#0x4,c1,c1,#0x2; x22, CPTR_EL2 | | mov x0,x21 | | bl 0x40008664B0 -002271| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -002261| | HX:0000004000866FB4 ptrace | + mov x0,x19 | | bl 0x4000866680 -002260| | HX:0000004000866680 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x40008666D8; x1,#31,0x40008666D8 -002259| | HX:00000040008666D8 ptrace | | ret -002249| | HX:0000004000866FBC ptrace | + mov x0,x19 | | bl 0x4000866430 -002248| | HX:0000004000866430 ptrace | + ldr x1,[x0] | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | ldrb w1,[x1,#0xBE8] ; w1,[x1,#3048] | | cbz w1,0x4000866454 -002247| | HX:0000004000866440 ptrace | | mrs x1,#0x3,#0x3,c14,c3,#0x1; x1, CNTV_CTL_EL0 | | add x2,x0,#0xD40 ; x2,x0,#3392 | | str w1,[x0,#0xD40] ; w1,[x0,#3392] | | mrs x0,#0x3,#0x3,c14,c3,#0x2; x0, CNTV_CVAL_EL0 | | str x0,[x2,#0x8] ; x0,[x2,#8] | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x3,c14,c3,#0x1,x1; CNTV_CTL_EL0,x1 | | mrs x0,#0x3,#0x4,c14,c1,#0x0; x0, CNTHCTL_EL2 | | orr x0,x0,#0x3 ; x0,x0,#3 | | msr #0x3,#0x4,c14,c1,#0x0,x0; CNTHCTL_EL2,x0 | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ret -002237| | HX:0000004000866FC4 ptrace | + adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0x0 ; x1,x1,#0 | | add x0,x0,#0x158 ; x0,x0,#344 | | mov x1,x0 | | mov x0,x19 | | blr x1 -002227| | HX:0000004000866158 ptrace | + dsb st | | mrs x1,#0x3,#0x4,c12,c11,#0x7; x1,#0x3,#0x4,c12,c11,#0x7 | | add x0,x0,#0xC08 ; x0,x0,#3080 | | str w1,[x0,#0x4] ; w1,[x0,#4] | | mrs x1,#0x3,#0x4,c12,c11,#0x2; x1,#0x3,#0x4,c12,c11,#0x2 | | str w1,[x0,#0x0C] ; w1,[x0,#12] | | mrs x1,#0x3,#0x4,c12,c11,#0x3; x1,#0x3,#0x4,c12,c11,#0x3 | | str w1,[x0,#0x10] ; w1,[x0,#16] | | mrs x1,#0x3,#0x4,c12,c11,#0x5; x1,#0x3,#0x4,c12,c11,#0x5 | | mov x2,#0x0 ; x2,#0 | | str w1,[x0,#0x14] ; w1,[x0,#20] | | msr #0x3,#0x4,c12,c11,#0x0,x2; #0x3,#0x4,c12,c11,#0x0,x2 | | mrs x1,#0x3,#0x4,c12,c11,#0x1; x1,#0x3,#0x4,c12,c11,#0x1 | | and w2,w1,#0x0F ; w2,w1,#15 | | lsr w1,w1,#0x1D ; w1,w1,#29 | | sub w2,w2,#0x1 ; w2,w2,#1 | | add w1,w1,#0x1 ; w1,w1,#1 | | cmp w2,#0x0E ; w2,#14 | | b.hi 0x4000866234 -002226| | HX:00000040008661A4 ptrace | | adrp x3,0x4000875000 | | add x3,x3,#0xF0 ; x3,x3,#240 | | ldrb w2,[x3,w2,uxtw] | | adr x3,0x40008661BC | | add x2,x3,w2,sxtb #0x2 ; x2,x3,w2,sxtb #2 | | br x2 -002216| | HX:000000400086621C ptrace | + mrs x2,#0x3,#0x4,c12,c12,#0x3; x2,#0x3,#0x4,c12,c12,#0x3 | | str x2,[x0,#0x98] ; x2,[x0,#152] | | mrs x2,#0x3,#0x4,c12,c12,#0x2; x2,#0x3,#0x4,c12,c12,#0x2 | | str x2,[x0,#0xA0] ; x2,[x0,#160] | | mrs x2,#0x3,#0x4,c12,c12,#0x1; x2,#0x3,#0x4,c12,c12,#0x1 | | str x2,[x0,#0xA8] ; x2,[x0,#168] | | mrs x2,#0x3,#0x4,c12,c12,#0x0; x2,#0x3,#0x4,c12,c12,#0x0 | | cmp w1,#0x6 ; w1,#6 | | str x2,[x0,#0xB0] ; x2,[x0,#176] | | b.eq 0x40008662B0 -002215| | HX:0000004000866244 ptrace | | cmp w1,#0x7 ; w1,#7 | | b.eq 0x40008662A0 -002214| | HX:000000400086624C ptrace | | mrs x2,#0x3,#0x4,c12,c8,#0x0; x2, ICH_APR0_EL2 | | cmp w1,#0x6 ; w1,#6 | | str w2,[x0,#0x18] ; w2,[x0,#24] | | b.eq 0x4000866274 -002213| | HX:000000400086625C ptrace | | cmp w1,#0x7 ; w1,#7 | | b.ne 0x400086627C -002212| | HX:000000400086627C ptrace | + mrs x1,#0x3,#0x4,c12,c9,#0x0; x1,#0x3,#0x4,c12,c9,#0x0 | | str w1,[x0,#0x28] ; w1,[x0,#40] | | mrs x0,#0x3,#0x4,c12,c9,#0x5; x0, ICC_SRE_EL2 | | orr x0,x0,#0x8 ; x0,x0,#8 | | msr #0x3,#0x4,c12,c9,#0x5,x0; ICC_SRE_EL2,x0 | | isb sy -002211| | HX:0000004000866294 ptrace | | mov x0,#0x1 ; x0,#1 | | msr #0x3,#0x0,c12,c12,#0x5,x0; ICC_SRE_EL1,x0 | | ret -002201| | HX:0000004000866FE0 ptrace | + mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | and x0,x0,#-0x19 ; x0,x0,#-25 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x80000000 ; x0,#2147483648 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x1,#0x0 ; x1,#0 | | msr #0x3,#0x4,c1,c1,#0x3,x1; HSTR_EL2,x1 | | mrs x0,#0x3,#0x4,c1,c1,#0x1; x0,#0x3,#0x4,c1,c1,#0x1 | | and x0,x0,#0x1F ; x0,x0,#31 | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | mov x0,#0x33FF ; x0,#13311 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | msr #0x3,#0x4,c2,c1,#0x0,x1; VTTBR_EL2,x1 | | mov x0,x20 | | bl 0x4000866598 -002193| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -002183| | HX:000000400086701C ptrace | | tbnz x22,#0x0A,0x4000867030; x22,#10,0x4000867030 -002182| | HX:0000004000867030 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866C80 -002181| | HX:0000004000866C80 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CA8; x0,#0,0x4000866CA8 -002180| | HX:0000004000866CA8 ptrace | | ret -002170| | HX:0000004000867044 ptrace | + mov x0,x19 | | bl 0x4000866D28 -002169| | HX:0000004000866D28 ptrace | + ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | tbnz x1,#0x0,0x4000866D38; x1,#0,0x4000866D38 -002168| | HX:0000004000866D30 ptrace | | ret -002158| | HX:000000400086704C ptrace | + mov w0,w23 | | ldr x23,[SP,#0x30] ; x23,[SP,#48] | | ldp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | ldp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | ldp x29,x30,[SP],#0x40 ; x29,x30,[SP],#64 | | ret -002148| | HX:0000004000867850 ptrace | + ldp x30,xZR,[SP],#0x10 ; x30,xZR,[SP],#16 | | eret -002130| | NSX:FFFFFFC0000A4324 unknown .mlinux\Global\kvm_call_hyp+0x4 -002120| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -002119| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -002118| | NSX:FFFFFFC00009FC2C unknown .\kvm_arch_vcpu_ioctl_run+0x1C4 -002108| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002107| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002106| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002105| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002104| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002103| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002102| | NSX:FFFFFFC00009FC48 unknown .\kvm_arch_vcpu_ioctl_run+0x1E0 -002092| | NSX:FFFFFFC0000AD474 unknown .er\kvm_timer_sync_hwstate+0x14 -002082| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -002081| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -002080| | NSX:FFFFFFC00009FC70 unknown .\kvm_arch_vcpu_ioctl_run+0x208 -002070| | NSX:FFFFFFC0000ABB28 unknown .3\vgic_v3_get_interrupt_status -002060| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -002059| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -002058| | NSX:FFFFFFC0000A896C unknown .gic\kvm_vgic_sync_hwstate+0x64 -002048| | NSX:FFFFFFC0000ABB20 unknown .nux\vgic-v3\vgic_v3_clear_eisr -002014| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -002013| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -002012| | NSX:FFFFFFC0000A89A8 unknown .gic\kvm_vgic_sync_hwstate+0xA0 -002002| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002001| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -002000| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001999| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001998| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001997| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001987| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001986| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001985| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001984| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001974| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001973| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001972| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001971| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001970| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001969| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001959| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001958| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001957| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001956| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001946| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001945| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001944| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001943| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001942| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001941| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001931| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001930| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001929| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001928| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001918| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001917| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001916| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001915| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001914| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001913| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -001903| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001902| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001901| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001900| | NSX:FFFFFFC0000A89FC unknown .gic\kvm_vgic_sync_hwstate+0xF4 -001890| | NSX:FFFFFFC0000ABB10 unknown .inux\vgic-v3\vgic_v3_get_elrsr -001880| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -001879| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -001878| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -001877| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -001876| | NSX:FFFFFFC0000A8AC8 unknown .ic\kvm_vgic_sync_hwstate+0x1C0 -001866| | NSX:FFFFFFC000335998 unknown .nd_bit\find_next_zero_bit+0x28 -001856| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -001855| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -001854| | NSX:FFFFFFC0000A8AE0 unknown .ic\kvm_vgic_sync_hwstate+0x1D8 -001844| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001843| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001842| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001841| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001840| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001839| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001838| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001837| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001836| | NSX:FFFFFFC00009FC78 unknown .\kvm_arch_vcpu_ioctl_run+0x210 -001826| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -001825| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -001824| | NSX:FFFFFFC0000A2590 unknown .kvm/mmu\kvm_handle_guest_abort -001814| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -001813| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -001812| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -001811| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -001810| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -001809| | NSX:FFFFFFC0000A2610 unknown .mu\kvm_handle_guest_abort+0x80 -001799| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001798| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001797| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001796| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001795| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001794| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001793| | NSX:FFFFFFC0000A263C unknown .mu\kvm_handle_guest_abort+0xAC -001783| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -001782| | NSX:FFFFFFC00009CC64 unknown .n\gfn_to_hva_memslot_prot+0x1C -001772| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001771| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001770| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001769| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001768| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001767| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001766| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001765| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001764| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001763| | NSX:FFFFFFC0000A264C unknown .mu\kvm_handle_guest_abort+0xBC -001753| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001752| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001751| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001750| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001749| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001748| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001747| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001746| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001745| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001744| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001743| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001742| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001741| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001740| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001739| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001738| | NSX:FFFFFFC0000A26C8 unknown .u\kvm_handle_guest_abort+0x138 -001728| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -001727| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -001717| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001716| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001715| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001714| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001713| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001712| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001711| | NSX:FFFFFFC0000A26D8 unknown .u\kvm_handle_guest_abort+0x148 -001701| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -001700| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -001699| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -001698| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -001697| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -001696| | NSX:FFFFFFC0000A27D4 unknown .u\kvm_handle_guest_abort+0x244 -001686| | NSX:FFFFFFC00009AAB4 unknown .\kvm_main\gfn_to_pfn_prot+0x14 -001652| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -001651| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -001650| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -001649| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -001648| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -001647| | NSX:FFFFFFC00009A768 unknown .\kvm_main\__gfn_to_pfn_memslot -001637| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001636| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001635| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001634| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001633| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001632| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001631| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001630| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001629| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001628| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001627| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001626| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001625| | NSX:FFFFFFC00009A79C unknown .main\__gfn_to_pfn_memslot+0x34 -001615| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001614| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001613| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001612| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001611| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001610| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001609| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001608| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001607| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001606| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001605| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001604| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001603| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001602| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001601| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001600| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001599| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001598| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001597| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001596| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001595| | NSX:FFFFFFC00016D7E8 unknown .__get_user_pages_unlocked+0x50 -001585| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -001584| | NSX:FFFFFFC000177104 unknown \\vmlinux\mm/mmap\find_vma+0x1C -001574| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -001573| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -001572| | NSX:FFFFFFC000179A0C unknown .x\mm/mmap\find_extend_vma+0x1C -001562| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001561| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001560| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001559| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001558| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001557| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001556| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001555| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001554| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001553| | NSX:FFFFFFC00016E198 unknown .nux\gup\__get_user_pages+0x160 -001543| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -001542| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -001541| | NSX:FFFFFFC00016E0BC unknown .inux\gup\__get_user_pages+0x84 -001531| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -001530| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -001529| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -001528| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -001527| | NSX:FFFFFFC00016DDC8 unknown .inux\gup\follow_page_mask+0x40 -001517| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -001516| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -001515| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -001514| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -001513| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -001512| | NSX:FFFFFFC00016DE2C unknown .inux\gup\follow_page_mask+0xA4 -001502| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001501| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001500| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001499| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001498| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001497| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001496| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001495| | NSX:FFFFFFC00016DE70 unknown .inux\gup\follow_page_mask+0xE8 -001485| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001484| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001483| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001482| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001481| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001480| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001479| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001478| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001477| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001476| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001475| | NSX:FFFFFFC00016DEEC unknown .nux\gup\follow_page_mask+0x164 -001465| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -001464| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -001463| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -001462| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -001461| | NSX:FFFFFFC0001A0BD8 unknown .ry\follow_trans_huge_pmd+0x158 -001451| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -001450| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -001449| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -001448| | NSX:FFFFFFC00016E010 unknown .nux\gup\follow_page_mask+0x288 -001438| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -001437| | NSX:FFFFFFC00016E01C unknown .nux\gup\follow_page_mask+0x294 -001427| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001426| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001425| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001424| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001423| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001422| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001421| | NSX:FFFFFFC00016E0D0 unknown .inux\gup\__get_user_pages+0x98 -001411| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001410| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001409| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001408| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001407| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001406| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001405| | NSX:FFFFFFC00016E388 unknown .nux\gup\__get_user_pages+0x350 -001395| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001394| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001393| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001392| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001391| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001390| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001389| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001388| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001387| | NSX:FFFFFFC00016D848 unknown .__get_user_pages_unlocked+0xB0 -001377| | NSX:FFFFFFC00016D930 unknown ._get_user_pages_unlocked+0x198 -001367| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001366| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001365| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001364| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001363| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001362| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001361| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001360| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001359| | NSX:FFFFFFC00009A9E4 unknown .ain\__gfn_to_pfn_memslot+0x27C -001349| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001348| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001347| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001346| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001345| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001344| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001343| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001342| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001341| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001340| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001339| | NSX:FFFFFFC00016EBC4 unknown .gup\__get_user_pages_fast+0xF4 -001305| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -001304| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -001303| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -001302| | NSX:FFFFFFC00016EDEC unknown .up\__get_user_pages_fast+0x31C -001292| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -001291| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -001290| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -001289| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -001288| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -001287| | NSX:FFFFFFC00009AA30 unknown .ain\__gfn_to_pfn_memslot+0x2C8 -001277| | NSX:FFFFFFC00009AAC8 unknown .\kvm_main\gfn_to_pfn_prot+0x28 -001267| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001266| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001265| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001264| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001263| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001262| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001261| | NSX:FFFFFFC0000A2874 unknown .u\kvm_handle_guest_abort+0x2E4 -001251| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -001241| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001240| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001239| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001238| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001237| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001236| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001235| | NSX:FFFFFFC0000A2884 unknown .u\kvm_handle_guest_abort+0x2F4 -001225| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001224| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001223| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001222| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001221| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001220| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001219| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001218| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001217| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001216| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001215| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001214| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001213| | NSX:FFFFFFC0000A28AC unknown .u\kvm_handle_guest_abort+0x31C -001203| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -001193| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -001192| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -001182| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -001181| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -001180| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -001179| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -001178| | NSX:FFFFFFC00009ACCC unknown .vm_main\kvm_set_pfn_dirty+0x14 -001168| | NSX:FFFFFFC00009AD08 unknown .vm_main\kvm_set_pfn_dirty+0x50 -001158| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -001157| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -001156| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -001155| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -001154| | NSX:FFFFFFC0000A2BF4 unknown .u\kvm_handle_guest_abort+0x664 -001144| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -001143| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -001142| | NSX:FFFFFFC000098534 unknown .\kvm_main\mark_page_dirty+0x0C -001132| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001131| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001130| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001129| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001128| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001127| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001126| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001125| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001124| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001123| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001122| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001121| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001120| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001119| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001118| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001117| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001116| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001115| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001114| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001113| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001112| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001111| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001110| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001109| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001108| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001107| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001106| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001105| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001104| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001103| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001102| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001101| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001100| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001099| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001098| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001097| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001096| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001095| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001094| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001093| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001092| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001091| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001090| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001089| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001088| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001087| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001086| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001085| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001084| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001083| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001082| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001081| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001080| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001079| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001078| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001077| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001076| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001075| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001074| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001073| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001072| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001071| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001070| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001069| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001068| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001067| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001066| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001065| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001064| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001063| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001062| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001061| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001060| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001059| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001058| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001057| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001056| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001055| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001054| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001053| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001052| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001051| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001050| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001049| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001048| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001047| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001046| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001045| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001044| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001043| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001042| | NSX:FFFFFFC0000A2C00 unknown .u\kvm_handle_guest_abort+0x670 -001008| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001007| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001006| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001005| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001004| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001003| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001002| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001001| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -001000| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -000999| | NSX:FFFFFFC000093304 ptrace .\__flush_cache_user_range+0x44 | + 1: 67| | USER(9f, ic ivau, x4 ) // invalidate I line PoU | | ic ivau, x4 68| | add x4, x4, x2 | | add x4,x4,x2 69| | cmp x4, x1 | | cmp x4,x1 70| | b.lo 1b | | b.cc 0xFFFFFFC000093304 -000998| | NSX:FFFFFFC000093314 ptrace .\__flush_cache_user_range+0x54 71| | dsb ish | | dsb ish 72| | isb | | isb sy -000997| | NSX:FFFFFFC00009331C ptrace .\__flush_cache_user_range+0x5C 73| | mov x0, #0 | | mov x0,#0x0 ; x0,#0 74| | ret | | ret -000987| | NSX:FFFFFFC0000A16A4 unknown .t_cache_guest_page.isra.3+0x84 -000977| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -000976| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -000975| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -000974| | NSX:FFFFFFC0000A298C unknown .u\kvm_handle_guest_abort+0x3FC -000964| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000963| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000962| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000961| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000960| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000959| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000958| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000957| | NSX:FFFFFFC0000A1B50 unknown .ux\kvm/mmu\stage2_set_pte+0x30 -000947| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -000946| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -000945| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -000944| | NSX:FFFFFFC0000A29A4 unknown .u\kvm_handle_guest_abort+0x414 -000934| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000933| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000932| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000931| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000930| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000929| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000928| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000927| | NSX:FFFFFFC0000A29E4 unknown .u\kvm_handle_guest_abort+0x454 -000917| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -000907| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -000906| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -000896| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -000895| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -000894| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -000893| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -000892| | NSX:FFFFFFC00009AD74 unknown .main\kvm_set_pfn_accessed+0x14 -000882| | NSX:FFFFFFC00009AD8C unknown .main\kvm_set_pfn_accessed+0x2C -000872| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000871| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000870| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000869| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000868| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000867| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000866| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000865| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000864| | NSX:FFFFFFC0000A29EC unknown .u\kvm_handle_guest_abort+0x45C -000854| | NSX:FFFFFFC000093278 ptrace .vmlinux\mm/init\pfn_valid+0x10 124| + } | | ldp x29,x30,[SP],#0x10 ; x29,x30,[SP],#16 | | ret -000844| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -000843| | NSX:FFFFFFC00009A734 unknown ._main\kvm_is_reserved_pfn+0x14 -000833| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -000832| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -000831| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -000830| | NSX:FFFFFFC00009AC0C unknown .ain\kvm_release_pfn_clean+0x24 -000820| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -000819| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -000818| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -000817| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -000816| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -000815| | NSX:FFFFFFC0000A29F4 unknown .u\kvm_handle_guest_abort+0x464 -000805| | NSX:FFFFFFC0000A275C unknown .u\kvm_handle_guest_abort+0x1CC -000795| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -000794| | NSX:FFFFFFC0000A450C unknown .x\handle_exit\handle_exit+0x5C -000784| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -000783| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -000782| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -000781| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -000780| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -000779| | NSX:FFFFFFC00009FCA4 unknown .\kvm_arch_vcpu_ioctl_run+0x23C -000769| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000768| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000767| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000766| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000765| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000764| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000763| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000762| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000761| | NSX:FFFFFFC00009FACC unknown .m\kvm_arch_vcpu_ioctl_run+0x64 -000751| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -000750| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -000749| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -000748| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -000747| | NSX:FFFFFFC0000AD40C unknown .r\kvm_timer_flush_hwstate+0x14 -000737| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000736| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000735| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000734| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000733| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000732| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000722| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000688| | NSX:FFFFFFC0000A8368 unknown .ic\kvm_vgic_map_is_active+0x30 -000687| | NSX:FFFFFFC0000A8368 unknown .ic\kvm_vgic_map_is_active+0x30 -000677| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000676| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000675| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000674| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000673| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000672| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000662| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000661| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000660| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000650| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000649| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000648| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000647| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000646| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000645| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000635| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000634| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000633| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000623| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000622| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000621| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000620| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000619| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000618| | NSX:FFFFFFC0000ABA30 unknown .vmlinux\vgic-v3\vgic_v3_get_lr -000608| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000607| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000606| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000605| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000604| | NSX:FFFFFFC0000A8390 unknown .ic\kvm_vgic_map_is_active+0x58 -000594| | NSX:FFFFFFC0000A83E0 unknown .ic\kvm_vgic_map_is_active+0xA8 -000584| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000583| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000582| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000581| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000580| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000579| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000578| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000577| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000576| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000575| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000574| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000573| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000572| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000571| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000570| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000569| | NSX:FFFFFFC0000AD44C unknown .r\kvm_timer_flush_hwstate+0x54 -000559| | NSX:FFFFFFC00032980C unknown .ix-tree\radix_tree_lookup+0x14 -000549| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000548| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000547| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000546| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000545| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000544| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000543| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000542| | NSX:FFFFFFC0000F41A4 unknown .qdesc\__irq_get_desc_lock+0x2C -000532| | NSX:FFFFFFC0000F41C8 unknown .qdesc\__irq_get_desc_lock+0x50 -000522| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -000521| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -000520| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -000519| | NSX:FFFFFFC0000F4DB8 unknown .age\irq_set_irqchip_state+0x28 -000509| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -000508| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -000507| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -000506| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -000505| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -000504| | NSX:FFFFFFC000349E18 unknown .c-v3\gic_irq_set_irqchip_state -000494| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -000493| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -000492| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -000491| | NSX:FFFFFFC00034A270 unknown .gic-v3\gic_redist_wait_for_rwp -000481| | NSX:FFFFFFC00034A28C unknown .3\gic_redist_wait_for_rwp+0x1C -000471| | NSX:FFFFFFC000349DCC unknown .ic-v3\gic_poke_irq.isra.1+0x7C -000461| | NSX:FFFFFFC000349E60 unknown .gic_irq_set_irqchip_state+0x48 -000451| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -000450| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -000449| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -000448| | NSX:FFFFFFC0000F4DE8 unknown .age\irq_set_irqchip_state+0x58 -000438| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -000437| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -000436| | NSX:FFFFFFC0000F4224 unknown .esc\__irq_put_desc_unlock+0x1C -000426| | NSX:FFFFFFC0000F4DFC unknown .age\irq_set_irqchip_state+0x6C -000416| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -000415| | NSX:FFFFFFC0000AD430 unknown .r\kvm_timer_flush_hwstate+0x38 -000405| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -000404| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -000403| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -000402| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -000401| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -000400| | NSX:FFFFFFC00009FB54 unknown .m\kvm_arch_vcpu_ioctl_run+0xEC -000390| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000389| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000388| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000387| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000386| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000385| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000384| | NSX:FFFFFFC0000A86F0 unknown .ic\kvm_vgic_flush_hwstate+0x58 -000374| | NSX:FFFFFFC0000A8728 unknown .ic\kvm_vgic_flush_hwstate+0x90 -000340| | NSX:FFFFFFC0000A8788 unknown .ic\kvm_vgic_flush_hwstate+0xF0 -000339| | NSX:FFFFFFC0000A8788 unknown .ic\kvm_vgic_flush_hwstate+0xF0 -000338| | NSX:FFFFFFC0000A8788 unknown .ic\kvm_vgic_flush_hwstate+0xF0 -000328| | NSX:FFFFFFC0000ABB70 unknown .c-v3\vgic_v3_disable_underflow -000318| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -000317| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -000316| | NSX:FFFFFFC0000A8778 unknown .ic\kvm_vgic_flush_hwstate+0xE0 -000306| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -000305| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -000304| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -000303| | NSX:FFFFFFC0000A8784 unknown .ic\kvm_vgic_flush_hwstate+0xEC -000293| | NSX:FFFFFFC0000A88E8 unknown .c\kvm_vgic_flush_hwstate+0x250 -000283| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000282| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000281| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000280| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000279| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000278| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000277| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000276| | NSX:FFFFFFC00009FB5C unknown .m\kvm_arch_vcpu_ioctl_run+0xF4 -000266| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -000265| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -000264| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -000263| | NSX:FFFFFFC00009FC00 unknown .\kvm_arch_vcpu_ioctl_run+0x198 -000253| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -000252| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -000251| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -000250| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -000249| | NSX:FFFFFFC000103414 unknown .e\rcu_note_context_switch+0x14 -000239| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -000238| | NSX:FFFFFFC00009FC14 unknown .\kvm_arch_vcpu_ioctl_run+0x1AC -000211| | HX:0000004000868400 ptrace | | b 0x4000867800 -000210| | HX:0000004000867800 ptrace | + stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | mrs x1,#0x3,#0x4,c5,c2,#0x0; x1, ESR_EL2 | | lsr x2,x1,#0x1A ; x2,x1,#26 | | cmp x2,#0x16 ; x2,#22 | | b.ne 0x4000867858 -000209| | HX:0000004000867818 ptrace | | mrs x3,#0x3,#0x4,c2,c1,#0x0; x3, VTTBR_EL2 | | cbnz x3,0x4000867858 -000208| | HX:0000004000867820 ptrace | | ldp x2,x3,[SP],#0x10 ; x2,x3,[SP],#16 | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | cbnz x0,0x4000867834 -000207| | HX:0000004000867834 ptrace | + stp x30,xZR,[SP,#-0x10]!; x30,xZR,[SP,#-16]! | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | mov x30,x0 | | mov x0,x1 | | mov x1,x2 | | mov x2,x3 | | blr x30 -000197| | HX:0000004000866EC0 ptrace | + stp x29,x30,[SP,#-0x40]!; x29,x30,[SP,#-64]! | | mov x29,SP | | stp x19,x20,[SP,#0x10] ; x19,x20,[SP,#16] | | stp x21,x22,[SP,#0x20] ; x21,x22,[SP,#32] | | and x19,x0,#0x7FFFFFFFFF; x19,x0,#549755813887 | | str x23,[SP,#0x30] ; x23,[SP,#48] | | msr #0x3,#0x4,c13,c0,#0x2,x19; TPIDR_EL2,x19 | | ldr x20,[x19,#0x9C8] ; x20,[x19,#2504] | | add x21,x19,#0x150 ; x21,x19,#336 | | and x20,x20,#0x7FFFFFFFFF; x20,x20,#549755813887 | | mov x0,x20 | | bl 0x40008664B0 -000196| | HX:00000040008664B0 ptrace | + mrs x1,#0x3,#0x4,c0,c0,#0x5; x1, VMPIDR_EL2 | | str x1,[x0,#0x368] ; x1,[x0,#872] | | mrs x1,#0x3,#0x2,c0,c0,#0x0; x1, CSSELR_EL1 | | str x1,[x0,#0x370] ; x1,[x0,#880] | | mrs x1,#0x3,#0x0,c1,c0,#0x0; x1, SCTLR_EL1 | | str x1,[x0,#0x378] ; x1,[x0,#888] | | mrs x1,#0x3,#0x0,c1,c0,#0x1; x1, ACTLR_EL1 | | str x1,[x0,#0x380] ; x1,[x0,#896] | | mrs x1,#0x3,#0x0,c1,c0,#0x2; x1, CPACR_EL1 | | str x1,[x0,#0x388] ; x1,[x0,#904] | | mrs x1,#0x3,#0x0,c2,c0,#0x0; x1, TTBR0_EL1 | | str x1,[x0,#0x390] ; x1,[x0,#912] | | mrs x1,#0x3,#0x0,c2,c0,#0x1; x1, TTBR1_EL1 | | str x1,[x0,#0x398] ; x1,[x0,#920] | | mrs x1,#0x3,#0x0,c2,c0,#0x2; x1, TCR_EL1 | | str x1,[x0,#0x3A0] ; x1,[x0,#928] | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 | | str x1,[x0,#0x3A8] ; x1,[x0,#936] | | mrs x1,#0x3,#0x0,c5,c1,#0x0; x1, AFSR0_EL1 | | str x1,[x0,#0x3B0] ; x1,[x0,#944] | | mrs x1,#0x3,#0x0,c5,c1,#0x1; x1, AFSR1_EL1 | | str x1,[x0,#0x3B8] ; x1,[x0,#952] | | mrs x1,#0x3,#0x0,c6,c0,#0x0; x1, FAR_EL1 | | str x1,[x0,#0x3C0] ; x1,[x0,#960] | | mrs x1,#0x3,#0x0,c10,c2,#0x0; x1, MAIR_EL1 | | str x1,[x0,#0x3C8] ; x1,[x0,#968] | | mrs x1,#0x3,#0x0,c12,c0,#0x0; x1, VBAR_EL1 | | str x1,[x0,#0x3D0] ; x1,[x0,#976] | | mrs x1,#0x3,#0x0,c13,c0,#0x1; x1, CONTEXTIDR_EL1 | | str x1,[x0,#0x3D8] ; x1,[x0,#984] | | mrs x1,#0x3,#0x3,c13,c0,#0x2; x1, TPIDR_EL0 | | str x1,[x0,#0x3E0] ; x1,[x0,#992] | | mrs x1,#0x3,#0x3,c13,c0,#0x3; x1, TPIDRRO_EL0 | | str x1,[x0,#0x3E8] ; x1,[x0,#1000] | | mrs x1,#0x3,#0x0,c13,c0,#0x4; x1, TPIDR_EL1 | | str x1,[x0,#0x3F0] ; x1,[x0,#1008] | | mrs x1,#0x3,#0x0,c10,c3,#0x0; x1, AMAIR_EL1 | | str x1,[x0,#0x3F8] ; x1,[x0,#1016] | | mrs x1,#0x3,#0x0,c14,c1,#0x0; x1, CNTKCTL_EL1 | | str x1,[x0,#0x400] ; x1,[x0,#1024] | | mrs x1,#0x3,#0x0,c7,c4,#0x0; x1, PAR_EL1 | | str x1,[x0,#0x408] ; x1,[x0,#1032] | | mrs x1,#0x2,#0x0,c0,c2,#0x2; x1, MDSCR_EL1 | | str x1,[x0,#0x410] ; x1,[x0,#1040] | | mrs x1,#0x3,#0x0,c4,c1,#0x0; x1, SP_EL0 | | str x1,[x0,#0xF8] ; x1,[x0,#248] | | mrs x1,#0x3,#0x4,c4,c0,#0x1; x1, ELR_EL2 | | str x1,[x0,#0x100] ; x1,[x0,#256] | | mrs x1,#0x3,#0x4,c4,c0,#0x0; x1, SPSR_EL2 | | str x1,[x0,#0x108] ; x1,[x0,#264] | | mrs x1,#0x3,#0x4,c4,c1,#0x0; x1, SP_EL1 | | str x1,[x0,#0x110] ; x1,[x0,#272] | | mrs x1,#0x3,#0x0,c4,c0,#0x1; x1, ELR_EL3 | | str x1,[x0,#0x118] ; x1,[x0,#280] | | mrs x1,#0x3,#0x0,c4,c0,#0x0; x1, SPSR_EL1 | | str x1,[x0,#0x120] ; x1,[x0,#288] | | ret -000186| | HX:0000004000866EF0 ptrace | + mov x0,x19 | | bl 0x4000866CE0 -000185| | HX:0000004000866CE0 ptrace | + ldr x2,[x0,#0x560] ; x2,[x0,#1376] | | mov x1,#0xA000 ; x1,#40960 | | tst x2,x1 | | ldr x1,[x0,#0x5B8] ; x1,[x0,#1464] | | b.eq 0x4000866CFC -000184| | HX:0000004000866CFC ptrace | + tbnz x1,#0x0,0x4000866D08; x1,#0,0x4000866D08 -000183| | HX:0000004000866D00 ptrace | | ret -000173| | HX:0000004000866EF8 ptrace | + ldr x0,[x19,#0x590] ; x0,[x19,#1424] | | tbnz x0,#0x1F,0x4000866F0C; x0,#31,0x4000866F0C -000165| | HX:0000004000866F0C ptrace | + msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | mov x0,#0x8000 ; x0,#32768 | | msr #0x3,#0x4,c1,c1,#0x3,x0; HSTR_EL2,x0 | | mov x0,#0x37FF ; x0,#14335 | | movk x0,#0x10,lsl #0x10 ; x0,#16,lsl #16 | | msr #0x3,#0x4,c1,c1,#0x2,x0; CPTR_EL2,x0 | | ldr w0,[x19,#0x598] ; w0,[x19,#1432] | | msr #0x3,#0x4,c1,c1,#0x1,x0; #0x3,#0x4,c1,c1,#0x1,x0 | | ldr x0,[x19] | | and x0,x0,#0x7FFFFFFFFF ; x0,x0,#549755813887 | | ldr x0,[x0,#0xA88] ; x0,[x0,#2696] | | msr #0x3,#0x4,c2,c1,#0x0,x0; VTTBR_EL2,x0 | | mrs x0,#0x3,#0x4,c1,c1,#0x0; x0, HCR_EL2 | | ldr x1,[x19,#0xDE0] ; x1,[x19,#3552] | | orr x1,x1,#0x18 ; x1,x1,#24 | | orr x0,x1,x0 | | msr #0x3,#0x4,c1,c1,#0x0,x0; HCR_EL2,x0 | | adrp x1,0x4000866000 | | adrp x0,0x4000866000 | | add x1,x1,#0xD8 ; x1,x1,#216 | | add x0,x0,#0x2C0 ; x0,x0,#704 | | mov x1,x0 | | mov x0,x19 | | blr x1 -000155| | HX:00000040008662C0 ptrace | + add x1,x0,#0xC08 ; x1,x0,#3080 | | ldr w2,[x1,#0x8] ; w2,[x1,#8] | | msr #0x3,#0x0,c12,c12,#0x5,x2; ICC_SRE_EL1,x2 | | isb sy -000154| | HX:00000040008662D0 ptrace | | ldr w0,[x0,#0xC08] ; w0,[x0,#3080] | | msr #0x3,#0x4,c12,c11,#0x0,x0; #0x3,#0x4,c12,c11,#0x0,x0 | | ldr w0,[x1,#0x4] ; w0,[x1,#4] | | msr #0x3,#0x4,c12,c11,#0x7,x0; #0x3,#0x4,c12,c11,#0x7,x0 | | mrs x0,#0x3,#0x4,c12,c11,#0x1; x0,#0x3,#0x4,c12,c11,#0x1 | | lsr w2,w0,#0x1D ; w2,w0,#29 | | and w0,w0,#0x0F ; w0,w0,#15 | | add w2,w2,#0x1 ; w2,w2,#1 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866380 -000153| | HX:00000040008662F8 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.eq 0x4000866370 -000152| | HX:0000004000866300 ptrace | | ldr w3,[x1,#0x18] ; w3,[x1,#24] | | msr #0x3,#0x4,c12,c8,#0x0,x3; ICH_APR0_EL2,x3 | | cmp w2,#0x6 ; w2,#6 | | b.eq 0x4000866328 -000151| | HX:0000004000866310 ptrace | | cmp w2,#0x7 ; w2,#7 | | b.ne 0x4000866330 -000150| | HX:0000004000866330 ptrace | + ldr w2,[x1,#0x28] ; w2,[x1,#40] | | msr #0x3,#0x4,c12,c9,#0x0,x2; #0x3,#0x4,c12,c9,#0x0,x2 | | sub w0,w0,#0x1 ; w0,w0,#1 | | cmp w0,#0x0E ; w0,#14 | | b.ls 0x4000866390 -000149| | HX:0000004000866390 ptrace | + adrp x2,0x4000875000 | | add x2,x2,#0x100 ; x2,x2,#256 | | ldrb w0,[x2,w0,uxtw] | | adr x2,0x40008663A8 | | add x0,x2,w0,sxtb #0x2 ; x0,x2,w0,sxtb #2 | | br x0 -000139| | HX:0000004000866408 ptrace | + ldr x0,[x1,#0x98] ; x0,[x1,#152] | | msr #0x3,#0x4,c12,c12,#0x3,x0; #0x3,#0x4,c12,c12,#0x3,x0 | | ldr x0,[x1,#0xA0] ; x0,[x1,#160] | | msr #0x3,#0x4,c12,c12,#0x2,x0; #0x3,#0x4,c12,c12,#0x2,x0 | | ldr x0,[x1,#0xA8] ; x0,[x1,#168] | | msr #0x3,#0x4,c12,c12,#0x1,x0; #0x3,#0x4,c12,c12,#0x1,x0 | | b 0x4000866344 -000138| | HX:0000004000866344 ptrace | + ldr x0,[x1,#0xB0] ; x0,[x1,#176] | | msr #0x3,#0x4,c12,c12,#0x0,x0; #0x3,#0x4,c12,c12,#0x0,x0 | | isb sy -000137| | HX:0000004000866350 ptrace | | dsb sy | | ldr w0,[x1,#0x8] ; w0,[x1,#8] | | cbnz w0,0x4000866368 -000136| | HX:0000004000866368 ptrace | | ret -000126| | HX:0000004000866F6C ptrace | + mov x0,x19 | | bl 0x4000866470 -000125| | HX:0000004000866470 ptrace | + ldr x2,[x0] | | and x2,x2,#0x7FFFFFFFFF ; x2,x2,#549755813887 | | mrs x1,#0x3,#0x4,c14,c1,#0x0; x1, CNTHCTL_EL2 | | and x1,x1,#-0x3 ; x1,x1,#-3 | | orr x1,x1,#0x1 ; x1,x1,#1 | | msr #0x3,#0x4,c14,c1,#0x0,x1; CNTHCTL_EL2,x1 | | ldrb w1,[x2,#0xBE8] ; w1,[x2,#3048] | | cbz w1,0x40008664AC -000124| | HX:0000004000866490 ptrace | | ldr x1,[x2,#0xBF0] ; x1,[x2,#3056] | | msr #0x3,#0x4,c14,c0,#0x3,x1; CNTVOFF_EL2,x1 | | ldr x1,[x0,#0xD48] ; x1,[x0,#3400] | | msr #0x3,#0x3,c14,c3,#0x2,x1; CNTV_CVAL_EL0,x1 | | isb sy -000123| | HX:00000040008664A4 ptrace | | ldr w0,[x0,#0xD40] ; w0,[x0,#3392] | | msr #0x3,#0x3,c14,c3,#0x1,x0; CNTV_CTL_EL0,x0 | | ret -000113| | HX:0000004000866F74 ptrace | + mov x0,x19 | | bl 0x40008666E0 -000112| | HX:00000040008666E0 ptrace | + mrs x1,#0x3,#0x4,c1,c1,#0x0; x1, HCR_EL2 | | tbnz x1,#0x1F,0x4000866728; x1,#31,0x4000866728 -000111| | HX:0000004000866728 ptrace | | ret -000101| | HX:0000004000866F7C ptrace | + mov x0,x21 | | bl 0x4000866598 -000100| | HX:0000004000866598 ptrace | + ldr x1,[x0,#0x368] ; x1,[x0,#872] | | msr #0x3,#0x4,c0,c0,#0x5,x1; VMPIDR_EL2,x1 | | ldr x1,[x0,#0x370] ; x1,[x0,#880] | | msr #0x3,#0x2,c0,c0,#0x0,x1; CSSELR_EL1,x1 | | ldr x1,[x0,#0x378] ; x1,[x0,#888] | | msr #0x3,#0x0,c1,c0,#0x0,x1; SCTLR_EL1,x1 | | ldr x1,[x0,#0x380] ; x1,[x0,#896] | | msr #0x3,#0x0,c1,c0,#0x1,x1; ACTLR_EL1,x1 | | ldr x1,[x0,#0x388] ; x1,[x0,#904] | | msr #0x3,#0x0,c1,c0,#0x2,x1; CPACR_EL1,x1 | | ldr x1,[x0,#0x390] ; x1,[x0,#912] | | msr #0x3,#0x0,c2,c0,#0x0,x1; TTBR0_EL1,x1 | | ldr x1,[x0,#0x398] ; x1,[x0,#920] | | msr #0x3,#0x0,c2,c0,#0x1,x1; TTBR1_EL1,x1 | | ldr x1,[x0,#0x3A0] ; x1,[x0,#928] | | msr #0x3,#0x0,c2,c0,#0x2,x1; TCR_EL1,x1 | | ldr x1,[x0,#0x3A8] ; x1,[x0,#936] | | msr #0x3,#0x0,c5,c2,#0x0,x1; ESR_EL1,x1 | | ldr x1,[x0,#0x3B0] ; x1,[x0,#944] | | msr #0x3,#0x0,c5,c1,#0x0,x1; AFSR0_EL1,x1 | | ldr x1,[x0,#0x3B8] ; x1,[x0,#952] | | msr #0x3,#0x0,c5,c1,#0x1,x1; AFSR1_EL1,x1 | | ldr x1,[x0,#0x3C0] ; x1,[x0,#960] | | msr #0x3,#0x0,c6,c0,#0x0,x1; FAR_EL1,x1 | | ldr x1,[x0,#0x3C8] ; x1,[x0,#968] | | msr #0x3,#0x0,c10,c2,#0x0,x1; MAIR_EL1,x1 | | ldr x1,[x0,#0x3D0] ; x1,[x0,#976] | | msr #0x3,#0x0,c12,c0,#0x0,x1; VBAR_EL1,x1 | | ldr x1,[x0,#0x3D8] ; x1,[x0,#984] | | msr #0x3,#0x0,c13,c0,#0x1,x1; CONTEXTIDR_EL1,x1 | | ldr x1,[x0,#0x3E0] ; x1,[x0,#992] | | msr #0x3,#0x3,c13,c0,#0x2,x1; TPIDR_EL0,x1 | | ldr x1,[x0,#0x3E8] ; x1,[x0,#1000] | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ldr x1,[x0,#0x3F0] ; x1,[x0,#1008] | | msr #0x3,#0x0,c13,c0,#0x4,x1; TPIDR_EL1,x1 | | ldr x1,[x0,#0x3F8] ; x1,[x0,#1016] | | msr #0x3,#0x0,c10,c3,#0x0,x1; AMAIR_EL1,x1 | | ldr x1,[x0,#0x400] ; x1,[x0,#1024] | | msr #0x3,#0x0,c14,c1,#0x0,x1; CNTKCTL_EL1,x1 | | ldr x1,[x0,#0x408] ; x1,[x0,#1032] | | msr #0x3,#0x0,c7,c4,#0x0,x1; PAR_EL1,x1 | | ldr x1,[x0,#0x410] ; x1,[x0,#1040] | | msr #0x2,#0x0,c0,c2,#0x2,x1; MDSCR_EL1,x1 | | ldr x1,[x0,#0xF8] ; x1,[x0,#248] | | msr #0x3,#0x0,c4,c1,#0x0,x1; SP_EL0,x1 | | ldr x1,[x0,#0x100] ; x1,[x0,#256] | | msr #0x3,#0x4,c4,c0,#0x1,x1; ELR_EL2,x1 | | ldr x2,[x0,#0x108] ; x2,[x0,#264] | | msr #0x3,#0x4,c4,c0,#0x0,x2; SPSR_EL2,x2 | | ldr x2,[x0,#0x110] ; x2,[x0,#272] | | msr #0x3,#0x4,c4,c1,#0x0,x2; SP_EL1,x2 | | ldr x2,[x0,#0x118] ; x2,[x0,#280] | | msr #0x3,#0x0,c4,c0,#0x1,x2; ELR_EL1,x2 | | ldr x0,[x0,#0x120] ; x0,[x0,#288] | | msr #0x3,#0x0,c4,c0,#0x0,x0; SPSR_EL1,x0 | | msr #0x3,#0x3,c13,c0,#0x3,x1; TPIDRRO_EL0,x1 | | ret -000090| | HX:0000004000866F84 ptrace | + ldr x1,[x19,#0x5C0] ; x1,[x19,#1472] | | mov x2,x21 | | mov x0,x19 | | and x1,x1,#0x7FFFFFFFFF ; x1,x1,#549755813887 | | bl 0x4000866CB0 -000089| | HX:0000004000866CB0 ptrace | + ldr x0,[x0,#0x5B8] ; x0,[x0,#1464] | | tbz x0,#0x0,0x4000866CD8; x0,#0,0x4000866CD8 -000088| | HX:0000004000866CD8 ptrace | | ret -000078| | HX:0000004000866F98 ptrace | + mov x1,x20 | | mov x0,x19 | | bl 0x4000866D80 -000077| | HX:0000004000866D80 ptrace | + stp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | stp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | stp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | stp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | stp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | stp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | stp x0,x1,[SP,#-0x10]! ; x0,x1,[SP,#-16]! | | add x1,x0,#0x150 ; x1,x0,#336 | | ldp x2,x3,[x1] | | stp x2,x3,[SP,#-0x10]! ; x2,x3,[SP,#-16]! | | ldp x2,x3,[x1,#0x10] ; x2,x3,[x1,#16] | | ldp x4,x5,[x1,#0x20] ; x4,x5,[x1,#32] | | ldp x6,x7,[x1,#0x30] ; x6,x7,[x1,#48] | | ldp x8,x9,[x1,#0x40] ; x8,x9,[x1,#64] | | ldp x10,x11,[x1,#0x50] ; x10,x11,[x1,#80] _______|__|_ldp_____x12,x13,[x1,#0x60]__;_x12,x13,[x1,#96] | | ldp x14,x15,[x1,#0x70] ; x14,x15,[x1,#112] | | ldp x16,x17,[x1,#0x80] ; x16,x17,[x1,#128] | | ldr x18,[x1,#0x90] ; x18,[x1,#144] | | ldp x19,x20,[x1,#0x98] ; x19,x20,[x1,#152] | | ldp x21,x22,[x1,#0xA8] ; x21,x22,[x1,#168] | | ldp x23,x24,[x1,#0xB8] ; x23,x24,[x1,#184] | | ldp x25,x26,[x1,#0xC8] ; x25,x26,[x1,#200] | | ldp x27,x28,[x1,#0xD8] ; x27,x28,[x1,#216] | | ldp x29,x30,[x1,#0xE8] ; x29,x30,[x1,#232] | | ldp x0,x1,[SP],#0x10 ; x0,x1,[SP],#16 | | eret -000059| | NSX:FFFFFFC0000852C0 ptrace \\vmlinux\Global\el1_sync | + ENDPROC(el1_error_invalid) | | | | /* | | * EL1 mode handlers. | | */ | | .align 6 | | el1_sync: 334| | kernel_entry 1 | | sub SP,SP,#0x120 ; SP,SP,#288 | | stp x0,x1,[SP] | | stp x2,x3,[SP,#0x10] ; x2,x3,[SP,#16] | | stp x4,x5,[SP,#0x20] ; x4,x5,[SP,#32] | | stp x6,x7,[SP,#0x30] ; x6,x7,[SP,#48] | | stp x8,x9,[SP,#0x40] ; x8,x9,[SP,#64] | | stp x10,x11,[SP,#0x50] ; x10,x11,[SP,#80] | | stp x12,x13,[SP,#0x60] ; x12,x13,[SP,#96] | | stp x14,x15,[SP,#0x70] ; x14,x15,[SP,#112] | | stp x16,x17,[SP,#0x80] ; x16,x17,[SP,#128] | | stp x18,x19,[SP,#0x90] ; x18,x19,[SP,#144] | | stp x20,x21,[SP,#0xA0] ; x20,x21,[SP,#160] | | stp x22,x23,[SP,#0xB0] ; x22,x23,[SP,#176] | | stp x24,x25,[SP,#0xC0] ; x24,x25,[SP,#192] | | stp x26,x27,[SP,#0xD0] ; x26,x27,[SP,#208] | | stp x28,x29,[SP,#0xE0] ; x28,x29,[SP,#224] | | add x21,SP,#0x120 ; x21,SP,#288 | | mrs x22,#0x3,#0x0,c4,c0,#0x1; x22, ELR_EL3 | | mrs x23,#0x3,#0x0,c4,c0,#0x0; x23, SPSR_EL1 | | stp x30,x21,[SP,#0xF0] ; x30,x21,[SP,#240] | | stp x22,x23,[SP,#0x100] ; x22,x23,[SP,#256] 335| | mrs x1, esr_el1 // read the syndrome register | | mrs x1,#0x3,#0x0,c5,c2,#0x0; x1, ESR_EL1 336| | lsr x24, x1, #ESR_ELx_EC_SHIFT // exception class | | lsr x24,x1,#0x1A ; x24,x1,#26 337| | cmp x24, #ESR_ELx_EC_IABT_CUR // instruction abort in EL1 | | cmp x24,#0x21 ; x24,#33 338| | b.eq el1_iabt | | b.eq 0xFFFFFFC000085464 ; el1_iabt -000056|BRK ----------------------- ------- ---------------- -------------------------------
_______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm