Untitled Diff

Created Diff never expires
26 removals
Words removed31
Total words406
Words removed (%)7.64
69 lines
33 additions
Words added54
Total words429
Words added (%)12.59
75 lines
; Assembly listing for method <>c:<GetArrayDataReference_NullInput_ThrowsNullRef>b__46_1():System.Object:this
; Assembly listing for method <>c:<GetArrayDataReference_NullInput_ThrowsNullRef>b__46_1():System.Object:this
; Emitting BLENDED_CODE for generic ARM64 CPU - Windows
; Emitting BLENDED_CODE for generic ARM64 CPU - Windows
; optimized code
; optimized code
; fp based frame
; fp based frame
; partially interruptible
; partially interruptible
; No matching PGO data
; No matching PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [sp+00H] "OutgoingArgSpace"
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [sp+00H] "OutgoingArgSpace"
; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper"
; V02 tmp1 [V02,T00] ( 3, 6 ) ref -> x0 class-hnd exact single-def "Single-def Box Helper"
;* V03 tmp2 [V03 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt"
;* V03 tmp2 [V03 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def "CheckForNullPointer"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref single-def "CheckForNullPointer"
;* V05 tmp4 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V05 tmp4 [V05,T01] ( 2, 4 ) long -> x19 "Inlining Arg"
;* V06 tmp5 [V06 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp"
;* V06 tmp5 [V06 ] ( 0, 0 ) long -> zero-ref "NewObj constructor temp"
;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "Big Offset Morphing"
;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref single-def "Big Offset Morphing"
;
;
; Lcl frame size = 0
; Lcl frame size = 8


G_M7618_IG01: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
G_M7618_IG01: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp,#-16]!
stp fp, lr, [sp,#-32]!
str x19, [sp,#24]
mov fp, sp
mov fp, sp
;; bbWeight=1 PerfScore 1.50
;; bbWeight=1 PerfScore 2.50
G_M7618_IG02: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M7618_IG02: ; gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov x0, #0
mov x0, #0
ldr wzr, [x0]
ldr wzr, [x0]
ldr wzr, [x0]
ldr wzr, [x0]
movn x0, #7
movn x0, #7
ldr x0, [x0]
ldr x0, [x0]
ldr wzr, [x0,#4]
ldr w0, [x0,#4]
mov w0, w0
sub x19, x0, #16
movz x0, #0xd1ffab1e
movz x0, #0xd1ffab1e
movk x0, #0xd1ffab1e LSL #16
movk x0, #0xd1ffab1e LSL #16
movk x0, #0xd1ffab1e LSL #32
movk x0, #0xd1ffab1e LSL #32
bl CORINFO_HELP_NEWSFAST
bl CORINFO_HELP_NEWSFAST
; gcrRegs +[x0]
; gcrRegs +[x0]
mov x1, #0
ldrb w1, [x19]
ldrb w1, [x1]
strb w1, [x0,#8]
strb w1, [x0,#8]
;; bbWeight=1 PerfScore 20.00
;; bbWeight=1 PerfScore 20.50
G_M7618_IG03: ; , epilog, nogc, extend
G_M7618_IG03: ; , epilog, nogc, extend
ldp fp, lr, [sp],#16
ldr x19, [sp,#24]
ldp fp, lr, [sp],#32
ret lr
ret lr
;; bbWeight=1 PerfScore 2.00
;; bbWeight=1 PerfScore 4.00


; Total bytes of code 68, prolog size 8, PerfScore 30.30, instruction count 17, allocated bytes for code 68 (MethodHash=810ae23d) for method <>c:<GetArrayDataReference_NullInput_ThrowsNullRef>b__46_1():System.Object:this
; Total bytes of code 80, prolog size 12, PerfScore 35.00, instruction count 20, allocated bytes for code 80 (MethodHash=810ae23d) for method <>c:<GetArrayDataReference_NullInput_ThrowsNullRef>b__46_1():System.Object:this
; ============================================================
; ============================================================


Unwind Info:
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Code Words : 1
Code Words : 2
Epilog Count : 1
Epilog Count : 1
E bit : 0
E bit : 0
X bit : 0
X bit : 0
Vers : 0
Vers : 0
Function Length : 17 (0x00011) Actual length = 68 (0x000044)
Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Epilog scopes ----
---- Scope 0
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Epilog Start Index : 1 (0x01)
Epilog Start Index : 1 (0x01)
---- Unwind codes ----
---- Unwind codes ----
E1 set_fp; mov fp, sp
E1 set_fp; mov fp, sp
---- Epilog start at index 1 ----
---- Epilog start at index 1 ----
81 save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
D0 03 save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
E4 end
E4 end
E4 end
E4 end
E4 end
E4 end