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
  • #2494
Closed
Open
Issue created Jul 04, 2017 by Administrator@rootContributor

ARM encoder incorrectly handles VTBL/VTBX reglist in some cases

Created by: egrimley

(This is split off from #2465 (closed).)

Example error message from log (-checklevel 1):

ERROR: from app:  ffb6 69a8  vtbl.8 %d22 %d23 %d24 -> %d6
vs from encoding: ffb6 6aa8  vtbl.8 %d22 %d23 %d24 %d24 -> %d6

It appears from this and other examples that the encoder gets confused when the second source operand (a single register) looks like a continuation of the reglist operand, which is the first source operand. In the case above, the encoder seems to eat d22-d24, then later realise that it needs d24 for the second source operand, but fails to remove d24 from the register list. A search for "greed" in arm/encode.c reveals what the strategy is supposed to be, but apparently it does not work in this case.

(Might other instructions be affected by the same bug?)

Assignee
Assign to
Time tracking