# RUN: not llvm-mc -triple powerpc64-unknown-unknown < %s 2> %t # RUN: FileCheck < %t %s # RUN: not llvm-mc -triple powerpc64le-unknown-unknown < %s 2> %t # RUN: FileCheck < %t %s # Register operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: add 32, 32, 32 add 32, 32, 32 # CHECK: error: invalid register name # CHECK-NEXT: add %r32, %r32, %r32 add %r32, %r32, %r32 # TLS register operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: add 3, symbol@tls, 4 add 3, symbol@tls, 4 # CHECK: error: invalid operand for instruction # CHECK-NEXT: subf 3, 4, symbol@tls subf 3, 4, symbol@tls # Unsigned 1-bit immediate operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: mtmsr 1, 2 mtmsr 1, 2 # CHECK: error: invalid operand for instruction # CHECK-NEXT: mtmsrd 1, 2 mtmsrd 1, 2 # CHECK: error: invalid operand for instruction # CHECK-NEXT: mtfsf 1, 2, 2, 1 mtfsf 1, 2, 2, 1 # CHECK: error: invalid operand for instruction # CHECK-NEXT: mtfsf. 1, 2, 2, 1 mtfsf. 1, 2, 2, 1 # Unsigned 2-bit immediate operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: darn 1, 4 darn 1, 4 # CHECK: error: invalid operand for instruction # CHECK-NEXT: wait 4 wait 4 # CHECK: error: invalid operand for instruction # CHECK-NEXT: sync 4 sync 4 # Unsigned 3-bit immediate operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: dcbf 0, 1, 8 dcbf 0, 1, 8 # Signed 16-bit immediate operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: addi 1, 0, -32769 addi 1, 0, -32769 # CHECK: error: invalid operand for instruction # CHECK-NEXT: addi 1, 0, 32768 addi 1, 0, 32768 # Unsigned 16-bit immediate operands # CHECK: error: invalid operand for instruction # CHECK-NEXT: ori 1, 2, -1 ori 1, 2, -1 # CHECK: error: invalid operand for instruction # CHECK-NEXT: ori 1, 2, 65536 ori 1, 2, 65536 # Signed 16-bit immediate operands (extended range for addis) # CHECK: error: invalid operand for instruction addis 1, 0, -65537 # CHECK: error: invalid operand for instruction addis 1, 0, 65536 # D-Form memory operands # CHECK: error: invalid register number # CHECK-NEXT: lwz 1, 0(32) lwz 1, 0(32) # CHECK: error: invalid register name # CHECK-NEXT: lwz 1, 0(%r32) lwz 1, 0(%r32) # CHECK: error: invalid operand for instruction # CHECK-NEXT: lwz 1, -32769(2) lwz 1, -32769(2) # CHECK: error: invalid operand for instruction # CHECK-NEXT: lwz 1, 32768(2) lwz 1, 32768(2) # CHECK: error: invalid register number # CHECK-NEXT: ld 1, 0(32) ld 1, 0(32) # CHECK: error: invalid register name # CHECK-NEXT: ld 1, 0(%r32) ld 1, 0(%r32) # CHECK: error: invalid operand for instruction # CHECK-NEXT: ld 1, 1(2) ld 1, 1(2) # CHECK: error: invalid operand for instruction # CHECK-NEXT: ld 1, 2(2) ld 1, 2(2) # CHECK: error: invalid operand for instruction # CHECK-NEXT: ld 1, 3(2) ld 1, 3(2) # CHECK: error: invalid operand for instruction # CHECK-NEXT: ld 1, -32772(2) ld 1, -32772(2) # CHECK: error: invalid operand for instruction # CHECK-NEXT: ld 1, 32768(2) ld 1, 32768(2) # CHECK: error: invalid modifier 'got' (no symbols present) addi 4, 3, 123@got # CHECK-NEXT: addi 4, 3, 123@got