[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #5 from Julian Seward --- (In reply to Claus Strasburger from comment #4) > more -- this one is 0xFEBB0B40, VRINTM.f64), in code generated with > -mcpu=cortex-a53 -mfpu=neon-fp-armv8 (for the Raspberry Pi 3, gcc 4.9.2) > > Should I open new bugs for these? In general, new problems should go on new bug reports. Having a single bug report tracking multiple failures is confusing. In this particular case, try svn up-ing and trying again. Vex r3292 supports VRINTM.f64 and some other instructions -- as far as I can tell, all the instructions that "gcc-5.4 -mfpu=neon-fp-armv8". -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #6 from Julian Seward --- > all the instructions that "gcc-5.4 -mfpu=neon-fp-armv8". += "generates." -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #7 from Claus Strasburger --- Indeed, my tests are happy. You guys are awesome! Thanks for all the hard work. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 Julian Seward changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #3 from Julian Seward --- Fixed, vex r3289. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #4 from Claus Strasburger --- Thanks! I can verify that gets me past the OpenSSL setup. I'm finding another unhandled instruction (and I'm guessing there will be more -- this one is 0xFEBB0B40, VRINTM.f64), in code generated with -mcpu=cortex-a53 -mfpu=neon-fp-armv8 (for the Raspberry Pi 3, gcc 4.9.2) Should I open new bugs for these? -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 Claus Strasburger changed: What|Removed |Added CC||c+...@cfs.im -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #1 from Julian Seward --- Ach, the logic there that verifies whether the instruction decode is valid, is wrong. Try this: change // Paranoia .. vassert(szBlg2 <= 3); if (szBlg2 < 3) { vassert(tt2 == 16/*invalid*/); } else { vassert(tt2 <= 14); } if (isLoad) { vassert(dd == 16/*invalid*/); } else { vassert(dd <= 14); } // If we're still good even after all that, generate the IR. by wrapping "if (gate) { .. }" around it: if (gate) { // Paranoia .. vassert(szBlg2 <= 3); if (szBlg2 < 3) { vassert(tt2 == 16/*invalid*/); } else { vassert(tt2 <= 14); } if (isLoad) { vassert(dd == 16/*invalid*/); } else { vassert(dd <= 14); } // If we're still good even after all that, generate the IR. } This isn't a proper fix, though. Can you use objdump to find the insn it is failing on? I'll need that to test it properly. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #2 from Claus Strasburger --- Okay, I used LD_DEBUG=files to subtract the base address of libcrypto, and got 414b0 (x->). which seems to be the return of OPENSSL_cpuid_setup (??) 414a4: ebfffa93bl 3fef8 <__sigsetjmp@plt> 414a8: e350cmp r0, #0 414ac: 1a06bne 414cc x->414b0: eb000e4cbl 44de8 414b4: e59f3068ldr r3, [pc, #104] ; 41524 414b8: e59d2004ldr r2, [sp, #4] 414bc: e7922003ldr r2, [r2, r3] I took the address from "Thread 1: status = VgTs_Runnable (lwpid 27114) ==27114==at 0x48B54B0: OPENSSL_cpuid_setup (in /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0)" Applying the fix you mentioned gets me farther, until: disInstr(arm): unhandled instruction: 0xEE190F1D cond=14(0xE) 27:20=225(0xE1) 4:4=1 3:0=13(0xD) ==30349== valgrind: Unrecognised instruction at address 0x48b8de8 (minus base address: 44de8, y->). 44dac: e593ldr r0, [r3] 44db0: e212andsr0, r0, #2 44db4: 012fff1ebxeqlr 44db8: ea0ab 44de8 44dbc: 0011d254andseq sp, r1, r4, asr r2 44dc0: 224candeq r2, r0, ip, asr #4 ... 44de0: f26ee1fevorrq15, q15, q15 44de4: e12fff1ebx lr y->44de8: ee190f1dmrc 15, 0, r0, cr9, cr13, {0} 44dec: e12fff1ebx lr Which is the address we were trying to jump to the last attempt... Does that help? -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #5 from Julian Seward --- (In reply to Claus Strasburger from comment #4) > more -- this one is 0xFEBB0B40, VRINTM.f64), in code generated with > -mcpu=cortex-a53 -mfpu=neon-fp-armv8 (for the Raspberry Pi 3, gcc 4.9.2) > > Should I open new bugs for these? In general, new problems should go on new bug reports. Having a single bug report tracking multiple failures is confusing. In this particular case, try svn up-ing and trying again. Vex r3292 supports VRINTM.f64 and some other instructions -- as far as I can tell, all the instructions that "gcc-5.4 -mfpu=neon-fp-armv8". -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #6 from Julian Seward --- > all the instructions that "gcc-5.4 -mfpu=neon-fp-armv8". += "generates." -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #7 from Claus Strasburger --- Indeed, my tests are happy. You guys are awesome! Thanks for all the hard work. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 Julian Seward changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #3 from Julian Seward --- Fixed, vex r3289. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #4 from Claus Strasburger --- Thanks! I can verify that gets me past the OpenSSL setup. I'm finding another unhandled instruction (and I'm guessing there will be more -- this one is 0xFEBB0B40, VRINTM.f64), in code generated with -mcpu=cortex-a53 -mfpu=neon-fp-armv8 (for the Raspberry Pi 3, gcc 4.9.2) Should I open new bugs for these? -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 Claus Strasburger changed: What|Removed |Added CC||c+...@cfs.im -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #1 from Julian Seward --- Ach, the logic there that verifies whether the instruction decode is valid, is wrong. Try this: change // Paranoia .. vassert(szBlg2 <= 3); if (szBlg2 < 3) { vassert(tt2 == 16/*invalid*/); } else { vassert(tt2 <= 14); } if (isLoad) { vassert(dd == 16/*invalid*/); } else { vassert(dd <= 14); } // If we're still good even after all that, generate the IR. by wrapping "if (gate) { .. }" around it: if (gate) { // Paranoia .. vassert(szBlg2 <= 3); if (szBlg2 < 3) { vassert(tt2 == 16/*invalid*/); } else { vassert(tt2 <= 14); } if (isLoad) { vassert(dd == 16/*invalid*/); } else { vassert(dd <= 14); } // If we're still good even after all that, generate the IR. } This isn't a proper fix, though. Can you use objdump to find the insn it is failing on? I'll need that to test it properly. -- You are receiving this mail because: You are watching all bug changes.
[valgrind] [Bug 372794] LibVEX 'Assertion szBlg2 <= 3'
https://bugs.kde.org/show_bug.cgi?id=372794 --- Comment #2 from Claus Strasburger --- Okay, I used LD_DEBUG=files to subtract the base address of libcrypto, and got 414b0 (x->). which seems to be the return of OPENSSL_cpuid_setup (??) 414a4: ebfffa93bl 3fef8 <__sigsetjmp@plt> 414a8: e350cmp r0, #0 414ac: 1a06bne 414cc x->414b0: eb000e4cbl 44de8 414b4: e59f3068ldr r3, [pc, #104] ; 41524 414b8: e59d2004ldr r2, [sp, #4] 414bc: e7922003ldr r2, [r2, r3] I took the address from "Thread 1: status = VgTs_Runnable (lwpid 27114) ==27114==at 0x48B54B0: OPENSSL_cpuid_setup (in /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0)" Applying the fix you mentioned gets me farther, until: disInstr(arm): unhandled instruction: 0xEE190F1D cond=14(0xE) 27:20=225(0xE1) 4:4=1 3:0=13(0xD) ==30349== valgrind: Unrecognised instruction at address 0x48b8de8 (minus base address: 44de8, y->). 44dac: e593ldr r0, [r3] 44db0: e212andsr0, r0, #2 44db4: 012fff1ebxeqlr 44db8: ea0ab 44de8 44dbc: 0011d254andseq sp, r1, r4, asr r2 44dc0: 224candeq r2, r0, ip, asr #4 ... 44de0: f26ee1fevorrq15, q15, q15 44de4: e12fff1ebx lr y->44de8: ee190f1dmrc 15, 0, r0, cr9, cr13, {0} 44dec: e12fff1ebx lr Which is the address we were trying to jump to the last attempt... Does that help? -- You are receiving this mail because: You are watching all bug changes.