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
  • !3668

i#1312 AVX-512 support: Add all remaining vinsert* and vextract* opcodes.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Hendrik Greving requested to merge i1312-add-evex-decoder-incremental-11 into master Jun 04, 2019
  • Overview 34
  • Commits 10
  • Pipelines 0
  • Changes 18

Adds the evex-promoted opcodes vextractps, vinsertps.

Adds the new AVX-512 opcodes vextractf32x4, vextractf64x2, vextractf32x8, vextractf64x4, vextracti32x4, vextracti64x2, vextracti32x8, vextracti64x4, vinsertf32x4, vinsertf64x2, vinsertf32x8, vinsertf64x4, vinserti32x4, vinserti64x2, vinserti32x8, vinserti64x4.

Adds tests for above.

In order to support the new instructions, the following decoder and encoder modifications are part of this patch:

Adds new AVX-512 sizes OPSZ_16_of_32_evex64 and OPSZ_32_of_64 and corresponding operand types in the decode table.

Fixes VEX.L and EVEX.LL assignment in encoder. Instructions in AVX-512 appear to encode the L-bits according to their largest operand size. This affects instructions with different operand sizes, e.g. vextract*, vinsert*.

Adds support to the encoder for encoding extra operands.

Introduces a new letter code 'f' for 256 or 512. Corresponding existing or new codes Vf, Vdq_f, Vqq_oq, Wf, Hf, Hdq_f have been added or fixed.

Fixes a few debug strings e_vex => evex_W in decode table.

Fixes a minor AVX-512 opcodes sort -n order error in opcodes.h.

Opcodes have been checked against llvm-mc, binutils/gas/objdump and capstone. A binutils bug has been filed: https://sourceware.org/bugzilla/show_bug.cgi?id=24633.

Issue: #1312

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i1312-add-evex-decoder-incremental-11