1// REQUIRES: asserts 2// RUN: llvm-mc -triple s390x-linux-gnu -debug-only=asm-matcher %s 2>&1 | FileCheck %s 3// 4// Check that debug output prints the operands correctly. 5 6// CHECK: AsmMatcher: found 1 encodings with mnemonic 'sllg' 7// CHECK: Trying to match opcode SLLG 8// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r3): match success using generic matcher 9// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 2 (Reg:r0): match success using generic matcher 10// CHECK: Matching formal operand class MCK_BDAddr32Disp20 against actual operand at index 3 (Mem:3): match success using generic matcher 11// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 4: actual operand index out of range Opcode result: complete match, selecting this opcode 12// CHECK: AsmMatcher: found 1 encodings with mnemonic 'llill' 13// CHECK: Trying to match opcode LLILL 14// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r0): match success using generic matcher 15// CHECK: Matching formal operand class MCK_U16Imm against actual operand at index 2 (Imm:0): match success using generic matcher 16// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 3: actual operand index out of range Opcode result: complete match, selecting this opcode 17// CHECK: AsmMatcher: found 1 encodings with mnemonic 'lgr' 18// CHECK: Trying to match opcode LGR 19// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r1): match success using generic matcher 20// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 2 (Reg:r0): match success using generic matcher 21// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 3: actual operand index out of range Opcode result: complete match, selecting this opcode 22// CHECK: AsmMatcher: found 1 encodings with mnemonic 'lg' 23// CHECK: Trying to match opcode LG 24// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r1): match success using generic matcher 25// CHECK: Matching formal operand class MCK_BDXAddr64Disp20 against actual operand at index 2 (Mem:16(r2)): match success using generic matcher 26// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 3: actual operand index out of range Opcode result: complete match, selecting this opcode 27// CHECK: AsmMatcher: found 1 encodings with mnemonic 'lg' 28// CHECK: Trying to match opcode LG 29// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r1): match success using generic matcher 30// CHECK: Matching formal operand class MCK_BDXAddr64Disp20 against actual operand at index 2 (Mem:16(r2,r3)): match success using generic matcher 31// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 3: actual operand index out of range Opcode result: complete match, selecting this opcode 32// CHECK: AsmMatcher: found 1 encodings with mnemonic 'stmg' 33// CHECK: Trying to match opcode STMG 34// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r13): match success using generic matcher 35// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 2 (Reg:r15): match success using generic matcher 36// CHECK: Matching formal operand class MCK_BDAddr64Disp20 against actual operand at index 3 (Mem:104(r15)): match success using generic matcher 37// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 4: actual operand index out of range Opcode result: complete match, selecting this opcode 38// CHECK: AsmMatcher: found 1 encodings with mnemonic 'mvc' 39// CHECK: Trying to match opcode MVC 40// CHECK: Matching formal operand class MCK_BDLAddr64Disp12Len8 against actual operand at index 1 (Mem:184(8,r15)): match success using generic matcher 41// CHECK: Matching formal operand class MCK_BDAddr64Disp12 against actual operand at index 2 (Mem:8(r2)): match success using generic matcher 42// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 3: actual operand index out of range Opcode result: complete match, selecting this opcode 43// CHECK: AsmMatcher: found 1 encodings with mnemonic 'mvck' 44// CHECK: Trying to match opcode MVCK 45// CHECK: Matching formal operand class MCK_BDRAddr64Disp12 against actual operand at index 1 (Mem:0(r0,r1)): match success using generic matcher 46// CHECK: Matching formal operand class MCK_BDAddr64Disp12 against actual operand at index 2 (Mem:4095(r15)): match success using generic matcher 47// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 3 (Reg:r2): match success using generic matcher 48// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 4: actual operand index out of range Opcode result: complete match, selecting this opcode 49// CHECK: AsmMatcher: found 1 encodings with mnemonic 'j' 50// CHECK: Trying to match opcode J 51// CHECK: Matching formal operand class MCK_PCRel16 against actual operand at index 1 (Imm:.Ltmp0+2): match success using generic matcher 52// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 2: actual operand index out of range Opcode result: complete match, selecting this opcode 53// CHECK: AsmMatcher: found 1 encodings with mnemonic 'brasl' 54// CHECK: Trying to match opcode BRASL 55// CHECK: Matching formal operand class MCK_GR64 against actual operand at index 1 (Reg:r14): match success using generic matcher 56// CHECK: Matching formal operand class MCK_PCRelTLS32 against actual operand at index 2 (ImmTLS:fun): match success using generic matcher 57// CHECK: Matching formal operand class InvalidMatchClass against actual operand at index 3: actual operand index out of range Opcode result: complete match, selecting this opcode 58// CHECK: .text 59// CHECK: sllg %r3, %r0, 3 60// CHECK: llill %r0, 0 61// CHECK: lgr %r1, %r0 62// CHECK: lg %r1, 16(%r2) 63// CHECK: lg %r1, 16(%r2,%r3) 64// CHECK: stmg %r13, %r15, 104(%r15) 65// CHECK: mvc 184(8,%r15), 8(%r2) 66// CHECK: mvck 0(%r0,%r1), 4095(%r15), %r2 67// CHECK: .Ltmp0: 68// CHECK: j .Ltmp0+2 69// CHECK: brasl %r14, fun 70 71 sllg %r3, %r0, 3 72 llill %r0, 0 73 lgr %r1, %r0 74 lg %r1, 16(%r2) 75 lg %r1, 16(%r2,%r3) 76 stmg %r13, %r15, 104(%r15) 77 mvc 184(8,%r15), 8(%r2) 78 mvck 0(%r0,%r1), 4095(%r15), %r2 79.Ltmp0: 80 j .Ltmp0+2 81 brasl %r14, fun 82