This is an archive of the discontinued LLVM Phabricator instance.

[SystemZ] Allow specifying integer registers as part of the address calculation
ClosedPublic

Authored by anirudhp on Jul 6 2020, 12:28 PM.

Details

Summary

i.e.

__asm("lhi %r0, 5") -> lhi %r0, 5
__asm("lhi 0, 5") -> lhi 0,5
  • This patch aims to extend this support to instructions which compute addresses as well. (i.e instructions of type BDMem and BD[X|R|V|L]Mem)

Diff Detail

Event Timeline

anirudhp created this revision.Jul 6 2020, 12:28 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 6 2020, 12:28 PM
uweigand accepted this revision.Jul 7 2020, 2:16 AM

A couple of cosmetic changes inline, otherwise the LGTM. Thanks!

llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
907

Good point, this should be const.

959

Parentheses around HasVectorIndex are not necessary.

This revision is now accepted and ready to land.Jul 7 2020, 2:16 AM
Kai accepted this revision.Jul 7 2020, 5:41 AM

LGTM.

anirudhp updated this revision to Diff 276050.Jul 7 2020, 6:57 AM
  • Addressing the clang-tidy warning, adding const to the auto var
  • Removing unnecessary parenthesis in a ternary assignment
anirudhp marked 2 inline comments as done.Jul 7 2020, 6:59 AM

@uweigand if you are happy with the patch and have no other comments for me to address, would you mind committing this? (as I don't have commit access)

This revision was automatically updated to reflect the committed changes.