Debug mode:
; 56 for (i = 0; i < SIZE; i++) mov DWORD PTR _i, 0 jmp SHORT $L943 $L944: mov eax, DWORD PTR _i add eax, 1 mov DWORD PTR _i, eax $L943: cmp DWORD PTR _i, 10000000 jge SHORT $L945 ; 57 x[i] = y[i]; mov ecx, DWORD PTR _i mov edx, DWORD PTR _i mov eax, DWORD PTR _y[edx*4] mov DWORD PTR _x[ecx*4], eax jmp SHORT $L944 $L945: |
; 70 for (p1 = x, p2 = y; p1 < &x[SIZE]; ) mov DWORD PTR _p1, OFFSET FLAT:_x mov DWORD PTR _p2, OFFSET FLAT:_y $L956: cmp DWORD PTR _p1, OFFSET FLAT:_x+40000000 jae SHORT $L957 ; 71 *p1++ = *p2++; mov eax, DWORD PTR _p1 mov ecx, DWORD PTR _p2 mov edx, DWORD PTR [ecx] mov DWORD PTR [eax], edx mov eax, DWORD PTR _p1 add eax, 4 mov DWORD PTR _p1, eax mov ecx, DWORD PTR _p2 add ecx, 4 mov DWORD PTR _p2, ecx jmp SHORT $L956 $L957: |
; 63 for (p1 = x, p2 = y; p1 - x < SIZE; ) mov DWORD PTR _p1, OFFSET FLAT:_x mov DWORD PTR _p2, OFFSET FLAT:_y $L950: mov eax, DWORD PTR _p1 sub eax, OFFSET FLAT:_x sar eax, 2 cmp eax, 10000000 jge SHORT $L951 ; 64 *p1++ = *p2++; mov ecx, DWORD PTR _p1 mov edx, DWORD PTR _p2 mov eax, DWORD PTR [edx] mov DWORD PTR [ecx], eax mov ecx, DWORD PTR _p1 add ecx, 4 mov DWORD PTR _p1, ecx mov edx, DWORD PTR _p2 add edx, 4 mov DWORD PTR _p2, edx jmp SHORT $L950 $L951: |
; 77 register int *p1, *p2; ; 78 ; 79 for (p1 = x, p2 = y; p1 < &x[SIZE]; ) mov DWORD PTR _p1$[ebp], OFFSET FLAT:_x mov DWORD PTR _p2$[ebp], OFFSET FLAT:_y $L964: cmp DWORD PTR _p1$[ebp], OFFSET FLAT:_x+40000000 jae SHORT $L965 ; 80 *p1++ = *p2++; mov eax, DWORD PTR _p1$[ebp] mov ecx, DWORD PTR _p2$[ebp] mov edx, DWORD PTR [ecx] mov DWORD PTR [eax], edx mov eax, DWORD PTR _p1$[ebp] add eax, 4 mov DWORD PTR _p1$[ebp], eax mov ecx, DWORD PTR _p2$[ebp] add ecx, 4 mov DWORD PTR _p2$[ebp], ecx jmp SHORT $L964 $L965: |
Release mode:
; for (i = 0; i < SIZE; i++) ; x[i] = y[i]; mov ecx, 10000000 mov esi, OFFSET FLAT:_y mov edi, OFFSET FLAT:_x mov DWORD PTR _i, 10000000 rep movsd pop edi pop esi |
; for (p1 = x, p2 = y; p1 < &x[SIZE]; ) mov eax, OFFSET FLAT:_x mov DWORD PTR _p2, OFFSET FLAT:_y mov DWORD PTR _p1, eax mov ecx, 4 $L1013: ; *p1++ = *p2++; mov edx, DWORD PTR _p2 mov edx, DWORD PTR [edx] mov DWORD PTR [eax], edx mov eax, DWORD PTR _p1 mov edx, DWORD PTR _p2 add eax, ecx add edx, ecx cmp eax, OFFSET FLAT:_x+40000000 mov DWORD PTR _p1, eax mov DWORD PTR _p2, edx jb SHORT $L1013 |
; for (p1 = x, p2 = y; p1 - x < SIZE; ) xor ecx, ecx mov eax, OFFSET FLAT:_x cmp ecx, 40000000 mov DWORD PTR _p1, eax mov DWORD PTR _p2, OFFSET FLAT:_y jge SHORT $L1008 mov ecx, 4 $L1007: ; *p1++ = *p2++; mov edx, DWORD PTR _p2 mov edx, DWORD PTR [edx] mov DWORD PTR [eax], edx mov edx, DWORD PTR _p2 mov eax, DWORD PTR _p1 add edx, ecx add eax, ecx mov DWORD PTR _p2, edx mov edx, eax mov DWORD PTR _p1, eax sub edx, OFFSET FLAT:_x and edx, -4 cmp edx, 40000000 jl SHORT $L1007 $L1008: |
; register int *p1, *p2; ; for (p1 = x, p2 = y; p1 < &x[SIZE]; ) ; *p1++ = *p2++; mov ecx, 10000000 mov esi, OFFSET FLAT:_y mov edi, OFFSET FLAT:_x xor eax, eax rep movsd pop edi pop esi $L1021: add eax, 4 lea ecx, DWORD PTR _x[eax] cmp ecx, OFFSET FLAT:_x+40000000 jb SHORT $L1021 |