From b23127f54195f2963358a1b07232b4789218777b Mon Sep 17 00:00:00 2001 From: clc5q <clc5q@git.zephyr-software.com> Date: Sat, 12 Dec 2015 03:11:57 +0000 Subject: [PATCH] Fix logic error that classifies certain lea instructions as no-ops. Former-commit-id: be0a6cabe4f1e278f953654bb28354e886a97941 --- src/base/SMPInstr.cpp | 23 +++---- tests/commit/save-busybox.psexe.infoannot | 8 +-- ...save-ffmpeg.psexe.infoannot.REMOVED.git-id | 2 +- ...e-gnome-session-properties.psexe.infoannot | 4 +- .../commit/save-gnome-session.psexe.infoannot | 4 +- tests/commit/save-nginx.psexe.infoannot | 4 +- tests/commit/save-xedit.psexe.infoannot | 4 +- ...ed-save-busybox.psexe.annot.REMOVED.git-id | 2 +- ...ted-save-ffmpeg.psexe.annot.REMOVED.git-id | 2 +- ...ave-firefox-bin.psexe.annot.REMOVED.git-id | 2 +- ...orted-save-gimp.psexe.annot.REMOVED.git-id | 2 +- ...orted-save-gnome-character-map.psexe.annot | 6 +- ...ed-save-gnome-power-statistics.psexe.annot | 66 +++++++++---------- ...-save-gnome-session-properties.psexe.annot | 4 +- ...e-gnome-session.psexe.annot.REMOVED.git-id | 2 +- ...orted-save-grep.psexe.annot.REMOVED.git-id | 2 +- ...rted-save-httpd.psexe.annot.REMOVED.git-id | 2 +- ...orted-save-less.psexe.annot.REMOVED.git-id | 2 +- ...rted-save-nginx.psexe.annot.REMOVED.git-id | 2 +- ...ed-save-openssl.psexe.annot.REMOVED.git-id | 2 +- ...d-save-synaptic.psexe.annot.REMOVED.git-id | 2 +- ...rted-save-xedit.psexe.annot.REMOVED.git-id | 2 +- 22 files changed, 77 insertions(+), 72 deletions(-) diff --git a/src/base/SMPInstr.cpp b/src/base/SMPInstr.cpp index 241915b5..abd75e02 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 f66f4d36..3cf2fbe8 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 0de57e58..c494d381 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 cd4b0cd3..a93407f5 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 de04ff5b..bb28b92e 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 6d1d7bf6..220cb690 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 251a2871..4f648f10 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 92cf2d23..de1f1ac5 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 b38b8366..b48461d5 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 8ef29942..f80912b0 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 ace638f1..c611073e 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 22725182..1c088f13 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 cd7529a0..cf2efd1e 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 d677e2af..1938ccf9 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 f0f6b1cf..0b15fc72 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 a71bc678..5bf29442 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 953405f5..7c5ac932 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 d338dae3..27c27233 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 e1560439..f3e5a011 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 d086bbed..bb02357e 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 3550d0c9..9659f5fb 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 b7d50b11..839eb496 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 -- GitLab