Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #3653
Closed
Open
Issue created May 28, 2019 by Derek Bruening@derekbrueningContributor

vpabs*, vperm2f128, vinsertf128 encoding errors

Comparing api.ir (Intel-style) verbose output to llvm-mc, capstone, and bfd (objdump) shows several encoding errors in DR:

Interestingly, bfd does not flag the vpabs* as invalid.

  0x000055b19056d7f4  c4 e2 71 1c 41 37    vpabsb %xmm1 0x37(%rcx)[16byte] -> %xmm0
  0x000055b19056d7fa  c4 e2 71 1d 41 37    vpabsw %xmm1 0x37(%rcx)[16byte] -> %xmm0
  0x000055b19056d800  c4 e2 71 1e 41 37    vpabsd %xmm1 0x37(%rcx)[16byte] -> %xmm0
c4 e2 71 1c 41 37
Disassembling 0xc4 0xe2 0x71 0x1c 0x41 0x37
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x71 0x1c 0x41 0x37
^
llvm-mc:   0xc4 0xe2 0x71 0x1c 0x41 0x37 
capstone: 
bfd:       c4 e2 71 1c 41 37 vpabsb 0x37(%rcx),%xmm0

c4 e2 71 1d 41 37
Disassembling 0xc4 0xe2 0x71 0x1d 0x41 0x37
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x71 0x1d 0x41 0x37
^
llvm-mc:   0xc4 0xe2 0x71 0x1d 0x41 0x37 
capstone: 
bfd:       c4 e2 71 1d 41 37 vpabsw 0x37(%rcx),%xmm0

c4 e2 71 1e 41 37
Disassembling 0xc4 0xe2 0x71 0x1e 0x41 0x37
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x71 0x1e 0x41 0x37
^
llvm-mc:   0xc4 0xe2 0x71 0x1e 0x41 0x37 
capstone: 
bfd:       c4 e2 71 1e 41 37 vpabsd 0x37(%rcx),%xmm0
  0x000055b19056d67d  c4 e2 75 1c 41 37    vpabsb %ymm1 0x37(%rcx)[32byte] -> %ymm0
  0x000055b19056d683  c4 e2 75 1d 41 37    vpabsw %ymm1 0x37(%rcx)[32byte] -> %ymm0
  0x000055b19056d689  c4 e2 75 1e 41 37    vpabsd %ymm1 0x37(%rcx)[32byte] -> %ymm0
c4 e2 75 1c 41 37
Disassembling 0xc4 0xe2 0x75 0x1c 0x41 0x37
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x75 0x1c 0x41 0x37
^
llvm-mc:   0xc4 0xe2 0x75 0x1c 0x41 0x37 
capstone: 
bfd:       c4 e2 75 1c 41 37 vpabsb 0x37(%rcx),%ymm0

c4 e2 75 1d 41 37
Disassembling 0xc4 0xe2 0x75 0x1d 0x41 0x37
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x75 0x1d 0x41 0x37
^
llvm-mc:   0xc4 0xe2 0x75 0x1d 0x41 0x37 
capstone: 
bfd:       c4 e2 75 1d 41 37 vpabsw 0x37(%rcx),%ymm0

c4 e2 75 1e 41 37
Disassembling 0xc4 0xe2 0x75 0x1e 0x41 0x37
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x75 0x1e 0x41 0x37
^
llvm-mc:   0xc4 0xe2 0x75 0x1e 0x41 0x37 
capstone: 
bfd:       c4 e2 75 1e 41 37 vpabsd 0x37(%rcx),%ymm0
  0x000055b19056d4c6  c4 e3 71 06 41 37 25 vperm2f128 %xmm1 0x37(%rcx)[16byte] $0x25 -> %xmm0
  0x000055b19056d4cd  c4 e3 71 18 41 37 25 vinsertf128 %xmm1 0x37(%rcx)[16byte] $0x25 -> %xmm0
c4 e3 71 06 41 37 25
Disassembling 0xc4 0xe3 0x71 0x06 0x41 0x37 0x25
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe3 0x71 0x06 0x41 0x37 0x25
^
<stdin>:1:21: warning: invalid instruction encoding
0xc4 0xe3 0x71 0x06 0x41 0x37 0x25
                    ^
<stdin>:1:31: warning: invalid instruction encoding
0xc4 0xe3 0x71 0x06 0x41 0x37 0x25
                              ^
llvm-mc:   0xc4 0xe3 0x71 0x06 0x41 0x37 0x25 
capstone: 
bfd:       c4 e3 71 06 (bad)
c4 e3 71 18 41 37 25
Disassembling 0xc4 0xe3 0x71 0x18 0x41 0x37 0x25
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe3 0x71 0x18 0x41 0x37 0x25
^
<stdin>:1:21: warning: invalid instruction encoding

0xc4 0xe3 0x71 0x18 0x41 0x37 0x25
                    ^
<stdin>:1:31: warning: invalid instruction encoding
0xc4 0xe3 0x71 0x18 0x41 0x37 0x25
                              ^
llvm-mc:   0xc4 0xe3 0x71 0x18 0x41 0x37 0x25 
capstone: 
bfd:       c4 e3 71 18 (bad)
Assignee
Assign to
Time tracking