forked from OSchip/llvm-project
0b8fd77ad9
16-bit literals are encoded as 32-bit values. If high 16-bits of the value is 0xFFFF, the decoded instruction cannot be reassembled. For example, the following code 0xff,0x04,0x04,0x52,0xcd,0xab,0xff,0xff was decoded as v_mul_lo_u16_e32 v2, 0xffffabcd, v2 However this literal is actually a 64-bit constant 0x00000000ffffabcd which violates requirements described in the documentation - the truncation is not safe. This change corrects decoding to make reassembly possible. Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D84098 |
||
---|---|---|
.. | ||
AMDGPUAsmBackend.cpp | ||
AMDGPUELFObjectWriter.cpp | ||
AMDGPUELFStreamer.cpp | ||
AMDGPUELFStreamer.h | ||
AMDGPUFixupKinds.h | ||
AMDGPUInstPrinter.cpp | ||
AMDGPUInstPrinter.h | ||
AMDGPUMCAsmInfo.cpp | ||
AMDGPUMCAsmInfo.h | ||
AMDGPUMCCodeEmitter.cpp | ||
AMDGPUMCCodeEmitter.h | ||
AMDGPUMCTargetDesc.cpp | ||
AMDGPUMCTargetDesc.h | ||
AMDGPUTargetStreamer.cpp | ||
AMDGPUTargetStreamer.h | ||
CMakeLists.txt | ||
LLVMBuild.txt | ||
R600MCCodeEmitter.cpp | ||
R600MCTargetDesc.cpp | ||
SIMCCodeEmitter.cpp |