diff --git a/src/base/SMPInstr.cpp b/src/base/SMPInstr.cpp index 241915b58eed8b5829516af9439d24fc0de3da34..abd75e02789b5738b3c1eaefbae9208e95c698cb 100644 --- a/src/base/SMPInstr.cpp +++ b/src/base/SMPInstr.cpp @@ -3166,23 +3166,24 @@ bool SMPInstr::MDIsNop(void) const { } } else if (STARS_NN_lea == opcode) { - if (this->STARSInstPtr->GetOpnd(0)->IsRegOp() - && (this->STARSInstPtr->GetOpnd(1)->IsMemDisplacementOp() + bool ZeroMemOffset = (this->STARSInstPtr->GetOpnd(1)->IsMemDisplacementOp() || this->STARSInstPtr->GetOpnd(1)->IsMemNoDisplacementOp()) - && (0 == this->STARSInstPtr->GetOpnd(1)->GetAddr())) { + && (0 == this->STARSInstPtr->GetOpnd(1)->GetAddr()); + if (this->STARSInstPtr->GetOpnd(0)->IsRegOp() && ZeroMemOffset) { // We are looking for 6-byte no-ops like lea esi,[esi+0] or 4-byte lea esi,[esi] - uint16_t destreg = this->STARSInstPtr->GetOpnd(0)->GetReg(); - if ((this->STARSInstPtr->GetOpnd(1)->HasSIBByte()) - && (destreg == (uint16_t) MD_STARS_sib_base(this->STARSInstPtr->GetOpnd(1))) + uint16_t destreg = this->STARSInstPtr->GetOpnd(0)->GetReg(); + if (this->STARSInstPtr->GetOpnd(1)->HasSIBByte()) { + if ((destreg == (uint16_t) MD_STARS_sib_base(this->STARSInstPtr->GetOpnd(1))) && (STARS_x86_R_sp == MD_STARS_sib_index(this->STARSInstPtr->GetOpnd(1)))) { // STARS_x86_R_sp signifies no SIB index register. So, we have // lea reg,[reg+0] with reg being the same in both place, // once as Operands[0] and once as the base reg in Operands[1]. IsNop = true; } - else if (destreg == this->STARSInstPtr->GetOpnd(1)->GetReg()) { - IsNop = true; - } + } + else if (destreg == this->STARSInstPtr->GetOpnd(1)->GetReg()) { // only for non-SIB case + IsNop = true; + } } } return IsNop; @@ -4424,12 +4425,12 @@ void SMPInstr::Analyze(void) { this->MDFixupIDAProOperandList(); // See if instruction is an ASM idiom for clearing a register. - if ((STARS_NN_xor == opcode) || (STARS_NN_lea == opcode)) { + if ((STARS_NN_xor == opcode) || (STARS_NN_lea == opcode) || (STARS_NN_pxor == opcode)) { uint16_t FirstReg; if (this->STARSInstPtr->IsRegOpnd(0)) { FirstReg = this->STARSInstPtr->GetOpnd(0)->GetReg(); STARSOpndTypePtr SecondOpnd = this->STARSInstPtr->GetOpnd(1); - if (STARS_NN_xor == opcode) { + if ((STARS_NN_xor == opcode) || (STARS_NN_pxor == opcode)) { // Check for xor of reg with itself if (SecondOpnd->MatchesReg(FirstReg)) { this->SetRegClearIdiom(); diff --git a/tests/commit/save-busybox.psexe.infoannot b/tests/commit/save-busybox.psexe.infoannot index f66f4d36a79d74e1c642d7b613043058ae669d69..3cf2fbe8fa584e2863142ec2c4b1dd24a957d640 100644 --- a/tests/commit/save-busybox.psexe.infoannot +++ b/tests/commit/save-busybox.psexe.infoannot @@ -928,7 +928,7 @@ 40875e 34 FUNC RETURNTYPE RAX 0 40875e 34 FUNC INARGS 6 ARG0 96 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 408780 31 FUNC RETURNTYPE RAX 4 - 408780 31 FUNC INARGS 6 ARG0 96 ARG1 96 ARG2 96 ARG3 96 ARG4 1 ARG5 96 + 408780 31 FUNC INARGS 6 ARG0 96 ARG1 96 ARG2 96 ARG3 96 ARG4 1 ARG5 1 40879f 31 FUNC RETURNTYPE RAX 4 40879f 31 FUNC INARGS 6 ARG0 96 ARG1 96 ARG2 96 ARG3 96 ARG4 96 ARG5 1 4087be 66 FUNC RETURNTYPE RAX 4 @@ -975,7 +975,7 @@ 408cdd 13 FUNC RETURNTYPE RAX 0 408cdd 13 FUNC INARGS 6 ARG0 0 ARG1 96 ARG2 96 ARG3 96 ARG4 1 ARG5 1 408cea 48 FUNC RETURNTYPE RAX 1 - 408cea 48 FUNC INARGS 6 ARG0 0 ARG1 0 ARG2 96 ARG3 1 ARG4 1 ARG5 4 + 408cea 48 FUNC INARGS 6 ARG0 0 ARG1 0 ARG2 96 ARG3 1 ARG4 1 ARG5 1 408d1a 32 FUNC RETURNTYPE RAX 0 408d1a 32 FUNC INARGS 6 ARG0 0 ARG1 0 ARG2 96 ARG3 1 ARG4 1 ARG5 1 408d3a 35 FUNC RETURNTYPE RAX 0 @@ -4421,7 +4421,7 @@ 4570f6 51 FUNC RETURNTYPE RAX 96 4570f6 51 FUNC INARGS 6 ARG0 1 ARG1 4 ARG2 4 ARG3 0 ARG4 0 ARG5 0 4572fb 1167 FUNC RETURNTYPE RAX 96 - 4572fb 1167 FUNC INARGS 6 ARG0 2 ARG1 4 ARG2 96 ARG3 1 ARG4 0 ARG5 4 + 4572fb 1167 FUNC INARGS 6 ARG0 2 ARG1 4 ARG2 96 ARG3 1 ARG4 0 ARG5 0 4572fb 1167 FUNC PROBLEM sub_4572FB CALLUNRESOLVED 4574fd 6 INSTR CHECK OVERFLOW UNKNOWNSIGN 32 RSI ZZ add esi, 101h 45751e 2 INSTR CHECK UNDERFLOW SIGNED 32 RDX ZZ sub edx, eax ; timeout @@ -6630,7 +6630,7 @@ 48bbc0 87 FUNC RETURNTYPE RAX 96 48bbc0 87 FUNC INARGS 6 ARG0 1 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 48bc17 136 FUNC RETURNTYPE RAX 64 - 48bc17 136 FUNC INARGS 6 ARG0 4 ARG1 4 ARG2 1 ARG3 1 ARG4 0 ARG5 0 + 48bc17 136 FUNC INARGS 6 ARG0 4 ARG1 4 ARG2 1 ARG3 96 ARG4 0 ARG5 0 48bc5e 2 INSTR CHECK UNDERFLOW UNKNOWNSIGN 32 RBX ZZ IDIOM 19 sub ebx, eax 48bc9f 182 FUNC RETURNTYPE RAX 0 48bc9f 182 FUNC INARGS 6 ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 diff --git a/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id b/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id index 0de57e58bbe29a74c2df94fab01dca2fc4c8fe6a..c494d381673879a7e98e49470a39eede27efe857 100644 --- a/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id +++ b/tests/commit/save-ffmpeg.psexe.infoannot.REMOVED.git-id @@ -1 +1 @@ -3a86a9bbf8e153533a96bb6f1610f169ed3bc184 \ No newline at end of file +04cbe0e92834ed4ccb67c2fd336aab6757200d0c \ No newline at end of file diff --git a/tests/commit/save-gnome-session-properties.psexe.infoannot b/tests/commit/save-gnome-session-properties.psexe.infoannot index cd4b0cd3924a14483850d9d8dedf0da1742cbfee..a93407f58d663396718eef21719c1ca410f9a605 100644 --- a/tests/commit/save-gnome-session-properties.psexe.infoannot +++ b/tests/commit/save-gnome-session-properties.psexe.infoannot @@ -632,9 +632,9 @@ 40ad50 209 FUNC RETURNTYPE RAX 0 40ad50 209 FUNC INARGS 6 ARG0 4 ARG1 1 ARG2 0 ARG3 0 ARG4 0 ARG5 0 40ae30 137 FUNC RETURNTYPE RAX 0 - 40ae30 137 FUNC INARGS 6 ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 + 40ae30 137 FUNC INARGS 6 ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 40aec0 489 FUNC RETURNTYPE RAX 4 - 40aec0 489 FUNC INARGS 6 ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 + 40aec0 489 FUNC INARGS 6 ARG0 0 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 40aef0 4 INSTR CHECK OVERFLOW UNSIGNED 64 RDX ZZ IDIOM 18 MEMORYSINK add rdx, 8 40af10 4 INSTR CHECK OVERFLOW UNSIGNED 64 RDX ZZ IDIOM 18 MEMORYSINK add rdx, 8 40b210 116 FUNC RETURNTYPE RAX 0 diff --git a/tests/commit/save-gnome-session.psexe.infoannot b/tests/commit/save-gnome-session.psexe.infoannot index de04ff5b2f5bc1e2fc95bdc665b1e0cca59826c8..bb28b92e4775ccd4fde0e1444932a26464921fab 100644 --- a/tests/commit/save-gnome-session.psexe.infoannot +++ b/tests/commit/save-gnome-session.psexe.infoannot @@ -1717,9 +1717,9 @@ 426bf0 209 FUNC RETURNTYPE RAX 0 426bf0 209 FUNC INARGS 6 ARG0 0 ARG1 1 ARG2 4 ARG3 0 ARG4 0 ARG5 0 426cd0 137 FUNC RETURNTYPE RAX 0 - 426cd0 137 FUNC INARGS 6 ARG0 4 ARG1 1 ARG2 1 ARG3 0 ARG4 0 ARG5 0 + 426cd0 137 FUNC INARGS 6 ARG0 1 ARG1 1 ARG2 1 ARG3 0 ARG4 0 ARG5 0 426d60 489 FUNC RETURNTYPE RAX 4 - 426d60 489 FUNC INARGS 6 ARG0 4 ARG1 1 ARG2 1 ARG3 0 ARG4 0 ARG5 0 + 426d60 489 FUNC INARGS 6 ARG0 1 ARG1 1 ARG2 1 ARG3 0 ARG4 0 ARG5 0 426d90 4 INSTR CHECK OVERFLOW UNSIGNED 64 RDX ZZ IDIOM 18 MEMORYSINK add rdx, 8 426db0 4 INSTR CHECK OVERFLOW UNSIGNED 64 RDX ZZ IDIOM 18 MEMORYSINK add rdx, 8 426f50 337 FUNC RETURNTYPE RAX 1 diff --git a/tests/commit/save-nginx.psexe.infoannot b/tests/commit/save-nginx.psexe.infoannot index 6d1d7bf63040f0d89cbcb5f002d1dc3b16fb8626..220cb690d5eeb8f3a920617f3286ae596fa67523 100644 --- a/tests/commit/save-nginx.psexe.infoannot +++ b/tests/commit/save-nginx.psexe.infoannot @@ -2642,7 +2642,7 @@ 43f64f 243 FUNC RETURNTYPE RAX 1 43f64f 243 FUNC INARGS 6 ARG0 4 ARG1 4 ARG2 1 ARG3 4 ARG4 1 ARG5 4 43f6c0 4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RBX+72 ZZ IDIOM 18 MEMORYSINK lea rdx, [rbx+48h] ; code - 43f6c4 5 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 R12+23 ZZ lea rsi, [r12+17h] + 43f6c4 5 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+23 ZZ lea rsi, [r12+17h] 43f6e9 4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 RAX+16 ZZ IDIOM 18 MEMORYSINK lea rdi, [code+10h] ; dest 43f742 1506 FUNC RETURNTYPE RAX 1 43f742 1506 FUNC INARGS 6 ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 @@ -2656,7 +2656,7 @@ 43fd24 753 FUNC RETURNTYPE RAX 1 43fd24 753 FUNC INARGS 6 ARG0 4 ARG1 0 ARG2 0 ARG3 0 ARG4 0 ARG5 0 43fd74 4 INSTR CHECK OVERFLOW UNKNOWNSIGN 64 RAX ZZ add rax, 1 - 43fe07 5 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+1 ZZ lea rsi, [r12+1] + 43fe07 5 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 R12+1 ZZ lea rsi, [r12+1] 43feb3 5 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+8 ZZ lea rsi, [r12+8] ; size 43ff04 5 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+RAX ZZ lea rsi, [r12+rax+0Fh] 43ff04 5 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+RAX+15 ZZ lea rsi, [r12+rax+0Fh] diff --git a/tests/commit/save-xedit.psexe.infoannot b/tests/commit/save-xedit.psexe.infoannot index 251a2871e42f7e26c95009ce1ca1508c1fc57ee6..4f648f1092ed270d84302fc5d2d8847bb6e38d0a 100644 --- a/tests/commit/save-xedit.psexe.infoannot +++ b/tests/commit/save-xedit.psexe.infoannot @@ -862,6 +862,8 @@ 41a760 3101 FUNC INARGS 6 ARG0 4 ARG1 4 ARG2 96 ARG3 1 ARG4 4 ARG5 1 41adec 3 INSTR CHECK OVERFLOW UNSIGNED 64 R12 ZZ SINKMALLOC add r12d, eax 41ae87 3 INSTR CHECK OVERFLOW UNKNOWNSIGN 64 RDI ZZ IDIOM 18 MEMORYSINK add rdi, r15 ; dest + 41aeb9 4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 32 RAX*2 ZZ lea r12d, [r12+rax*2] + 41aeb9 4 INSTR CHECK OVERFLOW NOFLAGUNSIGNED 64 R12+RAX*2 ZZ lea r12d, [r12+rax*2] 41aec2 4 INSTR CHECK OVERFLOW UNSIGNED 64 R12 ZZ SINKMALLOC add r12d, 2 41afdf 3 INSTR CHECK SIGNEDNESS UNSIGNED 64 R14 ZZ mov rdi, r14 ; size 41aff7 8 INSTR CHECK OVERFLOW NOFLAGSIGNED 64 R14*8 ZZ lea rdi, ds:0[r14*8]; size @@ -2095,7 +2097,7 @@ 463580 1094 FUNC INARGS 6 ARG0 4 ARG1 4 ARG2 4 ARG3 4 ARG4 96 ARG5 0 4639d0 199 FUNC RETURNTYPE RAX 1 4639d0 199 FUNC INARGS 6 ARG0 4 ARG1 4 ARG2 96 ARG3 1 ARG4 1 ARG5 4 - 463a20 5 INSTR CHECK OVERFLOW NOFLAGSIGNED 64 R12+1 ZZ lea edi, [r12+1] + 463a20 5 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 R12+1 ZZ lea edi, [r12+1] 463a55 4 INSTR CHECK OVERFLOW NOFLAGUNKNOWNSIGN 64 RBX+R13 ZZ IDIOM 18 MEMORYSINK lea rdi, [rbx+r13] ; dest 463aa0 16 FUNC RETURNTYPE RAX 96 463aa0 16 FUNC INARGS 6 ARG0 4 ARG1 1 ARG2 96 ARG3 96 ARG4 1 ARG5 4 diff --git a/tests/commit/trimmed-sorted-save-busybox.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-busybox.psexe.annot.REMOVED.git-id index 92cf2d23015753617e14afe63d6ea570be64158b..de1f1ac587ec55310f55440226ccfd28cdd34fd9 100644 --- a/tests/commit/trimmed-sorted-save-busybox.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-busybox.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -4906f688d2ab7ec1cd472daa970518ad74869c7d \ No newline at end of file +a27647382c6c769f3184cd3e310f7ea330de4c63 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-ffmpeg.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-ffmpeg.psexe.annot.REMOVED.git-id index b38b8366531bc763031db18086ddeb2b6471e796..b48461d5d18807e4ed48b664f5c62a1f8e11609f 100644 --- a/tests/commit/trimmed-sorted-save-ffmpeg.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-ffmpeg.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -6ad326447e62d9789cc2b96b1652b1058df31f52 \ No newline at end of file +37840e8d006c19d9768909fe5d44c2435c9ebec8 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-firefox-bin.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-firefox-bin.psexe.annot.REMOVED.git-id index 8ef29942c29c90dfcda1a102b3709e7e895dfe19..f80912b0486f514c2d36df58e4280d77d12ab204 100644 --- a/tests/commit/trimmed-sorted-save-firefox-bin.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-firefox-bin.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -8fa90d75b2ebc53b8129673c4ccbc62420c495d6 \ No newline at end of file +8e9e9fa17d34740bf26b401ae6390891adff5ffc \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-gimp.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-gimp.psexe.annot.REMOVED.git-id index ace638f10aca012ddcb33177973c447814fedde9..c611073e7d22775ee144f21b2fdd27a5065d89af 100644 --- a/tests/commit/trimmed-sorted-save-gimp.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-gimp.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -19a8bae767625e3641e5e14cb3b8b2dcf0827da0 \ No newline at end of file +13325b9ac00ec190a02cfbc74a8975dcc054af36 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-gnome-character-map.psexe.annot b/tests/commit/trimmed-sorted-save-gnome-character-map.psexe.annot index 22725182ba27fa6a38146bf34792d7175eea1cf1..1c088f13cf1ebb8bf12b5cb180294c1e2198f8a7 100644 --- a/tests/commit/trimmed-sorted-save-gnome-character-map.psexe.annot +++ b/tests/commit/trimmed-sorted-save-gnome-character-map.psexe.annot @@ -2617,6 +2617,7 @@ 406e4e 8 INSTR BELONGTO 406ce0 406e4e 8 INSTR DEADREGS EFLAGS RAX RSI RDI R12 R13 ZZ mov r13d, [rsp+0E8h+var_3C] 406e4e 8 PTRIMMEDESP STACK 172 displ mov r13d, [rsp+0E8h+var_3C] + 406e56 -2 INSTR LOCAL n R12 ZZ NumericDEFs mov r12d, [rsp+0E8h+var_40] 406e56 8 INSTR BELONGTO 406ce0 406e56 8 INSTR DEADREGS EFLAGS RAX RSI RDI R12 ZZ mov r12d, [rsp+0E8h+var_40] 406e56 8 PTRIMMEDESP STACK 168 displ mov r12d, [rsp+0E8h+var_40] @@ -2626,7 +2627,7 @@ 406e61 3 INSTR DEADREGS EFLAGS RAX RDI ZZ mov rdi, rbx 406e64 -1 INSTR LOCAL MetadataRedundant lea r13d, [r13+r13*8+0] 406e64 5 INSTR BELONGTO 406ce0 - 406e69 -1 INSTR LOCAL NoMetaUpdate lea r12d, [r12+r12*8] + 406e69 -1 INSTR LOCAL MetadataRedundant lea r12d, [r12+r12*8] 406e69 4 INSTR BELONGTO 406ce0 406e6d -2 INSTR LOCAL n RAX ZZ NumericDEFs lea eax, [r13+0Fh] 406e6d 4 INSTR BELONGTO 406ce0 @@ -2635,12 +2636,13 @@ 406e71 3 INSTR BELONGTO 406ce0 406e74 -1 INSTR LOCAL MetadataRedundant cmovs r13d, eax 406e74 4 INSTR BELONGTO 406ce0 + 406e78 -1 INSTR LOCAL MetadataRedundant lea eax, [r12+0Fh] 406e78 5 INSTR BELONGTO 406ce0 - 406e78 5 INSTR DEADREGS EFLAGS RAX ZZ lea eax, [r12+0Fh] 406e7d -1 INSTR LOCAL MetadataRedundant sar r13d, 4 406e7d 4 INSTR BELONGTO 406ce0 406e81 -1 INSTR LOCAL NoMetaUpdate test r12d, r12d 406e81 3 INSTR BELONGTO 406ce0 + 406e84 -1 INSTR LOCAL MetadataRedundant cmovs r12d, eax 406e84 4 INSTR BELONGTO 406ce0 406e88 -1 INSTR LOCAL MetadataRedundant sar r12d, 4 406e88 4 INSTR BELONGTO 406ce0 diff --git a/tests/commit/trimmed-sorted-save-gnome-power-statistics.psexe.annot b/tests/commit/trimmed-sorted-save-gnome-power-statistics.psexe.annot index cd7529a0d4038ad9685c10da79a1bdd185aa4cdc..cf2efd1ecf766d2d54088c26b491129b41d4c6be 100644 --- a/tests/commit/trimmed-sorted-save-gnome-power-statistics.psexe.annot +++ b/tests/commit/trimmed-sorted-save-gnome-power-statistics.psexe.annot @@ -2856,37 +2856,37 @@ 405076 2 INSTR DEADREGS EFLAGS R13 R14 R15 XMM1 ZZ push r12 405076 -3 INSTR LOCAL NoWarn push r12 405078 1 INSTR BELONGTO 405070 - 405078 1 INSTR DEADREGS EFLAGS R13 R14 R15 XMM1 ZZ push rbp + 405078 1 INSTR DEADREGS EFLAGS R12 R13 R14 R15 XMM1 ZZ push rbp 405078 -3 INSTR LOCAL NoWarn push rbp 405079 1 INSTR BELONGTO 405070 - 405079 1 INSTR DEADREGS EFLAGS R13 R14 R15 XMM1 ZZ push rbx + 405079 1 INSTR DEADREGS EFLAGS R12 R13 R14 R15 XMM1 ZZ push rbx 405079 -3 INSTR LOCAL NoWarn push rbx 40507a -1 INSTR LOCAL MetadataUnused mov rbx, rdi 40507a 3 INSTR BELONGTO 405070 40507d 136 DATAREF STACK 688 esp + 0 PARENT LocalFrame LOCALFRAME 40507d 48 MEMORYHOLE STACK esp + 136 CalleeSavedRegs 40507d 7 INSTR BELONGTO 405070 - 40507d 7 INSTR DEADREGS EFLAGS R13 R14 R15 XMM1 ZZ sub rsp, 88h + 40507d 7 INSTR DEADREGS EFLAGS R12 R13 R14 R15 XMM1 ZZ sub rsp, 88h 40507d 8 MEMORYHOLE STACK esp + 184 ReturnAddress 405084 -1 INSTR LOCAL NoMetaUpdate test sil, 1 405084 4 INSTR BELONGTO 405070 405088 -1 INSTR LOCAL NoMetaUpdate jz loc_405229 405088 6 INSTR BELONGTO 405070 40508e 3 INSTR BELONGTO 405070 - 40508e 3 INSTR DEADREGS EFLAGS RCX RDX R13 R14 R15 XMM1 ZZ mov edi, [rdi+8] + 40508e 3 INSTR DEADREGS EFLAGS RCX RDX R12 R13 R14 R15 XMM1 ZZ mov edi, [rdi+8] 405091 4 INSTR BELONGTO 405070 - 405091 4 INSTR DEADREGS EFLAGS RCX RDX R13 R14 R15 XMM1 ZZ mov dword ptr [rsp+0B8h+var_40], esi + 405091 4 INSTR DEADREGS EFLAGS RCX RDX R12 R13 R14 R15 XMM1 ZZ mov dword ptr [rsp+0B8h+var_40], esi 405091 4 PTRIMMEDESP STACK 120 displ mov dword ptr [rsp+0B8h+var_40], esi 405095 -1 INSTR LOCAL MetadataUnused movss [rsp+0B8h+var_A8], xmm0 405095 6 INSTR BELONGTO 405070 40509b -1 INSTR LOCAL NoMetaUpdate call sub_404C50 40509b 5 INSTR BELONGTO 405070 - 40509b 5 INSTR DEADREGS EFLAGS RCX RDX RSI R13 R14 R15 XMM1 ZZ call sub_404C50 + 40509b 5 INSTR DEADREGS EFLAGS RCX RDX RSI R12 R13 R14 R15 XMM1 ZZ call sub_404C50 4050a0 3 INSTR BELONGTO 405070 - 4050a0 3 INSTR DEADREGS EFLAGS RSI RDI R13 R14 R15 XMM1 ZZ mov edi, [rbx+8] + 4050a0 3 INSTR DEADREGS EFLAGS RSI RDI R12 R13 R14 R15 XMM1 ZZ mov edi, [rbx+8] 4050a3 -2 INSTR LOCAL n RSI ZZ NumericDEFs mov esi, dword ptr [rsp+0B8h+var_40] 4050a3 4 INSTR BELONGTO 405070 - 4050a3 4 INSTR DEADREGS EFLAGS RSI R13 R14 R15 XMM1 ZZ mov esi, dword ptr [rsp+0B8h+var_40] + 4050a3 4 INSTR DEADREGS EFLAGS RSI R12 R13 R14 R15 XMM1 ZZ mov esi, dword ptr [rsp+0B8h+var_40] 4050a3 4 PTRIMMEDESP STACK 120 displ mov esi, dword ptr [rsp+0B8h+var_40] 4050a7 -1 INSTR LOCAL MetadataUnused movss xmm4, [rsp+0B8h+var_A8] 4050a7 6 INSTR BELONGTO 405070 @@ -2896,28 +2896,28 @@ 4050af 6 INSTR BELONGTO 405070 4050b5 -2 INSTR LOCAL n R11 ZZ NumericDEFs lea r11d, [rsi-1] 4050b5 4 INSTR BELONGTO 405070 - 4050b5 4 INSTR DEADREGS EFLAGS R11 R13 R14 R15 XMM1 ZZ lea r11d, [rsi-1] + 4050b5 4 INSTR DEADREGS EFLAGS R11 R12 R13 R14 R15 XMM1 ZZ lea r11d, [rsi-1] 4050b9 -1 INSTR LOCAL MetadataUnused mov ebp, edi 4050b9 2 INSTR BELONGTO 405070 4050bb -2 INSTR LOCAL n R15 ZZ NumericDEFs mov r15d, r11d 4050bb 3 INSTR BELONGTO 405070 - 4050bb 3 INSTR DEADREGS EFLAGS R13 R14 R15 XMM1 ZZ mov r15d, r11d + 4050bb 3 INSTR DEADREGS EFLAGS R12 R13 R14 R15 XMM1 ZZ mov r15d, r11d 4050be -1 INSTR LOCAL MetadataRedundant shr r15d, 1 4050be 3 INSTR BELONGTO 405070 4050c1 -1 INSTR LOCAL NoMetaUpdate jz short loc_405101 4050c1 2 INSTR BELONGTO 405070 4050c3 3 INSTR BELONGTO 405070 - 4050c3 3 INSTR DEADREGS EFLAGS RCX RDX R8 R9 R13 R14 XMM1 ZZ mov r8, [rax] + 4050c3 3 INSTR DEADREGS EFLAGS RCX RDX R8 R9 R12 R13 R14 XMM1 ZZ mov r8, [rax] 4050c6 3 INSTR BELONGTO 405070 - 4050c6 3 INSTR DEADREGS EFLAGS RCX RDX R9 R13 R14 XMM1 ZZ mov r9, [rbx] + 4050c6 3 INSTR DEADREGS EFLAGS RCX RDX R9 R12 R13 R14 XMM1 ZZ mov r9, [rbx] 4050c9 2 INSTR BELONGTO 405070 - 4050c9 2 INSTR DEADREGS EFLAGS RCX RDX R13 R14 XMM1 ZZ xor edx, edx + 4050c9 2 INSTR DEADREGS EFLAGS RCX RDX R12 R13 R14 XMM1 ZZ xor edx, edx 4050c9 -2 INSTR LOCAL n RDX ZZ AlwaysNUM xor edx, edx 4050cb 5 INSTR BELONGTO 405070 4050d0 4 INSTR BELONGTO 405070 - 4050d0 4 INSTR DEADREGS EFLAGS RCX R13 R14 XMM1 ZZ mov ecx, [r9+rdx*4] + 4050d0 4 INSTR DEADREGS EFLAGS RCX R12 R13 R14 XMM1 ZZ mov ecx, [r9+rdx*4] 4050d4 4 INSTR BELONGTO 405070 - 4050d4 4 INSTR DEADREGS EFLAGS R13 R14 XMM1 ZZ mov [r8+rdx*4], ecx + 4050d4 4 INSTR DEADREGS EFLAGS R12 R13 R14 XMM1 ZZ mov [r8+rdx*4], ecx 4050d8 -1 INSTR LOCAL 1stSrcVia2ndSrcIMMEDNUM add rdx, 1 4050d8 4 INSTR BELONGTO 405070 4050dc -1 INSTR LOCAL NoMetaUpdate cmp r15d, edx @@ -2925,7 +2925,7 @@ 4050df -1 INSTR LOCAL NoMetaUpdate ja short loc_4050D0 4050df 2 INSTR BELONGTO 405070 4050e1 2 INSTR BELONGTO 405070 - 4050e1 2 INSTR DEADREGS EFLAGS R13 R14 XMM1 ZZ mov ebp, edi + 4050e1 2 INSTR DEADREGS EFLAGS R12 R13 R14 XMM1 ZZ mov ebp, edi 4050e3 -1 INSTR LOCAL 2ndSrcNumeric sub ebp, r15d 4050e3 3 INSTR BELONGTO 405070 4050e6 -1 INSTR LOCAL NoMetaUpdate cmp edi, ebp @@ -2933,18 +2933,18 @@ 4050e8 -1 INSTR LOCAL NoMetaUpdate jbe short loc_405101 4050e8 2 INSTR BELONGTO 405070 4050ea 2 INSTR BELONGTO 405070 - 4050ea 2 INSTR DEADREGS EFLAGS RCX RDX R10 R13 R14 XMM1 ZZ mov edx, ebp + 4050ea 2 INSTR DEADREGS EFLAGS RCX RDX R10 R12 R13 R14 XMM1 ZZ mov edx, ebp 4050ec 4 INSTR BELONGTO 405070 4050f0 2 INSTR BELONGTO 405070 - 4050f0 2 INSTR DEADREGS EFLAGS RCX R10 R13 R14 XMM1 ZZ mov ecx, edx + 4050f0 2 INSTR DEADREGS EFLAGS RCX R10 R12 R13 R14 XMM1 ZZ mov ecx, edx 4050f2 -1 INSTR LOCAL 1stSrcVia2ndSrcIMMEDNUM add edx, 1 4050f2 3 INSTR BELONGTO 405070 4050f5 4 INSTR BELONGTO 405070 - 4050f5 4 INSTR DEADREGS EFLAGS R10 R13 R14 XMM1 ZZ mov r10d, [r9+rcx*4] + 4050f5 4 INSTR DEADREGS EFLAGS R10 R12 R13 R14 XMM1 ZZ mov r10d, [r9+rcx*4] 4050f9 -1 INSTR LOCAL NoMetaUpdate cmp edi, edx 4050f9 2 INSTR BELONGTO 405070 4050fb 4 INSTR BELONGTO 405070 - 4050fb 4 INSTR DEADREGS R13 R14 XMM1 ZZ mov [r8+rcx*4], r10d + 4050fb 4 INSTR DEADREGS R12 R13 R14 XMM1 ZZ mov [r8+rcx*4], r10d 4050ff -1 INSTR LOCAL NoMetaUpdate ja short loc_4050F0 4050ff 2 INSTR BELONGTO 405070 405101 -1 INSTR LOCAL NoMetaUpdate cmp r15d, ebp @@ -2955,22 +2955,22 @@ 40510a 5 INSTR BELONGTO 405070 40510f -2 INSTR LOCAL n R8 ZZ NumericDEFs lea r8d, [r15+1] 40510f 4 INSTR BELONGTO 405070 - 40510f 4 INSTR DEADREGS EFLAGS R8 R9 R13 R14 XMM1 ZZ lea r8d, [r15+1] + 40510f 4 INSTR DEADREGS EFLAGS R8 R9 R12 R13 R14 XMM1 ZZ lea r8d, [r15+1] 405113 -1 INSTR LOCAL SafeIfNoIndexing movss xmm2, cs:dword_40BE70 405113 8 INSTR BELONGTO 405070 40511b -2 INSTR LOCAL n R13 ZZ NumericDEFs mov r13d, r15d 40511b 3 INSTR BELONGTO 405070 - 40511b 3 INSTR DEADREGS EFLAGS R9 R13 R14 XMM1 ZZ mov r13d, r15d + 40511b 3 INSTR DEADREGS EFLAGS R9 R12 R13 R14 XMM1 ZZ mov r13d, r15d 40511e -1 INSTR LOCAL MetadataUnused xor r14d, r14d 40511e 3 INSTR BELONGTO 405070 405121 -2 INSTR LOCAL n R9 ZZ NumericDEFs mov r9d, r11d 405121 3 INSTR BELONGTO 405070 - 405121 3 INSTR DEADREGS EFLAGS R9 XMM1 ZZ mov r9d, r11d + 405121 3 INSTR DEADREGS EFLAGS R9 R12 XMM1 ZZ mov r9d, r11d 405124 4 INSTR BELONGTO 405070 405128 -2 INSTR LOCAL n RBP ZZ NumericDEFs mov ebp, r13d 405128 3 INSTR BELONGTO 405070 - 405128 3 INSTR DEADREGS EFLAGS XMM1 ZZ mov ebp, r13d - 40512b -1 INSTR LOCAL NoMetaUpdate lea r12d, [r8+r13] + 405128 3 INSTR DEADREGS EFLAGS R12 XMM1 ZZ mov ebp, r13d + 40512b -1 INSTR LOCAL MetadataUnused lea r12d, [r8+r13] 40512b 4 INSTR BELONGTO 405070 40512f -1 INSTR LOCAL MetadataUnused mov [rsp+0B8h+var_AC], r14d 40512f 5 INSTR BELONGTO 405070 @@ -3073,18 +3073,18 @@ 4051d9 -1 INSTR LOCAL NoMetaUpdate mulss xmm1, xmm3 4051d9 4 INSTR BELONGTO 405070 4051dd 3 INSTR BELONGTO 405070 - 4051dd 3 INSTR DEADREGS EFLAGS RCX RDX ZZ mov rdx, [rax] + 4051dd 3 INSTR DEADREGS EFLAGS RCX RDX R12 ZZ mov rdx, [rax] 4051e0 -2 INSTR LOCAL n RCX ZZ NumericDEFs mov ecx, r13d 4051e0 3 INSTR BELONGTO 405070 - 4051e0 3 INSTR DEADREGS EFLAGS RCX ZZ mov ecx, r13d + 4051e0 3 INSTR DEADREGS EFLAGS RCX R12 ZZ mov ecx, r13d 4051e3 -1 INSTR LOCAL NoMetaUpdate subss xmm1, xmm7 4051e3 4 INSTR BELONGTO 405070 4051e7 -1 INSTR LOCAL NoMetaUpdate divss xmm1, xmm0 4051e7 4 INSTR BELONGTO 405070 4051eb 5 INSTR BELONGTO 405070 - 4051eb 5 INSTR DEADREGS EFLAGS ZZ movss dword ptr [rdx+rcx*4], xmm1 + 4051eb 5 INSTR DEADREGS EFLAGS R12 ZZ movss dword ptr [rdx+rcx*4], xmm1 4051f0 2 INSTR BELONGTO 405070 - 4051f0 2 INSTR DEADREGS EFLAGS RDX XMM1 ZZ mov edx, edi + 4051f0 2 INSTR DEADREGS EFLAGS RDX R12 XMM1 ZZ mov edx, edi 4051f2 -1 INSTR LOCAL 1stSrcVia2ndSrcIMMEDNUM add r13d, 1 4051f2 4 INSTR BELONGTO 405070 4051f6 -1 INSTR LOCAL 2ndSrcNumeric sub edx, r15d @@ -3114,13 +3114,13 @@ 405218 3 INSTR BELONGTO 405070 40521b -2 INSTR LOCAL n RDX ZZ NumericDEFs mov edx, r13d 40521b 3 INSTR BELONGTO 405070 - 40521b 3 INSTR DEADREGS EFLAGS RDX RSI XMM1 ZZ mov edx, r13d + 40521b 3 INSTR DEADREGS EFLAGS RDX RSI R12 XMM1 ZZ mov edx, r13d 40521e 3 INSTR BELONGTO 405070 - 40521e 3 INSTR DEADREGS EFLAGS RSI XMM1 ZZ mov esi, [rcx+rdx*4] + 40521e 3 INSTR DEADREGS EFLAGS RSI R12 XMM1 ZZ mov esi, [rcx+rdx*4] 405221 3 INSTR BELONGTO 405070 - 405221 3 INSTR DEADREGS EFLAGS RCX XMM1 ZZ mov rcx, [rax] + 405221 3 INSTR DEADREGS EFLAGS RCX R12 XMM1 ZZ mov rcx, [rax] 405224 3 INSTR BELONGTO 405070 - 405224 3 INSTR DEADREGS EFLAGS XMM1 ZZ mov [rcx+rdx*4], esi + 405224 3 INSTR DEADREGS EFLAGS R12 XMM1 ZZ mov [rcx+rdx*4], esi 405227 -1 INSTR LOCAL NoMetaUpdate jmp short loc_4051F0 405227 2 INSTR BELONGTO 405070 405229 5 INSTR BELONGTO 405070 diff --git a/tests/commit/trimmed-sorted-save-gnome-session-properties.psexe.annot b/tests/commit/trimmed-sorted-save-gnome-session-properties.psexe.annot index d677e2afb7cfd454f468640dcc27163f187b47a7..1938ccf93f851ec5ff8d3695bd24b2fc740d017c 100644 --- a/tests/commit/trimmed-sorted-save-gnome-session-properties.psexe.annot +++ b/tests/commit/trimmed-sorted-save-gnome-session-properties.psexe.annot @@ -13368,8 +13368,8 @@ 40aec9 2 INSTR BELONGTO 40aec0 40aec9 2 INSTR DEADREGS EFLAGS R14 R15 ZZ push r12 40aec9 -3 INSTR LOCAL NoWarn push r12 + 40aecb -1 INSTR LOCAL MetadataUnused mov r12d, edi 40aecb 3 INSTR BELONGTO 40aec0 - 40aecb 3 INSTR DEADREGS EFLAGS R12 R14 R15 ZZ mov r12d, edi 40aece 1 INSTR BELONGTO 40aec0 40aece 1 INSTR DEADREGS EFLAGS R14 R15 ZZ push rbp 40aece -3 INSTR LOCAL NoWarn push rbp @@ -13622,8 +13622,8 @@ 40b04c 3 INSTR BELONGTO 40aec0 40b04f -1 INSTR LOCAL NoMetaUpdate jz loc_40AFB8 40b04f 6 INSTR BELONGTO 40aec0 - 40b055 -1 INSTR LOCAL NoMetaUpdate lea r12, [r14+r15] 40b055 4 INSTR BELONGTO 40aec0 + 40b055 4 INSTR DEADREGS EFLAGS RAX RCX RDX RSI RDI R8 R9 R10 R11 R12 ZZ lea r12, [r14+r15] 40b059 -2 INSTR LOCAL n R15 ZZ NumericDEFs lea r15d, [r13+1] 40b059 4 INSTR BELONGTO 40aec0 40b059 4 INSTR DEADREGS EFLAGS RAX RCX RDX RSI RDI R8 R9 R10 R11 R15 ZZ lea r15d, [r13+1] diff --git a/tests/commit/trimmed-sorted-save-gnome-session.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-gnome-session.psexe.annot.REMOVED.git-id index f0f6b1cf72c970c62b9a3b8193ec45b99c501263..0b15fc72ce2da0417a8a6a3813e377971a27e577 100644 --- a/tests/commit/trimmed-sorted-save-gnome-session.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-gnome-session.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -365bb54a68a7774fc3b5d9f3f1222f6217dc5bed \ No newline at end of file +427882dd158acc995b24ad06a817ae7861e05127 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-grep.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-grep.psexe.annot.REMOVED.git-id index a71bc67848db5a1703a48ed8d15da5060a529694..5bf294425cb8238bc172eaff5baf00b7a8900d2a 100644 --- a/tests/commit/trimmed-sorted-save-grep.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-grep.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -1cff39ce95d1e56d3a311ff81e8b3cbb0096cf1d \ No newline at end of file +f47adf7dba1dfe780fd51d6c4dd0dbef627ec6fb \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-httpd.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-httpd.psexe.annot.REMOVED.git-id index 953405f5e978dd71f7b6eaa1d3ea049c3d3d281e..7c5ac932c6c830213dc1a1c7c21e5ec77e8c2f55 100644 --- a/tests/commit/trimmed-sorted-save-httpd.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-httpd.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -70aed34f7ed18439c22c06274445013a40a65fbf \ No newline at end of file +4f57fb09c88273a7ea13acede30adb9cf7e0b0c7 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-less.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-less.psexe.annot.REMOVED.git-id index d338dae383678b956e5d4091de418f5bb068844b..27c272331343d16c1640396014bb54783721a87f 100644 --- a/tests/commit/trimmed-sorted-save-less.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-less.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -0f2d003b111b4fcbaffa9c4f02923835e171f1d2 \ No newline at end of file +0ba29329f291a6a35781377b9fe452f5fc78a5d0 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-nginx.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-nginx.psexe.annot.REMOVED.git-id index e156043974177362ed28cad28bd3046d52ec1844..f3e5a011f6b872ddc64115eb7825ba9db25ee7c7 100644 --- a/tests/commit/trimmed-sorted-save-nginx.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-nginx.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -ff811676769922e1cc3023925fb7a8067df4bca7 \ No newline at end of file +30cbf96798794f91704301fb82c07dcb26945359 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-openssl.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-openssl.psexe.annot.REMOVED.git-id index d086bbed5efe8a78f3d0978cd0df2964fc3ff428..bb02357e19c2359d695706b4c5406e2219c7d97a 100644 --- a/tests/commit/trimmed-sorted-save-openssl.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-openssl.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -4b91acf5142baf4326df07b2990fa57e4db18d67 \ No newline at end of file +34e7c411bcb74caafb742c8ac147eb05986b3144 \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-synaptic.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-synaptic.psexe.annot.REMOVED.git-id index 3550d0c9232675c6d3b0d5fa28997e8a57858dae..9659f5fbd244f41de68ca207abd0584197da2804 100644 --- a/tests/commit/trimmed-sorted-save-synaptic.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-synaptic.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -b46f2887c3d3921421af1fc26edf78a95261585e \ No newline at end of file +e57ad6fec93435168a891825a72c00263349617d \ No newline at end of file diff --git a/tests/commit/trimmed-sorted-save-xedit.psexe.annot.REMOVED.git-id b/tests/commit/trimmed-sorted-save-xedit.psexe.annot.REMOVED.git-id index b7d50b115d39de4dff7639e58bc2e25649d6b402..839eb496407e2be0a651362bf4c0ea37727980d5 100644 --- a/tests/commit/trimmed-sorted-save-xedit.psexe.annot.REMOVED.git-id +++ b/tests/commit/trimmed-sorted-save-xedit.psexe.annot.REMOVED.git-id @@ -1 +1 @@ -64d1bc263ed2e0c95ebb79b283e735a3d13f95ad \ No newline at end of file +c22c63d7581b7d6fd69eb831637b2cbadb3b47ee \ No newline at end of file