[SystemZ] Add disassembler support
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Tue, 14 May 2013 10:17:52 +0000 (10:17 +0000)
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Tue, 14 May 2013 10:17:52 +0000 (10:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181777 91177308-0d34-0410-b5e6-96231b3b80d8

353 files changed:
docs/CodeGenerator.rst
lib/Target/SystemZ/CMakeLists.txt
lib/Target/SystemZ/Disassembler/CMakeLists.txt [new file with mode: 0644]
lib/Target/SystemZ/Disassembler/LLVMBuild.txt [new file with mode: 0644]
lib/Target/SystemZ/Disassembler/Makefile [new file with mode: 0644]
lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp [new file with mode: 0644]
lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.cpp
lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.h
lib/Target/SystemZ/LLVMBuild.txt
lib/Target/SystemZ/Makefile
lib/Target/SystemZ/SystemZInstrFormats.td
lib/Target/SystemZ/SystemZOperands.td
test/MC/Disassembler/SystemZ/insn-a.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-adb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-adbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-aeb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-aebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-afi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ag.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-agf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-agfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-agfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-aghi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-agr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-agsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ah.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ahi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ahy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-al.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alc.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alcg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alcgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alcr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-algf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-algfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-algfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-algr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-alr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-aly.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ar.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-asi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-axbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ay.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-basr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-br.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-bras.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-brasl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-brc.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-brcl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-c.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cdb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cdfbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cdgbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ceb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cefbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cegbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cfdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cfebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cfxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgfrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cghi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cghrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cghsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cgxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ch.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-chhsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-chi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-chrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-chsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-chy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clfhsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clgfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clgfrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clghrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clghsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clgrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clhhsi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clhrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cli.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cliy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-clrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cly.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cpsdr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-crl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cs.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-csg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-csy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cxfbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cxgbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-cy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ddb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ddbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-deb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-debr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dlg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dlgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dlr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dsg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dsgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dsgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dsgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-dxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ear.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-fidbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-fiebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-fixbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-flogr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ic.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-icy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-iihf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-iihh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-iihl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-iilf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-iilh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-iill.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-l.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-la.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-larl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lay.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lcdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lcebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lcgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lcgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lcr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lcxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ld.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ldeb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ldebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ldgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ldr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ldxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ldy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-le.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ledbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ler.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lexbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ley.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgdr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgfrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lghi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lghr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lghrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lgrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lhi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lhr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lhrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lhy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llc.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llcr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llgc.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llgcr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llgfrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llgh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llghr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llghrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llhr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llhrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llihf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llihh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llihl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llilf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llilh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-llill.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lmg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lndbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lnebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lnxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lpdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lpebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lpxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lrv.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lrvg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lrvgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lrvr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lxr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ly.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lzdr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lzer.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-lzxr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-madb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-madbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-maeb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-maebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mdb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mdeb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mdebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-meeb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-meebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mghi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mhi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mhy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mlg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mlgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ms.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msdb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mseb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msgfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-msy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mvghi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mvhhi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mvhi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mvi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mviy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mxdb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-mxdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-n.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ng.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ngr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ni.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nihf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nihh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nihl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nilf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nilh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nill.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-niy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-nr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ny.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-o.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-og.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ogr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oihf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oihh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oihl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oilf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oilh.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oill.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oiy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-or.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-oy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-risbg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-rll.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-rllg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-s.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sdb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-seb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slbg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slbgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slgf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slgfi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slgfr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sll.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sllg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-slr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sly.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sqdb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sqdbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sqeb.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sqebr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sqxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sra.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-srag.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-srl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-srlg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-st.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stc.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stcy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-std.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stdy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-ste.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stey.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stgrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sth.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sthrl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sthy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-stmg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-strl.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-strv.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-strvg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sty.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sxbr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-sy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-x.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xg.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xgr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xi.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xihf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xilf.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xiy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xr.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insn-xy.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/invalid-regs-01.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/lit.local.cfg [new file with mode: 0644]
test/MC/Disassembler/SystemZ/trunc-01.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/trunc-02.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/trunc-03.txt [new file with mode: 0644]
test/MC/Disassembler/SystemZ/unmapped-01.txt [new file with mode: 0644]

index 10ca307b786992855080d30a26a2124cc7090692..d54df0f6f4b242408be4ea7da114b08e6757fdaf 100644 (file)
@@ -1838,7 +1838,7 @@ Here is the table:
 :raw-html:`<td class="no"></td> <!-- Mips -->`
 :raw-html:`<td class="na"></td> <!-- NVPTX -->`
 :raw-html:`<td class="no"></td> <!-- PowerPC -->`
-:raw-html:`<td class="no"></td> <!-- SystemZ -->`
+:raw-html:`<td class="yes"></td> <!-- SystemZ -->`
 :raw-html:`<td class="no"></td> <!-- Sparc -->`
 :raw-html:`<td class="yes"></td> <!-- X86 -->`
 :raw-html:`<td class="yes"></td> <!-- XCore -->`
index 67b17fcc59368d878addf5899d977b472412a5c6..757d5a8898604b0b7e08d165607adaa08be77572 100644 (file)
@@ -4,6 +4,7 @@ tablegen(LLVM SystemZGenAsmMatcher.inc -gen-asm-matcher)
 tablegen(LLVM SystemZGenAsmWriter.inc -gen-asm-writer)
 tablegen(LLVM SystemZGenCallingConv.inc -gen-callingconv)
 tablegen(LLVM SystemZGenDAGISel.inc -gen-dag-isel)
+tablegen(LLVM SystemZGenDisassemblerTables.inc -gen-disassembler)
 tablegen(LLVM SystemZGenMCCodeEmitter.inc -gen-emitter -mc-emitter)
 tablegen(LLVM SystemZGenInstrInfo.inc -gen-instr-info)
 tablegen(LLVM SystemZGenRegisterInfo.inc -gen-register-info)
@@ -27,6 +28,7 @@ add_llvm_target(SystemZCodeGen
 add_dependencies(LLVMSystemZCodeGen intrinsics_gen)
 
 add_subdirectory(AsmParser)
+add_subdirectory(Disassembler)
 add_subdirectory(InstPrinter)
 add_subdirectory(TargetInfo)
 add_subdirectory(MCTargetDesc)
diff --git a/lib/Target/SystemZ/Disassembler/CMakeLists.txt b/lib/Target/SystemZ/Disassembler/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5bc1859
--- /dev/null
@@ -0,0 +1,7 @@
+include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
+
+add_llvm_library(LLVMSystemZDisassembler
+  SystemZDisassembler.cpp
+  )
+
+add_dependencies(LLVMSystemZDisassembler SystemZCommonTableGen)
diff --git a/lib/Target/SystemZ/Disassembler/LLVMBuild.txt b/lib/Target/SystemZ/Disassembler/LLVMBuild.txt
new file mode 100644 (file)
index 0000000..c3081f5
--- /dev/null
@@ -0,0 +1,23 @@
+;===-- ./lib/Target/SystemZ/Disassembler/LLVMBuild.txt ---------*- Conf -*--===;
+;
+;                     The LLVM Compiler Infrastructure
+;
+; This file is distributed under the University of Illinois Open Source
+; License. See LICENSE.TXT for details.
+;
+;===------------------------------------------------------------------------===;
+;
+; This is an LLVMBuild description file for the components in this subdirectory.
+;
+; For more information on the LLVMBuild system, please see:
+;
+;   http://llvm.org/docs/LLVMBuild.html
+;
+;===------------------------------------------------------------------------===;
+
+[component_0]
+type = Library
+name = SystemZDisassembler
+parent = SystemZ
+required_libraries = MC Support SystemZDesc SystemZInfo
+add_to_library_groups = SystemZ
diff --git a/lib/Target/SystemZ/Disassembler/Makefile b/lib/Target/SystemZ/Disassembler/Makefile
new file mode 100644 (file)
index 0000000..efc4cc8
--- /dev/null
@@ -0,0 +1,16 @@
+##===-- lib/Target/SystemZ/Disassembler/Makefile -----------*- Makefile -*-===##
+#
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+
+LEVEL = ../../../..
+LIBRARYNAME = LLVMSystemZDisassembler
+
+# Hack: we need to include 'main' x86 target directory to grab private headers
+CPP.Flags += -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
+
+include $(LEVEL)/Makefile.common
diff --git a/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp b/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp
new file mode 100644 (file)
index 0000000..9a9de78
--- /dev/null
@@ -0,0 +1,301 @@
+//===-- SystemZDisassembler.cpp - Disassembler for SystemZ ------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "SystemZ.h"
+#include "llvm/MC/MCDisassembler.h"
+#include "llvm/MC/MCFixedLenDisassembler.h"
+#include "llvm/MC/MCInst.h"
+#include "llvm/MC/MCSubtargetInfo.h"
+#include "llvm/Support/MemoryObject.h"
+#include "llvm/Support/TargetRegistry.h"
+
+using namespace llvm;
+
+typedef MCDisassembler::DecodeStatus DecodeStatus;
+
+namespace {
+class SystemZDisassembler : public MCDisassembler {
+public:
+  SystemZDisassembler(const MCSubtargetInfo &STI)
+    : MCDisassembler(STI) {}
+  virtual ~SystemZDisassembler() {}
+
+  // Override MCDisassembler.
+  virtual DecodeStatus getInstruction(MCInst &instr,
+                                      uint64_t &size,
+                                      const MemoryObject &region,
+                                      uint64_t address,
+                                      raw_ostream &vStream,
+                                      raw_ostream &cStream) const LLVM_OVERRIDE;
+};
+} // end anonymous namespace
+
+static MCDisassembler *createSystemZDisassembler(const Target &T,
+                                                 const MCSubtargetInfo &STI) {
+  return new SystemZDisassembler(STI);
+}
+
+extern "C" void LLVMInitializeSystemZDisassembler() {
+  // Register the disassembler.
+  TargetRegistry::RegisterMCDisassembler(TheSystemZTarget,
+                                         createSystemZDisassembler);
+}
+
+static DecodeStatus decodeRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                        const unsigned *Regs,
+                                        bool isAddress = false) {
+  assert(RegNo < 16 && "Invalid register");
+  if (!isAddress || RegNo) {
+    RegNo = Regs[RegNo];
+    if (RegNo == 0)
+      return MCDisassembler::Fail;
+  }
+  Inst.addOperand(MCOperand::CreateReg(RegNo));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus DecodeGR32BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                               uint64_t Address,
+                                               const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::GR32Regs);
+}
+
+static DecodeStatus DecodeGR64BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                               uint64_t Address,
+                                               const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::GR64Regs);
+}
+
+static DecodeStatus DecodeGR128BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                                uint64_t Address,
+                                                const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::GR128Regs);
+}
+
+static DecodeStatus DecodeADDR64BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                                 uint64_t Address,
+                                                 const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::GR64Regs, true);
+}
+
+static DecodeStatus DecodeFP32BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                               uint64_t Address,
+                                               const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::FP32Regs);
+}
+
+static DecodeStatus DecodeFP64BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                               uint64_t Address,
+                                               const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::FP64Regs);
+}
+
+static DecodeStatus DecodeFP128BitRegisterClass(MCInst &Inst, uint64_t RegNo,
+                                                uint64_t Address,
+                                                const void *Decoder) {
+  return decodeRegisterClass(Inst, RegNo, SystemZMC::FP128Regs);
+}
+
+template<unsigned N>
+static DecodeStatus decodeUImmOperand(MCInst &Inst, uint64_t Imm) {
+  assert(isUInt<N>(Imm) && "Invalid immediate");
+  Inst.addOperand(MCOperand::CreateImm(Imm));
+  return MCDisassembler::Success;
+}
+
+template<unsigned N>
+static DecodeStatus decodeSImmOperand(MCInst &Inst, uint64_t Imm) {
+  assert(isUInt<N>(Imm) && "Invalid immediate");
+  Inst.addOperand(MCOperand::CreateImm(SignExtend64<N>(Imm)));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus decodeAccessRegOperand(MCInst &Inst, uint64_t Imm,
+                                           uint64_t Address,
+                                           const void *Decoder) {
+  return decodeUImmOperand<4>(Inst, Imm);
+}
+
+static DecodeStatus decodeU4ImmOperand(MCInst &Inst, uint64_t Imm,
+                                       uint64_t Address, const void *Decoder) {
+  return decodeUImmOperand<4>(Inst, Imm);
+}
+
+static DecodeStatus decodeU6ImmOperand(MCInst &Inst, uint64_t Imm,
+                                       uint64_t Address, const void *Decoder) {
+  return decodeUImmOperand<6>(Inst, Imm);
+}
+
+static DecodeStatus decodeU8ImmOperand(MCInst &Inst, uint64_t Imm,
+                                       uint64_t Address, const void *Decoder) {
+  return decodeUImmOperand<8>(Inst, Imm);
+}
+
+static DecodeStatus decodeU16ImmOperand(MCInst &Inst, uint64_t Imm,
+                                        uint64_t Address, const void *Decoder) {
+  return decodeUImmOperand<16>(Inst, Imm);
+}
+
+static DecodeStatus decodeU32ImmOperand(MCInst &Inst, uint64_t Imm,
+                                        uint64_t Address, const void *Decoder) {
+  return decodeUImmOperand<32>(Inst, Imm);
+}
+
+static DecodeStatus decodeS8ImmOperand(MCInst &Inst, uint64_t Imm,
+                                       uint64_t Address, const void *Decoder) {
+  return decodeSImmOperand<8>(Inst, Imm);
+}
+
+static DecodeStatus decodeS16ImmOperand(MCInst &Inst, uint64_t Imm,
+                                        uint64_t Address, const void *Decoder) {
+  return decodeSImmOperand<16>(Inst, Imm);
+}
+
+static DecodeStatus decodeS32ImmOperand(MCInst &Inst, uint64_t Imm,
+                                        uint64_t Address, const void *Decoder) {
+  return decodeSImmOperand<32>(Inst, Imm);
+}
+
+template<unsigned N>
+static DecodeStatus decodePCDBLOperand(MCInst &Inst, uint64_t Imm,
+                                       uint64_t Address) {
+  assert(isUInt<N>(Imm) && "Invalid PC-relative offset");
+  Inst.addOperand(MCOperand::CreateImm(SignExtend64<N>(Imm) * 2 + Address));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus decodePC16DBLOperand(MCInst &Inst, uint64_t Imm,
+                                         uint64_t Address,
+                                         const void *Decoder) {
+  return decodePCDBLOperand<16>(Inst, Imm, Address);
+}
+
+static DecodeStatus decodePC32DBLOperand(MCInst &Inst, uint64_t Imm,
+                                         uint64_t Address,
+                                         const void *Decoder) {
+  return decodePCDBLOperand<32>(Inst, Imm, Address);
+}
+
+static DecodeStatus decodeBDAddr12Operand(MCInst &Inst, uint64_t Field,
+                                          const unsigned *Regs) {
+  uint64_t Base = Field >> 12;
+  uint64_t Disp = Field & 0xfff;
+  assert(Base < 16 && "Invalid BDAddr12");
+  Inst.addOperand(MCOperand::CreateReg(Base == 0 ? 0 : Regs[Base]));
+  Inst.addOperand(MCOperand::CreateImm(Disp));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus decodeBDAddr20Operand(MCInst &Inst, uint64_t Field,
+                                          const unsigned *Regs) {
+  uint64_t Base = Field >> 20;
+  uint64_t Disp = ((Field << 12) & 0xff000) | ((Field >> 8) & 0xfff);
+  assert(Base < 16 && "Invalid BDAddr20");
+  Inst.addOperand(MCOperand::CreateReg(Base == 0 ? 0 : Regs[Base]));
+  Inst.addOperand(MCOperand::CreateImm(SignExtend64<20>(Disp)));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus decodeBDXAddr12Operand(MCInst &Inst, uint64_t Field,
+                                           const unsigned *Regs) {
+  uint64_t Index = Field >> 16;
+  uint64_t Base = (Field >> 12) & 0xf;
+  uint64_t Disp = Field & 0xfff;
+  assert(Index < 16 && "Invalid BDXAddr12");
+  Inst.addOperand(MCOperand::CreateReg(Base == 0 ? 0 : Regs[Base]));
+  Inst.addOperand(MCOperand::CreateImm(Disp));
+  Inst.addOperand(MCOperand::CreateReg(Index == 0 ? 0 : Regs[Index]));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus decodeBDXAddr20Operand(MCInst &Inst, uint64_t Field,
+                                           const unsigned *Regs) {
+  uint64_t Index = Field >> 24;
+  uint64_t Base = (Field >> 20) & 0xf;
+  uint64_t Disp = ((Field & 0xfff00) >> 8) | ((Field & 0xff) << 12);
+  assert(Index < 16 && "Invalid BDXAddr20");
+  Inst.addOperand(MCOperand::CreateReg(Base == 0 ? 0 : Regs[Base]));
+  Inst.addOperand(MCOperand::CreateImm(SignExtend64<20>(Disp)));
+  Inst.addOperand(MCOperand::CreateReg(Index == 0 ? 0 : Regs[Index]));
+  return MCDisassembler::Success;
+}
+
+static DecodeStatus decodeBDAddr32Disp12Operand(MCInst &Inst, uint64_t Field,
+                                                uint64_t Address,
+                                                const void *Decoder) {
+  return decodeBDAddr12Operand(Inst, Field, SystemZMC::GR32Regs);
+}
+
+static DecodeStatus decodeBDAddr32Disp20Operand(MCInst &Inst, uint64_t Field,
+                                                uint64_t Address,
+                                                const void *Decoder) {
+  return decodeBDAddr20Operand(Inst, Field, SystemZMC::GR32Regs);
+}
+
+static DecodeStatus decodeBDAddr64Disp12Operand(MCInst &Inst, uint64_t Field,
+                                                uint64_t Address,
+                                                const void *Decoder) {
+  return decodeBDAddr12Operand(Inst, Field, SystemZMC::GR64Regs);
+}
+
+static DecodeStatus decodeBDAddr64Disp20Operand(MCInst &Inst, uint64_t Field,
+                                                uint64_t Address,
+                                                const void *Decoder) {
+  return decodeBDAddr20Operand(Inst, Field, SystemZMC::GR64Regs);
+}
+
+static DecodeStatus decodeBDXAddr64Disp12Operand(MCInst &Inst, uint64_t Field,
+                                                 uint64_t Address,
+                                                 const void *Decoder) {
+  return decodeBDXAddr12Operand(Inst, Field, SystemZMC::GR64Regs);
+}
+
+static DecodeStatus decodeBDXAddr64Disp20Operand(MCInst &Inst, uint64_t Field,
+                                                 uint64_t Address,
+                                                 const void *Decoder) {
+  return decodeBDXAddr20Operand(Inst, Field, SystemZMC::GR64Regs);
+}
+
+#include "SystemZGenDisassemblerTables.inc"
+
+DecodeStatus SystemZDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
+                                                 const MemoryObject &Region,
+                                                 uint64_t Address,
+                                                 raw_ostream &os,
+                                                 raw_ostream &cs) const {
+  // Get the first two bytes of the instruction.
+  uint8_t Bytes[6];
+  Size = 0;
+  if (Region.readBytes(Address, 2, Bytes, 0) == -1)
+    return MCDisassembler::Fail;
+
+  // The top 2 bits of the first byte specify the size.
+  const uint8_t *Table;
+  if (Bytes[0] < 0x40) {
+    Size = 2;
+    Table = DecoderTable16;
+  } else if (Bytes[0] < 0xc0) {
+    Size = 4;
+    Table = DecoderTable32;
+  } else {
+    Size = 6;
+    Table = DecoderTable48;
+  }
+
+  // Read any remaining bytes.
+  if (Size > 2 && Region.readBytes(Address + 2, Size - 2, Bytes + 2, 0) == -1)
+    return MCDisassembler::Fail;
+
+  // Construct the instruction.
+  uint64_t Inst = 0;
+  for (uint64_t I = 0; I < Size; ++I)
+    Inst = (Inst << 8) | Bytes[I];
+
+  return decodeInstruction(Table, MI, Inst, Address, this, STI);
+}
index d73cf4980891877be58be5773d5378021152c7a1..369802b2b81e2f52813bb5e255707ec873c08955 100644 (file)
@@ -114,10 +114,26 @@ void SystemZInstPrinter::printAccessRegOperand(const MCInst *MI, int OpNum,
   O << "%a" << (unsigned int)Value;
 }
 
+void SystemZInstPrinter::printPCRelOperand(const MCInst *MI, int OpNum,
+                                           raw_ostream &O) {
+  const MCOperand &MO = MI->getOperand(OpNum);
+  if (MO.isImm()) {
+    O << "0x";
+    O.write_hex(MO.getImm());
+  } else
+    O << *MO.getExpr();
+}
+
 void SystemZInstPrinter::printCallOperand(const MCInst *MI, int OpNum,
                                           raw_ostream &O) {
-  printOperand(MI, OpNum, O);
-  O << "@PLT";
+  const MCOperand &MO = MI->getOperand(OpNum);
+  if (MO.isImm()) {
+    O << "0x";
+    O.write_hex(MO.getImm());
+  } else {
+    O << *MO.getExpr();
+    O << "@PLT";
+  }
 }
 
 void SystemZInstPrinter::printOperand(const MCInst *MI, int OpNum,
index b82e79d93cd8afc3c409fb6903115322080bedb4..f77282efcb943230ad5785bdbdec45e545299ab3 100644 (file)
@@ -56,6 +56,7 @@ private:
   void printU16ImmOperand(const MCInst *MI, int OpNum, raw_ostream &O);
   void printS32ImmOperand(const MCInst *MI, int OpNum, raw_ostream &O);
   void printU32ImmOperand(const MCInst *MI, int OpNum, raw_ostream &O);
+  void printPCRelOperand(const MCInst *MI, int OpNum, raw_ostream &O);
   void printCallOperand(const MCInst *MI, int OpNum, raw_ostream &O);
   void printAccessRegOperand(const MCInst *MI, int OpNum, raw_ostream &O);
 
index aba0de27ac072c806d60fa889adb3c91382b59d7..95e657f7bd15121fc20c11ed5a6c87fb1b8b154d 100644 (file)
@@ -16,7 +16,7 @@
 ;===------------------------------------------------------------------------===;
 
 [common]
-subdirectories = AsmParser InstPrinter MCTargetDesc TargetInfo
+subdirectories = AsmParser Disassembler InstPrinter MCTargetDesc TargetInfo
 
 [component_0]
 type = TargetGroup
@@ -24,6 +24,7 @@ name = SystemZ
 parent = Target
 has_asmparser = 1
 has_asmprinter = 1
+has_disassembler = 1
 has_jit = 1
 
 [component_1]
index c992584af9168d92ac2822edf9021adae19ded20..445725bd1e12aa2993386a6efa2a1cbb52dcffdc 100644 (file)
@@ -16,13 +16,14 @@ BUILT_SOURCES = SystemZGenRegisterInfo.inc \
                SystemZGenAsmWriter.inc \
                SystemZGenAsmMatcher.inc \
                SystemZGenCodeEmitter.inc \
+               SystemZGenDisassemblerTables.inc \
                SystemZGenInstrInfo.inc \
                SystemZGenDAGISel.inc \
                SystemZGenSubtargetInfo.inc \
                SystemZGenCallingConv.inc \
                SystemZGenMCCodeEmitter.inc
 
-DIRS = InstPrinter AsmParser TargetInfo MCTargetDesc
+DIRS = InstPrinter AsmParser Disassembler TargetInfo MCTargetDesc
 
 include $(LEVEL)/Makefile.common
 
index b7511d50ff39158fc7a646c31c38bfe5db1b110d..bf5aa8dbeb83951baa2d4f354d092f2a61351c64 100644 (file)
@@ -99,6 +99,7 @@ def getDisp20Opcode : InstrMapping {
 class InstRI<bits<12> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<4> R1;
   bits<16> I2;
@@ -112,6 +113,7 @@ class InstRI<bits<12> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRIEf<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R2;
@@ -131,6 +133,7 @@ class InstRIEf<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRIL<bits<12> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<4> R1;
   bits<32> I2;
@@ -144,6 +147,7 @@ class InstRIL<bits<12> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRR<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<2, outs, ins, asmstr, pattern> {
   field bits<16> Inst;
+  field bits<16> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R2;
@@ -156,6 +160,7 @@ class InstRR<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRRD<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R3;
@@ -171,6 +176,7 @@ class InstRRD<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRRE<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R2;
@@ -184,6 +190,7 @@ class InstRRE<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRRF<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R2;
@@ -199,6 +206,7 @@ class InstRRF<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRX<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<4> R1;
   bits<20> XBD2;
@@ -213,6 +221,7 @@ class InstRX<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRXE<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<4> R1;
   bits<20> XBD2;
@@ -229,6 +238,7 @@ class InstRXE<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRXF<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R3;
@@ -247,6 +257,7 @@ class InstRXF<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRXY<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<4> R1;
   bits<28> XBD2;
@@ -263,6 +274,7 @@ class InstRXY<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRS<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R3;
@@ -277,6 +289,7 @@ class InstRS<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstRSY<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<4> R1;
   bits<4> R3;
@@ -294,6 +307,7 @@ class InstRSY<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstSI<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<4, outs, ins, asmstr, pattern> {
   field bits<32> Inst;
+  field bits<32> SoftFail = 0;
 
   bits<16> BD1;
   bits<8> I2;
@@ -306,6 +320,7 @@ class InstSI<bits<8> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstSIL<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<16> BD1;
   bits<16> I2;
@@ -318,6 +333,7 @@ class InstSIL<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
 class InstSIY<bits<16> op, dag outs, dag ins, string asmstr, list<dag> pattern>
   : InstSystemZ<6, outs, ins, asmstr, pattern> {
   field bits<48> Inst;
+  field bits<48> SoftFail = 0;
 
   bits<24> BD1;
   bits<8> I2;
index 770b7f5eecf0edf6b7be6166907352f7473366d7..66d9c5fceba52606cec731a460b01407f10d1064 100644 (file)
@@ -24,6 +24,7 @@ class ImmediateAsmOperand<string name>
 class Immediate<ValueType vt, code pred, SDNodeXForm xform, string asmop>
   : PatLeaf<(vt imm), pred, xform>, Operand<vt> {
   let PrintMethod = "print"##asmop##"Operand";
+  let DecoderMethod = "decode"##asmop##"Operand";
   let ParserMatchClass = !cast<AsmOperandClass>(asmop);
 }
 
@@ -37,6 +38,7 @@ class PCRelAsmOperand<string size> : ImmediateAsmOperand<"PCRel"##size> {
 // Constructs an operand for a PC-relative address with address type VT.
 // ASMOP is the associated asm operand.
 class PCRelOperand<ValueType vt, AsmOperandClass asmop> : Operand<vt> {
+  let PrintMethod = "printPCRelOperand";
   let ParserMatchClass = asmop;
 }
 
@@ -59,8 +61,9 @@ class AddressAsmOperand<string format, string bitsize, string dispsize>
 }
 
 // Constructs both a DAG pattern and instruction operand for an addressing mode.
-// The mode is selected by custom code in select<TYPE><DISPSIZE><SUFFIX>()
-// and encoded by custom code in get<FORMAT><DISPSIZE>Encoding().
+// The mode is selected by custom code in select<TYPE><DISPSIZE><SUFFIX>(),
+// encoded by custom code in get<FORMAT><DISPSIZE>Encoding() and decoded
+// by custom code in decode<TYPE><BITSIZE>Disp<DISPSIZE>Operand().
 // The address registers have BITSIZE bits and displacements have
 // DISPSIZE bits.  NUMOPS is the number of operands that make up an
 // address and OPERANDS lists the types of those operands using (ops ...).
@@ -74,6 +77,7 @@ class AddressingMode<string type, string bitsize, string dispsize,
     Operand<!cast<ValueType>("i"##bitsize)> {
   let PrintMethod = "print"##format##"Operand";
   let EncoderMethod = "get"##format##dispsize##"Encoding";
+  let DecoderMethod = "decode"##format##bitsize##"Disp"##dispsize##"Operand";
   let MIOperandInfo = operands;
   let ParserMatchClass =
     !cast<AddressAsmOperand>(format##bitsize##"Disp"##dispsize);
@@ -359,15 +363,18 @@ def PCRel32 : PCRelAsmOperand<"32">;
 // and multiplied by 2.
 def brtarget16 : PCRelOperand<OtherVT, PCRel16> {
   let EncoderMethod = "getPC16DBLEncoding";
+  let DecoderMethod = "decodePC16DBLOperand";
 }
 def brtarget32 : PCRelOperand<OtherVT, PCRel32> {
   let EncoderMethod = "getPC32DBLEncoding";
+  let DecoderMethod = "decodePC32DBLOperand";
 }
 
 // A PC-relative offset of a global value.  The offset is sign-extended
 // and multiplied by 2.
 def pcrel32 : PCRelAddress<i64, "pcrel32", PCRel32> {
   let EncoderMethod = "getPC32DBLEncoding";
+  let DecoderMethod = "decodePC32DBLOperand";
 }
 
 // A PC-relative offset of a global value when the value is used as a
@@ -375,10 +382,12 @@ def pcrel32 : PCRelAddress<i64, "pcrel32", PCRel32> {
 def pcrel16call : PCRelAddress<i64, "pcrel16call", PCRel16> {
   let PrintMethod = "printCallOperand";
   let EncoderMethod = "getPLT16DBLEncoding";
+  let DecoderMethod = "decodePC16DBLOperand";
 }
 def pcrel32call : PCRelAddress<i64, "pcrel32call", PCRel32> {
   let PrintMethod = "printCallOperand";
   let EncoderMethod = "getPLT32DBLEncoding";
+  let DecoderMethod = "decodePC32DBLOperand";
 }
 
 //===----------------------------------------------------------------------===//
diff --git a/test/MC/Disassembler/SystemZ/insn-a.txt b/test/MC/Disassembler/SystemZ/insn-a.txt
new file mode 100644 (file)
index 0000000..5ce2021
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: a %r0, 0
+0x5a 0x00 0x00 0x00
+
+# CHECK: a %r0, 4095
+0x5a 0x00 0x0f 0xff
+
+# CHECK: a %r0, 0(%r1)
+0x5a 0x00 0x10 0x00
+
+# CHECK: a %r0, 0(%r15)
+0x5a 0x00 0xf0 0x00
+
+# CHECK: a %r0, 4095(%r1,%r15)
+0x5a 0x01 0xff 0xff
+
+# CHECK: a %r0, 4095(%r15,%r1)
+0x5a 0x0f 0x1f 0xff
+
+# CHECK: a %r15, 0
+0x5a 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-adb.txt b/test/MC/Disassembler/SystemZ/insn-adb.txt
new file mode 100644 (file)
index 0000000..3cdf6ef
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: adb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x1a
+
+# CHECK: adb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x1a
+
+# CHECK: adb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x1a
+
+# CHECK: adb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x1a
+
+# CHECK: adb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x1a
+
+# CHECK: adb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x1a
+
+# CHECK: adb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x1a
diff --git a/test/MC/Disassembler/SystemZ/insn-adbr.txt b/test/MC/Disassembler/SystemZ/insn-adbr.txt
new file mode 100644 (file)
index 0000000..6c5f18b
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: adbr %f0, %f0
+0xb3 0x1a 0x00 0x00
+
+# CHECK: adbr %f0, %f15
+0xb3 0x1a 0x00 0x0f
+
+# CHECK: adbr %f7, %f8
+0xb3 0x1a 0x00 0x78
+
+# CHECK: adbr %f15, %f0
+0xb3 0x1a 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-aeb.txt b/test/MC/Disassembler/SystemZ/insn-aeb.txt
new file mode 100644 (file)
index 0000000..5d28f89
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: aeb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x0a
+
+# CHECK: aeb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x0a
+
+# CHECK: aeb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x0a
+
+# CHECK: aeb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x0a
+
+# CHECK: aeb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x0a
+
+# CHECK: aeb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x0a
+
+# CHECK: aeb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x0a
diff --git a/test/MC/Disassembler/SystemZ/insn-aebr.txt b/test/MC/Disassembler/SystemZ/insn-aebr.txt
new file mode 100644 (file)
index 0000000..e4d00f7
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: aebr %f0, %f0
+0xb3 0x0a 0x00 0x00
+
+# CHECK: aebr %f0, %f15
+0xb3 0x0a 0x00 0x0f
+
+# CHECK: aebr %f7, %f8
+0xb3 0x0a 0x00 0x78
+
+# CHECK: aebr %f15, %f0
+0xb3 0x0a 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-afi.txt b/test/MC/Disassembler/SystemZ/insn-afi.txt
new file mode 100644 (file)
index 0000000..c679a0d
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: afi %r0, -2147483648
+0xc2 0x09 0x80 0x00 0x00 0x00
+
+# CHECK: afi %r0, -1
+0xc2 0x09 0xff 0xff 0xff 0xff
+
+# CHECK: afi %r0, 0
+0xc2 0x09 0x00 0x00 0x00 0x00
+
+# CHECK: afi %r0, 1
+0xc2 0x09 0x00 0x00 0x00 0x01
+
+# CHECK: afi %r0, 2147483647
+0xc2 0x09 0x7f 0xff 0xff 0xff
+
+# CHECK: afi %r15, 0
+0xc2 0xf9 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-ag.txt b/test/MC/Disassembler/SystemZ/insn-ag.txt
new file mode 100644 (file)
index 0000000..62242fb
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ag %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x08
+
+# CHECK: ag %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x08
+
+# CHECK: ag %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x08
+
+# CHECK: ag %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x08
+
+# CHECK: ag %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x08
+
+# CHECK: ag %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x08
+
+# CHECK: ag %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x08
+
+# CHECK: ag %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x08
+
+# CHECK: ag %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x08
+
+# CHECK: ag %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x08
diff --git a/test/MC/Disassembler/SystemZ/insn-agf.txt b/test/MC/Disassembler/SystemZ/insn-agf.txt
new file mode 100644 (file)
index 0000000..95eb313
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: agf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x18
+
+# CHECK: agf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x18
+
+# CHECK: agf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x18
+
+# CHECK: agf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x18
+
+# CHECK: agf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x18
+
+# CHECK: agf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x18
+
+# CHECK: agf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x18
+
+# CHECK: agf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x18
+
+# CHECK: agf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x18
+
+# CHECK: agf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x18
diff --git a/test/MC/Disassembler/SystemZ/insn-agfi.txt b/test/MC/Disassembler/SystemZ/insn-agfi.txt
new file mode 100644 (file)
index 0000000..3ff21b4
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: agfi %r0, -2147483648
+0xc2 0x08 0x80 0x00 0x00 0x00
+
+# CHECK: agfi %r0, -1
+0xc2 0x08 0xff 0xff 0xff 0xff
+
+# CHECK: agfi %r0, 0
+0xc2 0x08 0x00 0x00 0x00 0x00
+
+# CHECK: agfi %r0, 1
+0xc2 0x08 0x00 0x00 0x00 0x01
+
+# CHECK: agfi %r0, 2147483647
+0xc2 0x08 0x7f 0xff 0xff 0xff
+
+# CHECK: agfi %r15, 0
+0xc2 0xf8 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-agfr.txt b/test/MC/Disassembler/SystemZ/insn-agfr.txt
new file mode 100644 (file)
index 0000000..13e40cd
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: agfr %r0, %r0
+0xb9 0x18 0x00 0x00
+
+# CHECK: agfr %r0, %r15
+0xb9 0x18 0x00 0x0f
+
+# CHECK: agfr %r15, %r0
+0xb9 0x18 0x00 0xf0
+
+# CHECK: agfr %r7, %r8
+0xb9 0x18 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-aghi.txt b/test/MC/Disassembler/SystemZ/insn-aghi.txt
new file mode 100644 (file)
index 0000000..d7fe272
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: aghi %r0, -32768
+0xa7 0x0b 0x80 0x00
+
+# CHECK: aghi %r0, -1
+0xa7 0x0b 0xff 0xff
+
+# CHECK: aghi %r0, 0
+0xa7 0x0b 0x00 0x00
+
+# CHECK: aghi %r0, 1
+0xa7 0x0b 0x00 0x01
+
+# CHECK: aghi %r0, 32767
+0xa7 0x0b 0x7f 0xff
+
+# CHECK: aghi %r15, 0
+0xa7 0xfb 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-agr.txt b/test/MC/Disassembler/SystemZ/insn-agr.txt
new file mode 100644 (file)
index 0000000..4061f3a
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: agr %r0, %r0
+0xb9 0x08 0x00 0x00
+
+# CHECK: agr %r0, %r15
+0xb9 0x08 0x00 0x0f
+
+# CHECK: agr %r15, %r0
+0xb9 0x08 0x00 0xf0
+
+# CHECK: agr %r7, %r8
+0xb9 0x08 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-agsi.txt b/test/MC/Disassembler/SystemZ/insn-agsi.txt
new file mode 100644 (file)
index 0000000..448306f
--- /dev/null
@@ -0,0 +1,39 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: agsi -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x7a
+
+# CHECK: agsi -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x7a
+
+# CHECK: agsi 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x7a
+
+# CHECK: agsi 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x7a
+
+# CHECK: agsi 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x7a
+
+# CHECK: agsi 0, -128
+0xeb 0x80 0x00 0x00 0x00 0x7a
+
+# CHECK: agsi 0, -1
+0xeb 0xff 0x00 0x00 0x00 0x7a
+
+# CHECK: agsi 0, 1
+0xeb 0x01 0x00 0x00 0x00 0x7a
+
+# CHECK: agsi 0, 127
+0xeb 0x7f 0x00 0x00 0x00 0x7a
+
+# CHECK: agsi 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x7a
+
+# CHECK: agsi 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x7a
+
+# CHECK: agsi 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x7a
+
+# CHECK: agsi 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x7a
diff --git a/test/MC/Disassembler/SystemZ/insn-ah.txt b/test/MC/Disassembler/SystemZ/insn-ah.txt
new file mode 100644 (file)
index 0000000..c05d177
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ah %r0, 0
+0x4a 0x00 0x00 0x00
+
+# CHECK: ah %r0, 4095
+0x4a 0x00 0x0f 0xff
+
+# CHECK: ah %r0, 0(%r1)
+0x4a 0x00 0x10 0x00
+
+# CHECK: ah %r0, 0(%r15)
+0x4a 0x00 0xf0 0x00
+
+# CHECK: ah %r0, 4095(%r1,%r15)
+0x4a 0x01 0xff 0xff
+
+# CHECK: ah %r0, 4095(%r15,%r1)
+0x4a 0x0f 0x1f 0xff
+
+# CHECK: ah %r15, 0
+0x4a 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-ahi.txt b/test/MC/Disassembler/SystemZ/insn-ahi.txt
new file mode 100644 (file)
index 0000000..fb16c72
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ahi %r0, -32768
+0xa7 0x0a 0x80 0x00
+
+# CHECK: ahi %r0, -1
+0xa7 0x0a 0xff 0xff
+
+# CHECK: ahi %r0, 0
+0xa7 0x0a 0x00 0x00
+
+# CHECK: ahi %r0, 1
+0xa7 0x0a 0x00 0x01
+
+# CHECK: ahi %r0, 32767
+0xa7 0x0a 0x7f 0xff
+
+# CHECK: ahi %r15, 0
+0xa7 0xfa 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-ahy.txt b/test/MC/Disassembler/SystemZ/insn-ahy.txt
new file mode 100644 (file)
index 0000000..511c01b
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ahy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x7a
+
+# CHECK: ahy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x7a
+
+# CHECK: ahy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x7a
+
+# CHECK: ahy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x7a
+
+# CHECK: ahy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x7a
+
+# CHECK: ahy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x7a
+
+# CHECK: ahy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x7a
+
+# CHECK: ahy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x7a
+
+# CHECK: ahy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x7a
+
+# CHECK: ahy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x7a
diff --git a/test/MC/Disassembler/SystemZ/insn-al.txt b/test/MC/Disassembler/SystemZ/insn-al.txt
new file mode 100644 (file)
index 0000000..18f4e6f
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: al %r0, 0
+0x5e 0x00 0x00 0x00
+
+# CHECK: al %r0, 4095
+0x5e 0x00 0x0f 0xff
+
+# CHECK: al %r0, 0(%r1)
+0x5e 0x00 0x10 0x00
+
+# CHECK: al %r0, 0(%r15)
+0x5e 0x00 0xf0 0x00
+
+# CHECK: al %r0, 4095(%r1,%r15)
+0x5e 0x01 0xff 0xff
+
+# CHECK: al %r0, 4095(%r15,%r1)
+0x5e 0x0f 0x1f 0xff
+
+# CHECK: al %r15, 0
+0x5e 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-alc.txt b/test/MC/Disassembler/SystemZ/insn-alc.txt
new file mode 100644 (file)
index 0000000..de1ee01
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alc %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x98
+
+# CHECK: alc %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x98
+
+# CHECK: alc %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x98
+
+# CHECK: alc %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x98
+
+# CHECK: alc %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x98
+
+# CHECK: alc %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x98
+
+# CHECK: alc %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x98
+
+# CHECK: alc %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x98
+
+# CHECK: alc %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x98
+
+# CHECK: alc %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x98
diff --git a/test/MC/Disassembler/SystemZ/insn-alcg.txt b/test/MC/Disassembler/SystemZ/insn-alcg.txt
new file mode 100644 (file)
index 0000000..db450f7
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alcg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x88
+
+# CHECK: alcg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x88
+
+# CHECK: alcg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x88
+
+# CHECK: alcg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x88
+
+# CHECK: alcg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x88
+
+# CHECK: alcg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x88
+
+# CHECK: alcg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x88
+
+# CHECK: alcg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x88
+
+# CHECK: alcg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x88
+
+# CHECK: alcg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x88
diff --git a/test/MC/Disassembler/SystemZ/insn-alcgr.txt b/test/MC/Disassembler/SystemZ/insn-alcgr.txt
new file mode 100644 (file)
index 0000000..5a7db13
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alcgr %r0, %r0
+0xb9 0x88 0x00 0x00
+
+# CHECK: alcgr %r0, %r15
+0xb9 0x88 0x00 0x0f
+
+# CHECK: alcgr %r15, %r0
+0xb9 0x88 0x00 0xf0
+
+# CHECK: alcgr %r7, %r8
+0xb9 0x88 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-alcr.txt b/test/MC/Disassembler/SystemZ/insn-alcr.txt
new file mode 100644 (file)
index 0000000..3f10879
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alcr %r0, %r0
+0xb9 0x98 0x00 0x00
+
+# CHECK: alcr %r0, %r15
+0xb9 0x98 0x00 0x0f
+
+# CHECK: alcr %r15, %r0
+0xb9 0x98 0x00 0xf0
+
+# CHECK: alcr %r7, %r8
+0xb9 0x98 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-alfi.txt b/test/MC/Disassembler/SystemZ/insn-alfi.txt
new file mode 100644 (file)
index 0000000..29aec98
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alfi %r0, 0
+0xc2 0x0b 0x00 0x00 0x00 0x00
+
+# CHECK: alfi %r0, 4294967295
+0xc2 0x0b 0xff 0xff 0xff 0xff
+
+# CHECK: alfi %r15, 0
+0xc2 0xfb 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-alg.txt b/test/MC/Disassembler/SystemZ/insn-alg.txt
new file mode 100644 (file)
index 0000000..e02e892
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x0a
+
+# CHECK: alg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x0a
+
+# CHECK: alg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x0a
+
+# CHECK: alg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x0a
+
+# CHECK: alg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x0a
+
+# CHECK: alg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x0a
+
+# CHECK: alg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x0a
+
+# CHECK: alg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x0a
+
+# CHECK: alg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x0a
+
+# CHECK: alg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x0a
diff --git a/test/MC/Disassembler/SystemZ/insn-algf.txt b/test/MC/Disassembler/SystemZ/insn-algf.txt
new file mode 100644 (file)
index 0000000..748df29
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: algf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x1a
+
+# CHECK: algf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x1a
+
+# CHECK: algf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x1a
+
+# CHECK: algf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x1a
+
+# CHECK: algf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x1a
+
+# CHECK: algf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x1a
+
+# CHECK: algf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x1a
+
+# CHECK: algf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x1a
+
+# CHECK: algf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x1a
+
+# CHECK: algf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x1a
diff --git a/test/MC/Disassembler/SystemZ/insn-algfi.txt b/test/MC/Disassembler/SystemZ/insn-algfi.txt
new file mode 100644 (file)
index 0000000..0a1d2f2
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: algfi %r0, 0
+0xc2 0x0a 0x00 0x00 0x00 0x00
+
+# CHECK: algfi %r0, 4294967295
+0xc2 0x0a 0xff 0xff 0xff 0xff
+
+# CHECK: algfi %r15, 0
+0xc2 0xfa 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-algfr.txt b/test/MC/Disassembler/SystemZ/insn-algfr.txt
new file mode 100644 (file)
index 0000000..47cddbe
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: algfr %r0, %r0
+0xb9 0x1a 0x00 0x00
+
+# CHECK: algfr %r0, %r15
+0xb9 0x1a 0x00 0x0f
+
+# CHECK: algfr %r15, %r0
+0xb9 0x1a 0x00 0xf0
+
+# CHECK: algfr %r7, %r8
+0xb9 0x1a 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-algr.txt b/test/MC/Disassembler/SystemZ/insn-algr.txt
new file mode 100644 (file)
index 0000000..b5847d2
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: algr %r0, %r0
+0xb9 0x0a 0x00 0x00
+
+# CHECK: algr %r0, %r15
+0xb9 0x0a 0x00 0x0f
+
+# CHECK: algr %r15, %r0
+0xb9 0x0a 0x00 0xf0
+
+# CHECK: algr %r7, %r8
+0xb9 0x0a 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-alr.txt b/test/MC/Disassembler/SystemZ/insn-alr.txt
new file mode 100644 (file)
index 0000000..7b46ce3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: alr %r0, %r0
+0x1e 0x00
+
+# CHECK: alr %r0, %r15
+0x1e 0x0f
+
+# CHECK: alr %r15, %r0
+0x1e 0xf0
+
+# CHECK: alr %r7, %r8
+0x1e 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-aly.txt b/test/MC/Disassembler/SystemZ/insn-aly.txt
new file mode 100644 (file)
index 0000000..4ef5cc2
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: aly %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x5e
+
+# CHECK: aly %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x5e
+
+# CHECK: aly %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x5e
+
+# CHECK: aly %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x5e
+
+# CHECK: aly %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x5e
+
+# CHECK: aly %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x5e
+
+# CHECK: aly %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x5e
+
+# CHECK: aly %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x5e
+
+# CHECK: aly %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x5e
+
+# CHECK: aly %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x5e
diff --git a/test/MC/Disassembler/SystemZ/insn-ar.txt b/test/MC/Disassembler/SystemZ/insn-ar.txt
new file mode 100644 (file)
index 0000000..9443590
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ar %r0, %r0
+0x1a 0x00
+
+# CHECK: ar %r0, %r15
+0x1a 0x0f
+
+# CHECK: ar %r15, %r0
+0x1a 0xf0
+
+# CHECK: ar %r7, %r8
+0x1a 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-asi.txt b/test/MC/Disassembler/SystemZ/insn-asi.txt
new file mode 100644 (file)
index 0000000..af9b7a6
--- /dev/null
@@ -0,0 +1,39 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: asi -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x6a
+
+# CHECK: asi -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x6a
+
+# CHECK: asi 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x6a
+
+# CHECK: asi 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x6a
+
+# CHECK: asi 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x6a
+
+# CHECK: asi 0, -128
+0xeb 0x80 0x00 0x00 0x00 0x6a
+
+# CHECK: asi 0, -1
+0xeb 0xff 0x00 0x00 0x00 0x6a
+
+# CHECK: asi 0, 1
+0xeb 0x01 0x00 0x00 0x00 0x6a
+
+# CHECK: asi 0, 127
+0xeb 0x7f 0x00 0x00 0x00 0x6a
+
+# CHECK: asi 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x6a
+
+# CHECK: asi 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x6a
+
+# CHECK: asi 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x6a
+
+# CHECK: asi 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x6a
diff --git a/test/MC/Disassembler/SystemZ/insn-axbr.txt b/test/MC/Disassembler/SystemZ/insn-axbr.txt
new file mode 100644 (file)
index 0000000..e78ff8e
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: axbr %f0, %f0
+0xb3 0x4a 0x00 0x00
+
+# CHECK: axbr %f0, %f13
+0xb3 0x4a 0x00 0x0d
+
+# CHECK: axbr %f8, %f8
+0xb3 0x4a 0x00 0x88
+
+# CHECK: axbr %f13, %f0
+0xb3 0x4a 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-ay.txt b/test/MC/Disassembler/SystemZ/insn-ay.txt
new file mode 100644 (file)
index 0000000..bd81f8c
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ay %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x5a
+
+# CHECK: ay %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x5a
+
+# CHECK: ay %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x5a
+
+# CHECK: ay %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x5a
+
+# CHECK: ay %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x5a
+
+# CHECK: ay %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x5a
+
+# CHECK: ay %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x5a
+
+# CHECK: ay %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x5a
+
+# CHECK: ay %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x5a
+
+# CHECK: ay %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x5a
diff --git a/test/MC/Disassembler/SystemZ/insn-basr.txt b/test/MC/Disassembler/SystemZ/insn-basr.txt
new file mode 100644 (file)
index 0000000..6540bf4
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: basr %r0, %r1
+0x0d 0x01
+
+# CHECK: basr %r0, %r15
+0x0d 0x0f
+
+# CHECK: basr %r14, %r9
+0x0d 0xe9
+
+# CHECK: basr %r15, %r1
+0x0d 0xf1
diff --git a/test/MC/Disassembler/SystemZ/insn-br.txt b/test/MC/Disassembler/SystemZ/insn-br.txt
new file mode 100644 (file)
index 0000000..7643a0e
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: br %r1
+0x07 0xf1
+
+# CHECK: br %r14
+0x07 0xfe
+
+# CHECK: br %r15
+0x07 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-bras.txt b/test/MC/Disassembler/SystemZ/insn-bras.txt
new file mode 100644 (file)
index 0000000..c02f1d0
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: bras %r0, 0x0
+0xa7 0x05 0x00 0x00
+
+# CHECK: bras %r14, 0x4
+0xa7 0xe5 0x00 0x00
+
+# CHECK: bras %r15, 0x8
+0xa7 0xf5 0x00 0x00
+
+# CHECK: bras %r0, 0xa
+0xa7 0x05 0xff 0xff
+
+# CHECK: bras %r14, 0xffffffffffff0010
+0xa7 0xe5 0x80 0x00
+
+# CHECK: bras %r15, 0x10012
+0xa7 0xf5 0x7f 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-brasl.txt b/test/MC/Disassembler/SystemZ/insn-brasl.txt
new file mode 100644 (file)
index 0000000..73718d0
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: brasl %r0, 0x0
+0xc0 0x05 0x00 0x00 0x00 0x00
+
+# CHECK: brasl %r14, 0x6
+0xc0 0xe5 0x00 0x00 0x00 0x00
+
+# CHECK: brasl %r15, 0xc
+0xc0 0xf5 0x00 0x00 0x00 0x00
+
+# CHECK: brasl %r0, 0x10
+0xc0 0x05 0xff 0xff 0xff 0xff
+
+# CHECK: brasl %r14, 0xffffffff00000018
+0xc0 0xe5 0x80 0x00 0x00 0x00
+
+# CHECK: brasl %r15, 0x10000001c
+0xc0 0xf5 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-brc.txt b/test/MC/Disassembler/SystemZ/insn-brc.txt
new file mode 100644 (file)
index 0000000..c23e878
--- /dev/null
@@ -0,0 +1,66 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: brc 0, 0x0
+0xa7 0x04 0x00 0x00
+
+# CHECK: jo 0x4
+0xa7 0x14 0x00 0x00
+
+# CHECK: jh 0x8
+0xa7 0x24 0x00 0x00
+
+# CHECK: jnle 0xc
+0xa7 0x34 0x00 0x00
+
+# CHECK: jl 0x10
+0xa7 0x44 0x00 0x00
+
+# CHECK: jnhe 0x14
+0xa7 0x54 0x00 0x00
+
+# CHECK: jlh 0x18
+0xa7 0x64 0x00 0x00
+
+# CHECK: jne 0x1c
+0xa7 0x74 0x00 0x00
+
+# CHECK: je 0x20
+0xa7 0x84 0x00 0x00
+
+# CHECK: jnlh 0x24
+0xa7 0x94 0x00 0x00
+
+# CHECK: jhe 0x28
+0xa7 0xa4 0x00 0x00
+
+# CHECK: jnl 0x2c
+0xa7 0xb4 0x00 0x00
+
+# CHECK: jle 0x30
+0xa7 0xc4 0x00 0x00
+
+# CHECK: jnh 0x34
+0xa7 0xd4 0x00 0x00
+
+# CHECK: jno 0x38
+0xa7 0xe4 0x00 0x00
+
+# CHECK: j 0x3c
+0xa7 0xf4 0x00 0x00
+
+# CHECK: brc 0, 0x3e
+0xa7 0x04 0xff 0xff
+
+# CHECK: brc 0, 0xffffffffffff0044
+0xa7 0x04 0x80 0x00
+
+# CHECK: brc 0, 0x10046
+0xa7 0x04 0x7f 0xff
+
+# CHECK: j 0x4a
+0xa7 0xf4 0xff 0xff
+
+# CHECK: j 0xffffffffffff0050
+0xa7 0xf4 0x80 0x00
+
+# CHECK: j 0x10052
+0xa7 0xf4 0x7f 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-brcl.txt b/test/MC/Disassembler/SystemZ/insn-brcl.txt
new file mode 100644 (file)
index 0000000..e3a6cb0
--- /dev/null
@@ -0,0 +1,66 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: brcl 0, 0x0
+0xc0 0x04 0x00 0x00 0x00 0x00
+
+# CHECK: jgo 0x6
+0xc0 0x14 0x00 0x00 0x00 0x00
+
+# CHECK: jgh 0xc
+0xc0 0x24 0x00 0x00 0x00 0x00
+
+# CHECK: jgnle 0x12
+0xc0 0x34 0x00 0x00 0x00 0x00
+
+# CHECK: jgl 0x18
+0xc0 0x44 0x00 0x00 0x00 0x00
+
+# CHECK: jgnhe 0x1e
+0xc0 0x54 0x00 0x00 0x00 0x00
+
+# CHECK: jglh 0x24
+0xc0 0x64 0x00 0x00 0x00 0x00
+
+# CHECK: jgne 0x2a
+0xc0 0x74 0x00 0x00 0x00 0x00
+
+# CHECK: jge 0x30
+0xc0 0x84 0x00 0x00 0x00 0x00
+
+# CHECK: jgnlh 0x36
+0xc0 0x94 0x00 0x00 0x00 0x00
+
+# CHECK: jghe 0x3c
+0xc0 0xa4 0x00 0x00 0x00 0x00
+
+# CHECK: jgnl 0x42
+0xc0 0xb4 0x00 0x00 0x00 0x00
+
+# CHECK: jgle 0x48
+0xc0 0xc4 0x00 0x00 0x00 0x00
+
+# CHECK: jgnh 0x4e
+0xc0 0xd4 0x00 0x00 0x00 0x00
+
+# CHECK: jgno 0x54
+0xc0 0xe4 0x00 0x00 0x00 0x00
+
+# CHECK: jg 0x5a
+0xc0 0xf4 0x00 0x00 0x00 0x00
+
+# CHECK: brcl 0, 0x5e
+0xc0 0x04 0xff 0xff 0xff 0xff
+
+# CHECK: brcl 0, 0xffffffff00000066
+0xc0 0x04 0x80 0x00 0x00 0x00
+
+# CHECK: brcl 0, 0x10000006a
+0xc0 0x04 0x7f 0xff 0xff 0xff
+
+# CHECK: jg 0x70
+0xc0 0xf4 0xff 0xff 0xff 0xff
+
+# CHECK: jg 0xffffffff00000078
+0xc0 0xf4 0x80 0x00 0x00 0x00
+
+# CHECK: jg 0x10000007c
+0xc0 0xf4 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-c.txt b/test/MC/Disassembler/SystemZ/insn-c.txt
new file mode 100644 (file)
index 0000000..1dbd636
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: c %r0, 0
+0x59 0x00 0x00 0x00
+
+# CHECK: c %r0, 4095
+0x59 0x00 0x0f 0xff
+
+# CHECK: c %r0, 0(%r1)
+0x59 0x00 0x10 0x00
+
+# CHECK: c %r0, 0(%r15)
+0x59 0x00 0xf0 0x00
+
+# CHECK: c %r0, 4095(%r1,%r15)
+0x59 0x01 0xff 0xff
+
+# CHECK: c %r0, 4095(%r15,%r1)
+0x59 0x0f 0x1f 0xff
+
+# CHECK: c %r15, 0
+0x59 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-cdb.txt b/test/MC/Disassembler/SystemZ/insn-cdb.txt
new file mode 100644 (file)
index 0000000..fcccf34
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x19
+
+# CHECK: cdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x19
+
+# CHECK: cdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x19
+
+# CHECK: cdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x19
+
+# CHECK: cdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x19
+
+# CHECK: cdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x19
+
+# CHECK: cdb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x19
diff --git a/test/MC/Disassembler/SystemZ/insn-cdbr.txt b/test/MC/Disassembler/SystemZ/insn-cdbr.txt
new file mode 100644 (file)
index 0000000..579c6f7
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cdbr %f0, %f0
+0xb3 0x19 0x00 0x00
+
+# CHECK: cdbr %f0, %f15
+0xb3 0x19 0x00 0x0f
+
+# CHECK: cdbr %f7, %f8
+0xb3 0x19 0x00 0x78
+
+# CHECK: cdbr %f15, %f0
+0xb3 0x19 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cdfbr.txt b/test/MC/Disassembler/SystemZ/insn-cdfbr.txt
new file mode 100644 (file)
index 0000000..04004ed
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cdfbr %f0, %r0
+0xb3 0x95 0x00 0x00
+
+# CHECK: cdfbr %f0, %r15
+0xb3 0x95 0x00 0x0f
+
+# CHECK: cdfbr %f15, %r0
+0xb3 0x95 0x00 0xf0
+
+# CHECK: cdfbr %f7, %r8
+0xb3 0x95 0x00 0x78
+
+# CHECK: cdfbr %f15, %r15
+0xb3 0x95 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cdgbr.txt b/test/MC/Disassembler/SystemZ/insn-cdgbr.txt
new file mode 100644 (file)
index 0000000..8105eb2
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cdgbr %f0, %r0
+0xb3 0xa5 0x00 0x00
+
+# CHECK: cdgbr %f0, %r15
+0xb3 0xa5 0x00 0x0f
+
+# CHECK: cdgbr %f15, %r0
+0xb3 0xa5 0x00 0xf0
+
+# CHECK: cdgbr %f7, %r8
+0xb3 0xa5 0x00 0x78
+
+# CHECK: cdgbr %f15, %r15
+0xb3 0xa5 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-ceb.txt b/test/MC/Disassembler/SystemZ/insn-ceb.txt
new file mode 100644 (file)
index 0000000..51424e8
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ceb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x09
+
+# CHECK: ceb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x09
+
+# CHECK: ceb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x09
+
+# CHECK: ceb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x09
+
+# CHECK: ceb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x09
+
+# CHECK: ceb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x09
+
+# CHECK: ceb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x09
diff --git a/test/MC/Disassembler/SystemZ/insn-cebr.txt b/test/MC/Disassembler/SystemZ/insn-cebr.txt
new file mode 100644 (file)
index 0000000..7d2e380
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cebr %f0, %f0
+0xb3 0x09 0x00 0x00
+
+# CHECK: cebr %f0, %f15
+0xb3 0x09 0x00 0x0f
+
+# CHECK: cebr %f7, %f8
+0xb3 0x09 0x00 0x78
+
+# CHECK: cebr %f15, %f0
+0xb3 0x09 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cefbr.txt b/test/MC/Disassembler/SystemZ/insn-cefbr.txt
new file mode 100644 (file)
index 0000000..edc1aa9
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cefbr %f0, %r0
+0xb3 0x94 0x00 0x00
+
+# CHECK: cefbr %f0, %r15
+0xb3 0x94 0x00 0x0f
+
+# CHECK: cefbr %f15, %r0
+0xb3 0x94 0x00 0xf0
+
+# CHECK: cefbr %f7, %r8
+0xb3 0x94 0x00 0x78
+
+# CHECK: cefbr %f15, %r15
+0xb3 0x94 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cegbr.txt b/test/MC/Disassembler/SystemZ/insn-cegbr.txt
new file mode 100644 (file)
index 0000000..4cd4b5b
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cegbr %f0, %r0
+0xb3 0xa4 0x00 0x00
+
+# CHECK: cegbr %f0, %r15
+0xb3 0xa4 0x00 0x0f
+
+# CHECK: cegbr %f15, %r0
+0xb3 0xa4 0x00 0xf0
+
+# CHECK: cegbr %f7, %r8
+0xb3 0xa4 0x00 0x78
+
+# CHECK: cegbr %f15, %r15
+0xb3 0xa4 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cfdbr.txt b/test/MC/Disassembler/SystemZ/insn-cfdbr.txt
new file mode 100644 (file)
index 0000000..feceb68
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cfdbr %r0, 0, %f0
+0xb3 0x99 0x00 0x00
+
+# CHECK: cfdbr %r0, 0, %f15
+0xb3 0x99 0x00 0x0f
+
+# CHECK: cfdbr %r0, 15, %f0
+0xb3 0x99 0xf0 0x00
+
+# CHECK: cfdbr %r4, 5, %f6
+0xb3 0x99 0x50 0x46
+
+# CHECK: cfdbr %r15, 0, %f0
+0xb3 0x99 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cfebr.txt b/test/MC/Disassembler/SystemZ/insn-cfebr.txt
new file mode 100644 (file)
index 0000000..07f7ad2
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cfebr %r0, 0, %f0
+0xb3 0x98 0x00 0x00
+
+# CHECK: cfebr %r0, 0, %f15
+0xb3 0x98 0x00 0x0f
+
+# CHECK: cfebr %r0, 15, %f0
+0xb3 0x98 0xf0 0x00
+
+# CHECK: cfebr %r4, 5, %f6
+0xb3 0x98 0x50 0x46
+
+# CHECK: cfebr %r15, 0, %f0
+0xb3 0x98 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cfi.txt b/test/MC/Disassembler/SystemZ/insn-cfi.txt
new file mode 100644 (file)
index 0000000..ffc38b5
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cfi %r0, -2147483648
+0xc2 0x0d 0x80 0x00 0x00 0x00
+
+# CHECK: cfi %r0, -1
+0xc2 0x0d 0xff 0xff 0xff 0xff
+
+# CHECK: cfi %r0, 0
+0xc2 0x0d 0x00 0x00 0x00 0x00
+
+# CHECK: cfi %r0, 1
+0xc2 0x0d 0x00 0x00 0x00 0x01
+
+# CHECK: cfi %r0, 2147483647
+0xc2 0x0d 0x7f 0xff 0xff 0xff
+
+# CHECK: cfi %r15, 0
+0xc2 0xfd 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-cfxbr.txt b/test/MC/Disassembler/SystemZ/insn-cfxbr.txt
new file mode 100644 (file)
index 0000000..5202f59
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cfxbr %r0, 0, %f0
+0xb3 0x9a 0x00 0x00
+
+# CHECK: cfxbr %r0, 0, %f13
+0xb3 0x9a 0x00 0x0d
+
+# CHECK: cfxbr %r0, 15, %f0
+0xb3 0x9a 0xf0 0x00
+
+# CHECK: cfxbr %r4, 5, %f8
+0xb3 0x9a 0x50 0x48
+
+# CHECK: cfxbr %r15, 0, %f0
+0xb3 0x9a 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cg.txt b/test/MC/Disassembler/SystemZ/insn-cg.txt
new file mode 100644 (file)
index 0000000..f314902
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x20
+
+# CHECK: cg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x20
+
+# CHECK: cg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x20
+
+# CHECK: cg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x20
+
+# CHECK: cg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x20
+
+# CHECK: cg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x20
+
+# CHECK: cg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x20
+
+# CHECK: cg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x20
+
+# CHECK: cg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x20
+
+# CHECK: cg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x20
diff --git a/test/MC/Disassembler/SystemZ/insn-cgdbr.txt b/test/MC/Disassembler/SystemZ/insn-cgdbr.txt
new file mode 100644 (file)
index 0000000..16a771a
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgdbr %r0, 0, %f0
+0xb3 0xa9 0x00 0x00
+
+# CHECK: cgdbr %r0, 0, %f15
+0xb3 0xa9 0x00 0x0f
+
+# CHECK: cgdbr %r0, 15, %f0
+0xb3 0xa9 0xf0 0x00
+
+# CHECK: cgdbr %r4, 5, %f6
+0xb3 0xa9 0x50 0x46
+
+# CHECK: cgdbr %r15, 0, %f0
+0xb3 0xa9 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cgebr.txt b/test/MC/Disassembler/SystemZ/insn-cgebr.txt
new file mode 100644 (file)
index 0000000..2f224cc
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgebr %r0, 0, %f0
+0xb3 0xa8 0x00 0x00
+
+# CHECK: cgebr %r0, 0, %f15
+0xb3 0xa8 0x00 0x0f
+
+# CHECK: cgebr %r0, 15, %f0
+0xb3 0xa8 0xf0 0x00
+
+# CHECK: cgebr %r4, 5, %f6
+0xb3 0xa8 0x50 0x46
+
+# CHECK: cgebr %r15, 0, %f0
+0xb3 0xa8 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-cgf.txt b/test/MC/Disassembler/SystemZ/insn-cgf.txt
new file mode 100644 (file)
index 0000000..cc20d97
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x30
+
+# CHECK: cgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x30
+
+# CHECK: cgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x30
+
+# CHECK: cgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x30
+
+# CHECK: cgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x30
+
+# CHECK: cgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x30
+
+# CHECK: cgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x30
+
+# CHECK: cgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x30
+
+# CHECK: cgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x30
+
+# CHECK: cgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x30
diff --git a/test/MC/Disassembler/SystemZ/insn-cgfi.txt b/test/MC/Disassembler/SystemZ/insn-cgfi.txt
new file mode 100644 (file)
index 0000000..05fb612
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgfi %r0, -2147483648
+0xc2 0x0c 0x80 0x00 0x00 0x00
+
+# CHECK: cgfi %r0, -1
+0xc2 0x0c 0xff 0xff 0xff 0xff
+
+# CHECK: cgfi %r0, 0
+0xc2 0x0c 0x00 0x00 0x00 0x00
+
+# CHECK: cgfi %r0, 1
+0xc2 0x0c 0x00 0x00 0x00 0x01
+
+# CHECK: cgfi %r0, 2147483647
+0xc2 0x0c 0x7f 0xff 0xff 0xff
+
+# CHECK: cgfi %r15, 0
+0xc2 0xfc 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-cgfr.txt b/test/MC/Disassembler/SystemZ/insn-cgfr.txt
new file mode 100644 (file)
index 0000000..272e5f8
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgfr %r0, %r0
+0xb9 0x30 0x00 0x00
+
+# CHECK: cgfr %r0, %r15
+0xb9 0x30 0x00 0x0f
+
+# CHECK: cgfr %r15, %r0
+0xb9 0x30 0x00 0xf0
+
+# CHECK: cgfr %r7, %r8
+0xb9 0x30 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-cgfrl.txt b/test/MC/Disassembler/SystemZ/insn-cgfrl.txt
new file mode 100644 (file)
index 0000000..5ad5c7d
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgfrl %r0, 0x0
+0xc6 0x0c 0x00 0x00 0x00 0x00
+
+# CHECK: cgfrl %r15, 0x6
+0xc6 0xfc 0x00 0x00 0x00 0x00
+
+# CHECK: cgfrl %r0, 0xa
+0xc6 0x0c 0xff 0xff 0xff 0xff
+
+# CHECK: cgfrl %r15, 0x10
+0xc6 0xfc 0xff 0xff 0xff 0xff
+
+# CHECK: cgfrl %r0, 0xffffffff00000018
+0xc6 0x0c 0x80 0x00 0x00 0x00
+
+# CHECK: cgfrl %r15, 0xffffffff0000001e
+0xc6 0xfc 0x80 0x00 0x00 0x00
+
+# CHECK: cgfrl %r0, 0x100000022
+0xc6 0x0c 0x7f 0xff 0xff 0xff
+
+# CHECK: cgfrl %r15, 0x100000028
+0xc6 0xfc 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cgh.txt b/test/MC/Disassembler/SystemZ/insn-cgh.txt
new file mode 100644 (file)
index 0000000..2a6b74b
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgh %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x34
+
+# CHECK: cgh %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x34
+
+# CHECK: cgh %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x34
+
+# CHECK: cgh %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x34
+
+# CHECK: cgh %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x34
+
+# CHECK: cgh %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x34
+
+# CHECK: cgh %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x34
+
+# CHECK: cgh %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x34
+
+# CHECK: cgh %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x34
+
+# CHECK: cgh %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x34
diff --git a/test/MC/Disassembler/SystemZ/insn-cghi.txt b/test/MC/Disassembler/SystemZ/insn-cghi.txt
new file mode 100644 (file)
index 0000000..481e469
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cghi %r0, -32768
+0xa7 0x0f 0x80 0x00
+
+# CHECK: cghi %r0, -1
+0xa7 0x0f 0xff 0xff
+
+# CHECK: cghi %r0, 0
+0xa7 0x0f 0x00 0x00
+
+# CHECK: cghi %r0, 1
+0xa7 0x0f 0x00 0x01
+
+# CHECK: cghi %r0, 32767
+0xa7 0x0f 0x7f 0xff
+
+# CHECK: cghi %r15, 0
+0xa7 0xff 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-cghrl.txt b/test/MC/Disassembler/SystemZ/insn-cghrl.txt
new file mode 100644 (file)
index 0000000..1d2eac7
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cghrl %r0, 0x0
+0xc6 0x04 0x00 0x00 0x00 0x00
+
+# CHECK: cghrl %r15, 0x6
+0xc6 0xf4 0x00 0x00 0x00 0x00
+
+# CHECK: cghrl %r0, 0xa
+0xc6 0x04 0xff 0xff 0xff 0xff
+
+# CHECK: cghrl %r15, 0x10
+0xc6 0xf4 0xff 0xff 0xff 0xff
+
+# CHECK: cghrl %r0, 0xffffffff00000018
+0xc6 0x04 0x80 0x00 0x00 0x00
+
+# CHECK: cghrl %r15, 0xffffffff0000001e
+0xc6 0xf4 0x80 0x00 0x00 0x00
+
+# CHECK: cghrl %r0, 0x100000022
+0xc6 0x04 0x7f 0xff 0xff 0xff
+
+# CHECK: cghrl %r15, 0x100000028
+0xc6 0xf4 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cghsi.txt b/test/MC/Disassembler/SystemZ/insn-cghsi.txt
new file mode 100644 (file)
index 0000000..49ad3fd
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cghsi 0, 0
+0xe5 0x58 0x00 0x00 0x00 0x00
+
+# CHECK: cghsi 4095, 0
+0xe5 0x58 0x0f 0xff 0x00 0x00
+
+# CHECK: cghsi 0, -32768
+0xe5 0x58 0x00 0x00 0x80 0x00
+
+# CHECK: cghsi 0, -1
+0xe5 0x58 0x00 0x00 0xff 0xff
+
+# CHECK: cghsi 0, 0
+0xe5 0x58 0x00 0x00 0x00 0x00
+
+# CHECK: cghsi 0, 1
+0xe5 0x58 0x00 0x00 0x00 0x01
+
+# CHECK: cghsi 0, 32767
+0xe5 0x58 0x00 0x00 0x7f 0xff
+
+# CHECK: cghsi 0(%r1), 42
+0xe5 0x58 0x10 0x00 0x00 0x2a
+
+# CHECK: cghsi 0(%r15), 42
+0xe5 0x58 0xf0 0x00 0x00 0x2a
+
+# CHECK: cghsi 4095(%r1), 42
+0xe5 0x58 0x1f 0xff 0x00 0x2a
+
+# CHECK: cghsi 4095(%r15), 42
+0xe5 0x58 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-cgr.txt b/test/MC/Disassembler/SystemZ/insn-cgr.txt
new file mode 100644 (file)
index 0000000..75cc159
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgr %r0, %r0
+0xb9 0x20 0x00 0x00
+
+# CHECK: cgr %r0, %r15
+0xb9 0x20 0x00 0x0f
+
+# CHECK: cgr %r15, %r0
+0xb9 0x20 0x00 0xf0
+
+# CHECK: cgr %r7, %r8
+0xb9 0x20 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-cgrl.txt b/test/MC/Disassembler/SystemZ/insn-cgrl.txt
new file mode 100644 (file)
index 0000000..7f4faac
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgrl %r0, 0x0
+0xc6 0x08 0x00 0x00 0x00 0x00
+
+# CHECK: cgrl %r15, 0x6
+0xc6 0xf8 0x00 0x00 0x00 0x00
+
+# CHECK: cgrl %r0, 0xa
+0xc6 0x08 0xff 0xff 0xff 0xff
+
+# CHECK: cgrl %r15, 0x10
+0xc6 0xf8 0xff 0xff 0xff 0xff
+
+# CHECK: cgrl %r0, 0xffffffff00000018
+0xc6 0x08 0x80 0x00 0x00 0x00
+
+# CHECK: cgrl %r15, 0xffffffff0000001e
+0xc6 0xf8 0x80 0x00 0x00 0x00
+
+# CHECK: cgrl %r0, 0x100000022
+0xc6 0x08 0x7f 0xff 0xff 0xff
+
+# CHECK: cgrl %r15, 0x100000028
+0xc6 0xf8 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cgxbr.txt b/test/MC/Disassembler/SystemZ/insn-cgxbr.txt
new file mode 100644 (file)
index 0000000..d97a1ca
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cgxbr %r0, 0, %f0
+0xb3 0xaa 0x00 0x00
+
+# CHECK: cgxbr %r0, 0, %f13
+0xb3 0xaa 0x00 0x0d
+
+# CHECK: cgxbr %r0, 15, %f0
+0xb3 0xaa 0xf0 0x00
+
+# CHECK: cgxbr %r4, 5, %f8
+0xb3 0xaa 0x50 0x48
+
+# CHECK: cgxbr %r15, 0, %f0
+0xb3 0xaa 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-ch.txt b/test/MC/Disassembler/SystemZ/insn-ch.txt
new file mode 100644 (file)
index 0000000..8501626
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ch %r0, 0
+0x49 0x00 0x00 0x00
+
+# CHECK: ch %r0, 4095
+0x49 0x00 0x0f 0xff
+
+# CHECK: ch %r0, 0(%r1)
+0x49 0x00 0x10 0x00
+
+# CHECK: ch %r0, 0(%r15)
+0x49 0x00 0xf0 0x00
+
+# CHECK: ch %r0, 4095(%r1,%r15)
+0x49 0x01 0xff 0xff
+
+# CHECK: ch %r0, 4095(%r15,%r1)
+0x49 0x0f 0x1f 0xff
+
+# CHECK: ch %r15, 0
+0x49 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-chhsi.txt b/test/MC/Disassembler/SystemZ/insn-chhsi.txt
new file mode 100644 (file)
index 0000000..6952f48
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: chhsi 0, 0
+0xe5 0x54 0x00 0x00 0x00 0x00
+
+# CHECK: chhsi 4095, 0
+0xe5 0x54 0x0f 0xff 0x00 0x00
+
+# CHECK: chhsi 0, -32768
+0xe5 0x54 0x00 0x00 0x80 0x00
+
+# CHECK: chhsi 0, -1
+0xe5 0x54 0x00 0x00 0xff 0xff
+
+# CHECK: chhsi 0, 0
+0xe5 0x54 0x00 0x00 0x00 0x00
+
+# CHECK: chhsi 0, 1
+0xe5 0x54 0x00 0x00 0x00 0x01
+
+# CHECK: chhsi 0, 32767
+0xe5 0x54 0x00 0x00 0x7f 0xff
+
+# CHECK: chhsi 0(%r1), 42
+0xe5 0x54 0x10 0x00 0x00 0x2a
+
+# CHECK: chhsi 0(%r15), 42
+0xe5 0x54 0xf0 0x00 0x00 0x2a
+
+# CHECK: chhsi 4095(%r1), 42
+0xe5 0x54 0x1f 0xff 0x00 0x2a
+
+# CHECK: chhsi 4095(%r15), 42
+0xe5 0x54 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-chi.txt b/test/MC/Disassembler/SystemZ/insn-chi.txt
new file mode 100644 (file)
index 0000000..a334582
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: chi %r0, -32768
+0xa7 0x0e 0x80 0x00
+
+# CHECK: chi %r0, -1
+0xa7 0x0e 0xff 0xff
+
+# CHECK: chi %r0, 0
+0xa7 0x0e 0x00 0x00
+
+# CHECK: chi %r0, 1
+0xa7 0x0e 0x00 0x01
+
+# CHECK: chi %r0, 32767
+0xa7 0x0e 0x7f 0xff
+
+# CHECK: chi %r15, 0
+0xa7 0xfe 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-chrl.txt b/test/MC/Disassembler/SystemZ/insn-chrl.txt
new file mode 100644 (file)
index 0000000..1724329
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: chrl %r0, 0x0
+0xc6 0x05 0x00 0x00 0x00 0x00
+
+# CHECK: chrl %r15, 0x6
+0xc6 0xf5 0x00 0x00 0x00 0x00
+
+# CHECK: chrl %r0, 0xa
+0xc6 0x05 0xff 0xff 0xff 0xff
+
+# CHECK: chrl %r15, 0x10
+0xc6 0xf5 0xff 0xff 0xff 0xff
+
+# CHECK: chrl %r0, 0xffffffff00000018
+0xc6 0x05 0x80 0x00 0x00 0x00
+
+# CHECK: chrl %r15, 0xffffffff0000001e
+0xc6 0xf5 0x80 0x00 0x00 0x00
+
+# CHECK: chrl %r0, 0x100000022
+0xc6 0x05 0x7f 0xff 0xff 0xff
+
+# CHECK: chrl %r15, 0x100000028
+0xc6 0xf5 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-chsi.txt b/test/MC/Disassembler/SystemZ/insn-chsi.txt
new file mode 100644 (file)
index 0000000..09f658d
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: chsi 0, 0
+0xe5 0x5c 0x00 0x00 0x00 0x00
+
+# CHECK: chsi 4095, 0
+0xe5 0x5c 0x0f 0xff 0x00 0x00
+
+# CHECK: chsi 0, -32768
+0xe5 0x5c 0x00 0x00 0x80 0x00
+
+# CHECK: chsi 0, -1
+0xe5 0x5c 0x00 0x00 0xff 0xff
+
+# CHECK: chsi 0, 0
+0xe5 0x5c 0x00 0x00 0x00 0x00
+
+# CHECK: chsi 0, 1
+0xe5 0x5c 0x00 0x00 0x00 0x01
+
+# CHECK: chsi 0, 32767
+0xe5 0x5c 0x00 0x00 0x7f 0xff
+
+# CHECK: chsi 0(%r1), 42
+0xe5 0x5c 0x10 0x00 0x00 0x2a
+
+# CHECK: chsi 0(%r15), 42
+0xe5 0x5c 0xf0 0x00 0x00 0x2a
+
+# CHECK: chsi 4095(%r1), 42
+0xe5 0x5c 0x1f 0xff 0x00 0x2a
+
+# CHECK: chsi 4095(%r15), 42
+0xe5 0x5c 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-chy.txt b/test/MC/Disassembler/SystemZ/insn-chy.txt
new file mode 100644 (file)
index 0000000..dc5308d
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: chy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x79
+
+# CHECK: chy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x79
+
+# CHECK: chy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x79
+
+# CHECK: chy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x79
+
+# CHECK: chy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x79
+
+# CHECK: chy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x79
+
+# CHECK: chy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x79
+
+# CHECK: chy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x79
+
+# CHECK: chy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x79
+
+# CHECK: chy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x79
diff --git a/test/MC/Disassembler/SystemZ/insn-cl.txt b/test/MC/Disassembler/SystemZ/insn-cl.txt
new file mode 100644 (file)
index 0000000..fd2364d
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cl %r0, 0
+0x55 0x00 0x00 0x00
+
+# CHECK: cl %r0, 4095
+0x55 0x00 0x0f 0xff
+
+# CHECK: cl %r0, 0(%r1)
+0x55 0x00 0x10 0x00
+
+# CHECK: cl %r0, 0(%r15)
+0x55 0x00 0xf0 0x00
+
+# CHECK: cl %r0, 4095(%r1,%r15)
+0x55 0x01 0xff 0xff
+
+# CHECK: cl %r0, 4095(%r15,%r1)
+0x55 0x0f 0x1f 0xff
+
+# CHECK: cl %r15, 0
+0x55 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-clfhsi.txt b/test/MC/Disassembler/SystemZ/insn-clfhsi.txt
new file mode 100644 (file)
index 0000000..e245716
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clfhsi 0, 0
+0xe5 0x5d 0x00 0x00 0x00 0x00
+
+# CHECK: clfhsi 4095, 0
+0xe5 0x5d 0x0f 0xff 0x00 0x00
+
+# CHECK: clfhsi 0, 65535
+0xe5 0x5d 0x00 0x00 0xff 0xff
+
+# CHECK: clfhsi 0(%r1), 42
+0xe5 0x5d 0x10 0x00 0x00 0x2a
+
+# CHECK: clfhsi 0(%r15), 42
+0xe5 0x5d 0xf0 0x00 0x00 0x2a
+
+# CHECK: clfhsi 4095(%r1), 42
+0xe5 0x5d 0x1f 0xff 0x00 0x2a
+
+# CHECK: clfhsi 4095(%r15), 42
+0xe5 0x5d 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-clfi.txt b/test/MC/Disassembler/SystemZ/insn-clfi.txt
new file mode 100644 (file)
index 0000000..24fe228
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clfi %r0, 0
+0xc2 0x0f 0x00 0x00 0x00 0x00
+
+# CHECK: clfi %r0, 4294967295
+0xc2 0x0f 0xff 0xff 0xff 0xff
+
+# CHECK: clfi %r15, 0
+0xc2 0xff 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-clg.txt b/test/MC/Disassembler/SystemZ/insn-clg.txt
new file mode 100644 (file)
index 0000000..cf579c8
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x21
+
+# CHECK: clg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x21
+
+# CHECK: clg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x21
+
+# CHECK: clg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x21
+
+# CHECK: clg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x21
+
+# CHECK: clg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x21
+
+# CHECK: clg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x21
+
+# CHECK: clg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x21
+
+# CHECK: clg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x21
+
+# CHECK: clg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x21
diff --git a/test/MC/Disassembler/SystemZ/insn-clgf.txt b/test/MC/Disassembler/SystemZ/insn-clgf.txt
new file mode 100644 (file)
index 0000000..61b701e
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x31
+
+# CHECK: clgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x31
+
+# CHECK: clgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x31
+
+# CHECK: clgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x31
+
+# CHECK: clgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x31
+
+# CHECK: clgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x31
+
+# CHECK: clgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x31
+
+# CHECK: clgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x31
+
+# CHECK: clgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x31
+
+# CHECK: clgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x31
diff --git a/test/MC/Disassembler/SystemZ/insn-clgfi.txt b/test/MC/Disassembler/SystemZ/insn-clgfi.txt
new file mode 100644 (file)
index 0000000..5972e5e
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clgfi %r0, 0
+0xc2 0x0e 0x00 0x00 0x00 0x00
+
+# CHECK: clgfi %r0, 4294967295
+0xc2 0x0e 0xff 0xff 0xff 0xff
+
+# CHECK: clgfi %r15, 0
+0xc2 0xfe 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-clgfr.txt b/test/MC/Disassembler/SystemZ/insn-clgfr.txt
new file mode 100644 (file)
index 0000000..81cf51c
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clgfr %r0, %r0
+0xb9 0x31 0x00 0x00
+
+# CHECK: clgfr %r0, %r15
+0xb9 0x31 0x00 0x0f
+
+# CHECK: clgfr %r15, %r0
+0xb9 0x31 0x00 0xf0
+
+# CHECK: clgfr %r7, %r8
+0xb9 0x31 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-clgfrl.txt b/test/MC/Disassembler/SystemZ/insn-clgfrl.txt
new file mode 100644 (file)
index 0000000..108472b
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clgfrl %r0, 0x0
+0xc6 0x0e 0x00 0x00 0x00 0x00
+
+# CHECK: clgfrl %r15, 0x6
+0xc6 0xfe 0x00 0x00 0x00 0x00
+
+# CHECK: clgfrl %r0, 0xa
+0xc6 0x0e 0xff 0xff 0xff 0xff
+
+# CHECK: clgfrl %r15, 0x10
+0xc6 0xfe 0xff 0xff 0xff 0xff
+
+# CHECK: clgfrl %r0, 0xffffffff00000018
+0xc6 0x0e 0x80 0x00 0x00 0x00
+
+# CHECK: clgfrl %r15, 0xffffffff0000001e
+0xc6 0xfe 0x80 0x00 0x00 0x00
+
+# CHECK: clgfrl %r0, 0x100000022
+0xc6 0x0e 0x7f 0xff 0xff 0xff
+
+# CHECK: clgfrl %r15, 0x100000028
+0xc6 0xfe 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-clghrl.txt b/test/MC/Disassembler/SystemZ/insn-clghrl.txt
new file mode 100644 (file)
index 0000000..23048fe
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clghrl %r0, 0x0
+0xc6 0x06 0x00 0x00 0x00 0x00
+
+# CHECK: clghrl %r15, 0x6
+0xc6 0xf6 0x00 0x00 0x00 0x00
+
+# CHECK: clghrl %r0, 0xa
+0xc6 0x06 0xff 0xff 0xff 0xff
+
+# CHECK: clghrl %r15, 0x10
+0xc6 0xf6 0xff 0xff 0xff 0xff
+
+# CHECK: clghrl %r0, 0xffffffff00000018
+0xc6 0x06 0x80 0x00 0x00 0x00
+
+# CHECK: clghrl %r15, 0xffffffff0000001e
+0xc6 0xf6 0x80 0x00 0x00 0x00
+
+# CHECK: clghrl %r0, 0x100000022
+0xc6 0x06 0x7f 0xff 0xff 0xff
+
+# CHECK: clghrl %r15, 0x100000028
+0xc6 0xf6 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-clghsi.txt b/test/MC/Disassembler/SystemZ/insn-clghsi.txt
new file mode 100644 (file)
index 0000000..64259ff
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clghsi 0, 0
+0xe5 0x59 0x00 0x00 0x00 0x00
+
+# CHECK: clghsi 4095, 0
+0xe5 0x59 0x0f 0xff 0x00 0x00
+
+# CHECK: clghsi 0, 65535
+0xe5 0x59 0x00 0x00 0xff 0xff
+
+# CHECK: clghsi 0(%r1), 42
+0xe5 0x59 0x10 0x00 0x00 0x2a
+
+# CHECK: clghsi 0(%r15), 42
+0xe5 0x59 0xf0 0x00 0x00 0x2a
+
+# CHECK: clghsi 4095(%r1), 42
+0xe5 0x59 0x1f 0xff 0x00 0x2a
+
+# CHECK: clghsi 4095(%r15), 42
+0xe5 0x59 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-clgr.txt b/test/MC/Disassembler/SystemZ/insn-clgr.txt
new file mode 100644 (file)
index 0000000..70e3f5f
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clgr %r0, %r0
+0xb9 0x21 0x00 0x00
+
+# CHECK: clgr %r0, %r15
+0xb9 0x21 0x00 0x0f
+
+# CHECK: clgr %r15, %r0
+0xb9 0x21 0x00 0xf0
+
+# CHECK: clgr %r7, %r8
+0xb9 0x21 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-clgrl.txt b/test/MC/Disassembler/SystemZ/insn-clgrl.txt
new file mode 100644 (file)
index 0000000..cad4c78
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clgrl %r0, 0x0
+0xc6 0x0a 0x00 0x00 0x00 0x00
+
+# CHECK: clgrl %r15, 0x6
+0xc6 0xfa 0x00 0x00 0x00 0x00
+
+# CHECK: clgrl %r0, 0xa
+0xc6 0x0a 0xff 0xff 0xff 0xff
+
+# CHECK: clgrl %r15, 0x10
+0xc6 0xfa 0xff 0xff 0xff 0xff
+
+# CHECK: clgrl %r0, 0xffffffff00000018
+0xc6 0x0a 0x80 0x00 0x00 0x00
+
+# CHECK: clgrl %r15, 0xffffffff0000001e
+0xc6 0xfa 0x80 0x00 0x00 0x00
+
+# CHECK: clgrl %r0, 0x100000022
+0xc6 0x0a 0x7f 0xff 0xff 0xff
+
+# CHECK: clgrl %r15, 0x100000028
+0xc6 0xfa 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-clhhsi.txt b/test/MC/Disassembler/SystemZ/insn-clhhsi.txt
new file mode 100644 (file)
index 0000000..8da079b
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clhhsi 0, 0
+0xe5 0x55 0x00 0x00 0x00 0x00
+
+# CHECK: clhhsi 4095, 0
+0xe5 0x55 0x0f 0xff 0x00 0x00
+
+# CHECK: clhhsi 0, 65535
+0xe5 0x55 0x00 0x00 0xff 0xff
+
+# CHECK: clhhsi 0(%r1), 42
+0xe5 0x55 0x10 0x00 0x00 0x2a
+
+# CHECK: clhhsi 0(%r15), 42
+0xe5 0x55 0xf0 0x00 0x00 0x2a
+
+# CHECK: clhhsi 4095(%r1), 42
+0xe5 0x55 0x1f 0xff 0x00 0x2a
+
+# CHECK: clhhsi 4095(%r15), 42
+0xe5 0x55 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-clhrl.txt b/test/MC/Disassembler/SystemZ/insn-clhrl.txt
new file mode 100644 (file)
index 0000000..6fdd9e2
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clhrl %r0, 0xaabbccdc
+0xc6 0x07 0x55 0x5d 0xe6 0x6e
+
+# CHECK: clhrl %r15, 0xaabbcce2
+0xc6 0xf7 0x55 0x5d 0xe6 0x6e
+
+# CHECK: clhrl %r0, 0xc
+0xc6 0x07 0x00 0x00 0x00 0x00
+
+# CHECK: clhrl %r15, 0x12
+0xc6 0xf7 0x00 0x00 0x00 0x00
+
+# CHECK: clhrl %r3, 0x18
+0xc6 0x37 0x00 0x00 0x00 0x00
+
+# CHECK: clhrl %r4, 0x1e
+0xc6 0x47 0x00 0x00 0x00 0x00
+
+# CHECK: clhrl %r7, 0x24
+0xc6 0x77 0x00 0x00 0x00 0x00
+
+# CHECK: clhrl %r8, 0x2a
+0xc6 0x87 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-cli.txt b/test/MC/Disassembler/SystemZ/insn-cli.txt
new file mode 100644 (file)
index 0000000..5c730e2
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cli 0, 0
+0x95 0x00 0x00 0x00
+
+# CHECK: cli 4095, 0
+0x95 0x00 0x0f 0xff
+
+# CHECK: cli 0, 255
+0x95 0xff 0x00 0x00
+
+# CHECK: cli 0(%r1), 42
+0x95 0x2a 0x10 0x00
+
+# CHECK: cli 0(%r15), 42
+0x95 0x2a 0xf0 0x00
+
+# CHECK: cli 4095(%r1), 42
+0x95 0x2a 0x1f 0xff
+
+# CHECK: cli 4095(%r15), 42
+0x95 0x2a 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cliy.txt b/test/MC/Disassembler/SystemZ/insn-cliy.txt
new file mode 100644 (file)
index 0000000..6faa124
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cliy -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x55
+
+# CHECK: cliy -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x55
+
+# CHECK: cliy 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x55
+
+# CHECK: cliy 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x55
+
+# CHECK: cliy 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x55
+
+# CHECK: cliy 0, 255
+0xeb 0xff 0x00 0x00 0x00 0x55
+
+# CHECK: cliy 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x55
+
+# CHECK: cliy 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x55
+
+# CHECK: cliy 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x55
+
+# CHECK: cliy 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x55
diff --git a/test/MC/Disassembler/SystemZ/insn-clr.txt b/test/MC/Disassembler/SystemZ/insn-clr.txt
new file mode 100644 (file)
index 0000000..81a1734
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clr %r0, %r0
+0x15 0x00
+
+# CHECK: clr %r0, %r15
+0x15 0x0f
+
+# CHECK: clr %r15, %r0
+0x15 0xf0
+
+# CHECK: clr %r7, %r8
+0x15 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-clrl.txt b/test/MC/Disassembler/SystemZ/insn-clrl.txt
new file mode 100644 (file)
index 0000000..72d0a46
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: clrl %r0, 0x0
+0xc6 0x0f 0x00 0x00 0x00 0x00
+
+# CHECK: clrl %r15, 0x6
+0xc6 0xff 0x00 0x00 0x00 0x00
+
+# CHECK: clrl %r0, 0xa
+0xc6 0x0f 0xff 0xff 0xff 0xff
+
+# CHECK: clrl %r15, 0x10
+0xc6 0xff 0xff 0xff 0xff 0xff
+
+# CHECK: clrl %r0, 0xffffffff00000018
+0xc6 0x0f 0x80 0x00 0x00 0x00
+
+# CHECK: clrl %r15, 0xffffffff0000001e
+0xc6 0xff 0x80 0x00 0x00 0x00
+
+# CHECK: clrl %r0, 0x100000022
+0xc6 0x0f 0x7f 0xff 0xff 0xff
+
+# CHECK: clrl %r15, 0x100000028
+0xc6 0xff 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cly.txt b/test/MC/Disassembler/SystemZ/insn-cly.txt
new file mode 100644 (file)
index 0000000..70878f0
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cly %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x55
+
+# CHECK: cly %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x55
+
+# CHECK: cly %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x55
+
+# CHECK: cly %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x55
+
+# CHECK: cly %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x55
+
+# CHECK: cly %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x55
+
+# CHECK: cly %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x55
+
+# CHECK: cly %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x55
+
+# CHECK: cly %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x55
+
+# CHECK: cly %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x55
diff --git a/test/MC/Disassembler/SystemZ/insn-cpsdr.txt b/test/MC/Disassembler/SystemZ/insn-cpsdr.txt
new file mode 100644 (file)
index 0000000..d61686e
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cpsdr %f0, %f0, %f0
+0xb3 0x72 0x00 0x00
+
+# CHECK: cpsdr %f0, %f0, %f15
+0xb3 0x72 0x00 0x0f
+
+# CHECK: cpsdr %f0, %f15, %f0
+0xb3 0x72 0xf0 0x00
+
+# CHECK: cpsdr %f15, %f0, %f0
+0xb3 0x72 0x00 0xf0
+
+# CHECK: cpsdr %f1, %f2, %f3
+0xb3 0x72 0x20 0x13
+
+# CHECK: cpsdr %f15, %f15, %f15
+0xb3 0x72 0xf0 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cr.txt b/test/MC/Disassembler/SystemZ/insn-cr.txt
new file mode 100644 (file)
index 0000000..3072773
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cr %r0, %r0
+0x19 0x00
+
+# CHECK: cr %r0, %r15
+0x19 0x0f
+
+# CHECK: cr %r15, %r0
+0x19 0xf0
+
+# CHECK: cr %r7, %r8
+0x19 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-crl.txt b/test/MC/Disassembler/SystemZ/insn-crl.txt
new file mode 100644 (file)
index 0000000..e2d98a9
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: crl %r0, 0x0
+0xc6 0x0d 0x00 0x00 0x00 0x00
+
+# CHECK: crl %r15, 0x6
+0xc6 0xfd 0x00 0x00 0x00 0x00
+
+# CHECK: crl %r0, 0xa
+0xc6 0x0d 0xff 0xff 0xff 0xff
+
+# CHECK: crl %r15, 0x10
+0xc6 0xfd 0xff 0xff 0xff 0xff
+
+# CHECK: crl %r0, 0xffffffff00000018
+0xc6 0x0d 0x80 0x00 0x00 0x00
+
+# CHECK: crl %r15, 0xffffffff0000001e
+0xc6 0xfd 0x80 0x00 0x00 0x00
+
+# CHECK: crl %r0, 0x100000022
+0xc6 0x0d 0x7f 0xff 0xff 0xff
+
+# CHECK: crl %r15, 0x100000028
+0xc6 0xfd 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-cs.txt b/test/MC/Disassembler/SystemZ/insn-cs.txt
new file mode 100644 (file)
index 0000000..63765f2
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cs %r0, %r0, 0
+0xba 0x00 0x00 0x00
+
+# CHECK: cs %r0, %r0, 4095
+0xba 0x00 0x0f 0xff
+
+# CHECK: cs %r0, %r0, 0(%r1)
+0xba 0x00 0x10 0x00
+
+# CHECK: cs %r0, %r0, 0(%r15)
+0xba 0x00 0xf0 0x00
+
+# CHECK: cs %r0, %r0, 4095(%r1)
+0xba 0x00 0x1f 0xff
+
+# CHECK: cs %r0, %r0, 4095(%r15)
+0xba 0x00 0xff 0xff
+
+# CHECK: cs %r0, %r15, 0
+0xba 0x0f 0x00 0x00
+
+# CHECK: cs %r15, %r0, 0
+0xba 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-csg.txt b/test/MC/Disassembler/SystemZ/insn-csg.txt
new file mode 100644 (file)
index 0000000..a1fc733
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: csg %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x30
+
+# CHECK: csg %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x30
+
+# CHECK: csg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x30
+
+# CHECK: csg %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x30
+
+# CHECK: csg %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x30
+
+# CHECK: csg %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x30
+
+# CHECK: csg %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x30
+
+# CHECK: csg %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x30
+
+# CHECK: csg %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x30
+
+# CHECK: csg %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x30
+
+# CHECK: csg %r15, %r0, 0
+0xeb 0xf0 0x00 0x00 0x00 0x30
diff --git a/test/MC/Disassembler/SystemZ/insn-csy.txt b/test/MC/Disassembler/SystemZ/insn-csy.txt
new file mode 100644 (file)
index 0000000..d112afb
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: csy %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x14
+
+# CHECK: csy %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x14
+
+# CHECK: csy %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x14
+
+# CHECK: csy %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x14
+
+# CHECK: csy %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x14
+
+# CHECK: csy %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x14
+
+# CHECK: csy %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x14
+
+# CHECK: csy %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x14
+
+# CHECK: csy %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x14
+
+# CHECK: csy %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x14
+
+# CHECK: csy %r15, %r0, 0
+0xeb 0xf0 0x00 0x00 0x00 0x14
diff --git a/test/MC/Disassembler/SystemZ/insn-cxbr.txt b/test/MC/Disassembler/SystemZ/insn-cxbr.txt
new file mode 100644 (file)
index 0000000..fe212bd
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cxbr %f0, %f0
+0xb3 0x49 0x00 0x00
+
+# CHECK: cxbr %f0, %f13
+0xb3 0x49 0x00 0x0d
+
+# CHECK: cxbr %f8, %f8
+0xb3 0x49 0x00 0x88
+
+# CHECK: cxbr %f13, %f0
+0xb3 0x49 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-cxfbr.txt b/test/MC/Disassembler/SystemZ/insn-cxfbr.txt
new file mode 100644 (file)
index 0000000..2a1199c
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cxfbr %f0, %r0
+0xb3 0x96 0x00 0x00
+
+# CHECK: cxfbr %f0, %r15
+0xb3 0x96 0x00 0x0f
+
+# CHECK: cxfbr %f13, %r0
+0xb3 0x96 0x00 0xd0
+
+# CHECK: cxfbr %f8, %r7
+0xb3 0x96 0x00 0x87
+
+# CHECK: cxfbr %f13, %r15
+0xb3 0x96 0x00 0xdf
diff --git a/test/MC/Disassembler/SystemZ/insn-cxgbr.txt b/test/MC/Disassembler/SystemZ/insn-cxgbr.txt
new file mode 100644 (file)
index 0000000..83fa1e8
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cxgbr %f0, %r0
+0xb3 0xa6 0x00 0x00
+
+# CHECK: cxgbr %f0, %r15
+0xb3 0xa6 0x00 0x0f
+
+# CHECK: cxgbr %f13, %r0
+0xb3 0xa6 0x00 0xd0
+
+# CHECK: cxgbr %f8, %r7
+0xb3 0xa6 0x00 0x87
+
+# CHECK: cxgbr %f13, %r15
+0xb3 0xa6 0x00 0xdf
diff --git a/test/MC/Disassembler/SystemZ/insn-cy.txt b/test/MC/Disassembler/SystemZ/insn-cy.txt
new file mode 100644 (file)
index 0000000..20a2cba
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: cy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x59
+
+# CHECK: cy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x59
+
+# CHECK: cy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x59
+
+# CHECK: cy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x59
+
+# CHECK: cy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x59
+
+# CHECK: cy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x59
+
+# CHECK: cy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x59
+
+# CHECK: cy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x59
+
+# CHECK: cy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x59
+
+# CHECK: cy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x59
diff --git a/test/MC/Disassembler/SystemZ/insn-ddb.txt b/test/MC/Disassembler/SystemZ/insn-ddb.txt
new file mode 100644 (file)
index 0000000..8c8e012
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ddb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x1d
+
+# CHECK: ddb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x1d
+
+# CHECK: ddb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x1d
+
+# CHECK: ddb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x1d
+
+# CHECK: ddb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x1d
+
+# CHECK: ddb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x1d
+
+# CHECK: ddb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x1d
diff --git a/test/MC/Disassembler/SystemZ/insn-ddbr.txt b/test/MC/Disassembler/SystemZ/insn-ddbr.txt
new file mode 100644 (file)
index 0000000..cba474e
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ddbr %f0, %f0
+0xb3 0x1d 0x00 0x00
+
+# CHECK: ddbr %f0, %f15
+0xb3 0x1d 0x00 0x0f
+
+# CHECK: ddbr %f7, %f8
+0xb3 0x1d 0x00 0x78
+
+# CHECK: ddbr %f15, %f0
+0xb3 0x1d 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-deb.txt b/test/MC/Disassembler/SystemZ/insn-deb.txt
new file mode 100644 (file)
index 0000000..e983027
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: deb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x0d
+
+# CHECK: deb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x0d
+
+# CHECK: deb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x0d
+
+# CHECK: deb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x0d
+
+# CHECK: deb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x0d
+
+# CHECK: deb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x0d
+
+# CHECK: deb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x0d
diff --git a/test/MC/Disassembler/SystemZ/insn-debr.txt b/test/MC/Disassembler/SystemZ/insn-debr.txt
new file mode 100644 (file)
index 0000000..8af807c
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: debr %f0, %f0
+0xb3 0x0d 0x00 0x00
+
+# CHECK: debr %f0, %f15
+0xb3 0x0d 0x00 0x0f
+
+# CHECK: debr %f7, %f8
+0xb3 0x0d 0x00 0x78
+
+# CHECK: debr %f15, %f0
+0xb3 0x0d 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-dl.txt b/test/MC/Disassembler/SystemZ/insn-dl.txt
new file mode 100644 (file)
index 0000000..6762f0f
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dl %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x97
+
+# CHECK: dl %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x97
+
+# CHECK: dl %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x97
+
+# CHECK: dl %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x97
+
+# CHECK: dl %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x97
+
+# CHECK: dl %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x97
+
+# CHECK: dl %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x97
+
+# CHECK: dl %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x97
+
+# CHECK: dl %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x97
+
+# CHECK: dl %r14, 0
+0xe3 0xe0 0x00 0x00 0x00 0x97
diff --git a/test/MC/Disassembler/SystemZ/insn-dlg.txt b/test/MC/Disassembler/SystemZ/insn-dlg.txt
new file mode 100644 (file)
index 0000000..374fd36
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dlg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x87
+
+# CHECK: dlg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x87
+
+# CHECK: dlg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x87
+
+# CHECK: dlg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x87
+
+# CHECK: dlg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x87
+
+# CHECK: dlg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x87
+
+# CHECK: dlg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x87
+
+# CHECK: dlg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x87
+
+# CHECK: dlg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x87
+
+# CHECK: dlg %r14, 0
+0xe3 0xe0 0x00 0x00 0x00 0x87
diff --git a/test/MC/Disassembler/SystemZ/insn-dlgr.txt b/test/MC/Disassembler/SystemZ/insn-dlgr.txt
new file mode 100644 (file)
index 0000000..91c1556
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dlgr %r0, %r0
+0xb9 0x87 0x00 0x00
+
+# CHECK: dlgr %r0, %r15
+0xb9 0x87 0x00 0x0f
+
+# CHECK: dlgr %r14, %r0
+0xb9 0x87 0x00 0xe0
+
+# CHECK: dlgr %r6, %r9
+0xb9 0x87 0x00 0x69
diff --git a/test/MC/Disassembler/SystemZ/insn-dlr.txt b/test/MC/Disassembler/SystemZ/insn-dlr.txt
new file mode 100644 (file)
index 0000000..035cb6c
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dlr %r0, %r0
+0xb9 0x97 0x00 0x00
+
+# CHECK: dlr %r0, %r15
+0xb9 0x97 0x00 0x0f
+
+# CHECK: dlr %r14, %r0
+0xb9 0x97 0x00 0xe0
+
+# CHECK: dlr %r6, %r9
+0xb9 0x97 0x00 0x69
diff --git a/test/MC/Disassembler/SystemZ/insn-dsg.txt b/test/MC/Disassembler/SystemZ/insn-dsg.txt
new file mode 100644 (file)
index 0000000..00b6a3f
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dsg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x0d
+
+# CHECK: dsg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x0d
+
+# CHECK: dsg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x0d
+
+# CHECK: dsg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x0d
+
+# CHECK: dsg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x0d
+
+# CHECK: dsg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x0d
+
+# CHECK: dsg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x0d
+
+# CHECK: dsg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x0d
+
+# CHECK: dsg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x0d
+
+# CHECK: dsg %r14, 0
+0xe3 0xe0 0x00 0x00 0x00 0x0d
diff --git a/test/MC/Disassembler/SystemZ/insn-dsgf.txt b/test/MC/Disassembler/SystemZ/insn-dsgf.txt
new file mode 100644 (file)
index 0000000..eb68d5c
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dsgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x1d
+
+# CHECK: dsgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x1d
+
+# CHECK: dsgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x1d
+
+# CHECK: dsgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x1d
+
+# CHECK: dsgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x1d
+
+# CHECK: dsgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x1d
+
+# CHECK: dsgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x1d
+
+# CHECK: dsgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x1d
+
+# CHECK: dsgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x1d
+
+# CHECK: dsgf %r14, 0
+0xe3 0xe0 0x00 0x00 0x00 0x1d
diff --git a/test/MC/Disassembler/SystemZ/insn-dsgfr.txt b/test/MC/Disassembler/SystemZ/insn-dsgfr.txt
new file mode 100644 (file)
index 0000000..103bea6
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dsgfr %r0, %r0
+0xb9 0x1d 0x00 0x00
+
+# CHECK: dsgfr %r0, %r15
+0xb9 0x1d 0x00 0x0f
+
+# CHECK: dsgfr %r14, %r0
+0xb9 0x1d 0x00 0xe0
+
+# CHECK: dsgfr %r6, %r9
+0xb9 0x1d 0x00 0x69
diff --git a/test/MC/Disassembler/SystemZ/insn-dsgr.txt b/test/MC/Disassembler/SystemZ/insn-dsgr.txt
new file mode 100644 (file)
index 0000000..aa7df55
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dsgr %r0, %r0
+0xb9 0x0d 0x00 0x00
+
+# CHECK: dsgr %r0, %r15
+0xb9 0x0d 0x00 0x0f
+
+# CHECK: dsgr %r14, %r0
+0xb9 0x0d 0x00 0xe0
+
+# CHECK: dsgr %r6, %r9
+0xb9 0x0d 0x00 0x69
diff --git a/test/MC/Disassembler/SystemZ/insn-dxbr.txt b/test/MC/Disassembler/SystemZ/insn-dxbr.txt
new file mode 100644 (file)
index 0000000..492b9e8
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: dxbr %f0, %f0
+0xb3 0x4d 0x00 0x00
+
+# CHECK: dxbr %f0, %f13
+0xb3 0x4d 0x00 0x0d
+
+# CHECK: dxbr %f8, %f8
+0xb3 0x4d 0x00 0x88
+
+# CHECK: dxbr %f13, %f0
+0xb3 0x4d 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-ear.txt b/test/MC/Disassembler/SystemZ/insn-ear.txt
new file mode 100644 (file)
index 0000000..dbf2405
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ear %r0, %a0
+0xb2 0x4f 0x00 0x00
+
+# CHECK: ear %r0, %a15
+0xb2 0x4f 0x00 0x0f
+
+# CHECK: ear %r15, %a0
+0xb2 0x4f 0x00 0xf0
+
+# CHECK: ear %r7, %a8
+0xb2 0x4f 0x00 0x78
+
+# CHECK: ear %r15, %a15
+0xb2 0x4f 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-fidbr.txt b/test/MC/Disassembler/SystemZ/insn-fidbr.txt
new file mode 100644 (file)
index 0000000..ffc0933
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: fidbr %f0, 0, %f0
+0xb3 0x5f 0x00 0x00
+
+# CHECK: fidbr %f0, 0, %f15
+0xb3 0x5f 0x00 0x0f
+
+# CHECK: fidbr %f0, 15, %f0
+0xb3 0x5f 0xf0 0x00
+
+# CHECK: fidbr %f4, 5, %f6
+0xb3 0x5f 0x50 0x46
+
+# CHECK: fidbr %f15, 0, %f0
+0xb3 0x5f 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-fiebr.txt b/test/MC/Disassembler/SystemZ/insn-fiebr.txt
new file mode 100644 (file)
index 0000000..94d8e7b
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: fiebr %f0, 0, %f0
+0xb3 0x57 0x00 0x00
+
+# CHECK: fiebr %f0, 0, %f15
+0xb3 0x57 0x00 0x0f
+
+# CHECK: fiebr %f0, 15, %f0
+0xb3 0x57 0xf0 0x00
+
+# CHECK: fiebr %f4, 5, %f6
+0xb3 0x57 0x50 0x46
+
+# CHECK: fiebr %f15, 0, %f0
+0xb3 0x57 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-fixbr.txt b/test/MC/Disassembler/SystemZ/insn-fixbr.txt
new file mode 100644 (file)
index 0000000..25ce43e
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: fixbr %f0, 0, %f0
+0xb3 0x47 0x00 0x00
+
+# CHECK: fixbr %f0, 0, %f13
+0xb3 0x47 0x00 0x0d
+
+# CHECK: fixbr %f0, 15, %f0
+0xb3 0x47 0xf0 0x00
+
+# CHECK: fixbr %f4, 5, %f8
+0xb3 0x47 0x50 0x48
+
+# CHECK: fixbr %f13, 0, %f0
+0xb3 0x47 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-flogr.txt b/test/MC/Disassembler/SystemZ/insn-flogr.txt
new file mode 100644 (file)
index 0000000..dee0da8
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: flogr %r0, %r0
+0xb9 0x83 0x00 0x00
+
+# CHECK: flogr %r0, %r15
+0xb9 0x83 0x00 0x0f
+
+# CHECK: flogr %r10, %r9
+0xb9 0x83 0x00 0xa9
+
+# CHECK: flogr %r14, %r0
+0xb9 0x83 0x00 0xe0
diff --git a/test/MC/Disassembler/SystemZ/insn-ic.txt b/test/MC/Disassembler/SystemZ/insn-ic.txt
new file mode 100644 (file)
index 0000000..989f03e
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ic %r0, 0
+0x43 0x00 0x00 0x00
+
+# CHECK: ic %r0, 4095
+0x43 0x00 0x0f 0xff
+
+# CHECK: ic %r0, 0(%r1)
+0x43 0x00 0x10 0x00
+
+# CHECK: ic %r0, 0(%r15)
+0x43 0x00 0xf0 0x00
+
+# CHECK: ic %r0, 4095(%r1,%r15)
+0x43 0x01 0xff 0xff
+
+# CHECK: ic %r0, 4095(%r15,%r1)
+0x43 0x0f 0x1f 0xff
+
+# CHECK: ic %r15, 0
+0x43 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-icy.txt b/test/MC/Disassembler/SystemZ/insn-icy.txt
new file mode 100644 (file)
index 0000000..3ae5310
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: icy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x73
+
+# CHECK: icy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x73
+
+# CHECK: icy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x73
+
+# CHECK: icy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x73
+
+# CHECK: icy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x73
+
+# CHECK: icy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x73
+
+# CHECK: icy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x73
+
+# CHECK: icy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x73
+
+# CHECK: icy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x73
+
+# CHECK: icy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x73
diff --git a/test/MC/Disassembler/SystemZ/insn-iihf.txt b/test/MC/Disassembler/SystemZ/insn-iihf.txt
new file mode 100644 (file)
index 0000000..d4f46c4
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: iihf %r0, 0
+0xc0 0x08 0x00 0x00 0x00 0x00
+
+# CHECK: iihf %r0, 4294967295
+0xc0 0x08 0xff 0xff 0xff 0xff
+
+# CHECK: iihf %r15, 0
+0xc0 0xf8 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-iihh.txt b/test/MC/Disassembler/SystemZ/insn-iihh.txt
new file mode 100644 (file)
index 0000000..aed6ba8
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: iihh %r0, 0
+0xa5 0x00 0x00 0x00
+
+# CHECK: iihh %r0, 32768
+0xa5 0x00 0x80 0x00
+
+# CHECK: iihh %r0, 65535
+0xa5 0x00 0xff 0xff
+
+# CHECK: iihh %r15, 0
+0xa5 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-iihl.txt b/test/MC/Disassembler/SystemZ/insn-iihl.txt
new file mode 100644 (file)
index 0000000..9e9b455
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: iihl %r0, 0
+0xa5 0x01 0x00 0x00
+
+# CHECK: iihl %r0, 32768
+0xa5 0x01 0x80 0x00
+
+# CHECK: iihl %r0, 65535
+0xa5 0x01 0xff 0xff
+
+# CHECK: iihl %r15, 0
+0xa5 0xf1 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-iilf.txt b/test/MC/Disassembler/SystemZ/insn-iilf.txt
new file mode 100644 (file)
index 0000000..c57692d
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: iilf %r0, 0
+0xc0 0x09 0x00 0x00 0x00 0x00
+
+# CHECK: iilf %r0, 4294967295
+0xc0 0x09 0xff 0xff 0xff 0xff
+
+# CHECK: iilf %r15, 0
+0xc0 0xf9 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-iilh.txt b/test/MC/Disassembler/SystemZ/insn-iilh.txt
new file mode 100644 (file)
index 0000000..3692cb3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: iilh %r0, 0
+0xa5 0x02 0x00 0x00
+
+# CHECK: iilh %r0, 32768
+0xa5 0x02 0x80 0x00
+
+# CHECK: iilh %r0, 65535
+0xa5 0x02 0xff 0xff
+
+# CHECK: iilh %r15, 0
+0xa5 0xf2 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-iill.txt b/test/MC/Disassembler/SystemZ/insn-iill.txt
new file mode 100644 (file)
index 0000000..2975894
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: iill %r0, 0
+0xa5 0x03 0x00 0x00
+
+# CHECK: iill %r0, 32768
+0xa5 0x03 0x80 0x00
+
+# CHECK: iill %r0, 65535
+0xa5 0x03 0xff 0xff
+
+# CHECK: iill %r15, 0
+0xa5 0xf3 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-l.txt b/test/MC/Disassembler/SystemZ/insn-l.txt
new file mode 100644 (file)
index 0000000..a266c48
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: l %r0, 0
+0x58 0x00 0x00 0x00
+
+# CHECK: l %r0, 4095
+0x58 0x00 0x0f 0xff
+
+# CHECK: l %r0, 0(%r1)
+0x58 0x00 0x10 0x00
+
+# CHECK: l %r0, 0(%r15)
+0x58 0x00 0xf0 0x00
+
+# CHECK: l %r0, 4095(%r1,%r15)
+0x58 0x01 0xff 0xff
+
+# CHECK: l %r0, 4095(%r15,%r1)
+0x58 0x0f 0x1f 0xff
+
+# CHECK: l %r15, 0
+0x58 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-la.txt b/test/MC/Disassembler/SystemZ/insn-la.txt
new file mode 100644 (file)
index 0000000..90d99f8
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: la %r0, 0
+0x41 0x00 0x00 0x00
+
+# CHECK: la %r0, 4095
+0x41 0x00 0x0f 0xff
+
+# CHECK: la %r0, 0(%r1)
+0x41 0x00 0x10 0x00
+
+# CHECK: la %r0, 0(%r15)
+0x41 0x00 0xf0 0x00
+
+# CHECK: la %r0, 4095(%r1,%r15)
+0x41 0x01 0xff 0xff
+
+# CHECK: la %r0, 4095(%r15,%r1)
+0x41 0x0f 0x1f 0xff
+
+# CHECK: la %r15, 0
+0x41 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-larl.txt b/test/MC/Disassembler/SystemZ/insn-larl.txt
new file mode 100644 (file)
index 0000000..814bba5
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: larl %r0, 0x0
+0xc0 0x00 0x00 0x00 0x00 0x00
+
+# CHECK: larl %r15, 0x6
+0xc0 0xf0 0x00 0x00 0x00 0x00
+
+# CHECK: larl %r0, 0xa
+0xc0 0x00 0xff 0xff 0xff 0xff
+
+# CHECK: larl %r15, 0x10
+0xc0 0xf0 0xff 0xff 0xff 0xff
+
+# CHECK: larl %r0, 0xffffffff00000018
+0xc0 0x00 0x80 0x00 0x00 0x00
+
+# CHECK: larl %r15, 0xffffffff0000001e
+0xc0 0xf0 0x80 0x00 0x00 0x00
+
+# CHECK: larl %r0, 0x100000022
+0xc0 0x00 0x7f 0xff 0xff 0xff
+
+# CHECK: larl %r15, 0x100000028
+0xc0 0xf0 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lay.txt b/test/MC/Disassembler/SystemZ/insn-lay.txt
new file mode 100644 (file)
index 0000000..35b2e50
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lay %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x71
+
+# CHECK: lay %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x71
+
+# CHECK: lay %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x71
+
+# CHECK: lay %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x71
+
+# CHECK: lay %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x71
+
+# CHECK: lay %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x71
+
+# CHECK: lay %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x71
+
+# CHECK: lay %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x71
+
+# CHECK: lay %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x71
+
+# CHECK: lay %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x71
diff --git a/test/MC/Disassembler/SystemZ/insn-lb.txt b/test/MC/Disassembler/SystemZ/insn-lb.txt
new file mode 100644 (file)
index 0000000..af0e7cc
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lb %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x76
+
+# CHECK: lb %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x76
+
+# CHECK: lb %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x76
+
+# CHECK: lb %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x76
+
+# CHECK: lb %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x76
+
+# CHECK: lb %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x76
+
+# CHECK: lb %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x76
+
+# CHECK: lb %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x76
+
+# CHECK: lb %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x76
+
+# CHECK: lb %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x76
diff --git a/test/MC/Disassembler/SystemZ/insn-lbr.txt b/test/MC/Disassembler/SystemZ/insn-lbr.txt
new file mode 100644 (file)
index 0000000..9745bcc
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lbr %r0, %r15
+0xb9 0x26 0x00 0x0f
+
+# CHECK: lbr %r7, %r8
+0xb9 0x26 0x00 0x78
+
+# CHECK: lbr %r15, %r0
+0xb9 0x26 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lcdbr.txt b/test/MC/Disassembler/SystemZ/insn-lcdbr.txt
new file mode 100644 (file)
index 0000000..409eb2d
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lcdbr %f0, %f9
+0xb3 0x13 0x00 0x09
+
+# CHECK: lcdbr %f0, %f15
+0xb3 0x13 0x00 0x0f
+
+# CHECK: lcdbr %f15, %f0
+0xb3 0x13 0x00 0xf0
+
+# CHECK: lcdbr %f15, %f9
+0xb3 0x13 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lcebr.txt b/test/MC/Disassembler/SystemZ/insn-lcebr.txt
new file mode 100644 (file)
index 0000000..67ea2d4
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lcebr %f0, %f9
+0xb3 0x03 0x00 0x09
+
+# CHECK: lcebr %f0, %f15
+0xb3 0x03 0x00 0x0f
+
+# CHECK: lcebr %f15, %f0
+0xb3 0x03 0x00 0xf0
+
+# CHECK: lcebr %f15, %f9
+0xb3 0x03 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lcgfr.txt b/test/MC/Disassembler/SystemZ/insn-lcgfr.txt
new file mode 100644 (file)
index 0000000..c13739c
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lcgfr %r0, %r0
+0xb9 0x13 0x00 0x00
+
+# CHECK: lcgfr %r0, %r15
+0xb9 0x13 0x00 0x0f
+
+# CHECK: lcgfr %r15, %r0
+0xb9 0x13 0x00 0xf0
+
+# CHECK: lcgfr %r7, %r8
+0xb9 0x13 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-lcgr.txt b/test/MC/Disassembler/SystemZ/insn-lcgr.txt
new file mode 100644 (file)
index 0000000..540fa6e
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lcgr %r0, %r0
+0xb9 0x03 0x00 0x00
+
+# CHECK: lcgr %r0, %r15
+0xb9 0x03 0x00 0x0f
+
+# CHECK: lcgr %r15, %r0
+0xb9 0x03 0x00 0xf0
+
+# CHECK: lcgr %r7, %r8
+0xb9 0x03 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-lcr.txt b/test/MC/Disassembler/SystemZ/insn-lcr.txt
new file mode 100644 (file)
index 0000000..1194ccd
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lcr %r0, %r0
+0x13 0x00
+
+# CHECK: lcr %r0, %r15
+0x13 0x0f
+
+# CHECK: lcr %r15, %r0
+0x13 0xf0
+
+# CHECK: lcr %r7, %r8
+0x13 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-lcxbr.txt b/test/MC/Disassembler/SystemZ/insn-lcxbr.txt
new file mode 100644 (file)
index 0000000..31471ad
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lcxbr %f0, %f8
+0xb3 0x43 0x00 0x08
+
+# CHECK: lcxbr %f0, %f13
+0xb3 0x43 0x00 0x0d
+
+# CHECK: lcxbr %f13, %f0
+0xb3 0x43 0x00 0xd0
+
+# CHECK: lcxbr %f13, %f9
+0xb3 0x43 0x00 0xd9
diff --git a/test/MC/Disassembler/SystemZ/insn-ld.txt b/test/MC/Disassembler/SystemZ/insn-ld.txt
new file mode 100644 (file)
index 0000000..c9361c6
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ld %f0, 0
+0x68 0x00 0x00 0x00
+
+# CHECK: ld %f0, 4095
+0x68 0x00 0x0f 0xff
+
+# CHECK: ld %f0, 0(%r1)
+0x68 0x00 0x10 0x00
+
+# CHECK: ld %f0, 0(%r15)
+0x68 0x00 0xf0 0x00
+
+# CHECK: ld %f0, 4095(%r1,%r15)
+0x68 0x01 0xff 0xff
+
+# CHECK: ld %f0, 4095(%r15,%r1)
+0x68 0x0f 0x1f 0xff
+
+# CHECK: ld %f15, 0
+0x68 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-ldeb.txt b/test/MC/Disassembler/SystemZ/insn-ldeb.txt
new file mode 100644 (file)
index 0000000..d45b01d
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ldeb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x04
+
+# CHECK: ldeb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x04
+
+# CHECK: ldeb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x04
+
+# CHECK: ldeb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x04
+
+# CHECK: ldeb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x04
+
+# CHECK: ldeb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x04
+
+# CHECK: ldeb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x04
diff --git a/test/MC/Disassembler/SystemZ/insn-ldebr.txt b/test/MC/Disassembler/SystemZ/insn-ldebr.txt
new file mode 100644 (file)
index 0000000..dc85518
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ldebr %f0, %f15
+0xb3 0x04 0x00 0x0f
+
+# CHECK: ldebr %f7, %f8
+0xb3 0x04 0x00 0x78
+
+# CHECK: ldebr %f15, %f0
+0xb3 0x04 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-ldgr.txt b/test/MC/Disassembler/SystemZ/insn-ldgr.txt
new file mode 100644 (file)
index 0000000..80d303b
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ldgr %f0, %r0
+0xb3 0xc1 0x00 0x00
+
+# CHECK: ldgr %f0, %r15
+0xb3 0xc1 0x00 0x0f
+
+# CHECK: ldgr %f15, %r0
+0xb3 0xc1 0x00 0xf0
+
+# CHECK: ldgr %f7, %r9
+0xb3 0xc1 0x00 0x79
+
+# CHECK: ldgr %f15, %r15
+0xb3 0xc1 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-ldr.txt b/test/MC/Disassembler/SystemZ/insn-ldr.txt
new file mode 100644 (file)
index 0000000..25e061b
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ldr %f0, %f9
+0x28 0x09
+
+# CHECK: ldr %f0, %f15
+0x28 0x0f
+
+# CHECK: ldr %f15, %f0
+0x28 0xf0
+
+# CHECK: ldr %f15, %f9
+0x28 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-ldxbr.txt b/test/MC/Disassembler/SystemZ/insn-ldxbr.txt
new file mode 100644 (file)
index 0000000..9d438dc
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ldxbr %f0, %f0
+0xb3 0x45 0x00 0x00
+
+# CHECK: ldxbr %f0, %f13
+0xb3 0x45 0x00 0x0d
+
+# CHECK: ldxbr %f8, %f12
+0xb3 0x45 0x00 0x8c
+
+# CHECK: ldxbr %f13, %f0
+0xb3 0x45 0x00 0xd0
+
+# CHECK: ldxbr %f13, %f13
+0xb3 0x45 0x00 0xdd
diff --git a/test/MC/Disassembler/SystemZ/insn-ldy.txt b/test/MC/Disassembler/SystemZ/insn-ldy.txt
new file mode 100644 (file)
index 0000000..712aca0
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ldy %f0, -524288
+0xed 0x00 0x00 0x00 0x80 0x65
+
+# CHECK: ldy %f0, -1
+0xed 0x00 0x0f 0xff 0xff 0x65
+
+# CHECK: ldy %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x65
+
+# CHECK: ldy %f0, 1
+0xed 0x00 0x00 0x01 0x00 0x65
+
+# CHECK: ldy %f0, 524287
+0xed 0x00 0x0f 0xff 0x7f 0x65
+
+# CHECK: ldy %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x65
+
+# CHECK: ldy %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x65
+
+# CHECK: ldy %f0, 524287(%r1,%r15)
+0xed 0x01 0xff 0xff 0x7f 0x65
+
+# CHECK: ldy %f0, 524287(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x7f 0x65
+
+# CHECK: ldy %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x65
diff --git a/test/MC/Disassembler/SystemZ/insn-le.txt b/test/MC/Disassembler/SystemZ/insn-le.txt
new file mode 100644 (file)
index 0000000..2b11f00
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: le %f0, 0
+0x78 0x00 0x00 0x00
+
+# CHECK: le %f0, 4095
+0x78 0x00 0x0f 0xff
+
+# CHECK: le %f0, 0(%r1)
+0x78 0x00 0x10 0x00
+
+# CHECK: le %f0, 0(%r15)
+0x78 0x00 0xf0 0x00
+
+# CHECK: le %f0, 4095(%r1,%r15)
+0x78 0x01 0xff 0xff
+
+# CHECK: le %f0, 4095(%r15,%r1)
+0x78 0x0f 0x1f 0xff
+
+# CHECK: le %f15, 0
+0x78 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-ledbr.txt b/test/MC/Disassembler/SystemZ/insn-ledbr.txt
new file mode 100644 (file)
index 0000000..5a7d41d
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ledbr %f0, %f0
+0xb3 0x44 0x00 0x00
+
+# CHECK: ledbr %f0, %f15
+0xb3 0x44 0x00 0x0f
+
+# CHECK: ledbr %f7, %f8
+0xb3 0x44 0x00 0x78
+
+# CHECK: ledbr %f15, %f0
+0xb3 0x44 0x00 0xf0
+
+# CHECK: ledbr %f15, %f15
+0xb3 0x44 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-ler.txt b/test/MC/Disassembler/SystemZ/insn-ler.txt
new file mode 100644 (file)
index 0000000..f18dc45
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ler %f0, %f9
+0x38 0x09
+
+# CHECK: ler %f0, %f15
+0x38 0x0f
+
+# CHECK: ler %f15, %f0
+0x38 0xf0
+
+# CHECK: ler %f15, %f9
+0x38 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lexbr.txt b/test/MC/Disassembler/SystemZ/insn-lexbr.txt
new file mode 100644 (file)
index 0000000..377a187
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lexbr %f0, %f0
+0xb3 0x46 0x00 0x00
+
+# CHECK: lexbr %f0, %f13
+0xb3 0x46 0x00 0x0d
+
+# CHECK: lexbr %f8, %f12
+0xb3 0x46 0x00 0x8c
+
+# CHECK: lexbr %f13, %f0
+0xb3 0x46 0x00 0xd0
+
+# CHECK: lexbr %f13, %f13
+0xb3 0x46 0x00 0xdd
diff --git a/test/MC/Disassembler/SystemZ/insn-ley.txt b/test/MC/Disassembler/SystemZ/insn-ley.txt
new file mode 100644 (file)
index 0000000..97a3b38
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ley %f0, -524288
+0xed 0x00 0x00 0x00 0x80 0x64
+
+# CHECK: ley %f0, -1
+0xed 0x00 0x0f 0xff 0xff 0x64
+
+# CHECK: ley %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x64
+
+# CHECK: ley %f0, 1
+0xed 0x00 0x00 0x01 0x00 0x64
+
+# CHECK: ley %f0, 524287
+0xed 0x00 0x0f 0xff 0x7f 0x64
+
+# CHECK: ley %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x64
+
+# CHECK: ley %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x64
+
+# CHECK: ley %f0, 524287(%r1,%r15)
+0xed 0x01 0xff 0xff 0x7f 0x64
+
+# CHECK: ley %f0, 524287(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x7f 0x64
+
+# CHECK: ley %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x64
diff --git a/test/MC/Disassembler/SystemZ/insn-lg.txt b/test/MC/Disassembler/SystemZ/insn-lg.txt
new file mode 100644 (file)
index 0000000..956495f
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x04
+
+# CHECK: lg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x04
+
+# CHECK: lg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x04
+
+# CHECK: lg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x04
+
+# CHECK: lg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x04
+
+# CHECK: lg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x04
+
+# CHECK: lg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x04
+
+# CHECK: lg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x04
+
+# CHECK: lg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x04
+
+# CHECK: lg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x04
diff --git a/test/MC/Disassembler/SystemZ/insn-lgb.txt b/test/MC/Disassembler/SystemZ/insn-lgb.txt
new file mode 100644 (file)
index 0000000..fa21f32
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgb %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x77
+
+# CHECK: lgb %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x77
+
+# CHECK: lgb %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x77
+
+# CHECK: lgb %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x77
+
+# CHECK: lgb %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x77
+
+# CHECK: lgb %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x77
+
+# CHECK: lgb %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x77
+
+# CHECK: lgb %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x77
+
+# CHECK: lgb %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x77
+
+# CHECK: lgb %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x77
diff --git a/test/MC/Disassembler/SystemZ/insn-lgbr.txt b/test/MC/Disassembler/SystemZ/insn-lgbr.txt
new file mode 100644 (file)
index 0000000..1f1d28d
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgbr %r0, %r15
+0xb9 0x06 0x00 0x0f
+
+# CHECK: lgbr %r7, %r8
+0xb9 0x06 0x00 0x78
+
+# CHECK: lgbr %r15, %r0
+0xb9 0x06 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lgdr.txt b/test/MC/Disassembler/SystemZ/insn-lgdr.txt
new file mode 100644 (file)
index 0000000..a305975
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgdr %r0, %f0
+0xb3 0xcd 0x00 0x00
+
+# CHECK: lgdr %r0, %f15
+0xb3 0xcd 0x00 0x0f
+
+# CHECK: lgdr %r15, %f0
+0xb3 0xcd 0x00 0xf0
+
+# CHECK: lgdr %r8, %f8
+0xb3 0xcd 0x00 0x88
+
+# CHECK: lgdr %r15, %f15
+0xb3 0xcd 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lgf.txt b/test/MC/Disassembler/SystemZ/insn-lgf.txt
new file mode 100644 (file)
index 0000000..9bc2299
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x14
+
+# CHECK: lgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x14
+
+# CHECK: lgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x14
+
+# CHECK: lgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x14
+
+# CHECK: lgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x14
+
+# CHECK: lgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x14
+
+# CHECK: lgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x14
+
+# CHECK: lgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x14
+
+# CHECK: lgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x14
+
+# CHECK: lgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x14
diff --git a/test/MC/Disassembler/SystemZ/insn-lgfi.txt b/test/MC/Disassembler/SystemZ/insn-lgfi.txt
new file mode 100644 (file)
index 0000000..736a804
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgfi %r0, -2147483648
+0xc0 0x01 0x80 0x00 0x00 0x00
+
+# CHECK: lgfi %r0, -1
+0xc0 0x01 0xff 0xff 0xff 0xff
+
+# CHECK: lgfi %r0, 0
+0xc0 0x01 0x00 0x00 0x00 0x00
+
+# CHECK: lgfi %r0, 1
+0xc0 0x01 0x00 0x00 0x00 0x01
+
+# CHECK: lgfi %r0, 2147483647
+0xc0 0x01 0x7f 0xff 0xff 0xff
+
+# CHECK: lgfi %r15, 0
+0xc0 0xf1 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-lgfr.txt b/test/MC/Disassembler/SystemZ/insn-lgfr.txt
new file mode 100644 (file)
index 0000000..d57a9db
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgfr %r0, %r15
+0xb9 0x14 0x00 0x0f
+
+# CHECK: lgfr %r7, %r8
+0xb9 0x14 0x00 0x78
+
+# CHECK: lgfr %r15, %r0
+0xb9 0x14 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lgfrl.txt b/test/MC/Disassembler/SystemZ/insn-lgfrl.txt
new file mode 100644 (file)
index 0000000..fecd345
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgfrl %r0, 0x0
+0xc4 0x0c 0x00 0x00 0x00 0x00
+
+# CHECK: lgfrl %r15, 0x6
+0xc4 0xfc 0x00 0x00 0x00 0x00
+
+# CHECK: lgfrl %r0, 0xa
+0xc4 0x0c 0xff 0xff 0xff 0xff
+
+# CHECK: lgfrl %r15, 0x10
+0xc4 0xfc 0xff 0xff 0xff 0xff
+
+# CHECK: lgfrl %r0, 0xffffffff00000018
+0xc4 0x0c 0x80 0x00 0x00 0x00
+
+# CHECK: lgfrl %r15, 0xffffffff0000001e
+0xc4 0xfc 0x80 0x00 0x00 0x00
+
+# CHECK: lgfrl %r0, 0x100000022
+0xc4 0x0c 0x7f 0xff 0xff 0xff
+
+# CHECK: lgfrl %r15, 0x100000028
+0xc4 0xfc 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lgh.txt b/test/MC/Disassembler/SystemZ/insn-lgh.txt
new file mode 100644 (file)
index 0000000..a3ea87f
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgh %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x15
+
+# CHECK: lgh %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x15
+
+# CHECK: lgh %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x15
+
+# CHECK: lgh %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x15
+
+# CHECK: lgh %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x15
+
+# CHECK: lgh %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x15
+
+# CHECK: lgh %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x15
+
+# CHECK: lgh %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x15
+
+# CHECK: lgh %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x15
+
+# CHECK: lgh %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x15
diff --git a/test/MC/Disassembler/SystemZ/insn-lghi.txt b/test/MC/Disassembler/SystemZ/insn-lghi.txt
new file mode 100644 (file)
index 0000000..ad8366f
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lghi %r0, -32768
+0xa7 0x09 0x80 0x00
+
+# CHECK: lghi %r0, -1
+0xa7 0x09 0xff 0xff
+
+# CHECK: lghi %r0, 0
+0xa7 0x09 0x00 0x00
+
+# CHECK: lghi %r0, 1
+0xa7 0x09 0x00 0x01
+
+# CHECK: lghi %r0, 32767
+0xa7 0x09 0x7f 0xff
+
+# CHECK: lghi %r15, 0
+0xa7 0xf9 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-lghr.txt b/test/MC/Disassembler/SystemZ/insn-lghr.txt
new file mode 100644 (file)
index 0000000..d7e9e46
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lghr %r0, %r15
+0xb9 0x07 0x00 0x0f
+
+# CHECK: lghr %r7, %r8
+0xb9 0x07 0x00 0x78
+
+# CHECK: lghr %r15, %r0
+0xb9 0x07 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lghrl.txt b/test/MC/Disassembler/SystemZ/insn-lghrl.txt
new file mode 100644 (file)
index 0000000..cfa9622
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lghrl %r0, 0x0
+0xc4 0x04 0x00 0x00 0x00 0x00
+
+# CHECK: lghrl %r15, 0x6
+0xc4 0xf4 0x00 0x00 0x00 0x00
+
+# CHECK: lghrl %r0, 0xa
+0xc4 0x04 0xff 0xff 0xff 0xff
+
+# CHECK: lghrl %r15, 0x10
+0xc4 0xf4 0xff 0xff 0xff 0xff
+
+# CHECK: lghrl %r0, 0xffffffff00000018
+0xc4 0x04 0x80 0x00 0x00 0x00
+
+# CHECK: lghrl %r15, 0xffffffff0000001e
+0xc4 0xf4 0x80 0x00 0x00 0x00
+
+# CHECK: lghrl %r0, 0x100000022
+0xc4 0x04 0x7f 0xff 0xff 0xff
+
+# CHECK: lghrl %r15, 0x100000028
+0xc4 0xf4 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lgr.txt b/test/MC/Disassembler/SystemZ/insn-lgr.txt
new file mode 100644 (file)
index 0000000..23998e6
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgr %r0, %r9
+0xb9 0x04 0x00 0x09
+
+# CHECK: lgr %r0, %r15
+0xb9 0x04 0x00 0x0f
+
+# CHECK: lgr %r15, %r0
+0xb9 0x04 0x00 0xf0
+
+# CHECK: lgr %r15, %r9
+0xb9 0x04 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lgrl.txt b/test/MC/Disassembler/SystemZ/insn-lgrl.txt
new file mode 100644 (file)
index 0000000..785aa97
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lgrl %r0, 0x0
+0xc4 0x08 0x00 0x00 0x00 0x00
+
+# CHECK: lgrl %r15, 0x6
+0xc4 0xf8 0x00 0x00 0x00 0x00
+
+# CHECK: lgrl %r0, 0xa
+0xc4 0x08 0xff 0xff 0xff 0xff
+
+# CHECK: lgrl %r15, 0x10
+0xc4 0xf8 0xff 0xff 0xff 0xff
+
+# CHECK: lgrl %r0, 0xffffffff00000018
+0xc4 0x08 0x80 0x00 0x00 0x00
+
+# CHECK: lgrl %r15, 0xffffffff0000001e
+0xc4 0xf8 0x80 0x00 0x00 0x00
+
+# CHECK: lgrl %r0, 0x100000022
+0xc4 0x08 0x7f 0xff 0xff 0xff
+
+# CHECK: lgrl %r15, 0x100000028
+0xc4 0xf8 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lh.txt b/test/MC/Disassembler/SystemZ/insn-lh.txt
new file mode 100644 (file)
index 0000000..700b942
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lh %r0, 0
+0x48 0x00 0x00 0x00
+
+# CHECK: lh %r0, 4095
+0x48 0x00 0x0f 0xff
+
+# CHECK: lh %r0, 0(%r1)
+0x48 0x00 0x10 0x00
+
+# CHECK: lh %r0, 0(%r15)
+0x48 0x00 0xf0 0x00
+
+# CHECK: lh %r0, 4095(%r1,%r15)
+0x48 0x01 0xff 0xff
+
+# CHECK: lh %r0, 4095(%r15,%r1)
+0x48 0x0f 0x1f 0xff
+
+# CHECK: lh %r15, 0
+0x48 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-lhi.txt b/test/MC/Disassembler/SystemZ/insn-lhi.txt
new file mode 100644 (file)
index 0000000..fbb10f5
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lhi %r0, -32768
+0xa7 0x08 0x80 0x00
+
+# CHECK: lhi %r0, -1
+0xa7 0x08 0xff 0xff
+
+# CHECK: lhi %r0, 0
+0xa7 0x08 0x00 0x00
+
+# CHECK: lhi %r0, 1
+0xa7 0x08 0x00 0x01
+
+# CHECK: lhi %r0, 32767
+0xa7 0x08 0x7f 0xff
+
+# CHECK: lhi %r15, 0
+0xa7 0xf8 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-lhr.txt b/test/MC/Disassembler/SystemZ/insn-lhr.txt
new file mode 100644 (file)
index 0000000..24a38a5
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lhr %r0, %r15
+0xb9 0x27 0x00 0x0f
+
+# CHECK: lhr %r7, %r8
+0xb9 0x27 0x00 0x78
+
+# CHECK: lhr %r15, %r0
+0xb9 0x27 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lhrl.txt b/test/MC/Disassembler/SystemZ/insn-lhrl.txt
new file mode 100644 (file)
index 0000000..1728e05
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lhrl %r0, 0x0
+0xc4 0x05 0x00 0x00 0x00 0x00
+
+# CHECK: lhrl %r15, 0x6
+0xc4 0xf5 0x00 0x00 0x00 0x00
+
+# CHECK: lhrl %r0, 0xa
+0xc4 0x05 0xff 0xff 0xff 0xff
+
+# CHECK: lhrl %r15, 0x10
+0xc4 0xf5 0xff 0xff 0xff 0xff
+
+# CHECK: lhrl %r0, 0xffffffff00000018
+0xc4 0x05 0x80 0x00 0x00 0x00
+
+# CHECK: lhrl %r15, 0xffffffff0000001e
+0xc4 0xf5 0x80 0x00 0x00 0x00
+
+# CHECK: lhrl %r0, 0x100000022
+0xc4 0x05 0x7f 0xff 0xff 0xff
+
+# CHECK: lhrl %r15, 0x100000028
+0xc4 0xf5 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lhy.txt b/test/MC/Disassembler/SystemZ/insn-lhy.txt
new file mode 100644 (file)
index 0000000..679353e
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lhy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x78
+
+# CHECK: lhy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x78
+
+# CHECK: lhy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x78
+
+# CHECK: lhy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x78
+
+# CHECK: lhy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x78
+
+# CHECK: lhy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x78
+
+# CHECK: lhy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x78
+
+# CHECK: lhy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x78
+
+# CHECK: lhy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x78
+
+# CHECK: lhy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-llc.txt b/test/MC/Disassembler/SystemZ/insn-llc.txt
new file mode 100644 (file)
index 0000000..895cef2
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llc %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x94
+
+# CHECK: llc %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x94
+
+# CHECK: llc %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x94
+
+# CHECK: llc %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x94
+
+# CHECK: llc %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x94
+
+# CHECK: llc %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x94
+
+# CHECK: llc %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x94
+
+# CHECK: llc %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x94
+
+# CHECK: llc %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x94
+
+# CHECK: llc %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x94
diff --git a/test/MC/Disassembler/SystemZ/insn-llcr.txt b/test/MC/Disassembler/SystemZ/insn-llcr.txt
new file mode 100644 (file)
index 0000000..cc67524
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llcr %r0, %r15
+0xb9 0x94 0x00 0x0f
+
+# CHECK: llcr %r7, %r8
+0xb9 0x94 0x00 0x78
+
+# CHECK: llcr %r15, %r0
+0xb9 0x94 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-llgc.txt b/test/MC/Disassembler/SystemZ/insn-llgc.txt
new file mode 100644 (file)
index 0000000..eeea56a
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llgc %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x90
+
+# CHECK: llgc %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x90
+
+# CHECK: llgc %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x90
+
+# CHECK: llgc %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x90
+
+# CHECK: llgc %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x90
+
+# CHECK: llgc %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x90
+
+# CHECK: llgc %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x90
+
+# CHECK: llgc %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x90
+
+# CHECK: llgc %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x90
+
+# CHECK: llgc %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x90
diff --git a/test/MC/Disassembler/SystemZ/insn-llgcr.txt b/test/MC/Disassembler/SystemZ/insn-llgcr.txt
new file mode 100644 (file)
index 0000000..8c0b6df
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llgcr %r0, %r15
+0xb9 0x84 0x00 0x0f
+
+# CHECK: llgcr %r7, %r8
+0xb9 0x84 0x00 0x78
+
+# CHECK: llgcr %r15, %r0
+0xb9 0x84 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-llgf.txt b/test/MC/Disassembler/SystemZ/insn-llgf.txt
new file mode 100644 (file)
index 0000000..f97baa9
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x16
+
+# CHECK: llgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x16
+
+# CHECK: llgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x16
+
+# CHECK: llgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x16
+
+# CHECK: llgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x16
+
+# CHECK: llgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x16
+
+# CHECK: llgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x16
+
+# CHECK: llgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x16
+
+# CHECK: llgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x16
+
+# CHECK: llgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x16
diff --git a/test/MC/Disassembler/SystemZ/insn-llgfr.txt b/test/MC/Disassembler/SystemZ/insn-llgfr.txt
new file mode 100644 (file)
index 0000000..c68a6c9
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llgfr %r0, %r15
+0xb9 0x16 0x00 0x0f
+
+# CHECK: llgfr %r7, %r8
+0xb9 0x16 0x00 0x78
+
+# CHECK: llgfr %r15, %r0
+0xb9 0x16 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-llgfrl.txt b/test/MC/Disassembler/SystemZ/insn-llgfrl.txt
new file mode 100644 (file)
index 0000000..908ae6d
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llgfrl %r0, 0x0
+0xc4 0x0e 0x00 0x00 0x00 0x00
+
+# CHECK: llgfrl %r15, 0x6
+0xc4 0xfe 0x00 0x00 0x00 0x00
+
+# CHECK: llgfrl %r0, 0xa
+0xc4 0x0e 0xff 0xff 0xff 0xff
+
+# CHECK: llgfrl %r15, 0x10
+0xc4 0xfe 0xff 0xff 0xff 0xff
+
+# CHECK: llgfrl %r0, 0xffffffff00000018
+0xc4 0x0e 0x80 0x00 0x00 0x00
+
+# CHECK: llgfrl %r15, 0xffffffff0000001e
+0xc4 0xfe 0x80 0x00 0x00 0x00
+
+# CHECK: llgfrl %r0, 0x100000022
+0xc4 0x0e 0x7f 0xff 0xff 0xff
+
+# CHECK: llgfrl %r15, 0x100000028
+0xc4 0xfe 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-llgh.txt b/test/MC/Disassembler/SystemZ/insn-llgh.txt
new file mode 100644 (file)
index 0000000..7e64a55
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llgh %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x91
+
+# CHECK: llgh %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x91
+
+# CHECK: llgh %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x91
+
+# CHECK: llgh %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x91
+
+# CHECK: llgh %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x91
+
+# CHECK: llgh %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x91
+
+# CHECK: llgh %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x91
+
+# CHECK: llgh %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x91
+
+# CHECK: llgh %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x91
+
+# CHECK: llgh %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x91
diff --git a/test/MC/Disassembler/SystemZ/insn-llghr.txt b/test/MC/Disassembler/SystemZ/insn-llghr.txt
new file mode 100644 (file)
index 0000000..ceed654
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llghr %r0, %r15
+0xb9 0x85 0x00 0x0f
+
+# CHECK: llghr %r7, %r8
+0xb9 0x85 0x00 0x78
+
+# CHECK: llghr %r15, %r0
+0xb9 0x85 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-llghrl.txt b/test/MC/Disassembler/SystemZ/insn-llghrl.txt
new file mode 100644 (file)
index 0000000..0960afb
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llghrl %r0, 0x0
+0xc4 0x06 0x00 0x00 0x00 0x00
+
+# CHECK: llghrl %r15, 0x6
+0xc4 0xf6 0x00 0x00 0x00 0x00
+
+# CHECK: llghrl %r0, 0xa
+0xc4 0x06 0xff 0xff 0xff 0xff
+
+# CHECK: llghrl %r15, 0x10
+0xc4 0xf6 0xff 0xff 0xff 0xff
+
+# CHECK: llghrl %r0, 0xffffffff00000018
+0xc4 0x06 0x80 0x00 0x00 0x00
+
+# CHECK: llghrl %r15, 0xffffffff0000001e
+0xc4 0xf6 0x80 0x00 0x00 0x00
+
+# CHECK: llghrl %r0, 0x100000022
+0xc4 0x06 0x7f 0xff 0xff 0xff
+
+# CHECK: llghrl %r15, 0x100000028
+0xc4 0xf6 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-llh.txt b/test/MC/Disassembler/SystemZ/insn-llh.txt
new file mode 100644 (file)
index 0000000..6b660cb
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llh %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x95
+
+# CHECK: llh %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x95
+
+# CHECK: llh %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x95
+
+# CHECK: llh %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x95
+
+# CHECK: llh %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x95
+
+# CHECK: llh %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x95
+
+# CHECK: llh %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x95
+
+# CHECK: llh %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x95
+
+# CHECK: llh %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x95
+
+# CHECK: llh %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x95
diff --git a/test/MC/Disassembler/SystemZ/insn-llhr.txt b/test/MC/Disassembler/SystemZ/insn-llhr.txt
new file mode 100644 (file)
index 0000000..c01eac2
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llhr %r0, %r15
+0xb9 0x95 0x00 0x0f
+
+# CHECK: llhr %r7, %r8
+0xb9 0x95 0x00 0x78
+
+# CHECK: llhr %r15, %r0
+0xb9 0x95 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-llhrl.txt b/test/MC/Disassembler/SystemZ/insn-llhrl.txt
new file mode 100644 (file)
index 0000000..a8000ca
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llhrl %r0, 0x0
+0xc4 0x02 0x00 0x00 0x00 0x00
+
+# CHECK: llhrl %r15, 0x6
+0xc4 0xf2 0x00 0x00 0x00 0x00
+
+# CHECK: llhrl %r0, 0xa
+0xc4 0x02 0xff 0xff 0xff 0xff
+
+# CHECK: llhrl %r15, 0x10
+0xc4 0xf2 0xff 0xff 0xff 0xff
+
+# CHECK: llhrl %r0, 0xffffffff00000018
+0xc4 0x02 0x80 0x00 0x00 0x00
+
+# CHECK: llhrl %r15, 0xffffffff0000001e
+0xc4 0xf2 0x80 0x00 0x00 0x00
+
+# CHECK: llhrl %r0, 0x100000022
+0xc4 0x02 0x7f 0xff 0xff 0xff
+
+# CHECK: llhrl %r15, 0x100000028
+0xc4 0xf2 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-llihf.txt b/test/MC/Disassembler/SystemZ/insn-llihf.txt
new file mode 100644 (file)
index 0000000..64f58d3
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llihf %r0, 0
+0xc0 0x0e 0x00 0x00 0x00 0x00
+
+# CHECK: llihf %r0, 4294967295
+0xc0 0x0e 0xff 0xff 0xff 0xff
+
+# CHECK: llihf %r15, 0
+0xc0 0xfe 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-llihh.txt b/test/MC/Disassembler/SystemZ/insn-llihh.txt
new file mode 100644 (file)
index 0000000..610ce8f
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llihh %r0, 0
+0xa5 0x0c 0x00 0x00
+
+# CHECK: llihh %r0, 32768
+0xa5 0x0c 0x80 0x00
+
+# CHECK: llihh %r0, 65535
+0xa5 0x0c 0xff 0xff
+
+# CHECK: llihh %r15, 0
+0xa5 0xfc 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-llihl.txt b/test/MC/Disassembler/SystemZ/insn-llihl.txt
new file mode 100644 (file)
index 0000000..8de06f9
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llihl %r0, 0
+0xa5 0x0d 0x00 0x00
+
+# CHECK: llihl %r0, 32768
+0xa5 0x0d 0x80 0x00
+
+# CHECK: llihl %r0, 65535
+0xa5 0x0d 0xff 0xff
+
+# CHECK: llihl %r15, 0
+0xa5 0xfd 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-llilf.txt b/test/MC/Disassembler/SystemZ/insn-llilf.txt
new file mode 100644 (file)
index 0000000..008827e
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llilf %r0, 0
+0xc0 0x0f 0x00 0x00 0x00 0x00
+
+# CHECK: llilf %r0, 4294967295
+0xc0 0x0f 0xff 0xff 0xff 0xff
+
+# CHECK: llilf %r15, 0
+0xc0 0xff 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-llilh.txt b/test/MC/Disassembler/SystemZ/insn-llilh.txt
new file mode 100644 (file)
index 0000000..5b9336a
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llilh %r0, 0
+0xa5 0x0e 0x00 0x00
+
+# CHECK: llilh %r0, 32768
+0xa5 0x0e 0x80 0x00
+
+# CHECK: llilh %r0, 65535
+0xa5 0x0e 0xff 0xff
+
+# CHECK: llilh %r15, 0
+0xa5 0xfe 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-llill.txt b/test/MC/Disassembler/SystemZ/insn-llill.txt
new file mode 100644 (file)
index 0000000..65c27dd
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: llill %r0, 0
+0xa5 0x0f 0x00 0x00
+
+# CHECK: llill %r0, 32768
+0xa5 0x0f 0x80 0x00
+
+# CHECK: llill %r0, 65535
+0xa5 0x0f 0xff 0xff
+
+# CHECK: llill %r15, 0
+0xa5 0xff 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-lmg.txt b/test/MC/Disassembler/SystemZ/insn-lmg.txt
new file mode 100644 (file)
index 0000000..2a75996
--- /dev/null
@@ -0,0 +1,39 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lmg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x04
+
+# CHECK: lmg %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x04
+
+# CHECK: lmg %r14, %r15, 0
+0xeb 0xef 0x00 0x00 0x00 0x04
+
+# CHECK: lmg %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x04
+
+# CHECK: lmg %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x04
+
+# CHECK: lmg %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x04
+
+# CHECK: lmg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x04
+
+# CHECK: lmg %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x04
+
+# CHECK: lmg %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x04
+
+# CHECK: lmg %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x04
+
+# CHECK: lmg %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x04
+
+# CHECK: lmg %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x04
+
+# CHECK: lmg %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x04
diff --git a/test/MC/Disassembler/SystemZ/insn-lndbr.txt b/test/MC/Disassembler/SystemZ/insn-lndbr.txt
new file mode 100644 (file)
index 0000000..d3d7278
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lndbr %f0, %f9
+0xb3 0x11 0x00 0x09
+
+# CHECK: lndbr %f0, %f15
+0xb3 0x11 0x00 0x0f
+
+# CHECK: lndbr %f15, %f0
+0xb3 0x11 0x00 0xf0
+
+# CHECK: lndbr %f15, %f9
+0xb3 0x11 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lnebr.txt b/test/MC/Disassembler/SystemZ/insn-lnebr.txt
new file mode 100644 (file)
index 0000000..ee3925c
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lnebr %f0, %f9
+0xb3 0x01 0x00 0x09
+
+# CHECK: lnebr %f0, %f15
+0xb3 0x01 0x00 0x0f
+
+# CHECK: lnebr %f15, %f0
+0xb3 0x01 0x00 0xf0
+
+# CHECK: lnebr %f15, %f9
+0xb3 0x01 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lnxbr.txt b/test/MC/Disassembler/SystemZ/insn-lnxbr.txt
new file mode 100644 (file)
index 0000000..41f1c03
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lnxbr %f0, %f8
+0xb3 0x41 0x00 0x08
+
+# CHECK: lnxbr %f0, %f13
+0xb3 0x41 0x00 0x0d
+
+# CHECK: lnxbr %f13, %f0
+0xb3 0x41 0x00 0xd0
+
+# CHECK: lnxbr %f13, %f9
+0xb3 0x41 0x00 0xd9
diff --git a/test/MC/Disassembler/SystemZ/insn-lpdbr.txt b/test/MC/Disassembler/SystemZ/insn-lpdbr.txt
new file mode 100644 (file)
index 0000000..1c1f05a
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lpdbr %f0, %f9
+0xb3 0x10 0x00 0x09
+
+# CHECK: lpdbr %f0, %f15
+0xb3 0x10 0x00 0x0f
+
+# CHECK: lpdbr %f15, %f0
+0xb3 0x10 0x00 0xf0
+
+# CHECK: lpdbr %f15, %f9
+0xb3 0x10 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lpebr.txt b/test/MC/Disassembler/SystemZ/insn-lpebr.txt
new file mode 100644 (file)
index 0000000..ac324fe
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lpebr %f0, %f9
+0xb3 0x00 0x00 0x09
+
+# CHECK: lpebr %f0, %f15
+0xb3 0x00 0x00 0x0f
+
+# CHECK: lpebr %f15, %f0
+0xb3 0x00 0x00 0xf0
+
+# CHECK: lpebr %f15, %f9
+0xb3 0x00 0x00 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lpxbr.txt b/test/MC/Disassembler/SystemZ/insn-lpxbr.txt
new file mode 100644 (file)
index 0000000..384e1d9
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lpxbr %f0, %f8
+0xb3 0x40 0x00 0x08
+
+# CHECK: lpxbr %f0, %f13
+0xb3 0x40 0x00 0x0d
+
+# CHECK: lpxbr %f13, %f0
+0xb3 0x40 0x00 0xd0
+
+# CHECK: lpxbr %f13, %f9
+0xb3 0x40 0x00 0xd9
diff --git a/test/MC/Disassembler/SystemZ/insn-lr.txt b/test/MC/Disassembler/SystemZ/insn-lr.txt
new file mode 100644 (file)
index 0000000..8e89d41
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lr %r0, %r9
+0x18 0x09
+
+# CHECK: lr %r0, %r15
+0x18 0x0f
+
+# CHECK: lr %r15, %r0
+0x18 0xf0
+
+# CHECK: lr %r15, %r9
+0x18 0xf9
diff --git a/test/MC/Disassembler/SystemZ/insn-lrl.txt b/test/MC/Disassembler/SystemZ/insn-lrl.txt
new file mode 100644 (file)
index 0000000..b5ca391
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lrl %r0, 0x0
+0xc4 0x0d 0x00 0x00 0x00 0x00
+
+# CHECK: lrl %r15, 0x6
+0xc4 0xfd 0x00 0x00 0x00 0x00
+
+# CHECK: lrl %r0, 0xa
+0xc4 0x0d 0xff 0xff 0xff 0xff
+
+# CHECK: lrl %r15, 0x10
+0xc4 0xfd 0xff 0xff 0xff 0xff
+
+# CHECK: lrl %r0, 0xffffffff00000018
+0xc4 0x0d 0x80 0x00 0x00 0x00
+
+# CHECK: lrl %r15, 0xffffffff0000001e
+0xc4 0xfd 0x80 0x00 0x00 0x00
+
+# CHECK: lrl %r0, 0x100000022
+0xc4 0x0d 0x7f 0xff 0xff 0xff
+
+# CHECK: lrl %r15, 0x100000028
+0xc4 0xfd 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lrv.txt b/test/MC/Disassembler/SystemZ/insn-lrv.txt
new file mode 100644 (file)
index 0000000..30e4976
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lrv %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x1e
+
+# CHECK: lrv %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x1e
+
+# CHECK: lrv %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x1e
+
+# CHECK: lrv %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x1e
+
+# CHECK: lrv %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x1e
+
+# CHECK: lrv %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x1e
+
+# CHECK: lrv %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x1e
+
+# CHECK: lrv %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x1e
+
+# CHECK: lrv %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x1e
+
+# CHECK: lrv %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x1e
diff --git a/test/MC/Disassembler/SystemZ/insn-lrvg.txt b/test/MC/Disassembler/SystemZ/insn-lrvg.txt
new file mode 100644 (file)
index 0000000..86b0913
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lrvg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x0f
+
+# CHECK: lrvg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x0f
+
+# CHECK: lrvg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x0f
+
+# CHECK: lrvg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x0f
+
+# CHECK: lrvg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x0f
+
+# CHECK: lrvg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x0f
+
+# CHECK: lrvg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x0f
+
+# CHECK: lrvg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x0f
+
+# CHECK: lrvg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x0f
+
+# CHECK: lrvg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x0f
diff --git a/test/MC/Disassembler/SystemZ/insn-lrvgr.txt b/test/MC/Disassembler/SystemZ/insn-lrvgr.txt
new file mode 100644 (file)
index 0000000..eda1b3c
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lrvgr %r0, %r0
+0xb9 0x0f 0x00 0x00
+
+# CHECK: lrvgr %r0, %r15
+0xb9 0x0f 0x00 0x0f
+
+# CHECK: lrvgr %r15, %r0
+0xb9 0x0f 0x00 0xf0
+
+# CHECK: lrvgr %r7, %r8
+0xb9 0x0f 0x00 0x78
+
+# CHECK: lrvgr %r15, %r15
+0xb9 0x0f 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lrvr.txt b/test/MC/Disassembler/SystemZ/insn-lrvr.txt
new file mode 100644 (file)
index 0000000..fc8a8e6
--- /dev/null
@@ -0,0 +1,15 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lrvr %r0, %r0
+0xb9 0x1f 0x00 0x00
+
+# CHECK: lrvr %r0, %r15
+0xb9 0x1f 0x00 0x0f
+
+# CHECK: lrvr %r15, %r0
+0xb9 0x1f 0x00 0xf0
+
+# CHECK: lrvr %r7, %r8
+0xb9 0x1f 0x00 0x78
+
+# CHECK: lrvr %r15, %r15
+0xb9 0x1f 0x00 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-lxr.txt b/test/MC/Disassembler/SystemZ/insn-lxr.txt
new file mode 100644 (file)
index 0000000..bd989cd
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lxr %f0, %f8
+0xb3 0x65 0x00 0x08
+
+# CHECK: lxr %f0, %f13
+0xb3 0x65 0x00 0x0d
+
+# CHECK: lxr %f13, %f0
+0xb3 0x65 0x00 0xd0
+
+# CHECK: lxr %f13, %f9
+0xb3 0x65 0x00 0xd9
diff --git a/test/MC/Disassembler/SystemZ/insn-ly.txt b/test/MC/Disassembler/SystemZ/insn-ly.txt
new file mode 100644 (file)
index 0000000..b9112d7
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ly %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x58
+
+# CHECK: ly %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x58
+
+# CHECK: ly %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x58
+
+# CHECK: ly %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x58
+
+# CHECK: ly %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x58
+
+# CHECK: ly %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x58
+
+# CHECK: ly %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x58
+
+# CHECK: ly %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x58
+
+# CHECK: ly %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x58
+
+# CHECK: ly %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x58
diff --git a/test/MC/Disassembler/SystemZ/insn-lzdr.txt b/test/MC/Disassembler/SystemZ/insn-lzdr.txt
new file mode 100644 (file)
index 0000000..5e64f35
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lzdr %f0
+0xb3 0x75 0x00 0x00
+
+# CHECK: lzdr %f7
+0xb3 0x75 0x00 0x70
+
+# CHECK: lzdr %f15
+0xb3 0x75 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lzer.txt b/test/MC/Disassembler/SystemZ/insn-lzer.txt
new file mode 100644 (file)
index 0000000..f86cb2e
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lzer %f0
+0xb3 0x74 0x00 0x00
+
+# CHECK: lzer %f7
+0xb3 0x74 0x00 0x70
+
+# CHECK: lzer %f15
+0xb3 0x74 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-lzxr.txt b/test/MC/Disassembler/SystemZ/insn-lzxr.txt
new file mode 100644 (file)
index 0000000..f2e6444
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: lzxr %f0
+0xb3 0x76 0x00 0x00
+
+# CHECK: lzxr %f8
+0xb3 0x76 0x00 0x80
+
+# CHECK: lzxr %f13
+0xb3 0x76 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-madb.txt b/test/MC/Disassembler/SystemZ/insn-madb.txt
new file mode 100644 (file)
index 0000000..bbc8e5e
--- /dev/null
@@ -0,0 +1,27 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: madb %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x1e
+
+# CHECK: madb %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x1e
+
+# CHECK: madb %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x1e
+
+# CHECK: madb %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x1e
+
+# CHECK: madb %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x1e
+
+# CHECK: madb %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x1e
+
+# CHECK: madb %f0, %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x1e
+
+# CHECK: madb %f15, %f0, 0
+0xed 0x00 0x00 0x00 0xf0 0x1e
+
+# CHECK: madb %f15, %f15, 0
+0xed 0xf0 0x00 0x00 0xf0 0x1e
diff --git a/test/MC/Disassembler/SystemZ/insn-madbr.txt b/test/MC/Disassembler/SystemZ/insn-madbr.txt
new file mode 100644 (file)
index 0000000..44c80ac
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: madbr %f0, %f0, %f0
+0xb3 0x1e 0x00 0x00
+
+# CHECK: madbr %f0, %f0, %f15
+0xb3 0x1e 0x00 0x0f
+
+# CHECK: madbr %f0, %f15, %f0
+0xb3 0x1e 0x00 0xf0
+
+# CHECK: madbr %f15, %f0, %f0
+0xb3 0x1e 0xf0 0x00
+
+# CHECK: madbr %f7, %f8, %f9
+0xb3 0x1e 0x70 0x89
+
+# CHECK: madbr %f15, %f15, %f15
+0xb3 0x1e 0xf0 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-maeb.txt b/test/MC/Disassembler/SystemZ/insn-maeb.txt
new file mode 100644 (file)
index 0000000..3da44d3
--- /dev/null
@@ -0,0 +1,27 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: maeb %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x0e
+
+# CHECK: maeb %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x0e
+
+# CHECK: maeb %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x0e
+
+# CHECK: maeb %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x0e
+
+# CHECK: maeb %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x0e
+
+# CHECK: maeb %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x0e
+
+# CHECK: maeb %f0, %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x0e
+
+# CHECK: maeb %f15, %f0, 0
+0xed 0x00 0x00 0x00 0xf0 0x0e
+
+# CHECK: maeb %f15, %f15, 0
+0xed 0xf0 0x00 0x00 0xf0 0x0e
diff --git a/test/MC/Disassembler/SystemZ/insn-maebr.txt b/test/MC/Disassembler/SystemZ/insn-maebr.txt
new file mode 100644 (file)
index 0000000..614c9ac
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: maebr %f0, %f0, %f0
+0xb3 0x0e 0x00 0x00
+
+# CHECK: maebr %f0, %f0, %f15
+0xb3 0x0e 0x00 0x0f
+
+# CHECK: maebr %f0, %f15, %f0
+0xb3 0x0e 0x00 0xf0
+
+# CHECK: maebr %f15, %f0, %f0
+0xb3 0x0e 0xf0 0x00
+
+# CHECK: maebr %f7, %f8, %f9
+0xb3 0x0e 0x70 0x89
+
+# CHECK: maebr %f15, %f15, %f15
+0xb3 0x0e 0xf0 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-mdb.txt b/test/MC/Disassembler/SystemZ/insn-mdb.txt
new file mode 100644 (file)
index 0000000..69f030a
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x1c
+
+# CHECK: mdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x1c
+
+# CHECK: mdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x1c
+
+# CHECK: mdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x1c
+
+# CHECK: mdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x1c
+
+# CHECK: mdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x1c
+
+# CHECK: mdb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x1c
diff --git a/test/MC/Disassembler/SystemZ/insn-mdbr.txt b/test/MC/Disassembler/SystemZ/insn-mdbr.txt
new file mode 100644 (file)
index 0000000..e5cef83
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mdbr %f0, %f0
+0xb3 0x1c 0x00 0x00
+
+# CHECK: mdbr %f0, %f15
+0xb3 0x1c 0x00 0x0f
+
+# CHECK: mdbr %f7, %f8
+0xb3 0x1c 0x00 0x78
+
+# CHECK: mdbr %f15, %f0
+0xb3 0x1c 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-mdeb.txt b/test/MC/Disassembler/SystemZ/insn-mdeb.txt
new file mode 100644 (file)
index 0000000..074ca7f
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mdeb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x0c
+
+# CHECK: mdeb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x0c
+
+# CHECK: mdeb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x0c
+
+# CHECK: mdeb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x0c
+
+# CHECK: mdeb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x0c
+
+# CHECK: mdeb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x0c
+
+# CHECK: mdeb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x0c
diff --git a/test/MC/Disassembler/SystemZ/insn-mdebr.txt b/test/MC/Disassembler/SystemZ/insn-mdebr.txt
new file mode 100644 (file)
index 0000000..8503424
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mdebr %f0, %f0
+0xb3 0x0c 0x00 0x00
+
+# CHECK: mdebr %f0, %f15
+0xb3 0x0c 0x00 0x0f
+
+# CHECK: mdebr %f7, %f8
+0xb3 0x0c 0x00 0x78
+
+# CHECK: mdebr %f15, %f0
+0xb3 0x0c 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-meeb.txt b/test/MC/Disassembler/SystemZ/insn-meeb.txt
new file mode 100644 (file)
index 0000000..f4dbf5f
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: meeb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x17
+
+# CHECK: meeb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x17
+
+# CHECK: meeb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x17
+
+# CHECK: meeb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x17
+
+# CHECK: meeb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x17
+
+# CHECK: meeb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x17
+
+# CHECK: meeb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x17
diff --git a/test/MC/Disassembler/SystemZ/insn-meebr.txt b/test/MC/Disassembler/SystemZ/insn-meebr.txt
new file mode 100644 (file)
index 0000000..57f342b
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: meebr %f0, %f0
+0xb3 0x17 0x00 0x00
+
+# CHECK: meebr %f0, %f15
+0xb3 0x17 0x00 0x0f
+
+# CHECK: meebr %f7, %f8
+0xb3 0x17 0x00 0x78
+
+# CHECK: meebr %f15, %f0
+0xb3 0x17 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-mghi.txt b/test/MC/Disassembler/SystemZ/insn-mghi.txt
new file mode 100644 (file)
index 0000000..42bb316
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mghi %r0, -32768
+0xa7 0x0d 0x80 0x00
+
+# CHECK: mghi %r0, -1
+0xa7 0x0d 0xff 0xff
+
+# CHECK: mghi %r0, 0
+0xa7 0x0d 0x00 0x00
+
+# CHECK: mghi %r0, 1
+0xa7 0x0d 0x00 0x01
+
+# CHECK: mghi %r0, 32767
+0xa7 0x0d 0x7f 0xff
+
+# CHECK: mghi %r15, 0
+0xa7 0xfd 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-mh.txt b/test/MC/Disassembler/SystemZ/insn-mh.txt
new file mode 100644 (file)
index 0000000..d5ab392
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mh %r0, 0
+0x4c 0x00 0x00 0x00
+
+# CHECK: mh %r0, 4095
+0x4c 0x00 0x0f 0xff
+
+# CHECK: mh %r0, 0(%r1)
+0x4c 0x00 0x10 0x00
+
+# CHECK: mh %r0, 0(%r15)
+0x4c 0x00 0xf0 0x00
+
+# CHECK: mh %r0, 4095(%r1,%r15)
+0x4c 0x01 0xff 0xff
+
+# CHECK: mh %r0, 4095(%r15,%r1)
+0x4c 0x0f 0x1f 0xff
+
+# CHECK: mh %r15, 0
+0x4c 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-mhi.txt b/test/MC/Disassembler/SystemZ/insn-mhi.txt
new file mode 100644 (file)
index 0000000..b282683
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mhi %r0, -32768
+0xa7 0x0c 0x80 0x00
+
+# CHECK: mhi %r0, -1
+0xa7 0x0c 0xff 0xff
+
+# CHECK: mhi %r0, 0
+0xa7 0x0c 0x00 0x00
+
+# CHECK: mhi %r0, 1
+0xa7 0x0c 0x00 0x01
+
+# CHECK: mhi %r0, 32767
+0xa7 0x0c 0x7f 0xff
+
+# CHECK: mhi %r15, 0
+0xa7 0xfc 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-mhy.txt b/test/MC/Disassembler/SystemZ/insn-mhy.txt
new file mode 100644 (file)
index 0000000..9279db1
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mhy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x7c
+
+# CHECK: mhy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x7c
+
+# CHECK: mhy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x7c
+
+# CHECK: mhy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x7c
+
+# CHECK: mhy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x7c
+
+# CHECK: mhy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x7c
+
+# CHECK: mhy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x7c
+
+# CHECK: mhy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x7c
+
+# CHECK: mhy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x7c
+
+# CHECK: mhy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x7c
diff --git a/test/MC/Disassembler/SystemZ/insn-mlg.txt b/test/MC/Disassembler/SystemZ/insn-mlg.txt
new file mode 100644 (file)
index 0000000..eeceece
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mlg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x86
+
+# CHECK: mlg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x86
+
+# CHECK: mlg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x86
+
+# CHECK: mlg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x86
+
+# CHECK: mlg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x86
+
+# CHECK: mlg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x86
+
+# CHECK: mlg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x86
+
+# CHECK: mlg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x86
+
+# CHECK: mlg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x86
+
+# CHECK: mlg %r14, 0
+0xe3 0xe0 0x00 0x00 0x00 0x86
diff --git a/test/MC/Disassembler/SystemZ/insn-mlgr.txt b/test/MC/Disassembler/SystemZ/insn-mlgr.txt
new file mode 100644 (file)
index 0000000..ab7c2e5
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mlgr %r0, %r0
+0xb9 0x86 0x00 0x00
+
+# CHECK: mlgr %r0, %r15
+0xb9 0x86 0x00 0x0f
+
+# CHECK: mlgr %r14, %r0
+0xb9 0x86 0x00 0xe0
+
+# CHECK: mlgr %r6, %r9
+0xb9 0x86 0x00 0x69
diff --git a/test/MC/Disassembler/SystemZ/insn-ms.txt b/test/MC/Disassembler/SystemZ/insn-ms.txt
new file mode 100644 (file)
index 0000000..558f9cb
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ms %r0, 0
+0x71 0x00 0x00 0x00
+
+# CHECK: ms %r0, 4095
+0x71 0x00 0x0f 0xff
+
+# CHECK: ms %r0, 0(%r1)
+0x71 0x00 0x10 0x00
+
+# CHECK: ms %r0, 0(%r15)
+0x71 0x00 0xf0 0x00
+
+# CHECK: ms %r0, 4095(%r1,%r15)
+0x71 0x01 0xff 0xff
+
+# CHECK: ms %r0, 4095(%r15,%r1)
+0x71 0x0f 0x1f 0xff
+
+# CHECK: ms %r15, 0
+0x71 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-msdb.txt b/test/MC/Disassembler/SystemZ/insn-msdb.txt
new file mode 100644 (file)
index 0000000..12e1e3c
--- /dev/null
@@ -0,0 +1,27 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msdb %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x1f
+
+# CHECK: msdb %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x1f
+
+# CHECK: msdb %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x1f
+
+# CHECK: msdb %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x1f
+
+# CHECK: msdb %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x1f
+
+# CHECK: msdb %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x1f
+
+# CHECK: msdb %f0, %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x1f
+
+# CHECK: msdb %f15, %f0, 0
+0xed 0x00 0x00 0x00 0xf0 0x1f
+
+# CHECK: msdb %f15, %f15, 0
+0xed 0xf0 0x00 0x00 0xf0 0x1f
diff --git a/test/MC/Disassembler/SystemZ/insn-msdbr.txt b/test/MC/Disassembler/SystemZ/insn-msdbr.txt
new file mode 100644 (file)
index 0000000..c24d23b
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msdbr %f0, %f0, %f0
+0xb3 0x1f 0x00 0x00
+
+# CHECK: msdbr %f0, %f0, %f15
+0xb3 0x1f 0x00 0x0f
+
+# CHECK: msdbr %f0, %f15, %f0
+0xb3 0x1f 0x00 0xf0
+
+# CHECK: msdbr %f15, %f0, %f0
+0xb3 0x1f 0xf0 0x00
+
+# CHECK: msdbr %f7, %f8, %f9
+0xb3 0x1f 0x70 0x89
+
+# CHECK: msdbr %f15, %f15, %f15
+0xb3 0x1f 0xf0 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-mseb.txt b/test/MC/Disassembler/SystemZ/insn-mseb.txt
new file mode 100644 (file)
index 0000000..f53cc7c
--- /dev/null
@@ -0,0 +1,27 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mseb %f0, %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x0f
+
+# CHECK: mseb %f0, %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x0f
+
+# CHECK: mseb %f0, %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x0f
+
+# CHECK: mseb %f0, %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x0f
+
+# CHECK: mseb %f0, %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x0f
+
+# CHECK: mseb %f0, %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x0f
+
+# CHECK: mseb %f0, %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x0f
+
+# CHECK: mseb %f15, %f0, 0
+0xed 0x00 0x00 0x00 0xf0 0x0f
+
+# CHECK: mseb %f15, %f15, 0
+0xed 0xf0 0x00 0x00 0xf0 0x0f
diff --git a/test/MC/Disassembler/SystemZ/insn-msebr.txt b/test/MC/Disassembler/SystemZ/insn-msebr.txt
new file mode 100644 (file)
index 0000000..d157edc
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msebr %f0, %f0, %f0
+0xb3 0x0f 0x00 0x00
+
+# CHECK: msebr %f0, %f0, %f15
+0xb3 0x0f 0x00 0x0f
+
+# CHECK: msebr %f0, %f15, %f0
+0xb3 0x0f 0x00 0xf0
+
+# CHECK: msebr %f15, %f0, %f0
+0xb3 0x0f 0xf0 0x00
+
+# CHECK: msebr %f7, %f8, %f9
+0xb3 0x0f 0x70 0x89
+
+# CHECK: msebr %f15, %f15, %f15
+0xb3 0x0f 0xf0 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-msfi.txt b/test/MC/Disassembler/SystemZ/insn-msfi.txt
new file mode 100644 (file)
index 0000000..9991f62
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msfi %r0, -2147483648
+0xc2 0x01 0x80 0x00 0x00 0x00
+
+# CHECK: msfi %r0, -1
+0xc2 0x01 0xff 0xff 0xff 0xff
+
+# CHECK: msfi %r0, 0
+0xc2 0x01 0x00 0x00 0x00 0x00
+
+# CHECK: msfi %r0, 1
+0xc2 0x01 0x00 0x00 0x00 0x01
+
+# CHECK: msfi %r0, 2147483647
+0xc2 0x01 0x7f 0xff 0xff 0xff
+
+# CHECK: msfi %r15, 0
+0xc2 0xf1 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-msg.txt b/test/MC/Disassembler/SystemZ/insn-msg.txt
new file mode 100644 (file)
index 0000000..9185433
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x0c
+
+# CHECK: msg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x0c
+
+# CHECK: msg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x0c
+
+# CHECK: msg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x0c
+
+# CHECK: msg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x0c
+
+# CHECK: msg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x0c
+
+# CHECK: msg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x0c
+
+# CHECK: msg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x0c
+
+# CHECK: msg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x0c
+
+# CHECK: msg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x0c
diff --git a/test/MC/Disassembler/SystemZ/insn-msgf.txt b/test/MC/Disassembler/SystemZ/insn-msgf.txt
new file mode 100644 (file)
index 0000000..031922b
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x1c
+
+# CHECK: msgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x1c
+
+# CHECK: msgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x1c
+
+# CHECK: msgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x1c
+
+# CHECK: msgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x1c
+
+# CHECK: msgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x1c
+
+# CHECK: msgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x1c
+
+# CHECK: msgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x1c
+
+# CHECK: msgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x1c
+
+# CHECK: msgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x1c
diff --git a/test/MC/Disassembler/SystemZ/insn-msgfi.txt b/test/MC/Disassembler/SystemZ/insn-msgfi.txt
new file mode 100644 (file)
index 0000000..86300ef
--- /dev/null
@@ -0,0 +1,18 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msgfi %r0, -2147483648
+0xc2 0x00 0x80 0x00 0x00 0x00
+
+# CHECK: msgfi %r0, -1
+0xc2 0x00 0xff 0xff 0xff 0xff
+
+# CHECK: msgfi %r0, 0
+0xc2 0x00 0x00 0x00 0x00 0x00
+
+# CHECK: msgfi %r0, 1
+0xc2 0x00 0x00 0x00 0x00 0x01
+
+# CHECK: msgfi %r0, 2147483647
+0xc2 0x00 0x7f 0xff 0xff 0xff
+
+# CHECK: msgfi %r15, 0
+0xc2 0xf0 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-msgfr.txt b/test/MC/Disassembler/SystemZ/insn-msgfr.txt
new file mode 100644 (file)
index 0000000..028d36a
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msgfr %r0, %r0
+0xb9 0x1c 0x00 0x00
+
+# CHECK: msgfr %r0, %r15
+0xb9 0x1c 0x00 0x0f
+
+# CHECK: msgfr %r15, %r0
+0xb9 0x1c 0x00 0xf0
+
+# CHECK: msgfr %r7, %r8
+0xb9 0x1c 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-msgr.txt b/test/MC/Disassembler/SystemZ/insn-msgr.txt
new file mode 100644 (file)
index 0000000..85c1e47
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msgr %r0, %r0
+0xb9 0x0c 0x00 0x00
+
+# CHECK: msgr %r0, %r15
+0xb9 0x0c 0x00 0x0f
+
+# CHECK: msgr %r15, %r0
+0xb9 0x0c 0x00 0xf0
+
+# CHECK: msgr %r7, %r8
+0xb9 0x0c 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-msr.txt b/test/MC/Disassembler/SystemZ/insn-msr.txt
new file mode 100644 (file)
index 0000000..61a88a1
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msr %r0, %r0
+0xb2 0x52 0x00 0x00
+
+# CHECK: msr %r0, %r15
+0xb2 0x52 0x00 0x0f
+
+# CHECK: msr %r15, %r0
+0xb2 0x52 0x00 0xf0
+
+# CHECK: msr %r7, %r8
+0xb2 0x52 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-msy.txt b/test/MC/Disassembler/SystemZ/insn-msy.txt
new file mode 100644 (file)
index 0000000..4652456
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: msy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x51
+
+# CHECK: msy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x51
+
+# CHECK: msy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x51
+
+# CHECK: msy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x51
+
+# CHECK: msy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x51
+
+# CHECK: msy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x51
+
+# CHECK: msy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x51
+
+# CHECK: msy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x51
+
+# CHECK: msy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x51
+
+# CHECK: msy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x51
diff --git a/test/MC/Disassembler/SystemZ/insn-mvghi.txt b/test/MC/Disassembler/SystemZ/insn-mvghi.txt
new file mode 100644 (file)
index 0000000..c6abe4b
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mvghi 0, 0
+0xe5 0x48 0x00 0x00 0x00 0x00
+
+# CHECK: mvghi 4095, 0
+0xe5 0x48 0x0f 0xff 0x00 0x00
+
+# CHECK: mvghi 0, -32768
+0xe5 0x48 0x00 0x00 0x80 0x00
+
+# CHECK: mvghi 0, -1
+0xe5 0x48 0x00 0x00 0xff 0xff
+
+# CHECK: mvghi 0, 0
+0xe5 0x48 0x00 0x00 0x00 0x00
+
+# CHECK: mvghi 0, 1
+0xe5 0x48 0x00 0x00 0x00 0x01
+
+# CHECK: mvghi 0, 32767
+0xe5 0x48 0x00 0x00 0x7f 0xff
+
+# CHECK: mvghi 0(%r1), 42
+0xe5 0x48 0x10 0x00 0x00 0x2a
+
+# CHECK: mvghi 0(%r15), 42
+0xe5 0x48 0xf0 0x00 0x00 0x2a
+
+# CHECK: mvghi 4095(%r1), 42
+0xe5 0x48 0x1f 0xff 0x00 0x2a
+
+# CHECK: mvghi 4095(%r15), 42
+0xe5 0x48 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-mvhhi.txt b/test/MC/Disassembler/SystemZ/insn-mvhhi.txt
new file mode 100644 (file)
index 0000000..3ee6576
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mvhhi 0, 0
+0xe5 0x44 0x00 0x00 0x00 0x00
+
+# CHECK: mvhhi 4095, 0
+0xe5 0x44 0x0f 0xff 0x00 0x00
+
+# CHECK: mvhhi 0, -32768
+0xe5 0x44 0x00 0x00 0x80 0x00
+
+# CHECK: mvhhi 0, -1
+0xe5 0x44 0x00 0x00 0xff 0xff
+
+# CHECK: mvhhi 0, 0
+0xe5 0x44 0x00 0x00 0x00 0x00
+
+# CHECK: mvhhi 0, 1
+0xe5 0x44 0x00 0x00 0x00 0x01
+
+# CHECK: mvhhi 0, 32767
+0xe5 0x44 0x00 0x00 0x7f 0xff
+
+# CHECK: mvhhi 0(%r1), 42
+0xe5 0x44 0x10 0x00 0x00 0x2a
+
+# CHECK: mvhhi 0(%r15), 42
+0xe5 0x44 0xf0 0x00 0x00 0x2a
+
+# CHECK: mvhhi 4095(%r1), 42
+0xe5 0x44 0x1f 0xff 0x00 0x2a
+
+# CHECK: mvhhi 4095(%r15), 42
+0xe5 0x44 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-mvhi.txt b/test/MC/Disassembler/SystemZ/insn-mvhi.txt
new file mode 100644 (file)
index 0000000..15ef24e
--- /dev/null
@@ -0,0 +1,33 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mvhi 0, 0
+0xe5 0x4c 0x00 0x00 0x00 0x00
+
+# CHECK: mvhi 4095, 0
+0xe5 0x4c 0x0f 0xff 0x00 0x00
+
+# CHECK: mvhi 0, -32768
+0xe5 0x4c 0x00 0x00 0x80 0x00
+
+# CHECK: mvhi 0, -1
+0xe5 0x4c 0x00 0x00 0xff 0xff
+
+# CHECK: mvhi 0, 0
+0xe5 0x4c 0x00 0x00 0x00 0x00
+
+# CHECK: mvhi 0, 1
+0xe5 0x4c 0x00 0x00 0x00 0x01
+
+# CHECK: mvhi 0, 32767
+0xe5 0x4c 0x00 0x00 0x7f 0xff
+
+# CHECK: mvhi 0(%r1), 42
+0xe5 0x4c 0x10 0x00 0x00 0x2a
+
+# CHECK: mvhi 0(%r15), 42
+0xe5 0x4c 0xf0 0x00 0x00 0x2a
+
+# CHECK: mvhi 4095(%r1), 42
+0xe5 0x4c 0x1f 0xff 0x00 0x2a
+
+# CHECK: mvhi 4095(%r15), 42
+0xe5 0x4c 0xff 0xff 0x00 0x2a
diff --git a/test/MC/Disassembler/SystemZ/insn-mvi.txt b/test/MC/Disassembler/SystemZ/insn-mvi.txt
new file mode 100644 (file)
index 0000000..f81a745
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mvi 0, 0
+0x92 0x00 0x00 0x00
+
+# CHECK: mvi 4095, 0
+0x92 0x00 0x0f 0xff
+
+# CHECK: mvi 0, 255
+0x92 0xff 0x00 0x00
+
+# CHECK: mvi 0(%r1), 42
+0x92 0x2a 0x10 0x00
+
+# CHECK: mvi 0(%r15), 42
+0x92 0x2a 0xf0 0x00
+
+# CHECK: mvi 4095(%r1), 42
+0x92 0x2a 0x1f 0xff
+
+# CHECK: mvi 4095(%r15), 42
+0x92 0x2a 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-mviy.txt b/test/MC/Disassembler/SystemZ/insn-mviy.txt
new file mode 100644 (file)
index 0000000..ed249c7
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mviy -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x52
+
+# CHECK: mviy -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x52
+
+# CHECK: mviy 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x52
+
+# CHECK: mviy 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x52
+
+# CHECK: mviy 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x52
+
+# CHECK: mviy 0, 255
+0xeb 0xff 0x00 0x00 0x00 0x52
+
+# CHECK: mviy 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x52
+
+# CHECK: mviy 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x52
+
+# CHECK: mviy 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x52
+
+# CHECK: mviy 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x52
diff --git a/test/MC/Disassembler/SystemZ/insn-mxbr.txt b/test/MC/Disassembler/SystemZ/insn-mxbr.txt
new file mode 100644 (file)
index 0000000..acc30aa
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mxbr %f0, %f0
+0xb3 0x4c 0x00 0x00
+
+# CHECK: mxbr %f0, %f13
+0xb3 0x4c 0x00 0x0d
+
+# CHECK: mxbr %f8, %f5
+0xb3 0x4c 0x00 0x85
+
+# CHECK: mxbr %f13, %f13
+0xb3 0x4c 0x00 0xdd
diff --git a/test/MC/Disassembler/SystemZ/insn-mxdb.txt b/test/MC/Disassembler/SystemZ/insn-mxdb.txt
new file mode 100644 (file)
index 0000000..d355c48
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mxdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x07
+
+# CHECK: mxdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x07
+
+# CHECK: mxdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x07
+
+# CHECK: mxdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x07
+
+# CHECK: mxdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x07
+
+# CHECK: mxdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x07
+
+# CHECK: mxdb %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x07
diff --git a/test/MC/Disassembler/SystemZ/insn-mxdbr.txt b/test/MC/Disassembler/SystemZ/insn-mxdbr.txt
new file mode 100644 (file)
index 0000000..1f3b6e3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: mxdbr %f0, %f0
+0xb3 0x07 0x00 0x00
+
+# CHECK: mxdbr %f0, %f15
+0xb3 0x07 0x00 0x0f
+
+# CHECK: mxdbr %f8, %f8
+0xb3 0x07 0x00 0x88
+
+# CHECK: mxdbr %f13, %f0
+0xb3 0x07 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-n.txt b/test/MC/Disassembler/SystemZ/insn-n.txt
new file mode 100644 (file)
index 0000000..67e0746
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: n %r0, 0
+0x54 0x00 0x00 0x00
+
+# CHECK: n %r0, 4095
+0x54 0x00 0x0f 0xff
+
+# CHECK: n %r0, 0(%r1)
+0x54 0x00 0x10 0x00
+
+# CHECK: n %r0, 0(%r15)
+0x54 0x00 0xf0 0x00
+
+# CHECK: n %r0, 4095(%r1,%r15)
+0x54 0x01 0xff 0xff
+
+# CHECK: n %r0, 4095(%r15,%r1)
+0x54 0x0f 0x1f 0xff
+
+# CHECK: n %r15, 0
+0x54 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-ng.txt b/test/MC/Disassembler/SystemZ/insn-ng.txt
new file mode 100644 (file)
index 0000000..082c04b
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ng %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x80
+
+# CHECK: ng %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x80
+
+# CHECK: ng %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x80
+
+# CHECK: ng %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x80
+
+# CHECK: ng %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x80
+
+# CHECK: ng %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x80
+
+# CHECK: ng %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x80
+
+# CHECK: ng %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x80
+
+# CHECK: ng %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x80
+
+# CHECK: ng %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x80
diff --git a/test/MC/Disassembler/SystemZ/insn-ngr.txt b/test/MC/Disassembler/SystemZ/insn-ngr.txt
new file mode 100644 (file)
index 0000000..08e957e
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ngr %r0, %r0
+0xb9 0x80 0x00 0x00
+
+# CHECK: ngr %r0, %r15
+0xb9 0x80 0x00 0x0f
+
+# CHECK: ngr %r15, %r0
+0xb9 0x80 0x00 0xf0
+
+# CHECK: ngr %r7, %r8
+0xb9 0x80 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-ni.txt b/test/MC/Disassembler/SystemZ/insn-ni.txt
new file mode 100644 (file)
index 0000000..b90888d
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ni 0, 0
+0x94 0x00 0x00 0x00
+
+# CHECK: ni 4095, 0
+0x94 0x00 0x0f 0xff
+
+# CHECK: ni 0, 255
+0x94 0xff 0x00 0x00
+
+# CHECK: ni 0(%r1), 42
+0x94 0x2a 0x10 0x00
+
+# CHECK: ni 0(%r15), 42
+0x94 0x2a 0xf0 0x00
+
+# CHECK: ni 4095(%r1), 42
+0x94 0x2a 0x1f 0xff
+
+# CHECK: ni 4095(%r15), 42
+0x94 0x2a 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-nihf.txt b/test/MC/Disassembler/SystemZ/insn-nihf.txt
new file mode 100644 (file)
index 0000000..ee91a78
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nihf %r0, 0
+0xc0 0x0a 0x00 0x00 0x00 0x00
+
+# CHECK: nihf %r0, 4294967295
+0xc0 0x0a 0xff 0xff 0xff 0xff
+
+# CHECK: nihf %r15, 0
+0xc0 0xfa 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-nihh.txt b/test/MC/Disassembler/SystemZ/insn-nihh.txt
new file mode 100644 (file)
index 0000000..4036ff4
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nihh %r0, 0
+0xa5 0x04 0x00 0x00
+
+# CHECK: nihh %r0, 32768
+0xa5 0x04 0x80 0x00
+
+# CHECK: nihh %r0, 65535
+0xa5 0x04 0xff 0xff
+
+# CHECK: nihh %r15, 0
+0xa5 0xf4 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-nihl.txt b/test/MC/Disassembler/SystemZ/insn-nihl.txt
new file mode 100644 (file)
index 0000000..3cc72b9
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nihl %r0, 0
+0xa5 0x05 0x00 0x00
+
+# CHECK: nihl %r0, 32768
+0xa5 0x05 0x80 0x00
+
+# CHECK: nihl %r0, 65535
+0xa5 0x05 0xff 0xff
+
+# CHECK: nihl %r15, 0
+0xa5 0xf5 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-nilf.txt b/test/MC/Disassembler/SystemZ/insn-nilf.txt
new file mode 100644 (file)
index 0000000..6ba3212
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nilf %r0, 0
+0xc0 0x0b 0x00 0x00 0x00 0x00
+
+# CHECK: nilf %r0, 4294967295
+0xc0 0x0b 0xff 0xff 0xff 0xff
+
+# CHECK: nilf %r15, 0
+0xc0 0xfb 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-nilh.txt b/test/MC/Disassembler/SystemZ/insn-nilh.txt
new file mode 100644 (file)
index 0000000..bda87c3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nilh %r0, 0
+0xa5 0x06 0x00 0x00
+
+# CHECK: nilh %r0, 32768
+0xa5 0x06 0x80 0x00
+
+# CHECK: nilh %r0, 65535
+0xa5 0x06 0xff 0xff
+
+# CHECK: nilh %r15, 0
+0xa5 0xf6 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-nill.txt b/test/MC/Disassembler/SystemZ/insn-nill.txt
new file mode 100644 (file)
index 0000000..e799844
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nill %r0, 0
+0xa5 0x07 0x00 0x00
+
+# CHECK: nill %r0, 32768
+0xa5 0x07 0x80 0x00
+
+# CHECK: nill %r0, 65535
+0xa5 0x07 0xff 0xff
+
+# CHECK: nill %r15, 0
+0xa5 0xf7 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-niy.txt b/test/MC/Disassembler/SystemZ/insn-niy.txt
new file mode 100644 (file)
index 0000000..96767b4
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: niy -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x54
+
+# CHECK: niy -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x54
+
+# CHECK: niy 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x54
+
+# CHECK: niy 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x54
+
+# CHECK: niy 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x54
+
+# CHECK: niy 0, 255
+0xeb 0xff 0x00 0x00 0x00 0x54
+
+# CHECK: niy 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x54
+
+# CHECK: niy 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x54
+
+# CHECK: niy 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x54
+
+# CHECK: niy 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x54
diff --git a/test/MC/Disassembler/SystemZ/insn-nr.txt b/test/MC/Disassembler/SystemZ/insn-nr.txt
new file mode 100644 (file)
index 0000000..af57513
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: nr %r0, %r0
+0x14 0x00
+
+# CHECK: nr %r0, %r15
+0x14 0x0f
+
+# CHECK: nr %r15, %r0
+0x14 0xf0
+
+# CHECK: nr %r7, %r8
+0x14 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-ny.txt b/test/MC/Disassembler/SystemZ/insn-ny.txt
new file mode 100644 (file)
index 0000000..ac9d06c
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ny %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x54
+
+# CHECK: ny %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x54
+
+# CHECK: ny %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x54
+
+# CHECK: ny %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x54
+
+# CHECK: ny %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x54
+
+# CHECK: ny %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x54
+
+# CHECK: ny %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x54
+
+# CHECK: ny %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x54
+
+# CHECK: ny %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x54
+
+# CHECK: ny %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x54
diff --git a/test/MC/Disassembler/SystemZ/insn-o.txt b/test/MC/Disassembler/SystemZ/insn-o.txt
new file mode 100644 (file)
index 0000000..56d876b
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: o %r0, 0
+0x56 0x00 0x00 0x00
+
+# CHECK: o %r0, 4095
+0x56 0x00 0x0f 0xff
+
+# CHECK: o %r0, 0(%r1)
+0x56 0x00 0x10 0x00
+
+# CHECK: o %r0, 0(%r15)
+0x56 0x00 0xf0 0x00
+
+# CHECK: o %r0, 4095(%r1,%r15)
+0x56 0x01 0xff 0xff
+
+# CHECK: o %r0, 4095(%r15,%r1)
+0x56 0x0f 0x1f 0xff
+
+# CHECK: o %r15, 0
+0x56 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-og.txt b/test/MC/Disassembler/SystemZ/insn-og.txt
new file mode 100644 (file)
index 0000000..6d7961a
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: og %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x81
+
+# CHECK: og %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x81
+
+# CHECK: og %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x81
+
+# CHECK: og %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x81
+
+# CHECK: og %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x81
+
+# CHECK: og %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x81
+
+# CHECK: og %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x81
+
+# CHECK: og %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x81
+
+# CHECK: og %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x81
+
+# CHECK: og %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x81
diff --git a/test/MC/Disassembler/SystemZ/insn-ogr.txt b/test/MC/Disassembler/SystemZ/insn-ogr.txt
new file mode 100644 (file)
index 0000000..9f3f105
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ogr %r0, %r0
+0xb9 0x81 0x00 0x00
+
+# CHECK: ogr %r0, %r15
+0xb9 0x81 0x00 0x0f
+
+# CHECK: ogr %r15, %r0
+0xb9 0x81 0x00 0xf0
+
+# CHECK: ogr %r7, %r8
+0xb9 0x81 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-oi.txt b/test/MC/Disassembler/SystemZ/insn-oi.txt
new file mode 100644 (file)
index 0000000..daa3bb7
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oi 0, 0
+0x96 0x00 0x00 0x00
+
+# CHECK: oi 4095, 0
+0x96 0x00 0x0f 0xff
+
+# CHECK: oi 0, 255
+0x96 0xff 0x00 0x00
+
+# CHECK: oi 0(%r1), 42
+0x96 0x2a 0x10 0x00
+
+# CHECK: oi 0(%r15), 42
+0x96 0x2a 0xf0 0x00
+
+# CHECK: oi 4095(%r1), 42
+0x96 0x2a 0x1f 0xff
+
+# CHECK: oi 4095(%r15), 42
+0x96 0x2a 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-oihf.txt b/test/MC/Disassembler/SystemZ/insn-oihf.txt
new file mode 100644 (file)
index 0000000..d481dab
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oihf %r0, 0
+0xc0 0x0c 0x00 0x00 0x00 0x00
+
+# CHECK: oihf %r0, 4294967295
+0xc0 0x0c 0xff 0xff 0xff 0xff
+
+# CHECK: oihf %r15, 0
+0xc0 0xfc 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-oihh.txt b/test/MC/Disassembler/SystemZ/insn-oihh.txt
new file mode 100644 (file)
index 0000000..a063ad3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oihh %r0, 0
+0xa5 0x08 0x00 0x00
+
+# CHECK: oihh %r0, 32768
+0xa5 0x08 0x80 0x00
+
+# CHECK: oihh %r0, 65535
+0xa5 0x08 0xff 0xff
+
+# CHECK: oihh %r15, 0
+0xa5 0xf8 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-oihl.txt b/test/MC/Disassembler/SystemZ/insn-oihl.txt
new file mode 100644 (file)
index 0000000..da762f3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oihl %r0, 0
+0xa5 0x09 0x00 0x00
+
+# CHECK: oihl %r0, 32768
+0xa5 0x09 0x80 0x00
+
+# CHECK: oihl %r0, 65535
+0xa5 0x09 0xff 0xff
+
+# CHECK: oihl %r15, 0
+0xa5 0xf9 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-oilf.txt b/test/MC/Disassembler/SystemZ/insn-oilf.txt
new file mode 100644 (file)
index 0000000..22dc79d
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oilf %r0, 0
+0xc0 0x0d 0x00 0x00 0x00 0x00
+
+# CHECK: oilf %r0, 4294967295
+0xc0 0x0d 0xff 0xff 0xff 0xff
+
+# CHECK: oilf %r15, 0
+0xc0 0xfd 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-oilh.txt b/test/MC/Disassembler/SystemZ/insn-oilh.txt
new file mode 100644 (file)
index 0000000..ce3041c
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oilh %r0, 0
+0xa5 0x0a 0x00 0x00
+
+# CHECK: oilh %r0, 32768
+0xa5 0x0a 0x80 0x00
+
+# CHECK: oilh %r0, 65535
+0xa5 0x0a 0xff 0xff
+
+# CHECK: oilh %r15, 0
+0xa5 0xfa 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-oill.txt b/test/MC/Disassembler/SystemZ/insn-oill.txt
new file mode 100644 (file)
index 0000000..34663a3
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oill %r0, 0
+0xa5 0x0b 0x00 0x00
+
+# CHECK: oill %r0, 32768
+0xa5 0x0b 0x80 0x00
+
+# CHECK: oill %r0, 65535
+0xa5 0x0b 0xff 0xff
+
+# CHECK: oill %r15, 0
+0xa5 0xfb 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-oiy.txt b/test/MC/Disassembler/SystemZ/insn-oiy.txt
new file mode 100644 (file)
index 0000000..c56b2de
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oiy -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x56
+
+# CHECK: oiy -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x56
+
+# CHECK: oiy 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x56
+
+# CHECK: oiy 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x56
+
+# CHECK: oiy 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x56
+
+# CHECK: oiy 0, 255
+0xeb 0xff 0x00 0x00 0x00 0x56
+
+# CHECK: oiy 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x56
+
+# CHECK: oiy 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x56
+
+# CHECK: oiy 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x56
+
+# CHECK: oiy 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x56
diff --git a/test/MC/Disassembler/SystemZ/insn-or.txt b/test/MC/Disassembler/SystemZ/insn-or.txt
new file mode 100644 (file)
index 0000000..e79c6aa
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: or %r0, %r0
+0x16 0x00
+
+# CHECK: or %r0, %r15
+0x16 0x0f
+
+# CHECK: or %r15, %r0
+0x16 0xf0
+
+# CHECK: or %r7, %r8
+0x16 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-oy.txt b/test/MC/Disassembler/SystemZ/insn-oy.txt
new file mode 100644 (file)
index 0000000..a4ea8ed
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: oy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x56
+
+# CHECK: oy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x56
+
+# CHECK: oy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x56
+
+# CHECK: oy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x56
+
+# CHECK: oy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x56
+
+# CHECK: oy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x56
+
+# CHECK: oy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x56
+
+# CHECK: oy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x56
+
+# CHECK: oy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x56
+
+# CHECK: oy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x56
diff --git a/test/MC/Disassembler/SystemZ/insn-risbg.txt b/test/MC/Disassembler/SystemZ/insn-risbg.txt
new file mode 100644 (file)
index 0000000..b0bde84
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: risbg %r0, %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0x55
+
+# CHECK: risbg %r0, %r0, 0, 0, 63
+0xec 0x00 0x00 0x00 0x3f 0x55
+
+# CHECK: risbg %r0, %r0, 0, 63, 0
+0xec 0x00 0x00 0x3f 0x00 0x55
+
+# CHECK: risbg %r0, %r0, 63, 0, 0
+0xec 0x00 0x3f 0x00 0x00 0x55
+
+# CHECK: risbg %r0, %r15, 0, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0x55
+
+# CHECK: risbg %r15, %r0, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0x55
+
+# CHECK: risbg %r4, %r5, 6, 7, 8
+0xec 0x45 0x06 0x07 0x08 0x55
diff --git a/test/MC/Disassembler/SystemZ/insn-rll.txt b/test/MC/Disassembler/SystemZ/insn-rll.txt
new file mode 100644 (file)
index 0000000..97a09f8
--- /dev/null
@@ -0,0 +1,36 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: rll %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x1d
+
+# CHECK: rll %r15, %r1, 0
+0xeb 0xf1 0x00 0x00 0x00 0x1d
+
+# CHECK: rll %r1, %r15, 0
+0xeb 0x1f 0x00 0x00 0x00 0x1d
+
+# CHECK: rll %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x1d
+
+# CHECK: rll %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x1d
+
+# CHECK: rll %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x1d
+
+# CHECK: rll %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x1d
+
+# CHECK: rll %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x1d
+
+# CHECK: rll %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x1d
+
+# CHECK: rll %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x1d
+
+# CHECK: rll %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x1d
+
+# CHECK: rll %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x1d
diff --git a/test/MC/Disassembler/SystemZ/insn-rllg.txt b/test/MC/Disassembler/SystemZ/insn-rllg.txt
new file mode 100644 (file)
index 0000000..65d273f
--- /dev/null
@@ -0,0 +1,36 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: rllg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x1c
+
+# CHECK: rllg %r15, %r1, 0
+0xeb 0xf1 0x00 0x00 0x00 0x1c
+
+# CHECK: rllg %r1, %r15, 0
+0xeb 0x1f 0x00 0x00 0x00 0x1c
+
+# CHECK: rllg %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x1c
+
+# CHECK: rllg %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x1c
+
+# CHECK: rllg %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x1c
+
+# CHECK: rllg %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x1c
+
+# CHECK: rllg %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x1c
+
+# CHECK: rllg %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x1c
+
+# CHECK: rllg %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x1c
+
+# CHECK: rllg %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x1c
+
+# CHECK: rllg %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x1c
diff --git a/test/MC/Disassembler/SystemZ/insn-s.txt b/test/MC/Disassembler/SystemZ/insn-s.txt
new file mode 100644 (file)
index 0000000..8f61de1
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: s %r0, 0
+0x5b 0x00 0x00 0x00
+
+# CHECK: s %r0, 4095
+0x5b 0x00 0x0f 0xff
+
+# CHECK: s %r0, 0(%r1)
+0x5b 0x00 0x10 0x00
+
+# CHECK: s %r0, 0(%r15)
+0x5b 0x00 0xf0 0x00
+
+# CHECK: s %r0, 4095(%r1,%r15)
+0x5b 0x01 0xff 0xff
+
+# CHECK: s %r0, 4095(%r15,%r1)
+0x5b 0x0f 0x1f 0xff
+
+# CHECK: s %r15, 0
+0x5b 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-sdb.txt b/test/MC/Disassembler/SystemZ/insn-sdb.txt
new file mode 100644 (file)
index 0000000..b310e6f
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x1b
+
+# CHECK: sdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x1b
+
+# CHECK: sdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x1b
+
+# CHECK: sdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x1b
+
+# CHECK: sdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x1b
+
+# CHECK: sdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x1b
+
+# CHECK: sdb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x1b
diff --git a/test/MC/Disassembler/SystemZ/insn-sdbr.txt b/test/MC/Disassembler/SystemZ/insn-sdbr.txt
new file mode 100644 (file)
index 0000000..8722a32
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sdbr %f0, %f0
+0xb3 0x1b 0x00 0x00
+
+# CHECK: sdbr %f0, %f15
+0xb3 0x1b 0x00 0x0f
+
+# CHECK: sdbr %f7, %f8
+0xb3 0x1b 0x00 0x78
+
+# CHECK: sdbr %f15, %f0
+0xb3 0x1b 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-seb.txt b/test/MC/Disassembler/SystemZ/insn-seb.txt
new file mode 100644 (file)
index 0000000..864f692
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: seb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x0b
+
+# CHECK: seb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x0b
+
+# CHECK: seb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x0b
+
+# CHECK: seb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x0b
+
+# CHECK: seb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x0b
+
+# CHECK: seb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x0b
+
+# CHECK: seb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x0b
diff --git a/test/MC/Disassembler/SystemZ/insn-sebr.txt b/test/MC/Disassembler/SystemZ/insn-sebr.txt
new file mode 100644 (file)
index 0000000..289b0af
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sebr %f0, %f0
+0xb3 0x0b 0x00 0x00
+
+# CHECK: sebr %f0, %f15
+0xb3 0x0b 0x00 0x0f
+
+# CHECK: sebr %f7, %f8
+0xb3 0x0b 0x00 0x78
+
+# CHECK: sebr %f15, %f0
+0xb3 0x0b 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-sg.txt b/test/MC/Disassembler/SystemZ/insn-sg.txt
new file mode 100644 (file)
index 0000000..fdbf1ac
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x09
+
+# CHECK: sg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x09
+
+# CHECK: sg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x09
+
+# CHECK: sg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x09
+
+# CHECK: sg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x09
+
+# CHECK: sg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x09
+
+# CHECK: sg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x09
+
+# CHECK: sg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x09
+
+# CHECK: sg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x09
+
+# CHECK: sg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x09
diff --git a/test/MC/Disassembler/SystemZ/insn-sgf.txt b/test/MC/Disassembler/SystemZ/insn-sgf.txt
new file mode 100644 (file)
index 0000000..f8d6db9
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x19
+
+# CHECK: sgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x19
+
+# CHECK: sgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x19
+
+# CHECK: sgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x19
+
+# CHECK: sgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x19
+
+# CHECK: sgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x19
+
+# CHECK: sgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x19
+
+# CHECK: sgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x19
+
+# CHECK: sgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x19
+
+# CHECK: sgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x19
diff --git a/test/MC/Disassembler/SystemZ/insn-sgfr.txt b/test/MC/Disassembler/SystemZ/insn-sgfr.txt
new file mode 100644 (file)
index 0000000..1d4f34e
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sgfr %r0, %r0
+0xb9 0x19 0x00 0x00
+
+# CHECK: sgfr %r0, %r15
+0xb9 0x19 0x00 0x0f
+
+# CHECK: sgfr %r15, %r0
+0xb9 0x19 0x00 0xf0
+
+# CHECK: sgfr %r7, %r8
+0xb9 0x19 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-sgr.txt b/test/MC/Disassembler/SystemZ/insn-sgr.txt
new file mode 100644 (file)
index 0000000..084da97
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sgr %r0, %r0
+0xb9 0x09 0x00 0x00
+
+# CHECK: sgr %r0, %r15
+0xb9 0x09 0x00 0x0f
+
+# CHECK: sgr %r15, %r0
+0xb9 0x09 0x00 0xf0
+
+# CHECK: sgr %r7, %r8
+0xb9 0x09 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-sl.txt b/test/MC/Disassembler/SystemZ/insn-sl.txt
new file mode 100644 (file)
index 0000000..0a29f90
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sl %r0, 0
+0x5f 0x00 0x00 0x00
+
+# CHECK: sl %r0, 4095
+0x5f 0x00 0x0f 0xff
+
+# CHECK: sl %r0, 0(%r1)
+0x5f 0x00 0x10 0x00
+
+# CHECK: sl %r0, 0(%r15)
+0x5f 0x00 0xf0 0x00
+
+# CHECK: sl %r0, 4095(%r1,%r15)
+0x5f 0x01 0xff 0xff
+
+# CHECK: sl %r0, 4095(%r15,%r1)
+0x5f 0x0f 0x1f 0xff
+
+# CHECK: sl %r15, 0
+0x5f 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-slb.txt b/test/MC/Disassembler/SystemZ/insn-slb.txt
new file mode 100644 (file)
index 0000000..b34a914
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slb %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x99
+
+# CHECK: slb %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x99
+
+# CHECK: slb %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x99
+
+# CHECK: slb %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x99
+
+# CHECK: slb %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x99
+
+# CHECK: slb %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x99
+
+# CHECK: slb %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x99
+
+# CHECK: slb %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x99
+
+# CHECK: slb %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x99
+
+# CHECK: slb %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x99
diff --git a/test/MC/Disassembler/SystemZ/insn-slbg.txt b/test/MC/Disassembler/SystemZ/insn-slbg.txt
new file mode 100644 (file)
index 0000000..e9a918b
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slbg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x89
+
+# CHECK: slbg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x89
+
+# CHECK: slbg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x89
+
+# CHECK: slbg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x89
+
+# CHECK: slbg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x89
+
+# CHECK: slbg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x89
+
+# CHECK: slbg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x89
+
+# CHECK: slbg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x89
+
+# CHECK: slbg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x89
+
+# CHECK: slbg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x89
diff --git a/test/MC/Disassembler/SystemZ/insn-slbgr.txt b/test/MC/Disassembler/SystemZ/insn-slbgr.txt
new file mode 100644 (file)
index 0000000..4c4b77a
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slbgr %r0, %r0
+0xb9 0x89 0x00 0x00
+
+# CHECK: slbgr %r0, %r15
+0xb9 0x89 0x00 0x0f
+
+# CHECK: slbgr %r15, %r0
+0xb9 0x89 0x00 0xf0
+
+# CHECK: slbgr %r7, %r8
+0xb9 0x89 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-slbr.txt b/test/MC/Disassembler/SystemZ/insn-slbr.txt
new file mode 100644 (file)
index 0000000..83d8cf9
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slbr %r0, %r0
+0xb9 0x99 0x00 0x00
+
+# CHECK: slbr %r0, %r15
+0xb9 0x99 0x00 0x0f
+
+# CHECK: slbr %r15, %r0
+0xb9 0x99 0x00 0xf0
+
+# CHECK: slbr %r7, %r8
+0xb9 0x99 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-slfi.txt b/test/MC/Disassembler/SystemZ/insn-slfi.txt
new file mode 100644 (file)
index 0000000..ae8f423
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slfi %r0, 0
+0xc2 0x05 0x00 0x00 0x00 0x00
+
+# CHECK: slfi %r0, 4294967295
+0xc2 0x05 0xff 0xff 0xff 0xff
+
+# CHECK: slfi %r15, 0
+0xc2 0xf5 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-slg.txt b/test/MC/Disassembler/SystemZ/insn-slg.txt
new file mode 100644 (file)
index 0000000..c93412e
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x0b
+
+# CHECK: slg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x0b
+
+# CHECK: slg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x0b
+
+# CHECK: slg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x0b
+
+# CHECK: slg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x0b
+
+# CHECK: slg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x0b
+
+# CHECK: slg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x0b
+
+# CHECK: slg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x0b
+
+# CHECK: slg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x0b
+
+# CHECK: slg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x0b
diff --git a/test/MC/Disassembler/SystemZ/insn-slgf.txt b/test/MC/Disassembler/SystemZ/insn-slgf.txt
new file mode 100644 (file)
index 0000000..088aac6
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slgf %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x1b
+
+# CHECK: slgf %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x1b
+
+# CHECK: slgf %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x1b
+
+# CHECK: slgf %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x1b
+
+# CHECK: slgf %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x1b
+
+# CHECK: slgf %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x1b
+
+# CHECK: slgf %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x1b
+
+# CHECK: slgf %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x1b
+
+# CHECK: slgf %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x1b
+
+# CHECK: slgf %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x1b
diff --git a/test/MC/Disassembler/SystemZ/insn-slgfi.txt b/test/MC/Disassembler/SystemZ/insn-slgfi.txt
new file mode 100644 (file)
index 0000000..e618210
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slgfi %r0, 0
+0xc2 0x04 0x00 0x00 0x00 0x00
+
+# CHECK: slgfi %r0, 4294967295
+0xc2 0x04 0xff 0xff 0xff 0xff
+
+# CHECK: slgfi %r15, 0
+0xc2 0xf4 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-slgfr.txt b/test/MC/Disassembler/SystemZ/insn-slgfr.txt
new file mode 100644 (file)
index 0000000..4f881bf
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slgfr %r0, %r0
+0xb9 0x1b 0x00 0x00
+
+# CHECK: slgfr %r0, %r15
+0xb9 0x1b 0x00 0x0f
+
+# CHECK: slgfr %r15, %r0
+0xb9 0x1b 0x00 0xf0
+
+# CHECK: slgfr %r7, %r8
+0xb9 0x1b 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-slgr.txt b/test/MC/Disassembler/SystemZ/insn-slgr.txt
new file mode 100644 (file)
index 0000000..efea07b
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slgr %r0, %r0
+0xb9 0x0b 0x00 0x00
+
+# CHECK: slgr %r0, %r15
+0xb9 0x0b 0x00 0x0f
+
+# CHECK: slgr %r15, %r0
+0xb9 0x0b 0x00 0xf0
+
+# CHECK: slgr %r7, %r8
+0xb9 0x0b 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-sll.txt b/test/MC/Disassembler/SystemZ/insn-sll.txt
new file mode 100644 (file)
index 0000000..a31b5c7
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sll %r0, 0
+0x89 0x00 0x00 0x00
+
+# CHECK: sll %r7, 0
+0x89 0x70 0x00 0x00
+
+# CHECK: sll %r15, 0
+0x89 0xf0 0x00 0x00
+
+# CHECK: sll %r0, 4095
+0x89 0x00 0x0f 0xff
+
+# CHECK: sll %r0, 0(%r1)
+0x89 0x00 0x10 0x00
+
+# CHECK: sll %r0, 0(%r15)
+0x89 0x00 0xf0 0x00
+
+# CHECK: sll %r0, 4095(%r1)
+0x89 0x00 0x1f 0xff
+
+# CHECK: sll %r0, 4095(%r15)
+0x89 0x00 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-sllg.txt b/test/MC/Disassembler/SystemZ/insn-sllg.txt
new file mode 100644 (file)
index 0000000..b4204ac
--- /dev/null
@@ -0,0 +1,36 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sllg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x0d
+
+# CHECK: sllg %r15, %r1, 0
+0xeb 0xf1 0x00 0x00 0x00 0x0d
+
+# CHECK: sllg %r1, %r15, 0
+0xeb 0x1f 0x00 0x00 0x00 0x0d
+
+# CHECK: sllg %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x0d
+
+# CHECK: sllg %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x0d
+
+# CHECK: sllg %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x0d
+
+# CHECK: sllg %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x0d
+
+# CHECK: sllg %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x0d
+
+# CHECK: sllg %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x0d
+
+# CHECK: sllg %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x0d
+
+# CHECK: sllg %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x0d
+
+# CHECK: sllg %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x0d
diff --git a/test/MC/Disassembler/SystemZ/insn-slr.txt b/test/MC/Disassembler/SystemZ/insn-slr.txt
new file mode 100644 (file)
index 0000000..6a98744
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: slr %r0, %r0
+0x1f 0x00
+
+# CHECK: slr %r0, %r15
+0x1f 0x0f
+
+# CHECK: slr %r15, %r0
+0x1f 0xf0
+
+# CHECK: slr %r7, %r8
+0x1f 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-sly.txt b/test/MC/Disassembler/SystemZ/insn-sly.txt
new file mode 100644 (file)
index 0000000..a5e4926
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sly %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x5f
+
+# CHECK: sly %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x5f
+
+# CHECK: sly %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x5f
+
+# CHECK: sly %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x5f
+
+# CHECK: sly %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x5f
+
+# CHECK: sly %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x5f
+
+# CHECK: sly %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x5f
+
+# CHECK: sly %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x5f
+
+# CHECK: sly %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x5f
+
+# CHECK: sly %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x5f
diff --git a/test/MC/Disassembler/SystemZ/insn-sqdb.txt b/test/MC/Disassembler/SystemZ/insn-sqdb.txt
new file mode 100644 (file)
index 0000000..1e4aad4
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sqdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x15
+
+# CHECK: sqdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x15
+
+# CHECK: sqdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x15
+
+# CHECK: sqdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x15
+
+# CHECK: sqdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x15
+
+# CHECK: sqdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x15
+
+# CHECK: sqdb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x15
diff --git a/test/MC/Disassembler/SystemZ/insn-sqdbr.txt b/test/MC/Disassembler/SystemZ/insn-sqdbr.txt
new file mode 100644 (file)
index 0000000..3369e32
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sqdbr %f0, %f0
+0xb3 0x15 0x00 0x00
+
+# CHECK: sqdbr %f0, %f15
+0xb3 0x15 0x00 0x0f
+
+# CHECK: sqdbr %f7, %f8
+0xb3 0x15 0x00 0x78
+
+# CHECK: sqdbr %f15, %f0
+0xb3 0x15 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-sqeb.txt b/test/MC/Disassembler/SystemZ/insn-sqeb.txt
new file mode 100644 (file)
index 0000000..18541df
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sqeb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x14
+
+# CHECK: sqeb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x14
+
+# CHECK: sqeb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x14
+
+# CHECK: sqeb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x14
+
+# CHECK: sqeb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x14
+
+# CHECK: sqeb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x14
+
+# CHECK: sqeb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x14
diff --git a/test/MC/Disassembler/SystemZ/insn-sqebr.txt b/test/MC/Disassembler/SystemZ/insn-sqebr.txt
new file mode 100644 (file)
index 0000000..38bafde
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sqebr %f0, %f0
+0xb3 0x14 0x00 0x00
+
+# CHECK: sqebr %f0, %f15
+0xb3 0x14 0x00 0x0f
+
+# CHECK: sqebr %f7, %f8
+0xb3 0x14 0x00 0x78
+
+# CHECK: sqebr %f15, %f0
+0xb3 0x14 0x00 0xf0
diff --git a/test/MC/Disassembler/SystemZ/insn-sqxbr.txt b/test/MC/Disassembler/SystemZ/insn-sqxbr.txt
new file mode 100644 (file)
index 0000000..19fb61d
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sqxbr %f0, %f0
+0xb3 0x16 0x00 0x00
+
+# CHECK: sqxbr %f0, %f13
+0xb3 0x16 0x00 0x0d
+
+# CHECK: sqxbr %f8, %f8
+0xb3 0x16 0x00 0x88
+
+# CHECK: sqxbr %f13, %f0
+0xb3 0x16 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-sr.txt b/test/MC/Disassembler/SystemZ/insn-sr.txt
new file mode 100644 (file)
index 0000000..e871d97
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sr %r0, %r0
+0x1b 0x00
+
+# CHECK: sr %r0, %r15
+0x1b 0x0f
+
+# CHECK: sr %r15, %r0
+0x1b 0xf0
+
+# CHECK: sr %r7, %r8
+0x1b 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-sra.txt b/test/MC/Disassembler/SystemZ/insn-sra.txt
new file mode 100644 (file)
index 0000000..796b909
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sra %r0, 0
+0x8a 0x00 0x00 0x00
+
+# CHECK: sra %r7, 0
+0x8a 0x70 0x00 0x00
+
+# CHECK: sra %r15, 0
+0x8a 0xf0 0x00 0x00
+
+# CHECK: sra %r0, 4095
+0x8a 0x00 0x0f 0xff
+
+# CHECK: sra %r0, 0(%r1)
+0x8a 0x00 0x10 0x00
+
+# CHECK: sra %r0, 0(%r15)
+0x8a 0x00 0xf0 0x00
+
+# CHECK: sra %r0, 4095(%r1)
+0x8a 0x00 0x1f 0xff
+
+# CHECK: sra %r0, 4095(%r15)
+0x8a 0x00 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-srag.txt b/test/MC/Disassembler/SystemZ/insn-srag.txt
new file mode 100644 (file)
index 0000000..38afa43
--- /dev/null
@@ -0,0 +1,36 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: srag %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x0a
+
+# CHECK: srag %r15, %r1, 0
+0xeb 0xf1 0x00 0x00 0x00 0x0a
+
+# CHECK: srag %r1, %r15, 0
+0xeb 0x1f 0x00 0x00 0x00 0x0a
+
+# CHECK: srag %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x0a
+
+# CHECK: srag %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x0a
+
+# CHECK: srag %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x0a
+
+# CHECK: srag %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x0a
+
+# CHECK: srag %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x0a
+
+# CHECK: srag %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x0a
+
+# CHECK: srag %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x0a
+
+# CHECK: srag %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x0a
+
+# CHECK: srag %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x0a
diff --git a/test/MC/Disassembler/SystemZ/insn-srl.txt b/test/MC/Disassembler/SystemZ/insn-srl.txt
new file mode 100644 (file)
index 0000000..c1c500b
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: srl %r0, 0
+0x88 0x00 0x00 0x00
+
+# CHECK: srl %r7, 0
+0x88 0x70 0x00 0x00
+
+# CHECK: srl %r15, 0
+0x88 0xf0 0x00 0x00
+
+# CHECK: srl %r0, 4095
+0x88 0x00 0x0f 0xff
+
+# CHECK: srl %r0, 0(%r1)
+0x88 0x00 0x10 0x00
+
+# CHECK: srl %r0, 0(%r15)
+0x88 0x00 0xf0 0x00
+
+# CHECK: srl %r0, 4095(%r1)
+0x88 0x00 0x1f 0xff
+
+# CHECK: srl %r0, 4095(%r15)
+0x88 0x00 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-srlg.txt b/test/MC/Disassembler/SystemZ/insn-srlg.txt
new file mode 100644 (file)
index 0000000..84cf968
--- /dev/null
@@ -0,0 +1,36 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: srlg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x0c
+
+# CHECK: srlg %r15, %r1, 0
+0xeb 0xf1 0x00 0x00 0x00 0x0c
+
+# CHECK: srlg %r1, %r15, 0
+0xeb 0x1f 0x00 0x00 0x00 0x0c
+
+# CHECK: srlg %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x0c
+
+# CHECK: srlg %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x0c
+
+# CHECK: srlg %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x0c
+
+# CHECK: srlg %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x0c
+
+# CHECK: srlg %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x0c
+
+# CHECK: srlg %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x0c
+
+# CHECK: srlg %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x0c
+
+# CHECK: srlg %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x0c
+
+# CHECK: srlg %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x0c
diff --git a/test/MC/Disassembler/SystemZ/insn-st.txt b/test/MC/Disassembler/SystemZ/insn-st.txt
new file mode 100644 (file)
index 0000000..3fcc391
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: st %r0, 0
+0x50 0x00 0x00 0x00
+
+# CHECK: st %r0, 4095
+0x50 0x00 0x0f 0xff
+
+# CHECK: st %r0, 0(%r1)
+0x50 0x00 0x10 0x00
+
+# CHECK: st %r0, 0(%r15)
+0x50 0x00 0xf0 0x00
+
+# CHECK: st %r0, 4095(%r1,%r15)
+0x50 0x01 0xff 0xff
+
+# CHECK: st %r0, 4095(%r15,%r1)
+0x50 0x0f 0x1f 0xff
+
+# CHECK: st %r15, 0
+0x50 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-stc.txt b/test/MC/Disassembler/SystemZ/insn-stc.txt
new file mode 100644 (file)
index 0000000..20cc349
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stc %r0, 0
+0x42 0x00 0x00 0x00
+
+# CHECK: stc %r0, 4095
+0x42 0x00 0x0f 0xff
+
+# CHECK: stc %r0, 0(%r1)
+0x42 0x00 0x10 0x00
+
+# CHECK: stc %r0, 0(%r15)
+0x42 0x00 0xf0 0x00
+
+# CHECK: stc %r0, 4095(%r1,%r15)
+0x42 0x01 0xff 0xff
+
+# CHECK: stc %r0, 4095(%r15,%r1)
+0x42 0x0f 0x1f 0xff
+
+# CHECK: stc %r15, 0
+0x42 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-stcy.txt b/test/MC/Disassembler/SystemZ/insn-stcy.txt
new file mode 100644 (file)
index 0000000..8d4f419
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stcy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x72
+
+# CHECK: stcy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x72
+
+# CHECK: stcy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x72
+
+# CHECK: stcy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x72
+
+# CHECK: stcy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x72
+
+# CHECK: stcy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x72
+
+# CHECK: stcy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x72
+
+# CHECK: stcy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x72
+
+# CHECK: stcy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x72
+
+# CHECK: stcy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x72
diff --git a/test/MC/Disassembler/SystemZ/insn-std.txt b/test/MC/Disassembler/SystemZ/insn-std.txt
new file mode 100644 (file)
index 0000000..7a45583
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: std %f0, 0
+0x60 0x00 0x00 0x00
+
+# CHECK: std %f0, 4095
+0x60 0x00 0x0f 0xff
+
+# CHECK: std %f0, 0(%r1)
+0x60 0x00 0x10 0x00
+
+# CHECK: std %f0, 0(%r15)
+0x60 0x00 0xf0 0x00
+
+# CHECK: std %f0, 4095(%r1,%r15)
+0x60 0x01 0xff 0xff
+
+# CHECK: std %f0, 4095(%r15,%r1)
+0x60 0x0f 0x1f 0xff
+
+# CHECK: std %f15, 0
+0x60 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-stdy.txt b/test/MC/Disassembler/SystemZ/insn-stdy.txt
new file mode 100644 (file)
index 0000000..c414c86
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stdy %f0, -524288
+0xed 0x00 0x00 0x00 0x80 0x67
+
+# CHECK: stdy %f0, -1
+0xed 0x00 0x0f 0xff 0xff 0x67
+
+# CHECK: stdy %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x67
+
+# CHECK: stdy %f0, 1
+0xed 0x00 0x00 0x01 0x00 0x67
+
+# CHECK: stdy %f0, 524287
+0xed 0x00 0x0f 0xff 0x7f 0x67
+
+# CHECK: stdy %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x67
+
+# CHECK: stdy %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x67
+
+# CHECK: stdy %f0, 524287(%r1,%r15)
+0xed 0x01 0xff 0xff 0x7f 0x67
+
+# CHECK: stdy %f0, 524287(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x7f 0x67
+
+# CHECK: stdy %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x67
diff --git a/test/MC/Disassembler/SystemZ/insn-ste.txt b/test/MC/Disassembler/SystemZ/insn-ste.txt
new file mode 100644 (file)
index 0000000..2ae3ede
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: ste %f0, 0
+0x70 0x00 0x00 0x00
+
+# CHECK: ste %f0, 4095
+0x70 0x00 0x0f 0xff
+
+# CHECK: ste %f0, 0(%r1)
+0x70 0x00 0x10 0x00
+
+# CHECK: ste %f0, 0(%r15)
+0x70 0x00 0xf0 0x00
+
+# CHECK: ste %f0, 4095(%r1,%r15)
+0x70 0x01 0xff 0xff
+
+# CHECK: ste %f0, 4095(%r15,%r1)
+0x70 0x0f 0x1f 0xff
+
+# CHECK: ste %f15, 0
+0x70 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-stey.txt b/test/MC/Disassembler/SystemZ/insn-stey.txt
new file mode 100644 (file)
index 0000000..f9f0c93
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stey %f0, -524288
+0xed 0x00 0x00 0x00 0x80 0x66
+
+# CHECK: stey %f0, -1
+0xed 0x00 0x0f 0xff 0xff 0x66
+
+# CHECK: stey %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x66
+
+# CHECK: stey %f0, 1
+0xed 0x00 0x00 0x01 0x00 0x66
+
+# CHECK: stey %f0, 524287
+0xed 0x00 0x0f 0xff 0x7f 0x66
+
+# CHECK: stey %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x66
+
+# CHECK: stey %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x66
+
+# CHECK: stey %f0, 524287(%r1,%r15)
+0xed 0x01 0xff 0xff 0x7f 0x66
+
+# CHECK: stey %f0, 524287(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x7f 0x66
+
+# CHECK: stey %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x66
diff --git a/test/MC/Disassembler/SystemZ/insn-stg.txt b/test/MC/Disassembler/SystemZ/insn-stg.txt
new file mode 100644 (file)
index 0000000..6aca5c8
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x24
+
+# CHECK: stg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x24
+
+# CHECK: stg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x24
+
+# CHECK: stg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x24
+
+# CHECK: stg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x24
+
+# CHECK: stg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x24
+
+# CHECK: stg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x24
+
+# CHECK: stg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x24
+
+# CHECK: stg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x24
+
+# CHECK: stg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x24
diff --git a/test/MC/Disassembler/SystemZ/insn-stgrl.txt b/test/MC/Disassembler/SystemZ/insn-stgrl.txt
new file mode 100644 (file)
index 0000000..599fdb9
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stgrl %r0, 0x0
+0xc4 0x0b 0x00 0x00 0x00 0x00
+
+# CHECK: stgrl %r15, 0x6
+0xc4 0xfb 0x00 0x00 0x00 0x00
+
+# CHECK: stgrl %r0, 0xa
+0xc4 0x0b 0xff 0xff 0xff 0xff
+
+# CHECK: stgrl %r15, 0x10
+0xc4 0xfb 0xff 0xff 0xff 0xff
+
+# CHECK: stgrl %r0, 0xffffffff00000018
+0xc4 0x0b 0x80 0x00 0x00 0x00
+
+# CHECK: stgrl %r15, 0xffffffff0000001e
+0xc4 0xfb 0x80 0x00 0x00 0x00
+
+# CHECK: stgrl %r0, 0x100000022
+0xc4 0x0b 0x7f 0xff 0xff 0xff
+
+# CHECK: stgrl %r15, 0x100000028
+0xc4 0xfb 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-sth.txt b/test/MC/Disassembler/SystemZ/insn-sth.txt
new file mode 100644 (file)
index 0000000..448a0a8
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sth %r0, 0
+0x40 0x00 0x00 0x00
+
+# CHECK: sth %r0, 4095
+0x40 0x00 0x0f 0xff
+
+# CHECK: sth %r0, 0(%r1)
+0x40 0x00 0x10 0x00
+
+# CHECK: sth %r0, 0(%r15)
+0x40 0x00 0xf0 0x00
+
+# CHECK: sth %r0, 4095(%r1,%r15)
+0x40 0x01 0xff 0xff
+
+# CHECK: sth %r0, 4095(%r15,%r1)
+0x40 0x0f 0x1f 0xff
+
+# CHECK: sth %r15, 0
+0x40 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-sthrl.txt b/test/MC/Disassembler/SystemZ/insn-sthrl.txt
new file mode 100644 (file)
index 0000000..544ac0c
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sthrl %r0, 0x0
+0xc4 0x07 0x00 0x00 0x00 0x00
+
+# CHECK: sthrl %r15, 0x6
+0xc4 0xf7 0x00 0x00 0x00 0x00
+
+# CHECK: sthrl %r0, 0xa
+0xc4 0x07 0xff 0xff 0xff 0xff
+
+# CHECK: sthrl %r15, 0x10
+0xc4 0xf7 0xff 0xff 0xff 0xff
+
+# CHECK: sthrl %r0, 0xffffffff00000018
+0xc4 0x07 0x80 0x00 0x00 0x00
+
+# CHECK: sthrl %r15, 0xffffffff0000001e
+0xc4 0xf7 0x80 0x00 0x00 0x00
+
+# CHECK: sthrl %r0, 0x100000022
+0xc4 0x07 0x7f 0xff 0xff 0xff
+
+# CHECK: sthrl %r15, 0x100000028
+0xc4 0xf7 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-sthy.txt b/test/MC/Disassembler/SystemZ/insn-sthy.txt
new file mode 100644 (file)
index 0000000..d3b2e49
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sthy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x70
+
+# CHECK: sthy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x70
+
+# CHECK: sthy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x70
+
+# CHECK: sthy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x70
+
+# CHECK: sthy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x70
+
+# CHECK: sthy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x70
+
+# CHECK: sthy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x70
+
+# CHECK: sthy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x70
+
+# CHECK: sthy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x70
+
+# CHECK: sthy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x70
diff --git a/test/MC/Disassembler/SystemZ/insn-stmg.txt b/test/MC/Disassembler/SystemZ/insn-stmg.txt
new file mode 100644 (file)
index 0000000..3318463
--- /dev/null
@@ -0,0 +1,39 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: stmg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x24
+
+# CHECK: stmg %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x24
+
+# CHECK: stmg %r14, %r15, 0
+0xeb 0xef 0x00 0x00 0x00 0x24
+
+# CHECK: stmg %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x24
+
+# CHECK: stmg %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x24
+
+# CHECK: stmg %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x24
+
+# CHECK: stmg %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x24
+
+# CHECK: stmg %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x24
+
+# CHECK: stmg %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x24
+
+# CHECK: stmg %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x24
+
+# CHECK: stmg %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x24
+
+# CHECK: stmg %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x24
+
+# CHECK: stmg %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x24
diff --git a/test/MC/Disassembler/SystemZ/insn-strl.txt b/test/MC/Disassembler/SystemZ/insn-strl.txt
new file mode 100644 (file)
index 0000000..0468d3a
--- /dev/null
@@ -0,0 +1,24 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: strl %r0, 0x0
+0xc4 0x0f 0x00 0x00 0x00 0x00
+
+# CHECK: strl %r15, 0x6
+0xc4 0xff 0x00 0x00 0x00 0x00
+
+# CHECK: strl %r0, 0xa
+0xc4 0x0f 0xff 0xff 0xff 0xff
+
+# CHECK: strl %r15, 0x10
+0xc4 0xff 0xff 0xff 0xff 0xff
+
+# CHECK: strl %r0, 0xffffffff00000018
+0xc4 0x0f 0x80 0x00 0x00 0x00
+
+# CHECK: strl %r15, 0xffffffff0000001e
+0xc4 0xff 0x80 0x00 0x00 0x00
+
+# CHECK: strl %r0, 0x100000022
+0xc4 0x0f 0x7f 0xff 0xff 0xff
+
+# CHECK: strl %r15, 0x100000028
+0xc4 0xff 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-strv.txt b/test/MC/Disassembler/SystemZ/insn-strv.txt
new file mode 100644 (file)
index 0000000..d9629ea
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: strv %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x3e
+
+# CHECK: strv %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x3e
+
+# CHECK: strv %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x3e
+
+# CHECK: strv %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x3e
+
+# CHECK: strv %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x3e
+
+# CHECK: strv %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x3e
+
+# CHECK: strv %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x3e
+
+# CHECK: strv %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x3e
+
+# CHECK: strv %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x3e
+
+# CHECK: strv %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x3e
diff --git a/test/MC/Disassembler/SystemZ/insn-strvg.txt b/test/MC/Disassembler/SystemZ/insn-strvg.txt
new file mode 100644 (file)
index 0000000..43cfc01
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: strvg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x2f
+
+# CHECK: strvg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x2f
+
+# CHECK: strvg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x2f
+
+# CHECK: strvg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x2f
+
+# CHECK: strvg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x2f
+
+# CHECK: strvg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x2f
+
+# CHECK: strvg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x2f
+
+# CHECK: strvg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x2f
+
+# CHECK: strvg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x2f
+
+# CHECK: strvg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x2f
diff --git a/test/MC/Disassembler/SystemZ/insn-sty.txt b/test/MC/Disassembler/SystemZ/insn-sty.txt
new file mode 100644 (file)
index 0000000..faee663
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sty %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x50
+
+# CHECK: sty %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x50
+
+# CHECK: sty %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x50
+
+# CHECK: sty %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x50
+
+# CHECK: sty %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x50
+
+# CHECK: sty %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x50
+
+# CHECK: sty %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x50
+
+# CHECK: sty %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x50
+
+# CHECK: sty %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x50
+
+# CHECK: sty %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x50
diff --git a/test/MC/Disassembler/SystemZ/insn-sxbr.txt b/test/MC/Disassembler/SystemZ/insn-sxbr.txt
new file mode 100644 (file)
index 0000000..9fc1e4d
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sxbr %f0, %f0
+0xb3 0x4b 0x00 0x00
+
+# CHECK: sxbr %f0, %f13
+0xb3 0x4b 0x00 0x0d
+
+# CHECK: sxbr %f8, %f8
+0xb3 0x4b 0x00 0x88
+
+# CHECK: sxbr %f13, %f0
+0xb3 0x4b 0x00 0xd0
diff --git a/test/MC/Disassembler/SystemZ/insn-sy.txt b/test/MC/Disassembler/SystemZ/insn-sy.txt
new file mode 100644 (file)
index 0000000..927f64b
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: sy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x5b
+
+# CHECK: sy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x5b
+
+# CHECK: sy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x5b
+
+# CHECK: sy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x5b
+
+# CHECK: sy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x5b
+
+# CHECK: sy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x5b
+
+# CHECK: sy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x5b
+
+# CHECK: sy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x5b
+
+# CHECK: sy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x5b
+
+# CHECK: sy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x5b
diff --git a/test/MC/Disassembler/SystemZ/insn-x.txt b/test/MC/Disassembler/SystemZ/insn-x.txt
new file mode 100644 (file)
index 0000000..90dc47b
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: x %r0, 0
+0x57 0x00 0x00 0x00
+
+# CHECK: x %r0, 4095
+0x57 0x00 0x0f 0xff
+
+# CHECK: x %r0, 0(%r1)
+0x57 0x00 0x10 0x00
+
+# CHECK: x %r0, 0(%r15)
+0x57 0x00 0xf0 0x00
+
+# CHECK: x %r0, 4095(%r1,%r15)
+0x57 0x01 0xff 0xff
+
+# CHECK: x %r0, 4095(%r15,%r1)
+0x57 0x0f 0x1f 0xff
+
+# CHECK: x %r15, 0
+0x57 0xf0 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-xg.txt b/test/MC/Disassembler/SystemZ/insn-xg.txt
new file mode 100644 (file)
index 0000000..20838d2
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xg %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x82
+
+# CHECK: xg %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x82
+
+# CHECK: xg %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x82
+
+# CHECK: xg %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x82
+
+# CHECK: xg %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x82
+
+# CHECK: xg %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x82
+
+# CHECK: xg %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x82
+
+# CHECK: xg %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x82
+
+# CHECK: xg %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x82
+
+# CHECK: xg %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x82
diff --git a/test/MC/Disassembler/SystemZ/insn-xgr.txt b/test/MC/Disassembler/SystemZ/insn-xgr.txt
new file mode 100644 (file)
index 0000000..c9f4910
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xgr %r0, %r0
+0xb9 0x82 0x00 0x00
+
+# CHECK: xgr %r0, %r15
+0xb9 0x82 0x00 0x0f
+
+# CHECK: xgr %r15, %r0
+0xb9 0x82 0x00 0xf0
+
+# CHECK: xgr %r7, %r8
+0xb9 0x82 0x00 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-xi.txt b/test/MC/Disassembler/SystemZ/insn-xi.txt
new file mode 100644 (file)
index 0000000..ef20138
--- /dev/null
@@ -0,0 +1,21 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xi 0, 0
+0x97 0x00 0x00 0x00
+
+# CHECK: xi 4095, 0
+0x97 0x00 0x0f 0xff
+
+# CHECK: xi 0, 255
+0x97 0xff 0x00 0x00
+
+# CHECK: xi 0(%r1), 42
+0x97 0x2a 0x10 0x00
+
+# CHECK: xi 0(%r15), 42
+0x97 0x2a 0xf0 0x00
+
+# CHECK: xi 4095(%r1), 42
+0x97 0x2a 0x1f 0xff
+
+# CHECK: xi 4095(%r15), 42
+0x97 0x2a 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insn-xihf.txt b/test/MC/Disassembler/SystemZ/insn-xihf.txt
new file mode 100644 (file)
index 0000000..e0231ce
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xihf %r0, 0
+0xc0 0x06 0x00 0x00 0x00 0x00
+
+# CHECK: xihf %r0, 4294967295
+0xc0 0x06 0xff 0xff 0xff 0xff
+
+# CHECK: xihf %r15, 0
+0xc0 0xf6 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-xilf.txt b/test/MC/Disassembler/SystemZ/insn-xilf.txt
new file mode 100644 (file)
index 0000000..bda8ab0
--- /dev/null
@@ -0,0 +1,9 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xilf %r0, 0
+0xc0 0x07 0x00 0x00 0x00 0x00
+
+# CHECK: xilf %r0, 4294967295
+0xc0 0x07 0xff 0xff 0xff 0xff
+
+# CHECK: xilf %r15, 0
+0xc0 0xf7 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/insn-xiy.txt b/test/MC/Disassembler/SystemZ/insn-xiy.txt
new file mode 100644 (file)
index 0000000..cc60ebb
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xiy -524288, 0
+0xeb 0x00 0x00 0x00 0x80 0x57
+
+# CHECK: xiy -1, 0
+0xeb 0x00 0x0f 0xff 0xff 0x57
+
+# CHECK: xiy 0, 0
+0xeb 0x00 0x00 0x00 0x00 0x57
+
+# CHECK: xiy 1, 0
+0xeb 0x00 0x00 0x01 0x00 0x57
+
+# CHECK: xiy 524287, 0
+0xeb 0x00 0x0f 0xff 0x7f 0x57
+
+# CHECK: xiy 0, 255
+0xeb 0xff 0x00 0x00 0x00 0x57
+
+# CHECK: xiy 0(%r1), 42
+0xeb 0x2a 0x10 0x00 0x00 0x57
+
+# CHECK: xiy 0(%r15), 42
+0xeb 0x2a 0xf0 0x00 0x00 0x57
+
+# CHECK: xiy 524287(%r1), 42
+0xeb 0x2a 0x1f 0xff 0x7f 0x57
+
+# CHECK: xiy 524287(%r15), 42
+0xeb 0x2a 0xff 0xff 0x7f 0x57
diff --git a/test/MC/Disassembler/SystemZ/insn-xr.txt b/test/MC/Disassembler/SystemZ/insn-xr.txt
new file mode 100644 (file)
index 0000000..70cb003
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xr %r0, %r0
+0x17 0x00
+
+# CHECK: xr %r0, %r15
+0x17 0x0f
+
+# CHECK: xr %r15, %r0
+0x17 0xf0
+
+# CHECK: xr %r7, %r8
+0x17 0x78
diff --git a/test/MC/Disassembler/SystemZ/insn-xy.txt b/test/MC/Disassembler/SystemZ/insn-xy.txt
new file mode 100644 (file)
index 0000000..dea2027
--- /dev/null
@@ -0,0 +1,30 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu | FileCheck %s
+# CHECK: xy %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x57
+
+# CHECK: xy %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x57
+
+# CHECK: xy %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x57
+
+# CHECK: xy %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x57
+
+# CHECK: xy %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x57
+
+# CHECK: xy %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x57
+
+# CHECK: xy %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x57
+
+# CHECK: xy %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x57
+
+# CHECK: xy %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x57
+
+# CHECK: xy %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x57
diff --git a/test/MC/Disassembler/SystemZ/invalid-regs-01.txt b/test/MC/Disassembler/SystemZ/invalid-regs-01.txt
new file mode 100644 (file)
index 0000000..1244067
--- /dev/null
@@ -0,0 +1,22 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu < %s 2>&1 | FileCheck %s
+
+# This would be "axbr %f14, %f0", but %r14 is invalid.
+#
+# CHECK: warning: invalid instruction encoding
+# CHECK-NEXT: 0xb3 0x4a 0x00 0xe0
+# CHECK-NEXT: ^
+0xb3 0x4a 0x00 0xe0
+
+# This would be "axbr %f0, %f2", but %f2 is invalid.
+#
+# CHECK-NEXT: warning: invalid instruction encoding
+# CHECK-NEXT: 0xb3 0x4a 0x00 0x02
+# CHECK-NEXT: ^
+0xb3 0x4a 0x00 0x02
+
+# This would be "dlr %r1, %r8", but %r1 is invalid.
+#
+# CHECK-NEXT: warning: invalid instruction encoding
+# CHECK-NEXT: 0xb9 0x97 0x00 0x18
+# CHECK-NEXT: ^
+0xb9 0x97 0x00 0x18
diff --git a/test/MC/Disassembler/SystemZ/lit.local.cfg b/test/MC/Disassembler/SystemZ/lit.local.cfg
new file mode 100644 (file)
index 0000000..1da00ea
--- /dev/null
@@ -0,0 +1,6 @@
+config.suffixes = ['.txt']
+
+targets = set(config.root.targets_to_build.split())
+if not 'SystemZ' in targets:
+    config.unsupported = True
+
diff --git a/test/MC/Disassembler/SystemZ/trunc-01.txt b/test/MC/Disassembler/SystemZ/trunc-01.txt
new file mode 100644 (file)
index 0000000..336142d
--- /dev/null
@@ -0,0 +1,5 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu 2>&1 | FileCheck %s
+# Every instruction must be at least two bytes long.
+# CHECK: warning: invalid instruction encoding
+# CHECK-NEXT: 0xc4
+0xc4
diff --git a/test/MC/Disassembler/SystemZ/trunc-02.txt b/test/MC/Disassembler/SystemZ/trunc-02.txt
new file mode 100644 (file)
index 0000000..e1e2051
--- /dev/null
@@ -0,0 +1,5 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu 2>&1 | FileCheck %s
+# If the top bits are 0b10, the instruction must be 4 bytes long.
+# CHECK: warning: invalid instruction encoding
+# CHECK-NEXT: 0xb9 0x08 0x00
+0xb9 0x08 0x00
diff --git a/test/MC/Disassembler/SystemZ/trunc-03.txt b/test/MC/Disassembler/SystemZ/trunc-03.txt
new file mode 100644 (file)
index 0000000..94d0c37
--- /dev/null
@@ -0,0 +1,5 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu 2>&1 | FileCheck %s
+# If the top bits are 0b11, the instruction must be 6 bytes long.
+# CHECK: warning: invalid instruction encoding
+# CHECK-NEXT: 0xed 0x00 0x00 0x00 0x00
+0xed 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/SystemZ/unmapped-01.txt b/test/MC/Disassembler/SystemZ/unmapped-01.txt
new file mode 100644 (file)
index 0000000..9379ff6
--- /dev/null
@@ -0,0 +1,32 @@
+# RUN: llvm-mc --disassemble %s -triple=s390x-linux-gnu 2>&1 | FileCheck %s
+
+# An unmapped 2-byte instruction
+#
+# CHECK: warning: invalid instruction encoding
+# CHECK-NEXT: 0x01
+# CHECK-NEXT: ^
+0x01
+0x10
+
+# An unmapped 4-byte instruction
+#
+# CHECK-NEXT: warning: invalid instruction encoding
+# CHECK-NEXT: 0x53
+# CHECK-NEXT: ^
+0x53
+0x00 0x00 0x00
+
+# An unmapped 6-byte instruction
+#
+# CHECK-NEXT: warning: invalid instruction encoding
+# CHECK-NEXT: 0xff
+# CHECK-NEXT: ^
+0xff
+0x00 0x00 0x00 0x00 0x00
+
+# A trailing zero (also unmapped)
+#
+# CHECK-NEXT: warning: invalid instruction encoding
+# CHECK-NEXT: 0x00
+# CHECK-NEXT: ^
+0x00