https://bugs.kde.org/show_bug.cgi?id=501437

            Bug ID: 501437
           Summary: Unhandled instruction bytes error for shlx/shrx
    Classification: Developer tools
           Product: valgrind
           Version: 3.24.0
          Platform: Other
                OS: Other
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: vex
          Assignee: jsew...@acm.org
          Reporter: heide...@hotmail.com
  Target Milestone: ---

I receive unhandled instruction bytes error on an Ubuntu/Amd64 platform:

==5137== Memcheck, a memory error detector
==5137== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==5137== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==5137== Command: ./myapp
==5137== 
vex amd64->IR: unhandled instruction bytes: 0xC4 0xE2 0x79 0xF7 0xD1 0x8B 0x45
0xB4 0x1 0xD0
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==5137== valgrind: Unrecognised instruction at address 0x4f7dc5.
==5137==    at 0x4F7DC5: google::protobuf::internal::ReadSizeFallback(char
const*, unsigned int) (parse_context.cc:401)
==5137==    by 0x4CE499: google::protobuf::internal::ReadSize(char const**)
(parse_context.h:606)
==5137==    by 0x6376D3: char const*
google::protobuf::internal::ParseContext::ParseMessage<google::protobuf::DescriptorProto>(google::protobuf::DescriptorProto*,
char const*) (parse_context.h:643)
==5137==    by 0x603169:
google::protobuf::FileDescriptorProto::_InternalParse(char const*,
google::protobuf::internal::ParseContext*) (descriptor.pb.cc:1639)
==5137==    by 0x4F3F25: bool
google::protobuf::internal::MergeFromImpl<false>(google::protobuf::StringPiece,
google::protobuf::MessageLite*, google::protobuf::MessageLite::ParseFlags)
(message_lite.cc:144)
==5137==    by 0x4F4DFF: bool
google::protobuf::MessageLite::ParseFrom<(google::protobuf::MessageLite::ParseFlags)1,
google::protobuf::StringPiece>(google::protobuf::StringPiece const&)
(message_lite.h:577)
==5137==    by 0x4F1F41: google::protobuf::MessageLite::ParseFromArray(void
const*, int) (message_lite.cc:325)
==5137==    by 0x642618: google::protobuf::EncodedDescriptorDatabase::Add(void
const*, int) (descriptor_database.cc:556)
==5137==    by 0x598762:
google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, int)
(descriptor.cc:1371)
==5137==    by 0x52F7AC: google::protobuf::(anonymous
namespace)::AddDescriptorsImpl(google::protobuf::internal::DescriptorTable
const*) (generated_message_reflection.cc:2494)
==5137==    by 0x52F7E9: google::protobuf::(anonymous
namespace)::AddDescriptors(google::protobuf::internal::DescriptorTable const*)
(generated_message_reflection.cc:2505)
==5137==    by 0x52F85B:
google::protobuf::internal::AddDescriptorsRunner::AddDescriptorsRunner(google::protobuf::internal::DescriptorTable
const*) (generated_message_reflection.cc:2529)

Same error for version 3.24.

he problematic instructions seem to be shlx/shrx:

  5e:    c4 e2 f9 f7 d2           shlx   %rax,%rdx,%rdx
  63:    8b 45 dc                 mov    -0x24(%rbp),%eax
  66:    c4 e2 fb f7 d2           shrx   %rax,%rdx,%rdx

Which is from the bmi2 instruction set.

Adding -mno-bmi2 to the g++ parameters helps.

I'm confused, shouldn't shlx/shrx be supported by valgrind?

Regards

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to