Skip to content

Instantly share code, notes, and snippets.

@benpye
Created August 8, 2015 00:52
Show Gist options
  • Save benpye/f042a230742a5c59b664 to your computer and use it in GitHub Desktop.
Save benpye/f042a230742a5c59b664 to your computer and use it in GitHub Desktop.
Compiling 0 System.AppDomain::SetupDomain, IL size = 58, hsh=0x7a83b94f
; Assembly listing for method System.AppDomain:SetupDomain(bool,ref,ref,ref,ref):this
; Emitting BLENDED_CODE for generic ARM CPU
; optimized code
; r11 based frame
; fully interruptible
; Final local variable assignments
;
; V00 this [V00,T00] ( 6, 6 ) ref -> [sp+0x00] do-not-enreg[H] this
;* V01 arg1 [V01 ] ( 0, 0 ) bool -> zero ref
;* V02 arg2 [V02 ] ( 0, 0 ) ref -> zero ref
;* V03 arg3 [V03 ] ( 0, 0 ) ref -> zero ref
;* V04 arg4 [V04 ] ( 0, 0 ) ref -> zero ref
;* V05 arg5 [V05 ] ( 0, 0 ) ref -> zero ref
;* V06 loc0 [V06,T03] ( 0, 0 ) ref -> zero ref do-not-enreg[H]
; V07 loc1 [V07 ] ( 5, 5 ) bool -> [sp+0x04] do-not-enreg[XF] must-init addr-exposed
;* V08 loc2 [V08 ] ( 0, 0 ) ref -> zero ref
; V09 tmp0 [V09,T01] ( 4, 8 ) ref -> r12
; V10 tmp1 [V10,T02] ( 2, 4 ) bool -> r0
;# V11 OutArgs [V11 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00]
; V12 PSPSym [V12 ] ( 1, 1 ) int -> [sp+0x0C] do-not-enreg[X] addr-exposed
;
; Lcl frame size = 16
G_M18101_IG01:
000000 E92D 4800 push {r11,lr}
000004 B084 sub sp, 16
000006 F10D 0B10 add r11, sp, 16
00000A F04F 0C00 mov r12, 0
00000E F8CD C004 str r12, [sp+0x04] // [V07 loc1]
000012 F10D 0C18 add r12, sp, 24
000016 F8CD C00C str r12, [sp+0x0c] // [V12 PSPSym]
00001A 9000 str r0, [sp] // [V00 this]
G_M18101_IG02:
00001C 2300 movs r3, 0
00001E 9301 str r3, [sp+0x04] // [V07 loc1]
G_M18101_IG03:
000020 F89D 3004 ldrb r3, [sp+0x04] // [V07 loc1]
000024 2200 movs r2, 0
000026 4293 cmp r3, r2
000028 D004 beq SHORT G_M18101_IG04
00002A F248 7C91 movw r12, 0x8791
00002E F2CB 3CA0 movt r12, 0xb3a0
000032 47E0 blx r12 // System.Threading.Monitor:ThrowLockTakenException()
G_M18101_IG04:
000034 A901 add r1, sp, 4 // [V07 loc1]
000036 9800 ldr r0, [sp] // [V00 this]
000038 F24B 5CF5 movw r12, 0xb5f5
00003C F2CB 5CD5 movt r12, 0xb5d5
000040 47E0 blx r12 // System.Threading.Monitor:ReliableEnter(ref,byref)
000042 F89D 0004 ldrb r0, [sp+0x04] // [V07 loc1]
000046 2100 movs r1, 0
000048 4288 cmp r0, r1
00004A D108 bne SHORT G_M18101_IG05
00004C 2004 movs r0, 4
00004E 2100 movs r1, 0
000050 2200 movs r2, 0
000052 2300 movs r3, 0
000054 F64D 1C05 movw r12, 0xd905
000058 F2CB 3CA0 movt r12, 0xb3a0
00005C 47E0 blx r12 // System.Diagnostics.Contracts.Contract:ReportFailure(int,ref,ref,ref)
G_M18101_IG05:
00005E 9800 ldr r0, [sp] // [V00 this]
000060 68C0 ldr r0, [r0+12]
000062 2300 movs r3, 0
000064 4298 cmp r0, r3
000066 D120 bne SHORT G_M18101_IG06
000068 F645 30F4 movw r0, 0x5bf4
00006C F2CB 100B movt r0, 0xb10b
000070 F246 4CDD movw r12, 0x64dd
000074 F2CB 5CD5 movt r12, 0xb5d5
000078 47E0 blx r12 // CORINFO_HELP_NEWSFAST
00007A 4684 mov r12, r0
00007C 2100 movs r1, 0
00007E F8CC 102C str r1, [r12+44]
000082 F241 013C movw r1, 0x103c
000086 F2CB 2190 movt r1, 0xb290
00008A 6809 ldr r1, [r1]
00008C F10C 0014 add r0, r12, 20
000090 F24B 2C81 movw r12, 0xb281
000094 F2CB 5CDE movt r12, 0xb5de
000098 47E0 blx r12 // CORINFO_HELP_ASSIGN_REF
00009A 9800 ldr r0, [sp] // [V00 this]
00009C 4661 mov r1, r12
00009E 2200 movs r2, 0
0000A0 F648 2C21 movw r12, 0x8a21
0000A4 F2CB 3CA0 movt r12, 0xb3a0
0000A8 47E0 blx r12 // System.AppDomain:SetupFusionStore(ref,ref):this
G_M18101_IG06:
0000AA F64D 2E5B movw lr, LOW ADDRESS G_M18101_IG08
0000AE F2CB 3EA0 movt lr, HIGH ADDRESS G_M18101_IG08
0000B2 E004 b SHORT G_M18101_IG09
G_M18101_IG07:
0000B4 BF00 nop
G_M18101_IG08:
0000B6 B004 add sp, 16
0000B8 E8BD 4800 pop {r11,lr}
0000BC 4770 bx lr
G_M18101_IG09:
0000BE E92D 480C push {r2,r3,r11,lr}
0000C2 F10B 0308 add r3, r11, 8
0000C6 9301 str r3, [sp+0x04]
G_M18101_IG10:
0000C8 F85B 0C0C ldr r0, [r11-0x0c] // [V07 loc1]
0000CC B2C0 uxtb r0, r0
0000CE 2300 movs r3, 0
0000D0 4298 cmp r0, r3
0000D2 D006 beq SHORT G_M18101_IG11
0000D4 F85B 0C10 ldr r0, [r11-0x10] // [V00 this]
0000D8 F64B 3C6D movw r12, 0xbb6d
0000DC F2CB 5CD5 movt r12, 0xb5d5
0000E0 47E0 blx r12 // System.Threading.Monitor:Exit(ref)
G_M18101_IG11:
0000E2 E8BD 880C pop {r2,r3,r11,pc}
; Total bytes of code 230, prolog size 28 for method System.AppDomain:SetupDomain(bool,ref,ref,ref,ref):this
; ============================================================
Compiling 1 System.AppDomain::SetupFusionStore, IL size = 71, hsh=0xc5141dd8
; Assembly listing for method System.AppDomain:SetupFusionStore(ref,ref):this
; Emitting BLENDED_CODE for generic ARM CPU
; optimized code
; r11 based frame
; partially interruptible
; Final local variable assignments
;
; V00 this [V00,T01] ( 5, 4.5) ref -> r5 this
; V01 arg1 [V01,T00] ( 11, 9.7) ref -> r4
; V02 arg2 [V02,T03] ( 4, 3 ) ref -> r6
; V03 tmp0 [V03,T07] ( 2, 2 ) int -> r0
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> r0
; V05 tmp2 [V05,T08] ( 1, 2 ) ref -> r0
; V06 tmp3 [V06,T04] ( 2, 4 ) ref -> r1
; V07 tmp4 [V07,T06] ( 2, 2 ) ref -> r1
;# V08 OutArgs [V08 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00]
; V09 cse0 [V09,T05] ( 4, 3 ) int -> r1
;
; Lcl frame size = 4
G_M57902_IG01:
000000 E92D 4878 push {r3,r4,r5,r6,r11,lr}
000004 F10D 0B10 add r11, sp, 16
000008 4605 mov r5, r0
00000A 460C mov r4, r1
00000C 4616 mov r6, r2
G_M57902_IG02:
00000E 6820 ldr r0, [r4]
000010 6860 ldr r0, [r4+4]
000012 2100 movs r1, 0
000014 4288 cmp r0, r1
000016 D110 bne SHORT G_M57902_IG03
000018 F642 0076 movw r0, 0x2876
00001C F2CB 1007 movt r0, 0xb107
000020 2112 movs r1, 18
000022 F646 7C2D movw r12, 0x6f2d
000026 F2CB 5CD5 movt r12, 0xb5d5
00002A 47E0 blx r12 // CORINFO_HELP_NEWARR_1_OBJ
00002C 4601 mov r1, r0
00002E 1D20 adds r0, r4, 4
000030 F24B 2C81 movw r12, 0xb281
000034 F2CB 5CDE movt r12, 0xb5de
000038 47E0 blx r12 // CORINFO_HELP_ASSIGN_REF
G_M57902_IG03:
00003A 4620 mov r0, r4
00003C 6860 ldr r0, [r4+4]
00003E 6841 ldr r1, [r0+4]
000040 2200 movs r2, 0
000042 428A cmp r2, r1
000044 D238 bhs SHORT G_M57902_IG08
000046 6881 ldr r1, [r0+8]
000048 4620 mov r0, r4
00004A F249 1CB1 movw r12, 0x91b1
00004E F2CB 3CA0 movt r12, 0xb3a0
000052 47E0 blx r12 // System.AppDomainSetup:VerifyDir(ref,bool):ref:this
000054 2300 movs r3, 0
000056 4298 cmp r0, r3
000058 D10C bne SHORT G_M57902_IG04
00005A F240 6CC5 movw r12, 0x6c5
00005E F2CB 6C10 movt r12, 0xb610
000062 47E0 blx r12 // System.Runtime.InteropServices.RuntimeEnvironment:GetModuleFileName():ref
000064 4601 mov r1, r0
000066 4620 mov r0, r4
000068 2201 movs r2, 1
00006A F249 0CCD movw r12, 0x90cd
00006E F2CB 3CA0 movt r12, 0xb3a0
000072 47E0 blx r12 // System.AppDomainSetup:SetupDefaults(ref,bool):this
G_M57902_IG04:
000074 4628 mov r0, r5
000076 F241 7CFD movw r12, 0x17fd
00007A F2CB 5CFB movt r12, 0xb5fb
00007E 47E0 blx r12 // System.AppDomain:nCreateContext():this
000080 6AE1 ldr r1, [r4+44]
000082 2000 movs r0, 0
000084 4281 cmp r1, r0
000086 D106 bne SHORT G_M57902_IG05
000088 2000 movs r0, 0
00008A 4286 cmp r6, r0
00008C D009 beq SHORT G_M57902_IG06
00008E 4608 mov r0, r1
000090 6AF3 ldr r3, [r6+44]
000092 4298 cmp r0, r3
000094 D005 beq SHORT G_M57902_IG06
G_M57902_IG05:
000096 4628 mov r0, r5
000098 F640 5C49 movw r12, 0xd49
00009C F2CB 5CFB movt r12, 0xb5fb
0000A0 47E0 blx r12 // System.AppDomain:UpdateLoaderOptimization(int):this
G_M57902_IG06:
0000A2 F105 000C add r0, r5, 12
0000A6 4621 mov r1, r4
0000A8 F24B 2C81 movw r12, 0xb281
0000AC F2CB 5CDE movt r12, 0xb5de
0000B0 47E0 blx r12 // CORINFO_HELP_ASSIGN_REF
G_M57902_IG07:
0000B2 E8BD 4878 pop {r3,r4,r5,r6,r11,lr}
0000B6 4770 bx lr
G_M57902_IG08:
0000B8 F24F 3C35 movw r12, 0xf335
0000BC F2CB 5CD5 movt r12, 0xb5d5
0000C0 47E0 blx r12 // CORINFO_HELP_RNGCHKFAIL
0000C2 DEFE bkpt
; Total bytes of code 196, prolog size 8 for method System.AppDomain:SetupFusionStore(ref,ref):this
; ============================================================
Program received signal SIGSEGV, Segmentation fault.
0xb3a0daee in ?? ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment