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
  • Merge requests
  • !3785

i#3581 SHA/MPX/PT support: Add support for Intel MPX instructions.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Hendrik Greving requested to merge i3581-mpx-opcodes into master Aug 14, 2019
  • Overview 55
  • Commits 15
  • Pipelines 0
  • Changes 21

Adds the Intel MPX opcodes bndmov, bndcl, bndcn, bndcu, bndmk, bndldx, bndstx.

Adds the new registers DR_REG_BND0 - DR_REG_BND3 and the new operand types TYPE_T_REG and TYPE_T_MODRM.

Adds the size OPSZ_8x16. Both OPSZ_4x8 and the new size are used in order to avoid a superfluous REX prefix when encoding the MPX instructions.

Adds the function reg_is_bnd().

Adds tests for above.

Removes an invalid encoding from decenc.drdecode_decenc_x86[_64]. The encoding would decode to a bnd instruction with invalid register.

Opcodes have been checked against llvm-mc and binutils/gas/objdump.

In an unrelated change, the unnecessary reg_size_ok() checks from certain TYPE_K_ versions in the encoder have been removed and a TODO comment has been added.

Clients should not rely on binary compatibility of the added opcodes until both issues #3581 (closed) and #1312 have been closed.

Issue: #3581 (closed)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i3581-mpx-opcodes