@@ -81,7 +81,7 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
movs r2, 0
str r2, [sp+0x08] // [V09 loc5]
cmp r6, 0
- beq G_M25359_IG13
+ beq G_M25359_IG12
movw lr, 0xd1ff
movt lr, 0xd1ff
str lr, [sp] // [V10 loc6]
@@ -90,27 +90,16 @@ G_M25359_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
movs r1, 3
mul r0, r0, r1
cmp r7, r0
- blt SHORT G_M25359_IG04
- ;; size=68 bbWeight=1 PerfScore 23.00
-G_M25359_IG03: ; bbWeight=0.83, gcVars=00000020 {V10}, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, gcvars, byref, isz
+ blt G_M25359_IG25
+ ;; size=70 bbWeight=1 PerfScore 23.00
+G_M25359_IG03: ; bbWeight=0.83, gcVars=00000020 {V10}, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, gcvars, byref
sub r12, r10, 4
- b SHORT G_M25359_IG05
- ;; size=6 bbWeight=0.83 PerfScore 1.67
-G_M25359_IG04: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref
- mov r0, r7
- movs r1, 3
- movw r12, 0xd1ff
- movt r12, 0xd1ff
- blx r12 // CORINFO_HELP_DIV
- ; gcr arg pop 0
- lsl r12, r0, 2
- ldr r7, [sp+0x10] // [V07 loc3]
- ;; size=20 bbWeight=0.17 PerfScore 1.17
-G_M25359_IG05: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref, isz
+ ;; size=4 bbWeight=0.83 PerfScore 0.83
+G_M25359_IG04: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref, isz
cmp r12, 0
- ble G_M25359_IG21
+ ble G_M25359_IG20
;; size=8 bbWeight=0.17 PerfScore 0.33
-G_M25359_IG06: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref, isz
+G_M25359_IG05: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref, isz
ldr r3, [sp+0x0C] // [V08 loc4]
lsls r0, r3, 1
add r0, r8
@@ -140,11 +129,11 @@ G_M25359_IG06: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8
lsls r1, r1, 6
orrs r1, r0
;; size=72 bbWeight=20.67 PerfScore 516.67
-G_M25359_IG07: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, byref, isz
+G_M25359_IG06: ; bbWeight=20.67, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, byref, isz
cmp r1, 0
- blt SHORT G_M25359_IG22
+ blt SHORT G_M25359_IG21
;; size=4 bbWeight=20.67 PerfScore 41.33
-G_M25359_IG08: ; bbWeight=21.67, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, byref, isz
+G_M25359_IG07: ; bbWeight=21.67, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, byref, isz
ldr r2, [sp+0x08] // [V09 loc5]
add r0, r9, r2
; byrRegs +[r0]
@@ -156,16 +145,16 @@ G_M25359_IG08: ; bbWeight=21.67, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8
adds r2, r2, 3
adds r3, r3, 4
cmp r3, r12
- blt SHORT G_M25359_IG20
+ blt SHORT G_M25359_IG19
;; size=24 bbWeight=21.67 PerfScore 238.33
-G_M25359_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, byref, isz
+G_M25359_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, byref, isz
; byrRegs -[r0]
ldr r10, [sp+0x14] // [V06 loc2]
sub r0, r10, 4
cmp r12, r0
- bne SHORT G_M25359_IG19
+ bne SHORT G_M25359_IG18
cmp r3, r10
- beq SHORT G_M25359_IG18
+ beq SHORT G_M25359_IG17
lsl r0, r10, 1
sub r1, r0, 8
ldrh r5, [r8+r1]
@@ -182,7 +171,7 @@ G_M25359_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9
mvn r7, 255
ands r6, r7
cmp r6, 0
- bne SHORT G_M25359_IG17
+ bne SHORT G_M25359_IG16
ldrsb r5, [lr+r5]
lsls r5, r5, 18
ldrsb r1, [lr+r1]
@@ -191,7 +180,7 @@ G_M25359_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9
cmp r0, 61
beq SHORT G_M25359_IG26
;; size=86 bbWeight=1 PerfScore 29.00
-G_M25359_IG10: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=4210 {r4 r9 lr}, byref, isz
+G_M25359_IG09: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=4210 {r4 r9 lr}, byref, isz
ldrsb r0, [lr+r0]
orrs r0, r5
ldrsb r12, [lr+r12]
@@ -199,11 +188,11 @@ G_M25359_IG10: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=4210 {r4 r9
; byrRegs -[lr]
orr r5, r0, lr
cmp r5, 0
- blt SHORT G_M25359_IG16
+ blt SHORT G_M25359_IG15
ldr r7, [sp+0x10] // [V07 loc3]
subs r0, r7, 3
cmp r2, r0
- bgt SHORT G_M25359_IG15
+ bgt SHORT G_M25359_IG14
add r0, r9, r2
; byrRegs +[r0]
asrs r1, r5, 16
@@ -213,19 +202,19 @@ G_M25359_IG10: ; bbWeight=0.83, gcrefRegs=0000 {}, byrefRegs=4210 {r4 r9
strb r5, [r0+0x02]
adds r2, r2, 3
;; size=46 bbWeight=0.83 PerfScore 15.00
-G_M25359_IG11: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
+G_M25359_IG10: ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
; byrRegs -[r0 r9]
; GC ptr vars -{V10}
adds r3, r3, 4
ldr r6, [sp+0x04] // [V41 tmp24]
cmp r10, r6
str r2, [sp+0x08] // [V09 loc5]
- bne SHORT G_M25359_IG22
+ bne SHORT G_M25359_IG21
;; size=10 bbWeight=1 PerfScore 5.00
-G_M25359_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
+G_M25359_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
str r3, [sp+0x0C] // [V08 loc4]
;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M25359_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
+G_M25359_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
ldr r3, [sp+0x0C] // [V08 loc4]
str r3, [r4]
ldr r5, [sp+0x54] // [V03 arg3]
@@ -234,49 +223,49 @@ G_M25359_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
str r2, [r5]
movs r0, 1
;; size=12 bbWeight=1 PerfScore 6.00
-G_M25359_IG14: ; bbWeight=1, epilog, nogc, extend
+G_M25359_IG13: ; bbWeight=1, epilog, nogc, extend
add sp, 28
pop {r4,r5,r6,r7,r8,r9,r10,r11,lr}
add sp, 16
bx lr
;; size=10 bbWeight=1 PerfScore 4.00
-G_M25359_IG15: ; bbWeight=0.42, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
+G_M25359_IG14: ; bbWeight=0.42, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
; byrRegs -[r5]
str r2, [sp+0x08] // [V09 loc5]
- b SHORT G_M25359_IG22
+ b SHORT G_M25359_IG21
;; size=4 bbWeight=0.42 PerfScore 0.83
-G_M25359_IG16: ; bbWeight=0.42, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+G_M25359_IG15: ; bbWeight=0.42, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
str r2, [sp+0x08] // [V09 loc5]
- b SHORT G_M25359_IG22
+ b SHORT G_M25359_IG21
;; size=4 bbWeight=0.42 PerfScore 0.83
+G_M25359_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+ str r2, [sp+0x08] // [V09 loc5]
+ b SHORT G_M25359_IG21
+ ;; size=4 bbWeight=0.50 PerfScore 1.00
G_M25359_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
str r2, [sp+0x08] // [V09 loc5]
- b SHORT G_M25359_IG22
+ b SHORT G_M25359_IG21
;; size=4 bbWeight=0.50 PerfScore 1.00
G_M25359_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
str r2, [sp+0x08] // [V09 loc5]
- b SHORT G_M25359_IG22
+ b SHORT G_M25359_IG21
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M25359_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
- str r2, [sp+0x08] // [V09 loc5]
- b SHORT G_M25359_IG22
- ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M25359_IG20: ; bbWeight=10.83, gcVars=00000020 {V10}, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, gcvars, byref, isz
+G_M25359_IG19: ; bbWeight=10.83, gcVars=00000020 {V10}, gcrefRegs=0000 {}, byrefRegs=4310 {r4 r8 r9 lr}, gcvars, byref, isz
; byrRegs +[r8-r9 lr]
; GC ptr vars +{V05 V10}
str r3, [sp+0x0C] // [V08 loc4]
str r2, [sp+0x08] // [V09 loc5]
- b SHORT G_M25359_IG06
+ b SHORT G_M25359_IG05
;; size=6 bbWeight=10.83 PerfScore 32.50
-G_M25359_IG21: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref, isz
+G_M25359_IG20: ; bbWeight=0.08, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, byref, isz
; byrRegs -[lr]
ldr r2, [sp+0x08] // [V09 loc5]
ldr r3, [sp+0x0C] // [V08 loc4]
ldr lr, [sp] // [V10 loc6]
; byrRegs +[lr]
- b SHORT G_M25359_IG09
+ b SHORT G_M25359_IG08
;; size=10 bbWeight=0.08 PerfScore 0.33
-G_M25359_IG22: ; bbWeight=5.94, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
+G_M25359_IG21: ; bbWeight=5.94, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, gcvars, byref, isz
; byrRegs -[r8-r9 lr]
; GC ptr vars -{V05 V10}
str r3, [r4]
@@ -287,15 +276,15 @@ G_M25359_IG22: ; bbWeight=5.94, gcVars=00000000 {}, gcrefRegs=0000 {}, by
ldr r0, [r4]
ands r0, r0, 3
cmp r0, 0
- beq SHORT G_M25359_IG23
+ beq SHORT G_M25359_IG22
movs r0, 0
- b SHORT G_M25359_IG24
+ b SHORT G_M25359_IG23
;; size=22 bbWeight=5.94 PerfScore 59.39
-G_M25359_IG23: ; bbWeight=5.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25359_IG22: ; bbWeight=5.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[r4-r5]
movs r0, 1
;; size=2 bbWeight=5.94 PerfScore 5.94
-G_M25359_IG24: ; bbWeight=5.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M25359_IG23: ; bbWeight=5.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movw r3, 0xd1ff
movt r3, 0xd1ff
ldr r3, [r3]
@@ -303,15 +292,27 @@ G_M25359_IG24: ; bbWeight=5.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcr arg pop 0
movs r0, 0
;; size=14 bbWeight=5.94 PerfScore 29.69
-G_M25359_IG25: ; bbWeight=5.94, epilog, nogc, extend
+G_M25359_IG24: ; bbWeight=5.94, epilog, nogc, extend
add sp, 28
pop {r4,r5,r6,r7,r8,r9,r10,r11,lr}
add sp, 16
bx lr
;; size=10 bbWeight=5.94 PerfScore 23.75
-G_M25359_IG26: ; bbWeight=0.17, gcVars=00000020 {V10}, gcrefRegs=0000 {}, byrefRegs=4210 {r4 r9 lr}, gcvars, byref, isz
- ; byrRegs +[r4 r9 lr]
+G_M25359_IG25: ; bbWeight=0.17, gcVars=00000020 {V10}, gcrefRegs=0000 {}, byrefRegs=0310 {r4 r8 r9}, gcvars, byref, isz
+ ; byrRegs +[r4 r8-r9]
; GC ptr vars +{V05 V10}
+ mov r0, r7
+ movs r1, 3
+ movw r12, 0xd1ff
+ movt r12, 0xd1ff
+ blx r12 // CORINFO_HELP_DIV
+ ; gcr arg pop 0
+ lsl r12, r0, 2
+ ldr r7, [sp+0x10] // [V07 loc3]
+ b SHORT G_M25359_IG04
+ ;; size=22 bbWeight=0.17 PerfScore 1.33
+G_M25359_IG26: ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=4210 {r4 r9 lr}, byref, isz
+ ; byrRegs -[r8] +[lr]
...