--- procarray_b.asm 2021-06-13 21:59:19.572424200 -0300 +++ procarray.asm 2021-06-13 22:11:15.102819700 -0300 @@ -277,21 +277,21 @@ $pdata$ExpireOldKnownAssignedTransactionIds DD imagerel $LN4 DD imagerel $LN4+60 DD imagerel $unwind$ExpireOldKnownAssignedTransactionIds -$pdata$GetSnapshotData DD imagerel $LN138 - DD imagerel $LN138+432 +$pdata$GetSnapshotData DD imagerel $LN141 + DD imagerel $LN141+455 DD imagerel $unwind$GetSnapshotData -$pdata$0$GetSnapshotData DD imagerel $LN138+432 - DD imagerel $LN138+437 +$pdata$0$GetSnapshotData DD imagerel $LN141+455 + DD imagerel $LN141+460 DD imagerel $chain$0$GetSnapshotData -$pdata$2$GetSnapshotData DD imagerel $LN138+437 - DD imagerel $LN138+1120 +$pdata$1$GetSnapshotData DD imagerel $LN141+460 + DD imagerel $LN141+1118 + DD imagerel $chain$1$GetSnapshotData +$pdata$2$GetSnapshotData DD imagerel $LN141+1118 + DD imagerel $LN141+1504 DD imagerel $chain$2$GetSnapshotData -$pdata$3$GetSnapshotData DD imagerel $LN138+1120 - DD imagerel $LN138+1514 +$pdata$3$GetSnapshotData DD imagerel $LN141+1504 + DD imagerel $LN141+1575 DD imagerel $chain$3$GetSnapshotData -$pdata$4$GetSnapshotData DD imagerel $LN138+1514 - DD imagerel $LN138+1571 - DD imagerel $chain$4$GetSnapshotData $pdata$ProcArrayInstallImportedXmin DD imagerel $LN22 DD imagerel $LN22+94 DD imagerel $unwind$ProcArrayInstallImportedXmin @@ -1273,28 +1273,28 @@ DD 030023206H $unwind$ExpireOldKnownAssignedTransactionIds DD 020601H DD 030023206H -$unwind$GetSnapshotData DD 060f01H - DD 0f008f20fH - DD 07004d006H - DD 030026003H +$unwind$GetSnapshotData DD 070e01H + DD 0e00ae20eH + DD 0c006d008H + DD 060037004H + DD 03002H $chain$0$GetSnapshotData DD 020521H - DD 0f5405H - DD imagerel $LN138 - DD imagerel $LN138+432 + DD 0e5405H + DD imagerel $LN141 + DD imagerel $LN141+455 DD imagerel $unwind$GetSnapshotData -$chain$2$GetSnapshotData DD 040a21H - DD 0de40aH - DD 0ec405H - DD imagerel $LN138+432 - DD imagerel $LN138+437 +$chain$1$GetSnapshotData DD 020521H + DD 0df405H + DD imagerel $LN141+455 + DD imagerel $LN141+460 DD imagerel $chain$0$GetSnapshotData -$chain$3$GetSnapshotData DD 021H - DD imagerel $LN138+432 - DD imagerel $LN138+437 +$chain$2$GetSnapshotData DD 021H + DD imagerel $LN141+455 + DD imagerel $LN141+460 DD imagerel $chain$0$GetSnapshotData -$chain$4$GetSnapshotData DD 021H - DD imagerel $LN138 - DD imagerel $LN138+432 +$chain$3$GetSnapshotData DD 021H + DD imagerel $LN141 + DD imagerel $LN141+455 DD imagerel $unwind$GetSnapshotData $unwind$ProcArrayInstallImportedXmin DD 084e01H DD 08344eH @@ -6005,9 +6005,9 @@ ; Function compile flags: /Ogtpy _TEXT SEGMENT xid$ = 96 -tv803 = 104 -xtmp$1 = 104 -tv793 = 112 +$T1 = 104 +xtmp$2 = 104 +tv800 = 112 TransactionIdIsInProgress PROC ; File C:\dll\postgres\postgres\src\backend\storage\ipc\procarray.c ; Line 1349 @@ -6104,20 +6104,19 @@ mov al, 1 jmp $LN1@Transactio $LN21@Transactio: -; Line 1434 - movsxd r12, DWORD PTR [rbp] ; Line 1435 - mov rdi, rsi - mov rax, QWORD PTR MyProc + movsxd r12, DWORD PTR [rbp] test r12, r12 - je $LN90@Transactio - movsxd rax, DWORD PTR [rax+80] + jle $LN90@Transactio +; Line 1443 + mov rax, QWORD PTR MyProc lea rcx, QWORD PTR [rbp+40] - mov QWORD PTR tv803[rsp], rax + mov rdi, rsi + mov QWORD PTR tv800[rsp], rcx mov r14, rsi - mov QWORD PTR tv793[rsp], rcx + movsxd rax, DWORD PTR [rax+80] + mov QWORD PTR $T1[rsp], rax $LL7@Transactio: -; Line 1443 cmp rdi, rax je $LN5@Transactio ; Line 1447 @@ -6140,7 +6139,7 @@ ; Line 1473 lock or DWORD PTR [rsp], esi ; Line 1475 - mov rax, QWORD PTR tv793[rsp] + mov rax, QWORD PTR tv800[rsp] movsxd rax, DWORD PTR [rax+rdi*4] imul r8, rax, 896 ; 00000380H add r8, QWORD PTR allProcs @@ -6171,11 +6170,11 @@ add r14, 4 $LN93@Transactio: ; Line 1435 - mov rax, QWORD PTR tv803[rsp] + mov rax, QWORD PTR $T1[rsp] $LN5@Transactio: inc rdi cmp rdi, r12 - jb $LL7@Transactio + jl $LL7@Transactio $LN90@Transactio: ; Line 1504 call RecoveryInProgress @@ -6253,9 +6252,9 @@ je SHORT $LN30@Transactio ; Line 4951 mov rcx, QWORD PTR ?xids@?1??TransactionIdIsInProgress@@9@9 - lea rdx, QWORD PTR xtmp$1[rsp] + lea rdx, QWORD PTR xtmp$2[rsp] mov r8d, ebx - mov DWORD PTR xtmp$1[rsp], esi + mov DWORD PTR xtmp$2[rsp], esi call KnownAssignedXidsGetAndSetXmin mov r15d, eax $LN30@Transactio: @@ -6671,47 +6670,48 @@ _TEXT ENDS ; Function compile flags: /Ogtpy _TEXT SEGMENT -oldestxid$1$ = 32 -myxid$1$ = 36 -count$1$ = 40 -tv1165 = 48 -allStatusFlags$1$ = 56 -xip$1$ = 64 -numProcs$1$ = 72 +$T1 = 32 +xmax$2$ = 40 +oldestxid$1$ = 44 +myxid$1$ = 48 +other_xids$1$ = 56 +tv1217 = 64 +allStatusFlags$1$ = 72 latest_completed$1$ = 80 curXactCompletionCount$1$ = 88 xmin$ = 176 snapshot$ = 176 -subcount$1$ = 184 -tv1269 = 192 -xmax$2$ = 200 +tv1309 = 184 +subcount$1$ = 192 +count$1$ = 200 GetSnapshotData PROC ; File C:\dll\postgres\postgres\src\backend\storage\ipc\procarray.c ; Line 2164 -$LN138: +$LN141: push rbx push rsi push rdi + push r12 push r13 - push r15 - sub rsp, 128 ; 00000080H + push r14 + sub rsp, 120 ; 00000078H ; Line 2166 mov rax, QWORD PTR ProcGlobal ; Line 2169 xor edi, edi - mov r15, QWORD PTR procArray + mov rbx, QWORD PTR procArray ; Line 2171 - xor bl, bl + xor r13b, r13b mov rsi, rcx - mov QWORD PTR count$1$[rsp], rdi + mov DWORD PTR count$1$[rsp], edi mov DWORD PTR subcount$1$[rsp], edi - mov r13, QWORD PTR [rax+8] - mov DWORD PTR tv1269[rsp], ebx + mov r14, QWORD PTR [rax+8] + mov DWORD PTR tv1309[rsp], r13d ; Line 2194 cmp QWORD PTR [rcx+16], rdi jne $LN6@GetSnapsho ; Line 2200 - movsxd rcx, DWORD PTR [r15+4] + movsxd rcx, DWORD PTR [rbx+4] shl rcx, 2 call QWORD PTR __imp_malloc mov QWORD PTR [rsi+16], rax @@ -6762,8 +6762,9 @@ $LN6@GetSnapsho: ; Line 2219 mov rcx, QWORD PTR MainLWLockArray - mov edx, 1 + mov r12d, 1 add rcx, 512 ; 00000200H + mov edx, r12d call LWLockAcquire ; Line 2086 mov rax, QWORD PTR [rsi+112] @@ -6772,7 +6773,7 @@ je $LN21@GetSnapsho ; Line 2090 cmp QWORD PTR [rcx+56], rax - jne SHORT $LN21@GetSnapsho + jne $LN21@GetSnapsho ; Line 2113 mov rcx, QWORD PTR MyProc cmp DWORD PTR [rcx+68], edi @@ -6821,39 +6822,46 @@ mov rcx, QWORD PTR MainLWLockArray add rcx, 512 ; 00000200H call LWLockRelease -; Line 2224 - jmp $LN114@GetSnapsho +; Line 2513 + mov rax, rsi + add rsp, 120 ; 00000078H + pop r14 + pop r13 + pop r12 + pop rdi + pop rsi + pop rbx + ret 0 $LN21@GetSnapsho: -; Line 2228 - mov rax, QWORD PTR MyProc +; Line 2227 mov rdi, QWORD PTR [rcx+48] - mov QWORD PTR [rsp+120], rbp - mov QWORD PTR [rsp+112], r12 - mov QWORD PTR [rsp+104], r14 ; Line 2229 - movsxd r14, DWORD PTR [rax+80] + mov rax, QWORD PTR MyProc + mov QWORD PTR [rsp+112], rbp + mov QWORD PTR [rsp+104], r15 ; Line 2233 - lea r12d, DWORD PTR [rdi+1] + lea r15d, DWORD PTR [rdi+1] + mov QWORD PTR latest_completed$1$[rsp], rdi + movsxd rax, DWORD PTR [rax+80] + mov QWORD PTR tv1217[rsp], rax + mov edx, DWORD PTR [r14+rax*4] mov eax, DWORD PTR [rcx+16] mov DWORD PTR oldestxid$1$[rsp], eax mov rax, QWORD PTR [rcx+56] - mov edx, DWORD PTR [r13+r14*4] mov QWORD PTR curXactCompletionCount$1$[rsp], rax ; Line 2237 mov eax, 3 - cmp r12d, eax - mov QWORD PTR latest_completed$1$[rsp], rdi - mov QWORD PTR tv1165[rsp], r14 - cmovb r12d, eax + cmp r15d, eax mov DWORD PTR myxid$1$[rsp], edx - mov DWORD PTR xmax$2$[rsp], r12d + cmovb r15d, eax + mov DWORD PTR xmax$2$[rsp], r15d ; Line 2241 - mov ebp, r12d - mov DWORD PTR xmin$[rsp], r12d + mov ebp, r15d + mov DWORD PTR xmin$[rsp], r15d ; Line 2244 cmp edx, eax jb SHORT $LN23@GetSnapsho - cmp edx, r12d + cmp edx, r15d cmovs ebp, edx mov DWORD PTR xmin$[rsp], ebp $LN23@GetSnapsho: @@ -6863,60 +6871,59 @@ ; Line 2249 test al, al jne $LN24@GetSnapsho -; Line 2251 - movsxd rcx, DWORD PTR [r15] -; Line 2261 - xor ebx, ebx +; Line 2254 mov rax, QWORD PTR ProcGlobal - add r15, 40 ; 00000028H - mov r8, QWORD PTR [rsi+16] - mov QWORD PTR numProcs$1$[rsp], rcx - mov QWORD PTR xip$1$[rsp], r8 + lea r15, QWORD PTR [rbx+40] + mov r12, QWORD PTR [rsi+16] +; Line 2255 mov rdx, QWORD PTR [rax+24] - mov r12, QWORD PTR [rax+16] + mov r13, QWORD PTR [rax+16] +; Line 2261 + movsxd rax, DWORD PTR [rbx] mov QWORD PTR allStatusFlags$1$[rsp], rdx - test rcx, rcx - je $LN134@GetSnapsho -; Line 2251 - mov edi, DWORD PTR tv1269[rsp] - sub r13, r15 - npad 8 + mov QWORD PTR $T1[rsp], rax + test rax, rax + jle $LN137@GetSnapsho +; Line 2281 + mov rdi, QWORD PTR tv1217[rsp] + xor ebx, ebx + sub r14, r15 + mov QWORD PTR other_xids$1$[rsp], r14 $LL13@GetSnapsho: -; Line 2264 - mov ecx, DWORD PTR [r15+r13] ; Line 2273 + mov ecx, DWORD PTR [r14+r15] test ecx, ecx je $LN132@GetSnapsho ; Line 2281 - cmp rbx, r14 + cmp rbx, rdi je $LN132@GetSnapsho ; Line 2297 cmp ecx, DWORD PTR xmax$2$[rsp] - jns $LN132@GetSnapsho + jns $LN136@GetSnapsho ; Line 2305 test BYTE PTR [rbx+rdx], 18 - jne $LN132@GetSnapsho -; Line 2312 - mov rax, QWORD PTR count$1$[rsp] + jne $LN136@GetSnapsho +; Line 2308 mov ebp, DWORD PTR xmin$[rsp] cmp ecx, ebp +; Line 2312 + mov DWORD PTR [r12], ecx cmovs ebp, ecx - mov DWORD PTR [r8+rax*4], ecx - inc rax + inc DWORD PTR count$1$[rsp] + add r12, 4 mov DWORD PTR xmin$[rsp], ebp - mov QWORD PTR count$1$[rsp], rax ; Line 2329 - test dil, dil - jne SHORT $LN11@GetSnapsho + cmp BYTE PTR tv1309[rsp], 0 + jne SHORT $LN134@GetSnapsho ; Line 2332 - cmp BYTE PTR [r12+rbx*2+1], dil + cmp BYTE PTR [r13+rbx*2+1], 0 je SHORT $LN32@GetSnapsho ; Line 2333 - mov dil, 1 - jmp SHORT $LN11@GetSnapsho + mov BYTE PTR tv1309[rsp], 1 + jmp SHORT $LN134@GetSnapsho $LN32@GetSnapsho: ; Line 2336 - movzx r14d, BYTE PTR [r12+rbx*2] + movzx r14d, BYTE PTR [r13+rbx*2] ; Line 2338 test r14d, r14d je SHORT $LN133@GetSnapsho @@ -6937,51 +6944,24 @@ mov rdx, QWORD PTR allStatusFlags$1$[rsp] ; Line 2348 add ebp, r14d - mov r8, QWORD PTR xip$1$[rsp] mov DWORD PTR subcount$1$[rsp], ebp mov ebp, DWORD PTR xmin$[rsp] $LN133@GetSnapsho: ; Line 2261 - mov r14, QWORD PTR tv1165[rsp] + mov r14, QWORD PTR other_xids$1$[rsp] +$LN134@GetSnapsho: + mov rax, QWORD PTR $T1[rsp] $LN11@GetSnapsho: inc rbx add r15, 4 - cmp rbx, QWORD PTR numProcs$1$[rsp] - jb $LL13@GetSnapsho + cmp rbx, rax + jl $LL13@GetSnapsho ; Line 2353 - mov r13d, DWORD PTR subcount$1$[rsp] - mov DWORD PTR tv1269[rsp], edi mov rdi, QWORD PTR latest_completed$1$[rsp] - jmp SHORT $LN35@GetSnapsho -$LN132@GetSnapsho: -; Line 2273 - mov ebp, DWORD PTR xmin$[rsp] -; Line 2338 - jmp SHORT $LN11@GetSnapsho -$LN24@GetSnapsho: -; Line 2385 - mov rcx, QWORD PTR [rsi+32] - lea rdx, QWORD PTR xmin$[rsp] - mov r8d, r12d - call KnownAssignedXidsGetAndSetXmin -; Line 2388 - mov rcx, QWORD PTR procArray - mov r13d, eax - mov ebp, DWORD PTR xmin$[rsp] - mov edx, DWORD PTR [rcx+28] - mov ecx, ebp - call TransactionIdPrecedesOrEquals - test al, al - movzx ebx, bl - mov eax, 1 - cmovne ebx, eax - mov DWORD PTR tv1269[rsp], ebx - jmp SHORT $LN35@GetSnapsho -$LN134@GetSnapsho: -; Line 2261 - mov r13d, ebx -$LN35@GetSnapsho: +$LN137@GetSnapsho: ; Line 2398 + mov r13d, DWORD PTR tv1309[rsp] +$LN35@GetSnapsho: mov rcx, QWORD PTR procArray ; Line 2401 mov rax, QWORD PTR MyProc @@ -7012,7 +6992,7 @@ ; Line 321 cmp ecx, 3 jae SHORT $LN57@GetSnapsho - npad 2 + npad 3 $LL56@GetSnapsho: ; Line 322 dec ecx @@ -7042,7 +7022,33 @@ ; Line 335 mov r15d, r12d jmp SHORT $LN67@GetSnapsho +$LN136@GetSnapsho: +; File C:\dll\postgres\postgres\src\backend\storage\ipc\procarray.c +; Line 2273 + mov rax, QWORD PTR $T1[rsp] +$LN132@GetSnapsho: + mov ebp, DWORD PTR xmin$[rsp] +; Line 2338 + jmp $LN11@GetSnapsho +$LN24@GetSnapsho: +; Line 2385 + mov rcx, QWORD PTR [rsi+32] + lea rdx, QWORD PTR xmin$[rsp] + mov r8d, r15d + call KnownAssignedXidsGetAndSetXmin +; Line 2388 + mov rcx, QWORD PTR procArray + mov ebp, DWORD PTR xmin$[rsp] + mov DWORD PTR subcount$1$[rsp], eax + mov edx, DWORD PTR [rcx+28] + mov ecx, ebp + call TransactionIdPrecedesOrEquals + test al, al + movzx r13d, r13b + cmovne r13d, r12d + jmp $LN35@GetSnapsho $LN66@GetSnapsho: +; File C:\dll\postgres\postgres\src\include\access\transam.h ; Line 337 mov edx, r14d mov ecx, r12d @@ -7052,14 +7058,13 @@ $LN67@GetSnapsho: ; File C:\dll\postgres\postgres\src\backend\storage\ipc\procarray.c ; Line 4251 - mov r12, QWORD PTR [rsp+112] - sub r14d, edi sub r15d, edi - movsxd rcx, r14d - mov r14, QWORD PTR [rsp+104] - add rcx, rdi + sub r14d, edi movsxd rax, r15d + mov r15, QWORD PTR [rsp+104] add rax, rdi + movsxd rcx, r14d + add rcx, rdi ; Line 2443 test eax, eax ; File C:\dll\postgres\postgres\src\include\access\transam.h @@ -7076,13 +7081,13 @@ mov rdx, QWORD PTR GlobalVisSharedRels mov QWORD PTR GlobalVisSharedRels, rax test edx, edx - je SHORT $LN135@GetSnapsho + je SHORT $LN138@GetSnapsho ; Line 363 cmp rax, rdx - ja SHORT $LN135@GetSnapsho + ja SHORT $LN138@GetSnapsho ; Line 365 mov QWORD PTR GlobalVisSharedRels, rdx -$LN135@GetSnapsho: +$LN138@GetSnapsho: ; Line 360 mov rdx, QWORD PTR GlobalVisCatalogRels mov r8d, ecx @@ -7124,7 +7129,7 @@ cdqe add rax, rdi ; Line 2461 - jmp SHORT $LN136@GetSnapsho + jmp SHORT $LN139@GetSnapsho $LN37@GetSnapsho: ; File C:\dll\postgres\postgres\src\include\access\transam.h ; Line 130 @@ -7136,13 +7141,12 @@ ; Line 136 cmp eax, 3 jae SHORT $LN92@GetSnapsho - npad 7 $LL91@GetSnapsho: ; Line 137 inc rax cmp eax, 3 jb SHORT $LL91@GetSnapsho -$LN136@GetSnapsho: +$LN139@GetSnapsho: ; Line 357 mov QWORD PTR GlobalVisTempRels, rax $LN92@GetSnapsho: @@ -7213,17 +7217,17 @@ mov QWORD PTR GlobalVisDataRels+8, rbx mov DWORD PTR RecentXmin, ebp mov DWORD PTR [rsi+8], eax - mov rax, QWORD PTR count$1$[rsp] + mov eax, DWORD PTR count$1$[rsp] mov DWORD PTR [rsi+24], eax - mov eax, DWORD PTR tv1269[rsp] - mov BYTE PTR [rsi+44], al + mov eax, DWORD PTR subcount$1$[rsp] + mov DWORD PTR [rsi+40], eax mov rax, QWORD PTR curXactCompletionCount$1$[rsp] mov QWORD PTR [rsi+112], rax mov DWORD PTR [rsi+4], ebp - mov DWORD PTR [rsi+40], r13d + mov BYTE PTR [rsi+44], r13b call GetCurrentCommandId ; Line 2508 - mov rbp, QWORD PTR [rsp+120] + mov rbp, QWORD PTR [rsp+112] mov DWORD PTR [rsi+48], eax xor eax, eax mov QWORD PTR [rsi+64], rax @@ -7238,8 +7242,16 @@ mov QWORD PTR [rsi+104], rax ; Line 2055 mov QWORD PTR [rsi+96], rax -; Line 2056 - jmp SHORT $LN114@GetSnapsho +; Line 2513 + mov rax, rsi + add rsp, 120 ; 00000078H + pop r14 + pop r13 + pop r12 + pop rdi + pop rsi + pop rbx + ret 0 $LN113@GetSnapsho: ; Line 2064 call GetXLogInsertRecPtr @@ -7251,12 +7263,12 @@ mov rcx, rax mov QWORD PTR [rsi+96], rax call MaintainOldSnapshotTimeMapping -$LN114@GetSnapsho: ; Line 2513 mov rax, rsi - add rsp, 128 ; 00000080H - pop r15 + add rsp, 120 ; 00000078H + pop r14 pop r13 + pop r12 pop rdi pop rsi pop rbx