digitalmars.D.bugs - [Issue 11788] New: [x86] Valgrind unhandled instruction bytes: 0xC8 0x8 0x0 0x0
- d-bugmail puremagic.com (58/58) Dec 21 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11788
- d-bugmail puremagic.com (10/10) Dec 21 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11788
- d-bugmail puremagic.com (21/21) Dec 21 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11788
- d-bugmail puremagic.com (7/7) Dec 21 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11788
- d-bugmail puremagic.com (11/11) Dec 21 2013 https://d.puremagic.com/issues/show_bug.cgi?id=11788
https://d.puremagic.com/issues/show_bug.cgi?id=11788 Summary: [x86] Valgrind unhandled instruction bytes: 0xC8 0x8 0x0 0x0 Product: D Version: D2 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bruno.deligny gmail.com PST --- I have this error with valgrind with an very simple 32 bits exe generated with dmd. import std.stdio; int main() { writeln("Hello world"); return 0; } dmd -g main.d ==7091== Memcheck, a memory error detector ==7091== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. ==7091== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info ==7091== Command: ./main ==7091== vex x86->IR: unhandled instruction bytes: 0xC8 0x8 0x0 0x0 ==7091== valgrind: Unrecognised instruction at address 0x8069b54. ==7091== at 0x8069B54: ??? (in /home/bruno/main) ==7091== Your program just tried to execute an instruction that Valgrind ==7091== did not recognise. There are two possible reasons for this. ==7091== 1. Your program has a bug and erroneously jumped to a non-code ==7091== location. If you are running Memcheck and you just saw a ==7091== warning about a bad jump, it's probably your program's fault. ==7091== 2. The instruction is legitimate but Valgrind doesn't handle it, ==7091== i.e. it's Valgrind's fault. If you think this is the case or ==7091== you are not sure, please let us know and we'll try to fix it. ==7091== Either way, Valgrind will now raise a SIGILL signal which will ==7091== probably kill your program. ==7091== ==7091== Process terminating with default action of signal 4 (SIGILL) ==7091== Illegal opcode at address 0x8069B54 ==7091== at 0x8069B54: ??? (in /home/bruno/main) ==7091== ==7091== HEAP SUMMARY: ==7091== in use at exit: 0 bytes in 0 blocks ==7091== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==7091== ==7091== All heap blocks were freed -- no leaks are possible ==7091== ==7091== For counts of detected and suppressed errors, rerun with: -v ==7091== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Instruction non permise -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 21 2013
https://d.puremagic.com/issues/show_bug.cgi?id=11788 Maxim Fomin <maxim maxim-fomin.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maxim maxim-fomin.ru --- This belongs to valgrind bugzilla. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 21 2013
https://d.puremagic.com/issues/show_bug.cgi?id=11788 PST --- I know but it's already reported on valgrind bugtracker since a while: https://bugs.kde.org/show_bug.cgi?id=272971 https://bugs.kde.org/show_bug.cgi?id=253433 https://bugs.kde.org/show_bug.cgi?id=317208 I tried with last Valgrind release and with Valgrind svn code. Nobody seams to care because nobody uses this instruction (enter). From Intel's Optimisation Reference Manual: "Assembler/Compiler Coding Rule 40. (ML impact, M generality) Avoid using complex instructions (for example, enter, leave, or loop) that have more than 4 uops and require multiple cycles to decode. Use sequences of simple instructions instead. Complex instructions may save architectural registers, but incur a penalty of 4 uops to set up parameters for the microcode ROM." Maybe it would be wise for dmd to be more "standard" (do like gcc or llvm) because good tool support is extremely important and Valgrind is a leader in that domain. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 21 2013
https://d.puremagic.com/issues/show_bug.cgi?id=11788 --- I see. But AFAIK Walter is reluctant to change it. This is enhancement request at best. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 21 2013
https://d.puremagic.com/issues/show_bug.cgi?id=11788 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |yebblies gmail.com AssignedTo|nobody puremagic.com |yebblies gmail.com IMO the optimization manual quote seals it. I'll put it on my to-do list. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 21 2013