Diff
checker
Texto
Texto
Imagens
Documentos
Excel
Pastas
Legal
Enterprise
Aplicativo para desktop
Preços
Fazer login
Baixar o Diffchecker Desktop
Comparar texto
Encontre a diferença entre dois arquivos de texto
Ferramentas
Histórico
Editor live
Recolher inalteradas
Sem quebra de linha
Layout
Dividido
Unificado
Nível de detalhe
Inteligente
Palavra
Caractere
Realce de sintaxe
Escolher sintaxe
Ignorar
Transformar texto
Ir à primeira mudança
Editar entrada
Diffchecker Desktop
A maneira mais segura de usar o Diffchecker. Obtenha o aplicativo Diffchecker Desktop: seus diffs nunca saem do seu computador!
Obter Desktop
splice
Criado
há 2 anos
O diff nunca expira
Limpar
Exportar
Compartilhar
Explicar
16 remoções
Linhas
Total
Removido
Caracteres
Total
Removido
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
281 linhas
Copiar tudo
23 adições
Linhas
Total
Adicionado
Caracteres
Total
Adicionado
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
287 linhas
Copiar tudo
; Assembly listing for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts)
; Assembly listing for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts)
; Emitting BLENDED_CODE for generic ARM64 - Windows
; Emitting BLENDED_CODE for generic ARM64 - Windows
; FullOpts code
; FullOpts code
; 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; 26 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 26 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T02] ( 4, 4 ) ref -> x19 this class-hnd single-def <JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int>
; V00 this [V00,T02] ( 4, 4 ) ref -> x19 this class-hnd single-def <JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int>
; V01 loc0 [V01,T32] ( 2, 2 ) simd16 -> d8 HFA(simd16) <System.Numerics.Vector`1[int]>
; V01 loc0 [V01,T32] ( 2, 2 ) simd16 -> d8 HFA(simd16) <System.Numerics.Vector`1[int]>
; V02 loc1 [V02,T33] ( 2, 2 ) simd16 -> d9 HFA(simd16) <System.Numerics.Vector`1[int]>
; V02 loc1 [V02,T33] ( 2, 2 ) simd16 -> d9 HFA(simd16) <System.Numerics.Vector`1[int]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T30] ( 2, 4 ) simd16 -> d8 "impAppendStmt"
; V04 tmp1 [V04,T30] ( 2, 4 ) simd16 -> d8 "impAppendStmt"
; V05 tmp2 [V05,T31] ( 2, 4 ) simd16 -> d9 "impAppendStmt"
; V05 tmp2 [V05,T31] ( 2, 4 ) simd16 -> d9 "impAppendStmt"
; V06 tmp3 [V06,T19] ( 2, 4 ) long -> x21 "impAppendStmt"
; V06 tmp3 [V06,T19] ( 2, 4 ) long -> x21 "impAppendStmt"
; V07 tmp4 [V07,T20] ( 2, 4 ) long -> x22 "impAppendStmt"
; V07 tmp4 [V07,T20] ( 2, 4 ) long -> x22 "impAppendStmt"
; V08 tmp5 [V08,T21] ( 2, 4 ) long -> x23 "impAppendStmt"
; V08 tmp5 [V08,T21] ( 2, 4 ) long -> x23 "impAppendStmt"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V10 tmp7 [V10,T01] ( 4, 8 ) byref -> x21 single-def "Inlining Arg"
; V10 tmp7 [V10,T01] ( 4, 8 ) byref -> x21 single-def "Inlining Arg"
;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V12 tmp9 [V12,T22] ( 2, 4 ) long -> x0 "Inlining Arg"
; V12 tmp9 [V12,T22] ( 2, 4 ) long -> x0 "Inlining Arg"
; V13 tmp10 [V13,T10] ( 3, 6 ) long -> x1 "Inlining Arg"
; V13 tmp10 [V13,T10] ( 3, 6 ) long -> x1 "Inlining Arg"
; V14 tmp11 [V14,T03] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
; V14 tmp11 [V14,T03] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
;* V15 tmp12 [V15 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V15 tmp12 [V15 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V16 tmp13 [V16,T23] ( 2, 4 ) long -> x0 "Inlining Arg"
; V16 tmp13 [V16,T23] ( 2, 4 ) long -> x0 "Inlining Arg"
; V17 tmp14 [V17,T11] ( 3, 6 ) long -> x1 "Inlining Arg"
; V17 tmp14 [V17,T11] ( 3, 6 ) long -> x1 "Inlining Arg"
; V18 tmp15 [V18,T04] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
; V18 tmp15 [V18,T04] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
;* V19 tmp16 [V19 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V19 tmp16 [V19 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V20 tmp17 [V20,T24] ( 2, 4 ) long -> x0 "Inlining Arg"
; V20 tmp17 [V20,T24] ( 2, 4 ) long -> x0 "Inlining Arg"
; V21 tmp18 [V21,T12] ( 3, 6 ) long -> x1 "Inlining Arg"
; V21 tmp18 [V21,T12] ( 3, 6 ) long -> x1 "Inlining Arg"
; V22 tmp19 [V22,T05] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
; V22 tmp19 [V22,T05] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
;* V23 tmp20 [V23 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V23 tmp20 [V23 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V24 tmp21 [V24,T25] ( 2, 4 ) long -> x0 "Inlining Arg"
; V24 tmp21 [V24,T25] ( 2, 4 ) long -> x0 "Inlining Arg"
; V25 tmp22 [V25,T13] ( 3, 6 ) long -> x1 "Inlining Arg"
; V25 tmp22 [V25,T13] ( 3, 6 ) long -> x1 "Inlining Arg"
; V26 tmp23 [V26,T06] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
; V26 tmp23 [V26,T06] ( 3, 6 ) byref -> x21 single-def "Inlining Arg"
;* V27 tmp24 [V27 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V27 tmp24 [V27 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V28 tmp25 [V28,T26] ( 2, 4 ) long -> x0 "Inlining Arg"
; V28 tmp25 [V28,T26] ( 2, 4 ) long -> x0 "Inlining Arg"
; V29 tmp26 [V29,T14] ( 3, 6 ) long -> x1 "Inlining Arg"
; V29 tmp26 [V29,T14] ( 3, 6 ) long -> x1 "Inlining Arg"
; V30 tmp27 [V30,T07] ( 3, 6 ) byref -> x22 single-def "Inlining Arg"
; V30 tmp27 [V30,T07] ( 3, 6 ) byref -> x22 single-def "Inlining Arg"
;* V31 tmp28 [V31 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V31 tmp28 [V31 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V32 tmp29 [V32,T27] ( 2, 4 ) long -> x0 "Inlining Arg"
; V32 tmp29 [V32,T27] ( 2, 4 ) long -> x0 "Inlining Arg"
; V33 tmp30 [V33,T15] ( 3, 6 ) long -> x1 "Inlining Arg"
; V33 tmp30 [V33,T15] ( 3, 6 ) long -> x1 "Inlining Arg"
; V34 tmp31 [V34,T08] ( 3, 6 ) byref -> x23 single-def "Inlining Arg"
; V34 tmp31 [V34,T08] ( 3, 6 ) byref -> x23 single-def "Inlining Arg"
;* V35 tmp32 [V35 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V35 tmp32 [V35 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V36 tmp33 [V36,T28] ( 2, 4 ) long -> x0 "Inlining Arg"
; V36 tmp33 [V36,T28] ( 2, 4 ) long -> x0 "Inlining Arg"
; V37 tmp34 [V37,T16] ( 3, 6 ) long -> x1 "Inlining Arg"
; V37 tmp34 [V37,T16] ( 3, 6 ) long -> x1 "Inlining Arg"
; V38 tmp35 [V38,T09] ( 3, 6 ) byref -> x20 single-def "Inlining Arg"
; V38 tmp35 [V38,T09] ( 3, 6 ) byref -> x20 single-def "Inlining Arg"
;* V39 tmp36 [V39 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
;* V39 tmp36 [V39 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp"
; V40 tmp37 [V40,T29] ( 2, 4 ) long -> x0 "Inlining Arg"
; V40 tmp37 [V40,T29] ( 2, 4 ) long -> x0 "Inlining Arg"
; V41 tmp38 [V41,T17] ( 3, 6 ) long -> x4 "Inlining Arg"
; V41 tmp38 [V41,T17] ( 3, 6 ) long -> x4 "Inlining Arg"
; V42 cse0 [V42,T00] ( 9, 9 ) byref -> x20 "CSE #01: aggressive"
; V42 cse0 [V42,T00] ( 9, 9 ) byref -> x20 "CSE #01: aggressive"
Copiar
Copiado
Copiar
Copiado
; V43 cse1 [V43,T18] ( 4, 4 ) mask ->
p0
"CSE #02: moderate"
; V43 cse1 [V43,T18] ( 4, 4 ) mask ->
[fp+0x10] spill-single-def
"CSE #02: moderate"
;
;
; Lcl frame size = 8
; Lcl frame size = 8
G_M37833_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
G_M37833_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
stp fp, lr, [sp, #-0x60]!
stp fp, lr, [sp, #-0x60]!
stp d8, d9, [sp, #0x18]
stp d8, d9, [sp, #0x18]
stp d10, d11, [sp, #0x28]
stp d10, d11, [sp, #0x28]
stp x19, x20, [sp, #0x38]
stp x19, x20, [sp, #0x38]
stp x21, x22, [sp, #0x48]
stp x21, x22, [sp, #0x48]
str x23, [sp, #0x58]
str x23, [sp, #0x58]
mov fp, sp
mov fp, sp
mov x19, x0
mov x19, x0
; gcrRegs +[x19]
; gcrRegs +[x19]
;; size=32 bbWeight=1 PerfScore 7.00
;; size=32 bbWeight=1 PerfScore 7.00
G_M37833_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
G_M37833_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
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
movz x1, #0xD1FFAB1E
movz x1, #0xD1FFAB1E
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
movz x2, #0xD1FFAB1E // code for <unknown method>
movz x2, #0xD1FFAB1E // code for <unknown method>
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #16
movk x2, #0xD1FFAB1E LSL #32
movk x2, #0xD1FFAB1E LSL #32
ldr x2, [x2]
ldr x2, [x2]
blr x2
blr x2
; gcrRegs +[x0]
; gcrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
blr x1
blr x1
; gcrRegs -[x0]
; gcrRegs -[x0]
ptrue p0.s
ptrue p0.s
mov z8.s, p0/z, #1
mov z8.s, p0/z, #1
add x20, x19, #80
add x20, x19, #80
; byrRegs +[x20]
; byrRegs +[x20]
mov x21, x20
mov x21, x20
; byrRegs +[x21]
; byrRegs +[x21]
ldrsb wzr, [x21]
ldrsb wzr, [x21]
add x0, x21, #64
add x0, x21, #64
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
mov v9.d[0], v8.d[1]
mov v9.d[0], v8.d[1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x21, #0x20]
ldr x1, [x21, #0x20]
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x0, x0, x1
bic x0, x0, x1
ptrue p0.s
ptrue p0.s
mov v8.d[1], v9.d[0]
mov v8.d[1], v9.d[0]
cmpne p0.s, p0/z, z8.s, #0
cmpne p0.s, p0/z, z8.s, #0
Copiar
Copiado
Copiar
Copiado
add xip1, fp, #16
str p0, [xip1]
ld1w { z8.s }, p0/z, [x0]
ld1w { z8.s }, p0/z, [x0]
mov x21, x20
mov x21, x20
add x0, x21, #40
add x0, x21, #40
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
mov v10.d[0], v8.d[1]
mov v10.d[0], v8.d[1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x21, #0x20]
ldr x1, [x21, #0x20]
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x0, x0, x1
bic x0, x0, x1
Copiar
Copiado
Copiar
Copiado
add xip1, fp, #16
ldr p0, [xip1]
ld1w { z9.s }, p0/z, [x0]
ld1w { z9.s }, p0/z, [x0]
mov x21, x20
mov x21, x20
add x0, x21, #48
add x0, x21, #48
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
mov v11.d[0], v9.d[1]
mov v11.d[0], v9.d[1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x21, #0x20]
ldr x1, [x21, #0x20]
Copiar
Copiado
Copiar
Copiado
ptrue
p1
.s
ptrue
p0
.s
mov v8.d[1], v10.d[0]
mov v8.d[1], v10.d[0]
Copiar
Copiado
Copiar
Copiado
cmpne
p1
.s,
p1
/z, z8.s, #0
cmpne
p0
.s,
p0
/z, z8.s, #0
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x0, x0, x1
bic x0, x0, x1
Copiar
Copiado
Copiar
Copiado
ld1w { z16.s },
p0
/z, [x0]
add xip1, fp, #16
ldr p1, [xip1]
ld1w { z16.s },
p1
/z, [x0]
mov v9.d[1], v11.d[0]
mov v9.d[1], v11.d[0]
Copiar
Copiado
Copiar
Copiado
splice z9.s,
p1
, z9.s, z16.s
splice z9.s,
p0
, z9.s, z16.s
mov x21, x20
mov x21, x20
add x0, x21, #56
add x0, x21, #56
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
mov v8.d[0], v9.d[1]
mov v8.d[0], v9.d[1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x21, #0x20]
ldr x1, [x21, #0x20]
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x0, x0, x1
bic x0, x0, x1
mov v9.d[1], v8.d[0]
mov v9.d[1], v8.d[0]
str q9, [x0]
str q9, [x0]
mov x21, x20
mov x21, x20
add x0, x21, #40
add x0, x21, #40
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x21, #0x20]
ldr x1, [x21, #0x20]
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x21, x0, x1
bic x21, x0, x1
; byrRegs -[x21]
; byrRegs -[x21]
mov x22, x20
mov x22, x20
; byrRegs +[x22]
; byrRegs +[x22]
add x0, x22, #48
add x0, x22, #48
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x22, #0x20]
ldr x1, [x22, #0x20]
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x22, x0, x1
bic x22, x0, x1
; byrRegs -[x22]
; byrRegs -[x22]
mov x23, x20
mov x23, x20
; byrRegs +[x23]
; byrRegs +[x23]
add x0, x23, #56
add x0, x23, #56
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x1, [x23, #0x20]
ldr x1, [x23, #0x20]
add x0, x0, x1
add x0, x0, x1
sub x0, x0, #1
sub x0, x0, #1
sub x1, x1, #1
sub x1, x1, #1
bic x23, x0, x1
bic x23, x0, x1
; byrRegs -[x23]
; byrRegs -[x23]
add x0, x20, #64
add x0, x20, #64
; byrRegs +[x0]
; byrRegs +[x0]
movz x1, #0xD1FFAB1E // code for <unknown method>
movz x1, #0xD1FFAB1E // code for <unknown method>
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #16
movk x1, #0xD1FFAB1E LSL #32
movk x1, #0xD1FFAB1E LSL #32
ldr x1, [x1]
ldr x1, [x1]
blr x1
blr x1
; byrRegs -[x0]
; byrRegs -[x0]
ldr x4, [x20, #0x20]
ldr x4, [x20, #0x20]
add x0, x0, x4
add x0, x0, x4
sub x0, x0, #1
sub x0, x0, #1
sub x4, x4, #1
sub x4, x4, #1
bic x4, x0, x4
bic x4, x0, x4
mov x0, x19
mov x0, x19
; gcrRegs +[x0]
; gcrRegs +[x0]
mov x1, x21
mov x1, x21
mov x2, x22
mov x2, x22
mov x3, x23
mov x3, x23
movz x5, #0xD1FFAB1E
movz x5, #0xD1FFAB1E
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #16
movk x5, #0xD1FFAB1E LSL #32
movk x5, #0xD1FFAB1E LSL #32
movz x6, #0xD1FFAB1E // code for <unknown method>
movz x6, #0xD1FFAB1E // code for <unknown method>
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #16
movk x6, #0xD1FFAB1E LSL #32
movk x6, #0xD1FFAB1E LSL #32
ldr x6, [x6]
ldr x6, [x6]
blr x6
blr x6
; gcrRegs -[x0 x19]
; gcrRegs -[x0 x19]
; byrRegs -[x20]
; byrRegs -[x20]
Copiar
Copiado
Copiar
Copiado
;; size=
576
bbWeight=1 PerfScore
167.00
;; size=
600
bbWeight=1 PerfScore
180.50
G_M37833_IG03: ; bbWeight=1, epilog, nogc, extend
G_M37833_IG03: ; bbWeight=1, epilog, nogc, extend
ldr x23, [sp, #0x58]
ldr x23, [sp, #0x58]
ldp x21, x22, [sp, #0x48]
ldp x21, x22, [sp, #0x48]
ldp x19, x20, [sp, #0x38]
ldp x19, x20, [sp, #0x38]
ldp d10, d11, [sp, #0x28]
ldp d10, d11, [sp, #0x28]
ldp d8, d9, [sp, #0x18]
ldp d8, d9, [sp, #0x18]
ldp fp, lr, [sp], #0x60
ldp fp, lr, [sp], #0x60
ret lr
ret lr
;; size=28 bbWeight=1 PerfScore 8.00
;; size=28 bbWeight=1 PerfScore 8.00
Copiar
Copiado
Copiar
Copiado
; Total bytes of code 6
36
, prolog size 28, PerfScore
182.00
, instruction count 1
59
, allocated bytes for code 6
36
(MethodHash=80146c36) for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts)
; Total bytes of code 6
60
, prolog size 28, PerfScore
195.50
, instruction count 1
65
, allocated bytes for code 6
60
(MethodHash=80146c36) for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts)
; ============================================================
; ============================================================
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 : 3
Code Words : 3
Epilog Count : 1
Epilog Count : 1
E bit : 0
E bit : 0
X bit : 0
X bit : 0
Vers : 0
Vers : 0
Copiar
Copiado
Copiar
Copiado
Function Length : 1
59
(0x000
9f
) Actual length = 6
36
(0x0002
7c
)
Function Length : 1
65
(0x000
a5
) Actual length = 6
60
(0x0002
94
)
---- 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 ----
D1 0B save_reg X#4 Z#11 (0x0B); str x23, [sp, #88]
D1 0B save_reg X#4 Z#11 (0x0B); str x23, [sp, #88]
E6 save_next
E6 save_next
C8 07 save_regp X#0 Z#7 (0x07); stp x19, x20, [sp, #56]
C8 07 save_regp X#0 Z#7 (0x07); stp x19, x20, [sp, #56]
E6 save_next
E6 save_next
D8 03 save_fregp X#0 Z#3 (0x03); stp d8, d9, [sp, #24]
D8 03 save_fregp X#0 Z#3 (0x03); stp d8, d9, [sp, #24]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
E4 end
E4 end
E4 end
E4 end
Diferenças salvas
Texto original
Abrir arquivo
; Assembly listing for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Windows ; FullOpts code ; optimized code ; fp based frame ; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 26 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T02] ( 4, 4 ) ref -> x19 this class-hnd single-def <JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int> ; V01 loc0 [V01,T32] ( 2, 2 ) simd16 -> d8 HFA(simd16) <System.Numerics.Vector`1[int]> ; V02 loc1 [V02,T33] ( 2, 2 ) simd16 -> d9 HFA(simd16) <System.Numerics.Vector`1[int]> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T30] ( 2, 4 ) simd16 -> d8 "impAppendStmt" ; V05 tmp2 [V05,T31] ( 2, 4 ) simd16 -> d9 "impAppendStmt" ; V06 tmp3 [V06,T19] ( 2, 4 ) long -> x21 "impAppendStmt" ; V07 tmp4 [V07,T20] ( 2, 4 ) long -> x22 "impAppendStmt" ; V08 tmp5 [V08,T21] ( 2, 4 ) long -> x23 "impAppendStmt" ;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V10 tmp7 [V10,T01] ( 4, 8 ) byref -> x21 single-def "Inlining Arg" ;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V12 tmp9 [V12,T22] ( 2, 4 ) long -> x0 "Inlining Arg" ; V13 tmp10 [V13,T10] ( 3, 6 ) long -> x1 "Inlining Arg" ; V14 tmp11 [V14,T03] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V15 tmp12 [V15 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V16 tmp13 [V16,T23] ( 2, 4 ) long -> x0 "Inlining Arg" ; V17 tmp14 [V17,T11] ( 3, 6 ) long -> x1 "Inlining Arg" ; V18 tmp15 [V18,T04] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V19 tmp16 [V19 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V20 tmp17 [V20,T24] ( 2, 4 ) long -> x0 "Inlining Arg" ; V21 tmp18 [V21,T12] ( 3, 6 ) long -> x1 "Inlining Arg" ; V22 tmp19 [V22,T05] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V23 tmp20 [V23 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V24 tmp21 [V24,T25] ( 2, 4 ) long -> x0 "Inlining Arg" ; V25 tmp22 [V25,T13] ( 3, 6 ) long -> x1 "Inlining Arg" ; V26 tmp23 [V26,T06] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V27 tmp24 [V27 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V28 tmp25 [V28,T26] ( 2, 4 ) long -> x0 "Inlining Arg" ; V29 tmp26 [V29,T14] ( 3, 6 ) long -> x1 "Inlining Arg" ; V30 tmp27 [V30,T07] ( 3, 6 ) byref -> x22 single-def "Inlining Arg" ;* V31 tmp28 [V31 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V32 tmp29 [V32,T27] ( 2, 4 ) long -> x0 "Inlining Arg" ; V33 tmp30 [V33,T15] ( 3, 6 ) long -> x1 "Inlining Arg" ; V34 tmp31 [V34,T08] ( 3, 6 ) byref -> x23 single-def "Inlining Arg" ;* V35 tmp32 [V35 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V36 tmp33 [V36,T28] ( 2, 4 ) long -> x0 "Inlining Arg" ; V37 tmp34 [V37,T16] ( 3, 6 ) long -> x1 "Inlining Arg" ; V38 tmp35 [V38,T09] ( 3, 6 ) byref -> x20 single-def "Inlining Arg" ;* V39 tmp36 [V39 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V40 tmp37 [V40,T29] ( 2, 4 ) long -> x0 "Inlining Arg" ; V41 tmp38 [V41,T17] ( 3, 6 ) long -> x4 "Inlining Arg" ; V42 cse0 [V42,T00] ( 9, 9 ) byref -> x20 "CSE #01: aggressive" ; V43 cse1 [V43,T18] ( 4, 4 ) mask -> p0 "CSE #02: moderate" ; ; Lcl frame size = 8 G_M37833_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x60]! stp d8, d9, [sp, #0x18] stp d10, d11, [sp, #0x28] stp x19, x20, [sp, #0x38] stp x21, x22, [sp, #0x48] str x23, [sp, #0x58] mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=32 bbWeight=1 PerfScore 7.00 G_M37833_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; gcrRegs -[x0] ptrue p0.s mov z8.s, p0/z, #1 add x20, x19, #80 ; byrRegs +[x20] mov x21, x20 ; byrRegs +[x21] ldrsb wzr, [x21] add x0, x21, #64 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v9.d[0], v8.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 ptrue p0.s mov v8.d[1], v9.d[0] cmpne p0.s, p0/z, z8.s, #0 ld1w { z8.s }, p0/z, [x0] mov x21, x20 add x0, x21, #40 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v10.d[0], v8.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 ld1w { z9.s }, p0/z, [x0] mov x21, x20 add x0, x21, #48 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v11.d[0], v9.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] ptrue p1.s mov v8.d[1], v10.d[0] cmpne p1.s, p1/z, z8.s, #0 add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 ld1w { z16.s }, p0/z, [x0] mov v9.d[1], v11.d[0] splice z9.s, p1, z9.s, z16.s mov x21, x20 add x0, x21, #56 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v8.d[0], v9.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 mov v9.d[1], v8.d[0] str q9, [x0] mov x21, x20 add x0, x21, #40 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x21, x0, x1 ; byrRegs -[x21] mov x22, x20 ; byrRegs +[x22] add x0, x22, #48 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x1, [x22, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x22, x0, x1 ; byrRegs -[x22] mov x23, x20 ; byrRegs +[x23] add x0, x23, #56 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x1, [x23, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x23, x0, x1 ; byrRegs -[x23] add x0, x20, #64 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x4, [x20, #0x20] add x0, x0, x4 sub x0, x0, #1 sub x4, x4, #1 bic x4, x0, x4 mov x0, x19 ; gcrRegs +[x0] mov x1, x21 mov x2, x22 mov x3, x23 movz x5, #0xD1FFAB1E movk x5, #0xD1FFAB1E LSL #16 movk x5, #0xD1FFAB1E LSL #32 movz x6, #0xD1FFAB1E // code for <unknown method> movk x6, #0xD1FFAB1E LSL #16 movk x6, #0xD1FFAB1E LSL #32 ldr x6, [x6] blr x6 ; gcrRegs -[x0 x19] ; byrRegs -[x20] ;; size=576 bbWeight=1 PerfScore 167.00 G_M37833_IG03: ; bbWeight=1, epilog, nogc, extend ldr x23, [sp, #0x58] ldp x21, x22, [sp, #0x48] ldp x19, x20, [sp, #0x38] ldp d10, d11, [sp, #0x28] ldp d8, d9, [sp, #0x18] ldp fp, lr, [sp], #0x60 ret lr ;; size=28 bbWeight=1 PerfScore 8.00 ; Total bytes of code 636, prolog size 28, PerfScore 182.00, instruction count 159, allocated bytes for code 636 (MethodHash=80146c36) for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts) ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 3 Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0 Function Length : 159 (0x0009f) Actual length = 636 (0x00027c) ---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01) ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ---- D1 0B save_reg X#4 Z#11 (0x0B); str x23, [sp, #88] E6 save_next C8 07 save_regp X#0 Z#7 (0x07); stp x19, x20, [sp, #56] E6 save_next D8 03 save_fregp X#0 Z#3 (0x03); stp d8, d9, [sp, #24] 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! E4 end E4 end
Texto alterado
Abrir arquivo
; Assembly listing for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Windows ; FullOpts code ; optimized code ; fp based frame ; partially interruptible ; No matching PGO data ; 0 inlinees with PGO data; 26 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T02] ( 4, 4 ) ref -> x19 this class-hnd single-def <JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int> ; V01 loc0 [V01,T32] ( 2, 2 ) simd16 -> d8 HFA(simd16) <System.Numerics.Vector`1[int]> ; V02 loc1 [V02,T33] ( 2, 2 ) simd16 -> d9 HFA(simd16) <System.Numerics.Vector`1[int]> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T30] ( 2, 4 ) simd16 -> d8 "impAppendStmt" ; V05 tmp2 [V05,T31] ( 2, 4 ) simd16 -> d9 "impAppendStmt" ; V06 tmp3 [V06,T19] ( 2, 4 ) long -> x21 "impAppendStmt" ; V07 tmp4 [V07,T20] ( 2, 4 ) long -> x22 "impAppendStmt" ; V08 tmp5 [V08,T21] ( 2, 4 ) long -> x23 "impAppendStmt" ;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String> ; V10 tmp7 [V10,T01] ( 4, 8 ) byref -> x21 single-def "Inlining Arg" ;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V12 tmp9 [V12,T22] ( 2, 4 ) long -> x0 "Inlining Arg" ; V13 tmp10 [V13,T10] ( 3, 6 ) long -> x1 "Inlining Arg" ; V14 tmp11 [V14,T03] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V15 tmp12 [V15 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V16 tmp13 [V16,T23] ( 2, 4 ) long -> x0 "Inlining Arg" ; V17 tmp14 [V17,T11] ( 3, 6 ) long -> x1 "Inlining Arg" ; V18 tmp15 [V18,T04] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V19 tmp16 [V19 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V20 tmp17 [V20,T24] ( 2, 4 ) long -> x0 "Inlining Arg" ; V21 tmp18 [V21,T12] ( 3, 6 ) long -> x1 "Inlining Arg" ; V22 tmp19 [V22,T05] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V23 tmp20 [V23 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V24 tmp21 [V24,T25] ( 2, 4 ) long -> x0 "Inlining Arg" ; V25 tmp22 [V25,T13] ( 3, 6 ) long -> x1 "Inlining Arg" ; V26 tmp23 [V26,T06] ( 3, 6 ) byref -> x21 single-def "Inlining Arg" ;* V27 tmp24 [V27 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V28 tmp25 [V28,T26] ( 2, 4 ) long -> x0 "Inlining Arg" ; V29 tmp26 [V29,T14] ( 3, 6 ) long -> x1 "Inlining Arg" ; V30 tmp27 [V30,T07] ( 3, 6 ) byref -> x22 single-def "Inlining Arg" ;* V31 tmp28 [V31 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V32 tmp29 [V32,T27] ( 2, 4 ) long -> x0 "Inlining Arg" ; V33 tmp30 [V33,T15] ( 3, 6 ) long -> x1 "Inlining Arg" ; V34 tmp31 [V34,T08] ( 3, 6 ) byref -> x23 single-def "Inlining Arg" ;* V35 tmp32 [V35 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V36 tmp33 [V36,T28] ( 2, 4 ) long -> x0 "Inlining Arg" ; V37 tmp34 [V37,T16] ( 3, 6 ) long -> x1 "Inlining Arg" ; V38 tmp35 [V38,T09] ( 3, 6 ) byref -> x20 single-def "Inlining Arg" ;* V39 tmp36 [V39 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inline stloc first use temp" ; V40 tmp37 [V40,T29] ( 2, 4 ) long -> x0 "Inlining Arg" ; V41 tmp38 [V41,T17] ( 3, 6 ) long -> x4 "Inlining Arg" ; V42 cse0 [V42,T00] ( 9, 9 ) byref -> x20 "CSE #01: aggressive" ; V43 cse1 [V43,T18] ( 4, 4 ) mask -> [fp+0x10] spill-single-def "CSE #02: moderate" ; ; Lcl frame size = 8 G_M37833_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x60]! stp d8, d9, [sp, #0x18] stp d10, d11, [sp, #0x28] stp x19, x20, [sp, #0x38] stp x21, x22, [sp, #0x48] str x23, [sp, #0x58] mov fp, sp mov x19, x0 ; gcrRegs +[x19] ;; size=32 bbWeight=1 PerfScore 7.00 G_M37833_IG02: ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x1, #0xD1FFAB1E movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; gcrRegs -[x0] ptrue p0.s mov z8.s, p0/z, #1 add x20, x19, #80 ; byrRegs +[x20] mov x21, x20 ; byrRegs +[x21] ldrsb wzr, [x21] add x0, x21, #64 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v9.d[0], v8.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 ptrue p0.s mov v8.d[1], v9.d[0] cmpne p0.s, p0/z, z8.s, #0 add xip1, fp, #16 str p0, [xip1] ld1w { z8.s }, p0/z, [x0] mov x21, x20 add x0, x21, #40 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v10.d[0], v8.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 add xip1, fp, #16 ldr p0, [xip1] ld1w { z9.s }, p0/z, [x0] mov x21, x20 add x0, x21, #48 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v11.d[0], v9.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] ptrue p0.s mov v8.d[1], v10.d[0] cmpne p0.s, p0/z, z8.s, #0 add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 add xip1, fp, #16 ldr p1, [xip1] ld1w { z16.s }, p1/z, [x0] mov v9.d[1], v11.d[0] splice z9.s, p0, z9.s, z16.s mov x21, x20 add x0, x21, #56 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] mov v8.d[0], v9.d[1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x0, x0, x1 mov v9.d[1], v8.d[0] str q9, [x0] mov x21, x20 add x0, x21, #40 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x1, [x21, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x21, x0, x1 ; byrRegs -[x21] mov x22, x20 ; byrRegs +[x22] add x0, x22, #48 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x1, [x22, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x22, x0, x1 ; byrRegs -[x22] mov x23, x20 ; byrRegs +[x23] add x0, x23, #56 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x1, [x23, #0x20] add x0, x0, x1 sub x0, x0, #1 sub x1, x1, #1 bic x23, x0, x1 ; byrRegs -[x23] add x0, x20, #64 ; byrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ; byrRegs -[x0] ldr x4, [x20, #0x20] add x0, x0, x4 sub x0, x0, #1 sub x4, x4, #1 bic x4, x0, x4 mov x0, x19 ; gcrRegs +[x0] mov x1, x21 mov x2, x22 mov x3, x23 movz x5, #0xD1FFAB1E movk x5, #0xD1FFAB1E LSL #16 movk x5, #0xD1FFAB1E LSL #32 movz x6, #0xD1FFAB1E // code for <unknown method> movk x6, #0xD1FFAB1E LSL #16 movk x6, #0xD1FFAB1E LSL #32 ldr x6, [x6] blr x6 ; gcrRegs -[x0 x19] ; byrRegs -[x20] ;; size=600 bbWeight=1 PerfScore 180.50 G_M37833_IG03: ; bbWeight=1, epilog, nogc, extend ldr x23, [sp, #0x58] ldp x21, x22, [sp, #0x48] ldp x19, x20, [sp, #0x38] ldp d10, d11, [sp, #0x28] ldp d8, d9, [sp, #0x18] ldp fp, lr, [sp], #0x60 ret lr ;; size=28 bbWeight=1 PerfScore 8.00 ; Total bytes of code 660, prolog size 28, PerfScore 195.50, instruction count 165, allocated bytes for code 660 (MethodHash=80146c36) for method JIT.HardwareIntrinsics.Arm._Sve._Sve.SpliceTest__Sve_Splice_int:RunBasicScenario_Load():this (FullOpts) ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Code Words : 3 Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0 Function Length : 165 (0x000a5) Actual length = 660 (0x000294) ---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) Epilog Start Index : 1 (0x01) ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ---- D1 0B save_reg X#4 Z#11 (0x0B); str x23, [sp, #88] E6 save_next C8 07 save_regp X#0 Z#7 (0x07); stp x19, x20, [sp, #56] E6 save_next D8 03 save_fregp X#0 Z#3 (0x03); stp d8, d9, [sp, #24] 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! E4 end E4 end
Encontrar Diferença