Skip to content

Instantly share code, notes, and snippets.

@AndyAyersMS
Created May 18, 2016 02:01
Show Gist options
  • Save AndyAyersMS/580046b927ac3be87d538463ebddf8b2 to your computer and use it in GitHub Desktop.
Save AndyAyersMS/580046b927ac3be87d538463ebddf8b2 to your computer and use it in GitHub Desktop.
Inline Examples
; Total bytes of code 30, prolog size 1 for method NewtE:Main():int
; ============================================================
; Assembly listing for method NewtE:Bench():bool
; Emitting BLENDED_CODE for X64 CPU with SSE2
; optimized code
; rbp based frame
; fully interruptible
; Final local variable assignments
;
;* V00 loc0 [V00,T27] ( 0, 0 ) double -> zero-ref
; V01 loc1 [V01,T25] ( 3, 28 ) double -> mm0
; V02 loc2 [V02,T26] ( 2, 24 ) double -> mm1
; V03 loc3 [V03,T02] ( 24, 372 ) double -> [rbp-0x18]
; V04 loc4 [V04,T03] ( 11, 164 ) double -> [rbp-0x20]
; V05 loc5 [V05,T18] ( 3, 48 ) double -> [rbp-0x28]
; V06 loc6 [V06,T23] ( 3, 40 ) double -> [rbp-0x30]
; V07 loc7 [V07,T01] ( 4, 13 ) int -> rbx
; V08 loc8 [V08,T00] ( 4, 52 ) int -> r14
; V09 tmp0 [V09,T05] ( 2, 64 ) double -> mm1
; V10 tmp1 [V10,T06] ( 2, 64 ) double -> mm1
; V11 tmp2 [V11,T07] ( 2, 64 ) double -> mm5
; V12 tmp3 [V12,T08] ( 2, 64 ) double -> [rbp-0x38]
; V13 tmp4 [V13,T09] ( 2, 64 ) double -> mm0
; V14 tmp5 [V14,T10] ( 2, 64 ) double -> mm0
; V15 tmp6 [V15,T11] ( 2, 64 ) double -> mm6
; V16 tmp7 [V16,T12] ( 2, 64 ) double -> [rbp-0x40]
; V17 tmp8 [V17,T13] ( 2, 64 ) double -> [rbp-0x48]
; V18 tmp9 [V18,T14] ( 2, 64 ) double -> mm0
; V19 tmp10 [V19,T15] ( 2, 64 ) double -> [rbp-0x50]
; V20 tmp11 [V20,T16] ( 2, 64 ) double -> mm0
; V21 tmp12 [V21,T17] ( 2, 64 ) double -> mm0
;* V22 tmp13 [V22,T24] ( 0, 0 ) double -> zero-ref
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref
;* V26 tmp17 [V26 ] ( 0, 0 ) ref -> zero-ref
;* V27 tmp18 [V27 ] ( 0, 0 ) ref -> zero-ref
;* V28 tmp19 [V28 ] ( 0, 0 ) ref -> zero-ref
;* V29 tmp20 [V29 ] ( 0, 0 ) ref -> zero-ref
;* V30 tmp21 [V30 ] ( 0, 0 ) ref -> zero-ref
;* V31 tmp22 [V31 ] ( 0, 0 ) ref -> zero-ref
;* V32 tmp23 [V32 ] ( 0, 0 ) ref -> zero-ref
;* V33 tmp24 [V33 ] ( 0, 0 ) ref -> zero-ref
;* V34 tmp25 [V34 ] ( 0, 0 ) ref -> zero-ref
;* V35 tmp26 [V35 ] ( 0, 0 ) ref -> zero-ref
;* V36 tmp27 [V36 ] ( 0, 0 ) ref -> zero-ref
;* V37 tmp28 [V37 ] ( 0, 0 ) ref -> zero-ref
;* V38 tmp29 [V38 ] ( 0, 0 ) ref -> zero-ref
;* V39 tmp30 [V39 ] ( 0, 0 ) ref -> zero-ref
;* V40 tmp31 [V40 ] ( 0, 0 ) ref -> zero-ref
;* V41 tmp32 [V41 ] ( 0, 0 ) ref -> zero-ref
;* V42 tmp33 [V42 ] ( 0, 0 ) ref -> zero-ref
;* V43 tmp34 [V43 ] ( 0, 0 ) ref -> zero-ref
;* V44 tmp35 [V44 ] ( 0, 0 ) ref -> zero-ref
;* V45 tmp36 [V45 ] ( 0, 0 ) ref -> zero-ref
;* V46 tmp37 [V46 ] ( 0, 0 ) ref -> zero-ref
;* V47 tmp38 [V47 ] ( 0, 0 ) ref -> zero-ref
;* V48 tmp39 [V48 ] ( 0, 0 ) ref -> zero-ref
;* V49 tmp40 [V49 ] ( 0, 0 ) ref -> zero-ref
;* V50 tmp41 [V50 ] ( 0, 0 ) ref -> zero-ref
;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref
;* V52 tmp43 [V52 ] ( 0, 0 ) ref -> zero-ref
;* V53 tmp44 [V53 ] ( 0, 0 ) ref -> zero-ref
;* V54 tmp45 [V54 ] ( 0, 0 ) ref -> zero-ref
;# V55 OutArgs [V55 ] ( 1, 1 ) lclBlk ( 0) [rsp+0x00]
; V56 cse0 [V56,T19] ( 3, 48 ) double -> [rbp-0x58]
; V57 cse1 [V57,T20] ( 3, 48 ) double -> [rbp-0x60]
; V58 cse2 [V58,T21] ( 3, 48 ) double -> [rbp-0x68]
; V59 cse3 [V59,T04] ( 3, 48 ) double -> [rbp-0x70]
; V60 cse4 [V60,T22] ( 3, 48 ) double -> [rbp-0x78]
; TEMP_01 double -> [rbp-0x80]
;
; Lcl frame size = 112
G_M5868_IG01:
55 push rbp
4156 push r14
53 push rbx
4883EC70 sub rsp, 112
488DAC2480000000 lea rbp, [rsp+80H]
G_M5868_IG02:
BB01000000 mov ebx, 1
G_M5868_IG03:
F20F1005FB030000 movsd xmm0, qword ptr [reloc @RWD00]
F20F1145E8 movsd qword ptr [rbp-18H], xmm0
F20F100DF6030000 movsd xmm1, qword ptr [reloc @RWD08]
F20F114DE0 movsd qword ptr [rbp-20H], xmm1
F20F1005F1030000 movsd xmm0, qword ptr [reloc @RWD16]
E814962D79 call System.Math:Log(double):double
F20F5905EC030000 mulsd xmm0, qword ptr [reloc @RWD24]
F20F114580 movsd qword ptr [rbp-80H], xmm0
F20F1005E7030000 movsd xmm0, qword ptr [reloc @RWD32]
E8FA952D79 call System.Math:Log(double):double
F20F104D80 movsd xmm1, qword ptr [rbp-80H]
F20F5EC8 divsd xmm1, xmm0
F20F580DD9030000 addsd xmm1, qword ptr [reloc @RWD40]
0F28C1 movaps xmm0, xmm1
F20F5C05D6030000 subsd xmm0, qword ptr [reloc @RWD48]
41BE01000000 mov r14d, 1
G_M5868_IG04:
F20F1045E8 movsd xmm0, qword ptr [rbp-18H]
E8CE952D79 call System.Math:Log(double):double
F20F5905C6030000 mulsd xmm0, qword ptr [reloc @RWD56]
F20F114580 movsd qword ptr [rbp-80H], xmm0
F20F1005C1030000 movsd xmm0, qword ptr [reloc @RWD64]
E8B4952D79 call System.Math:Log(double):double
F20F104D80 movsd xmm1, qword ptr [rbp-80H]
F20F5EC8 divsd xmm1, xmm0
F20F1045E8 movsd xmm0, qword ptr [rbp-18H]
F20F58C8 addsd xmm1, xmm0
F20F1055E0 movsd xmm2, qword ptr [rbp-20H]
0F28DA movaps xmm3, xmm2
F20F59DA mulsd xmm3, xmm2
F20F115D88 movsd qword ptr [rbp-78H], xmm3
F20F5CCB subsd xmm1, xmm3
F20F102595030000 movsd xmm4, qword ptr [reloc @RWD72]
660F57CC xorpd xmm1, xmm4
F20F102589030000 movsd xmm4, qword ptr [reloc @RWD72]
660F57E0 xorpd xmm4, xmm0
F20F59CC mulsd xmm1, xmm4
0F28E0 movaps xmm4, xmm0
F20F59257E030000 mulsd xmm4, qword ptr [reloc @RWD80]
F20F59E0 mulsd xmm4, xmm0
0F28E8 movaps xmm5, xmm0
F20F59EA mulsd xmm5, xmm2
F20F5CE5 subsd xmm4, xmm5
F20F1145E8 movsd qword ptr [rbp-18H], xmm0
0F28E8 movaps xmm5, xmm0
F20F592D67030000 mulsd xmm5, qword ptr [reloc @RWD88]
F20F5CE5 subsd xmm4, xmm5
F20F582563030000 addsd xmm4, qword ptr [reloc @RWD96]
F20F1165A8 movsd qword ptr [rbp-58H], xmm4
0F28EC movaps xmm5, xmm4
F20F1155E0 movsd qword ptr [rbp-20H], xmm2
0F28F2 movaps xmm6, xmm2
F20F593553030000 mulsd xmm6, qword ptr [reloc @RWD104]
F20F117590 movsd qword ptr [rbp-70H], xmm6
F20F59EE mulsd xmm5, xmm6
F20F58CD addsd xmm1, xmm5
F20F114DC8 movsd qword ptr [rbp-38H], xmm1
F20F100541030000 movsd xmm0, qword ptr [reloc @RWD112]
E804952D79 call System.Math:Log(double):double
F20F104DE8 movsd xmm1, qword ptr [rbp-18H]
F20F59C1 mulsd xmm0, xmm1
F20F101533030000 movsd xmm2, qword ptr [reloc @RWD120]
F20F5ED0 divsd xmm2, xmm0
0F28C2 movaps xmm0, xmm2
F20F58052C030000 addsd xmm0, qword ptr [reloc @RWD128]
F20F1015EC020000 movsd xmm2, qword ptr [reloc @RWD72]
660F57D1 xorpd xmm2, xmm1
F20F59C2 mulsd xmm0, xmm2
F20F107590 movsd xmm6, qword ptr [rbp-70H]
F20F114DE8 movsd qword ptr [rbp-18H], xmm1
0F28D1 movaps xmm2, xmm1
F20F59150F030000 mulsd xmm2, qword ptr [reloc @RWD136]
F20F105DE0 movsd xmm3, qword ptr [rbp-20H]
F20F5CD3 subsd xmm2, xmm3
F20F5C1506030000 subsd xmm2, qword ptr [reloc @RWD144]
F20F115598 movsd qword ptr [rbp-68H], xmm2
0F28E2 movaps xmm4, xmm2
F20F59E6 mulsd xmm4, xmm6
F20F1165A0 movsd qword ptr [rbp-60H], xmm4
F20F5CC4 subsd xmm0, xmm4
F20F106DC8 movsd xmm5, qword ptr [rbp-38H]
F20F5EE8 divsd xmm5, xmm0
F20F116DD8 movsd qword ptr [rbp-28H], xmm5
F20F1075A8 movsd xmm6, qword ptr [rbp-58H]
F20F10058E020000 movsd xmm0, qword ptr [reloc @RWD72]
660F57C6 xorpd xmm0, xmm6
G_M5868_IG05:
F20F1145C0 movsd qword ptr [rbp-40H], xmm0
F20F1005CD020000 movsd xmm0, qword ptr [reloc @RWD152]
E868942D79 call System.Math:Log(double):double
F20F104DE8 movsd xmm1, qword ptr [rbp-18H]
F20F59C1 mulsd xmm0, xmm1
F20F1015BF020000 movsd xmm2, qword ptr [reloc @RWD160]
F20F5ED0 divsd xmm2, xmm0
F20F5815BB020000 addsd xmm2, qword ptr [reloc @RWD168]
F20F1045C0 movsd xmm0, qword ptr [rbp-40H]
F20F59C2 mulsd xmm0, xmm2
F20F1145B8 movsd qword ptr [rbp-48H], xmm0
F20F114DE8 movsd qword ptr [rbp-18H], xmm1
0F28C1 movaps xmm0, xmm1
E830942D79 call System.Math:Log(double):double
F20F5905A0020000 mulsd xmm0, qword ptr [reloc @RWD176]
F20F114580 movsd qword ptr [rbp-80H], xmm0
F20F10059B020000 movsd xmm0, qword ptr [reloc @RWD184]
E816942D79 call System.Math:Log(double):double
F20F104D80 movsd xmm1, qword ptr [rbp-80H]
F20F5EC8 divsd xmm1, xmm0
F20F1055E8 movsd xmm2, qword ptr [rbp-18H]
F20F58CA addsd xmm1, xmm2
F20F105D88 movsd xmm3, qword ptr [rbp-78H]
0F28C1 movaps xmm0, xmm1
F20F5CC3 subsd xmm0, xmm3
F20F104D98 movsd xmm1, qword ptr [rbp-68H]
F20F59C8 mulsd xmm1, xmm0
F20F1045B8 movsd xmm0, qword ptr [rbp-48H]
F20F58C1 addsd xmm0, xmm1
F20F1145B0 movsd qword ptr [rbp-50H], xmm0
F20F100561020000 movsd xmm0, qword ptr [reloc @RWD192]
E8D4932D79 call System.Math:Log(double):double
F20F1055E8 movsd xmm2, qword ptr [rbp-18H]
F20F59C2 mulsd xmm0, xmm2
F20F100D53020000 movsd xmm1, qword ptr [reloc @RWD200]
F20F5EC8 divsd xmm1, xmm0
0F28C1 movaps xmm0, xmm1
F20F58054C020000 addsd xmm0, qword ptr [reloc @RWD208]
F20F100DBC010000 movsd xmm1, qword ptr [reloc @RWD72]
660F57CA xorpd xmm1, xmm2
F20F59C1 mulsd xmm0, xmm1
F20F1065A0 movsd xmm4, qword ptr [rbp-60H]
F20F5CC4 subsd xmm0, xmm4
F20F104DB0 movsd xmm1, qword ptr [rbp-50H]
F20F5EC8 divsd xmm1, xmm0
F20F106DD8 movsd xmm5, qword ptr [rbp-28H]
F20F58D5 addsd xmm2, xmm5
F20F105DE0 movsd xmm3, qword ptr [rbp-20H]
F20F114DD0 movsd qword ptr [rbp-30H], xmm1
F20F58D9 addsd xmm3, xmm1
F20F115DE0 movsd qword ptr [rbp-20H], xmm3
F20F1155E8 movsd qword ptr [rbp-18H], xmm2
0F28C2 movaps xmm0, xmm2
E869932D79 call System.Math:Log(double):double
F20F590501020000 mulsd xmm0, qword ptr [reloc @RWD216]
F20F114580 movsd qword ptr [rbp-80H], xmm0
F20F1005FC010000 movsd xmm0, qword ptr [reloc @RWD224]
E84F932D79 call System.Math:Log(double):double
F20F104D80 movsd xmm1, qword ptr [rbp-80H]
F20F5EC8 divsd xmm1, xmm0
F20F1055E8 movsd xmm2, qword ptr [rbp-18H]
F20F58CA addsd xmm1, xmm2
F20F105DE0 movsd xmm3, qword ptr [rbp-20H]
0F28C3 movaps xmm0, xmm3
F20F59C3 mulsd xmm0, xmm3
F20F5CC8 subsd xmm1, xmm0
0F28C1 movaps xmm0, xmm1
0F28CA movaps xmm1, xmm2
G_M5868_IG06:
F20F590DCF010000 mulsd xmm1, qword ptr [reloc @RWD232]
F20F59CA mulsd xmm1, xmm2
0F28E2 movaps xmm4, xmm2
F20F59E3 mulsd xmm4, xmm3
F20F5CCC subsd xmm1, xmm4
0F28E2 movaps xmm4, xmm2
F20F5925BD010000 mulsd xmm4, qword ptr [reloc @RWD240]
F20F5CCC subsd xmm1, xmm4
F20F580DB9010000 addsd xmm1, qword ptr [reloc @RWD248]
F20F106DD8 movsd xmm5, qword ptr [rbp-28H]
F20F1025B4010000 movsd xmm4, qword ptr [reloc @RWD256]
660F54EC andpd xmm5, xmm4
F20F1025B0010000 movsd xmm4, qword ptr [reloc @RWD264]
660F2EE5 ucomisd xmm4, xmm5
7653 jbe SHORT G_M5868_IG07
F20F106DD0 movsd xmm5, qword ptr [rbp-30H]
F20F102595010000 movsd xmm4, qword ptr [reloc @RWD256]
660F54EC andpd xmm5, xmm4
F20F102599010000 movsd xmm4, qword ptr [reloc @RWD272]
660F2EE5 ucomisd xmm4, xmm5
7634 jbe SHORT G_M5868_IG07
F20F10257B010000 movsd xmm4, qword ptr [reloc @RWD256]
660F54C4 andpd xmm0, xmm4
F20F102587010000 movsd xmm4, qword ptr [reloc @RWD280]
660F2EE0 ucomisd xmm4, xmm0
761A jbe SHORT G_M5868_IG07
F20F100561010000 movsd xmm0, qword ptr [reloc @RWD256]
660F54C8 andpd xmm1, xmm0
F20F100575010000 movsd xmm0, qword ptr [reloc @RWD288]
660F2EC1 ucomisd xmm0, xmm1
7717 ja SHORT G_M5868_IG08
G_M5868_IG07:
41FFC6 inc r14d
4183FE14 cmp r14d, 20
F20F1155E8 movsd qword ptr [rbp-18H], xmm2
F20F115DE0 movsd qword ptr [rbp-20H], xmm3
0F8E98FCFFFF jle G_M5868_IG04
G_M5868_IG08:
FFC3 inc ebx
81FB40420F00 cmp ebx, 0xF4240
0F8E27FCFFFF jle G_M5868_IG03
G_M5868_IG09:
B801000000 mov eax, 1
G_M5868_IG10:
488D65F0 lea rsp, [rbp-10H]
5B pop rbx
415E pop r14
5D pop rbp
C3 ret
; Total bytes of code 1020, prolog size 16 for method NewtE:Bench():bool
; ============================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment