aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
diff options
context:
space:
mode:
authorShengchen Kan <shengchen.kan@intel.com>2023-11-22 10:26:23 +0800
committerGitHub <noreply@github.com>2023-11-22 10:26:23 +0800
commit42d484082cd190400e0e493a8d679762ce0efbba (patch)
treea28c7544984d74280f24ba1e1a6d5a6744353267 /llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
parent331111277a3e80aedd1a6877524feadfbcb41a88 (diff)
downloadllvm-42d484082cd190400e0e493a8d679762ce0efbba.zip
llvm-42d484082cd190400e0e493a8d679762ce0efbba.tar.gz
llvm-42d484082cd190400e0e493a8d679762ce0efbba.tar.bz2
[X86][MC] Support encoding/decoding for JMPABS (#72835)
JMPABS is a 64-bit only ISA extension, and acts as a near-direct branch with an absolute target. The 64-bit immediate operand is treated an as absolute effective address, which is subject to canonicality checks. It is in legacy map 0 and requires REX2 prefix with `REX2.M0=0` and `REX2.W=0`. All other REX2 payload bits are ignored. blog: https://kanrobert.github.io/rfc/All-about-APX-JMPABS/ This patch 1. Extends `ExplicitVEXPrefix` to `ExplicitOpPrefix` for instrcutions requires explicit `REX2` or `EVEX` 2. Adds `ATTR_REX2` and `IC_64BIT_REX2` to put `JMPABS` , `MOV EAX, moffs32` in different tables to avoid opcode conflict NOTE: 1. `ExplicitREX2Prefix` can be reused by the following PUSHP/POPP instructions. 2. `ExplicitEVEXPrefix` will be used by the instructions promoted to EVEX space for EGPR.
Diffstat (limited to 'llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions