Bug 407557 - Loongson specific instructions not implemented
Summary: Loongson specific instructions not implemented
Status: REPORTED
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: 3.13 SVN
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-15 12:35 UTC by Dapeng
Modified: 2020-11-18 03:39 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dapeng 2019-05-15 12:35:20 UTC
SUMMARY
mips support problem on Loongson (mips64el)



STEPS TO REPRODUCE
1. make and make install
2. Run ./vg-in-place --error-exitcode=1 /bin/true  Or  valgrind /bin/true




OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
This bug derived from https://bugs.kde.org/show_bug.cgi?id=406824

+ ./vg-in-place --error-exitcode=1 /bin/true
==6577== Memcheck, a memory error detector
==6577== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==6577== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==6577== Command: /bin/true
==6577== 
vex mips->IR: unhandled instruction bytes: 0x7C 0x19 0xB7 0xEB
==6577== valgrind: Unrecognised instruction at address 0x4006abc.
==6577==    at 0x4006ABC: _dl_start (rtld.c:336)
==6577==    by 0x4002FCC: __start (in /usr/lib64/ld-2.20.so)
==6577== Your program just tried to execute an instruction that Valgrind
==6577== did not recognise.  There are two possible reasons for this.
==6577== 1. Your program has a bug and erroneously jumped to a non-code
==6577==    location.  If you are running Memcheck and you just saw a
==6577==    warning about a bad jump, it's probably your program's fault.
==6577== 2. The instruction is legitimate but Valgrind doesn't handle it,
==6577==    i.e. it's Valgrind's fault.  If you think this is the case or
==6577==    you are not sure, please let us know and we'll try to fix it.
==6577== Either way, Valgrind will now raise a SIGILL signal which will
==6577== probably kill your program.
==6577== 
==6577== Process terminating with default action of signal 4 (SIGILL)
==6577==  Illegal opcode at address 0x4006ABC
==6577==    at 0x4006ABC: _dl_start (rtld.c:336)
==6577==    by 0x4002FCC: __start (in /usr/lib64/ld-2.20.so)
==6577== 
==6577== HEAP SUMMARY:
==6577==     in use at exit: 0 bytes in 0 blocks
==6577==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==6577== 
==6577== All heap blocks were freed -- no leaks are possible
==6577== 
==6577== For counts of detected and suppressed errors, rerun with: -v
==6577== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
./vg-in-place: line 31:  6577 Illegal instruction     VALGRIND_LIB="$vgbasedir/.in_place" VALGRIND_LIB_INNER="$vgbasedir/.in_place" "$vgbasedir/coregrind/valgrind" "$@"


> vex mips->IR: unhandled instruction bytes: 0x7C 0x19 0xB7 0xEB
> ==6577== valgrind: Unrecognised instruction at address 0x4006abc.
the opcode is not swc2, it seems to be gssq on loongson:
6abc:       ebb7197c        gssq    gp,s7,1616(sp)
Comment 2 Petar Jovanovic 2019-08-14 12:56:19 UTC
I am not aware of anyone doing the work to support Loongson specific
instructions.
As I said on the mailing list, I suggest you install regular MIPS64 Debian,
then it should work without problems.