Mandelbrot_StackAllocation_Diff
107 removals
Words removed | 136 |
Total words | 342 |
Words removed (%) | 39.77 |
143 lines
189 additions
Words added | 337 |
Total words | 543 |
Words added (%) | 62.06 |
229 lines
push rdi
push rdi
push rsi
push rsi
push rbp
push rbx
push rbx
sub rsp,0B8
sub rsp,5E0
vmovaps [rsp+0A0],xmm6
vmovaps [rsp+5D0],xmm6
vxorps xmm4,xmm4,xmm4
vxorps xmm4,xmm4,xmm4
vmovdqu ymmword ptr [rsp+20],ymm4
mov rax,0FFFFFFFFFFFFFA60
vmovdqu ymmword ptr [rsp+40],ymm4
M01_L00:
vmovdqu ymmword ptr [rsp+60],ymm4
vmovdqa xmmword ptr [rsp+rax+5C0],xmm4
vmovdqu ymmword ptr [rsp+80],ymm4
vmovdqa xmmword ptr [rsp+rax+5D0],xmm4
mov rbx,offset MT_System.Double[]
vmovdqa xmmword ptr [rsp+rax+5E0],xmm4
mov rcx,rbx
add rax,30
mov edx,50
jne short M01_L00
call CORINFO_HELP_NEWARR_1_VC
mov rcx,offset MT_System.Double[]
mov rsi,rax
mov [rsp+2B0],rcx
mov rcx,rbx
mov dword ptr [rsp+2B8],50
mov edx,50
mov [rsp+20],rcx
call CORINFO_HELP_NEWARR_1_VC
mov dword ptr [rsp+28],50
mov rdi,rax
vmovsd xmm0,qword ptr [7FFB056D4180]
vmovsd xmm0,qword ptr [7FFB055E6D00]
vmovsd qword ptr [rsp+5A0],xmm0
vmovsd qword ptr [rsp+80],xmm0
vmovsd qword ptr [rsp+5A8],xmm0
vmovsd qword ptr [rsp+88],xmm0
vmovsd qword ptr [rsp+5B0],xmm0
vmovsd qword ptr [rsp+90],xmm0
vmovsd qword ptr [rsp+5B8],xmm0
vmovsd qword ptr [rsp+98],xmm0
vmovsd xmm0,qword ptr [7FFB056D4188]
vmovsd xmm0,qword ptr [7FFB055E6D08]
vmovsd qword ptr [rsp+580],xmm0
vmovsd qword ptr [rsp+60],xmm0
vmovsd qword ptr [rsp+588],xmm0
vmovsd qword ptr [rsp+68],xmm0
vmovsd qword ptr [rsp+590],xmm0
vmovsd qword ptr [rsp+70],xmm0
vmovsd qword ptr [rsp+598],xmm0
vmovsd qword ptr [rsp+78],xmm0
vmovsd xmm6,qword ptr [7FFB056D4190]
vmovsd xmm6,qword ptr [7FFB055E6D10]
vmovsd qword ptr [rsp+560],xmm6
vmovsd qword ptr [rsp+40],xmm6
vmovsd qword ptr [rsp+568],xmm6
vmovsd qword ptr [rsp+48],xmm6
vmovsd qword ptr [rsp+570],xmm6
vmovsd qword ptr [rsp+50],xmm6
vmovsd qword ptr [rsp+578],xmm6
vmovsd qword ptr [rsp+58],xmm6
mov rcx,17D44D23868
mov rcx,rbx
vmovups ymm0,[rcx]
mov edx,4
call CORINFO_HELP_NEWARR_1_VC
mov rcx,204C6BE3868
vmovdqu ymm0,ymmword ptr [rcx]
vmovdqu ymmword ptr [rax+10],ymm0
vmovups ymm0,[rax+10]
xor ecx,ecx
xor ecx,ecx
vmovups ymm1,[7FFB055E6D20]
vmovups ymm1,[7FFB056D41A0]
M01_L00:
M01_L01:
vmulpd ymm2,ymm0,[rsp+80]
vmulpd ymm2,ymm0,[rsp+5A0]
movsxd rdx,ecx
lea rdx,[rsp+2C0]
vsubpd ymm3,ymm2,[rsp+60]
movsxd rax,ecx
vmovups [rsi+rdx*8+10],ymm3
vsubpd ymm3,ymm2,[rsp+580]
movsxd rdx,ecx
vmovups [rdx+rax*8],ymm3
lea rdx,[rsp+30]
movsxd rax,ecx
vsubpd ymm2,ymm2,ymm1
vsubpd ymm2,ymm2,ymm1
vmovups [rdi+rdx*8+10],ymm2
vmovups [rdx+rax*8],ymm2
vaddpd ymm0,ymm0,[rsp+40]
vaddpd ymm0,ymm0,[rsp+560]
add ecx,4
add ecx,4
cmp ecx,50
cmp ecx,50
jl short M01_L00
jl short M01_L01
mov rcx,offset MT_System.Byte[]
mov rcx,offset MT_System.Byte[]
mov edx,320
mov edx,320
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
xor ecx,ecx
xor ecx,ecx
M01_L01:
lea rdx,[rsp+20]
lea edx,[rcx+rcx*4]
mov edx,[rdx+8]
add edx,edx
cmp edx,50
xor r8d,r8d
jl near ptr M01_L12
M01_L02:
M01_L02:
lea r10,[rsi+10]
lea r8d,[rcx+rcx*4]
vmovsd xmm0,qword ptr [rdi+rcx*8+10]
add r8d,r8d
xor r10d,r10d
M01_L03:
lea rdx,[rsp+2B0]
cmp dword ptr [rdx+8],0
jbe near ptr M01_L21
lea rdx,[rsp+2C0]
lea r9,[rsp+20]
mov r11d,ecx
vmovsd xmm0,qword ptr [r9+r11*8+10]
vxorps ymm1,ymm1,ymm1
vxorps ymm1,ymm1,ymm1
vmovups [rsp+20],ymm1
vmovups [rsp+540],ymm1
xor r9d,r9d
xor r9d,r9d
xor r11d,r11d
xor r11d,r11d
M01_L03:
M01_L04:
lea ebx,[r11+r8*8]
lea ebx,[r11+r10*8]
movsxd rbx,ebx
movsxd rbx,ebx
vmovups ymm1,[r10+rbx*8]
vmovups ymm1,[rdx+rbx*8]
vmovaps ymm2,ymm1
vmovaps ymm2,ymm1
vmovsd qword ptr [rsp+20],xmm0
vmovsd qword ptr [rsp+540],xmm0
vmovsd qword ptr [rsp+28],xmm0
vmovsd qword ptr [rsp+548],xmm0
vmovsd qword ptr [rsp+30],xmm0
vmovsd qword ptr [rsp+550],xmm0
vmovsd qword ptr [rsp+38],xmm0
vmovsd qword ptr [rsp+558],xmm0
vmovups ymm3,[rsp+20]
vmovups ymm3,[rsp+540]
xor ebx,ebx
xor ebx,ebx
mov ebp,31
mov esi,31
M01_L04:
nop dword ptr [rax]
M01_L05:
vmulpd ymm4,ymm2,ymm2
vmulpd ymm4,ymm2,ymm2
vmulpd ymm5,ymm3,ymm3
vmulpd ymm5,ymm3,ymm3
vsubpd ymm4,ymm4,ymm5
vsubpd ymm4,ymm4,ymm5
vaddpd ymm4,ymm4,ymm1
vaddpd ymm4,ymm4,ymm1
vmulpd ymm3,ymm3,ymm2
vmulpd ymm3,ymm3,ymm2
vaddpd ymm2,ymm3,ymm3
vaddpd ymm2,ymm3,ymm3
vaddpd ymm3,ymm2,[rsp+20]
vaddpd ymm3,ymm2,[rsp+540]
vmovaps ymm2,ymm4
vmovaps ymm2,ymm4
vmulpd ymm4,ymm2,ymm2
vmulpd ymm4,ymm2,ymm2
vmulpd ymm5,ymm3,ymm3
vmulpd ymm5,ymm3,ymm3
vaddpd ymm4,ymm5,ymm4
vaddpd ymm4,ymm5,ymm4
vmovaps ymm5,ymm4
vmovaps ymm5,ymm4
vucomisd xmm5,xmm6
vucomisd xmm5,xmm6
ja short M01_L07
ja short M01_L08
M01_L05:
M01_L06:
vunpckhpd xmm4,xmm4,xmm4
vunpckhpd xmm4,xmm4,xmm4
vucomisd xmm4,xmm6
vucomisd xmm4,xmm6
ja short M01_L08
ja short M01_L09
M01_L06:
dec ebp
test ebp,ebp
jg short M01_L04
jmp short M01_L09
M01_L07:
M01_L07:
dec esi
test esi,esi
jg short M01_L05
jmp short M01_L10
M01_L08:
or ebx,2
or ebx,2
cmp ebx,3
cmp ebx,3
je short M01_L09
je short M01_L10
jmp short M01_L05
jmp short M01_L06
M01_L08:
M01_L09:
or ebx,1
or ebx,1
cmp ebx,3
cmp ebx,3
jne short M01_L06
jne short M01_L07
M01_L09:
M01_L10:
lea r9d,[rbx+r9*4]
lea r9d,[rbx+r9*4]
add r11d,2
add r11d,2
cmp r11d,8
cmp r11d,8
Text moved with changes from lines 122-129 (92.0% similarity)
jl near ptr M01_L04
lea edx,[r8+r10]
cmp edx,320
jae near ptr M01_L21
mov r11d,edx
not r9d
mov [rax+r11+10],r9b
inc r10d
cmp r10d,0A
jl near ptr M01_L03
jl near ptr M01_L03
Text moved with changes to lines 126-134 (92.0% similarity)
lea r10d,[rdx+r8]
cmp r10d,320
jae short M01_L10
not r9d
mov [rax+r10+10],r9b
inc r8d
cmp r8d,0A
jl near ptr M01_L02
inc ecx
inc ecx
cmp ecx,50
cmp ecx,50
jl near ptr M01_L01
jl near ptr M01_L02
M01_L11:
vzeroupper
vzeroupper
vmovaps xmm6,[rsp+0A0]
vmovaps xmm6,[rsp+5D0]
add rsp,0B8
add rsp,5E0
pop rbx
pop rbx
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
ret
ret
M01_L10:
M01_L12:
lea r8d,[rcx+rcx*4]
add r8d,r8d
xor r10d,r10d
M01_L13:
lea r9,[rsp+2B0]
cmp dword ptr [r9+8],0
jbe near ptr M01_L21
lea r9,[rsp+2C0]
cmp ecx,edx
jae near ptr M01_L21
lea r11,[rsp+20]
mov ebx,ecx
vmovsd xmm0,qword ptr [r11+rbx*8+10]
vxorps ymm1,ymm1,ymm1
vmovups [rsp+540],ymm1
xor r11d,r11d
xor esi,esi
M01_L14:
lea ebx,[rsi+r10*8]
movsxd rbx,ebx
vmovups ymm1,[r9+rbx*8]
vmovaps ymm2,ymm1
vmovsd qword ptr [rsp+540],xmm0
vmovsd qword ptr [rsp+548],xmm0
vmovsd qword ptr [rsp+550],xmm0
vmovsd qword ptr [rsp+558],xmm0
vmovups ymm3,[rsp+540]
xor ebx,ebx
mov edi,31
M01_L15:
vmulpd ymm4,ymm2,ymm2
vmulpd ymm5,ymm3,ymm3
vsubpd ymm4,ymm4,ymm5
vaddpd ymm4,ymm4,ymm1
vmulpd ymm3,ymm3,ymm2
vaddpd ymm2,ymm3,ymm3
vaddpd ymm3,ymm2,[rsp+540]
vmovaps ymm2,ymm4
vmulpd ymm4,ymm2,ymm2
vmulpd ymm5,ymm3,ymm3
vaddpd ymm4,ymm5,ymm4
vmovaps ymm5,ymm4
vucomisd xmm5,xmm6
ja short M01_L18
M01_L16:
vunpckhpd xmm4,xmm4,xmm4
vucomisd xmm4,xmm6
ja short M01_L19
M01_L17:
dec edi
test edi,edi
jg short M01_L15
jmp short M01_L20
M01_L18:
or ebx,2
cmp ebx,3
je short M01_L20
jmp short M01_L16
M01_L19:
or ebx,1
cmp ebx,3
jne short M01_L17
M01_L20:
lea r11d,[rbx+r11*4]
add esi,2
cmp esi,8
jl near ptr M01_L14
lea r9d,[r8+r10]
cmp r9d,320
jae short M01_L21
not r11d
mov [rax+r9+10],r11b
inc r10d
cmp r10d,0A
jl near ptr M01_L13
inc ecx
cmp ecx,50
jl near ptr M01_L12
jmp near ptr M01_L11
M01_L21:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int 3
int 3