Add support to allow clang integrated assembler to recognize some missing instructions, for openssl.
Instructions are:
LM, LMH, LMY, STM, STMH, STMY, ICM, ICMH, ICMY, SLA, SLAK, TML, TMH, EX, EXRL.
Paths
| Differential D22050
[SystemZ] Add support for missing instructions ClosedPublic Authored by • zhanjunl on Jul 6 2016, 9:19 AM.
Details Summary Add support to allow clang integrated assembler to recognize some missing instructions, for openssl. Instructions are:
Diff Detail
Event Timeline• zhanjunl updated this object. Comment Actions See inline comments. Also, when adding new instructions, you need to add disassembler tests as well (test/MC/Disassembler/SystemZ). It would be nice to add not just single instructions you find missing somewhere, but full related groups of instructions where it makes sense. For example, when adding EX, it might be nice to also add EXRL. Similarly, when adding ICM(Y), it would be nice to also add ICMH, and possibly even STCM(Y/H) and CLCM(Y/H) as well. (To be clear: this is just a suggestion, not a requirement.)
• koriakin added inline comments.
• zhanjunl edited edge metadata. Comment ActionsUpdated the diff with fixes based on comments, to add *Pair classes, to use InstAlias, and to remove the pattern from SLA. Also added EXRL, ICMH, STMH, LMH, and added disassembler tests. uweigand edited edge metadata. Comment ActionsSee the inline comment. Otherwise, LGTM. Thanks!
This revision is now accepted and ready to land.Jul 8 2016, 8:46 AM • zhanjunl updated this object. • zhanjunl edited edge metadata. Comment ActionsWhoops you're right, I've added ICMH to the Defs = [CC] clause. Closed by commit rL274869: [SystemZ] Add support for missing instructions (authored by • zhanjunl). · Explain WhyJul 8 2016, 9:26 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 63247 llvm/trunk/lib/Target/SystemZ/SystemZInstrFormats.td
llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
llvm/trunk/test/MC/Disassembler/SystemZ/insns-pcrel.txt
llvm/trunk/test/MC/Disassembler/SystemZ/insns.txt
llvm/trunk/test/MC/SystemZ/insn-bad-z196.s
llvm/trunk/test/MC/SystemZ/insn-bad.s
llvm/trunk/test/MC/SystemZ/insn-good-z196.s
llvm/trunk/test/MC/SystemZ/insn-good.s
|