llvm-project/llvm/lib/Target/SystemZ/MCTargetDesc
Ulrich Weigand ec5d779eb8 [SystemZ] Fix encoding of MVCK and .insn ss
LLVM currently treats the first operand of MVCK as if it were a
regular base+index+displacement address.  However, it is in fact
a base+displacement combined with a length register field.

While the two might look syntactically similar, there are two
semantic differences:
- %r0 is a valid length register, even though it cannot be used
  as an index register.
- In an expression with just a single register like 0(%rX), the
  register is treated as base with normal addresses, while it is
  treated as the length register (with an empty base) for MVCK.

Fixed by adding a new operand parser class BDRAddr and reworking
the assembler parser to distinguish between address + length
register operands and regular addresses.

llvm-svn: 285574
2016-10-31 14:21:36 +00:00
..
CMakeLists.txt
LLVMBuild.txt
SystemZMCAsmBackend.cpp MC] Provide an MCTargetOptions to implementors of MCAsmBackendCtorTy, NFC 2016-07-25 17:18:28 +00:00
SystemZMCAsmInfo.cpp Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
SystemZMCAsmInfo.h Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
SystemZMCCodeEmitter.cpp [SystemZ] Fix encoding of MVCK and .insn ss 2016-10-31 14:21:36 +00:00
SystemZMCFixups.h
SystemZMCObjectWriter.cpp Convert a few assert failures into proper errors. 2016-01-13 22:56:57 +00:00
SystemZMCTargetDesc.cpp Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00
SystemZMCTargetDesc.h Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00