This is an archive of the discontinued LLVM Phabricator instance.

[SystemZAsmParser] Treat VR128 separately in ParseDirectiveInsn().
ClosedPublic

Authored by jonpa on Oct 6 2020, 4:29 AM.

Details

Summary

Since vector registers require an extra bit of encoding they should not be part of the AnyReg register class together with the GPR and FP registers, so they are removed.

This patch makes the parser

  • reject higher vector registers (>=16) in operands where they should not be accepted.
  • accept higher integers (>=16) in vector register operands.

Diff Detail

Event Timeline

jonpa created this revision.Oct 6 2020, 4:29 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 6 2020, 4:29 AM
jonpa requested review of this revision.Oct 6 2020, 4:29 AM

See inline comment. Otherwise LGTM.

llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
127 ↗(On Diff #296412)

Given that we want to allow %v0..%v15 (just not %v16..%v31), I think the old definition actually was correct.

This revision was not accepted when it landed; it landed in state Needs Review.Oct 6 2020, 5:47 AM
This revision was automatically updated to reflect the committed changes.
jonpa marked an inline comment as done.