304 lines · plain
1# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t2# RUN: FileCheck < %t %s3 4# Test GR32 operands5#6#CHECK: error: invalid operand for instruction7#CHECK: lr %f0,%r18#CHECK: error: invalid operand for instruction9#CHECK: lr %a0,%r110#CHECK: error: invalid operand for instruction11#CHECK: lr %c0,%r112#CHECK: error: invalid operand for instruction13#CHECK: lr %r0,%f114#CHECK: error: invalid operand for instruction15#CHECK: lr %r0,%a116#CHECK: error: invalid operand for instruction17#CHECK: lr %r0,%c118#CHECK: error: invalid register19#CHECK: lr %r0,1620#CHECK: error: unexpected token in argument list21#CHECK: lr %r0,0(%r1)22 23 lr %f0,%r124 lr %a0,%r125 lr %c0,%r126 lr %r0,%f127 lr %r0,%a128 lr %r0,%c129 lr %r0,1630 lr %r0,0(%r1)31 32# Test GR64 operands33#34#CHECK: error: invalid operand for instruction35#CHECK: lgr %f0,%r136#CHECK: error: invalid operand for instruction37#CHECK: lgr %a0,%r138#CHECK: error: invalid operand for instruction39#CHECK: lgr %c0,%r140#CHECK: error: invalid operand for instruction41#CHECK: lgr %r0,%f142#CHECK: error: invalid operand for instruction43#CHECK: lgr %r0,%a144#CHECK: error: invalid operand for instruction45#CHECK: lgr %r0,%c146#CHECK: error: invalid register47#CHECK: lgr %r0,1648#CHECK: error: unexpected token in argument list49#CHECK: lgr %r0,0(%r1)50 51 lgr %f0,%r152 lgr %a0,%r153 lgr %c0,%r154 lgr %r0,%f155 lgr %r0,%a156 lgr %r0,%c157 lgr %r0,1658 lgr %r0,0(%r1)59 60# Test GR128 operands61#62#CHECK: error: invalid register pair63#CHECK: dlr %r1,%r064#CHECK: error: invalid register pair65#CHECK: dlr %r3,%r066#CHECK: error: invalid register pair67#CHECK: dlr %r5,%r068#CHECK: error: invalid register pair69#CHECK: dlr %r7,%r070#CHECK: error: invalid register pair71#CHECK: dlr %r9,%r072#CHECK: error: invalid register pair73#CHECK: dlr %r11,%r074#CHECK: error: invalid register pair75#CHECK: dlr %r13,%r076#CHECK: error: invalid register pair77#CHECK: dlr %r15,%r078#CHECK: error: invalid operand for instruction79#CHECK: dlr %f0,%r180#CHECK: error: invalid operand for instruction81#CHECK: dlr %a0,%r182#CHECK: error: invalid operand for instruction83#CHECK: dlr %c0,%r184#CHECK: error: invalid operand for instruction85#CHECK: dlr %r0,%f186#CHECK: error: invalid operand for instruction87#CHECK: dlr %r0,%a188#CHECK: error: invalid operand for instruction89#CHECK: dlr %r0,%c190#CHECK: error: invalid register91#CHECK: dlr %r0,1692#CHECK: error: unexpected token in argument list93#CHECK: dlr %r0,0(%r1)94 95 dlr %r1,%r096 dlr %r3,%r097 dlr %r5,%r098 dlr %r7,%r099 dlr %r9,%r0100 dlr %r11,%r0101 dlr %r13,%r0102 dlr %r15,%r0103 dlr %f0,%r1104 dlr %a0,%r1105 dlr %c0,%r1106 dlr %r0,%f1107 dlr %r0,%a1108 dlr %r0,%c1109 dlr %r0,16110 dlr %r0,0(%r1)111 112# Test FP32 operands113#114#CHECK: error: invalid operand for instruction115#CHECK: ler %r0,%f1116#CHECK: error: invalid operand for instruction117#CHECK: ler %a0,%f1118#CHECK: error: invalid operand for instruction119#CHECK: ler %c0,%f1120#CHECK: error: invalid operand for instruction121#CHECK: ler %f0,%r1122#CHECK: error: invalid operand for instruction123#CHECK: ler %f0,%a1124#CHECK: error: invalid operand for instruction125#CHECK: ler %f0,%c1126#CHECK: error: invalid register127#CHECK: ler %f0,16128#CHECK: error: unexpected token in argument list129#CHECK: ler %f0,0(%r1)130 131 ler %r0,%f1132 ler %a0,%f1133 ler %c0,%f1134 ler %f0,%r1135 ler %f0,%a1136 ler %f0,%c1137 ler %f0,16138 ler %f0,0(%r1)139 140# Test FP64 operands141#142#CHECK: error: invalid operand for instruction143#CHECK: ldr %r0,%f1144#CHECK: error: invalid operand for instruction145#CHECK: ldr %a0,%f1146#CHECK: error: invalid operand for instruction147#CHECK: ldr %c0,%f1148#CHECK: error: invalid operand for instruction149#CHECK: ldr %f0,%r1150#CHECK: error: invalid operand for instruction151#CHECK: ldr %f0,%a1152#CHECK: error: invalid operand for instruction153#CHECK: ldr %f0,%c1154#CHECK: error: invalid register155#CHECK: ldr %f0,16156#CHECK: error: unexpected token in argument list157#CHECK: ldr %f0,0(%r1)158 159 ldr %r0,%f1160 ldr %a0,%f1161 ldr %c0,%f1162 ldr %f0,%r1163 ldr %f0,%a1164 ldr %f0,%c1165 ldr %f0,16166 ldr %f0,0(%r1)167 168# Test FP128 operands169#170#CHECK: error: invalid register pair171#CHECK: lxr %f2,%f0172#CHECK: error: invalid register pair173#CHECK: lxr %f0,%f3174#CHECK: error: invalid register pair175#CHECK: lxr %f6,%f0176#CHECK: error: invalid register pair177#CHECK: lxr %f0,%f7178#CHECK: error: invalid register pair179#CHECK: lxr %f10,%f0180#CHECK: error: invalid register pair181#CHECK: lxr %f0,%f11182#CHECK: error: invalid register pair183#CHECK: lxr %f14,%f0184#CHECK: error: invalid register pair185#CHECK: lxr %f0,%f15186#CHECK: error: invalid operand for instruction187#CHECK: lxr %r0,%f1188#CHECK: error: invalid operand for instruction189#CHECK: lxr %a0,%f1190#CHECK: error: invalid operand for instruction191#CHECK: lxr %c0,%f1192#CHECK: error: invalid operand for instruction193#CHECK: lxr %f0,%r1194#CHECK: error: invalid operand for instruction195#CHECK: lxr %f0,%a1196#CHECK: error: invalid operand for instruction197#CHECK: lxr %f0,%c1198#CHECK: error: invalid register199#CHECK: lxr %f0,16200#CHECK: error: unexpected token in argument list201#CHECK: lxr %f0,0(%r1)202 203 lxr %f2,%f0204 lxr %f0,%f3205 lxr %f6,%f0206 lxr %f0,%f7207 lxr %f10,%f0208 lxr %f0,%f11209 lxr %f14,%f0210 lxr %f0,%f15211 lxr %r0,%f1212 lxr %a0,%f1213 lxr %c0,%f1214 lxr %f0,%r1215 lxr %f0,%a1216 lxr %f0,%c1217 lxr %f0,16218 lxr %f0,0(%r1)219 220# Test that a high (>=16) vector register is not accepted in a non-vector221# operand.222#223#CHECK: error: invalid register224#CHECK: .insn rr,0x1800,%v16,%v0225.insn rr,0x1800,%v16,%v0226 227# Test access register operands228#229#CHECK: error: invalid operand for instruction230#CHECK: ear %r0,%r0231#CHECK: error: invalid operand for instruction232#CHECK: ear %r0,%f0233#CHECK: error: invalid operand for instruction234#CHECK: ear %r0,%c0235#CHECK: error: invalid register236#CHECK: ear %r0,16237#CHECK: error: unexpected token in argument list238#CHECK: ear %r0,0(%r1)239 240 ear %r0,%r0241 ear %r0,%f0242 ear %r0,%c0243 ear %r0,16244 ear %r0,0(%r1)245 246# Test control register operands247#248#CHECK: error: invalid operand for instruction249#CHECK: lctl %c0,%r0,0250#CHECK: lctl %c0,%f0,0251#CHECK: lctl %c0,%a0,0252#CHECK: lctl %c0,16,0253#CHECK: lctl %c0,0(%r1),0254 255 lctl %c0,%r0,0256 lctl %c0,%f0,0257 lctl %c0,%a0,0258 lctl %c0,16,0259 lctl %c0,0(%r1),0260 261 .cfi_startproc262 263# Test general register parsing, with no predetermined class in mind.264#265#CHECK: error: invalid register266#CHECK: .cfi_offset %,0267#CHECK: error: invalid register268#CHECK: .cfi_offset %r,0269#CHECK: error: invalid register270#CHECK: .cfi_offset %f,0271#CHECK: error: invalid register272#CHECK: .cfi_offset %a,0273#CHECK: error: invalid register274#CHECK: .cfi_offset %c,0275#CHECK: error: invalid register276#CHECK: .cfi_offset %0,0277#CHECK: error: invalid register278#CHECK: .cfi_offset %r16,0279#CHECK: error: invalid register280#CHECK: .cfi_offset %f16,0281#CHECK: error: invalid register282#CHECK: .cfi_offset %a16,0283#CHECK: error: invalid register284#CHECK: .cfi_offset %c16,0285#CHECK: error: invalid register286#CHECK: .cfi_offset %reef,0287#CHECK: error: invalid register288#CHECK: .cfi_offset %arid,0289 290 .cfi_offset %,0291 .cfi_offset %r,0292 .cfi_offset %f,0293 .cfi_offset %a,0294 .cfi_offset %c,0295 .cfi_offset %0,0296 .cfi_offset %r16,0297 .cfi_offset %f16,0298 .cfi_offset %a16,0299 .cfi_offset %c16,0300 .cfi_offset %reef,0301 .cfi_offset %arid,0302 303 .cfi_endproc304