109062b1672d33c40c38de3ff3163e0d53ebe165dDaniel Dunbar// RUN: not llvm-mc -triple x86_64-unknown-unknown %s 2> %t.err 25de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// RUN: FileCheck --check-prefix=64 < %t.err %s 309062b1672d33c40c38de3ff3163e0d53ebe165dDaniel Dunbar 45de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t.err 55de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// RUN: FileCheck --check-prefix=32 < %t.err %s 65de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// rdar://8204588 75de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng 85de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// 64: error: ambiguous instructions require an explicit suffix (could be 'cmpb', 'cmpw', 'cmpl', or 'cmpq') 909062b1672d33c40c38de3ff3163e0d53ebe165dDaniel Dunbarcmp $0, 0(%eax) 105de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng 115de728cfe1a922ac9b13546dca94526b2fa693b6Evan Cheng// 32: error: register %rax is only available in 64-bit mode 125de728cfe1a922ac9b13546dca94526b2fa693b6Evan Chengaddl $0, 0(%rax) 13acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby 14acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby// 32: test.s:8:2: error: invalid instruction mnemonic 'movi' 15acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby 16acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby# 8 "test.s" 17acbaecd4c8e4d19207e63624dcd9e01947b51757Kevin Enderby movi $8,%eax 18d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner 19d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattnermovl 0(%rax), 0(%edx) // error: invalid operand for instruction 20d8b7aa26134d2abee777f745c32005e63dea2455Chris Lattner 213ca6382120c16e30151e19175d40480ee72de641Jim Grosbach// 32: error: instruction requires: 64-bit mode 2255c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitq 2358dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby 2458dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby// rdar://10710167 2558dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderby// 64: error: expected scale expression 2658dfaa14651f36fc9fce2031eb011e65ae267b9fKevin Enderbylea (%rsp, %rbp, $4), %rax 2784faf659125cb354794e457fa5a8a8daad84760dKevin Enderby 2884faf659125cb354794e457fa5a8a8daad84760dKevin Enderby// rdar://10423777 2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 64: error: base register is 64-bit, but index register is not 3084faf659125cb354794e457fa5a8a8daad84760dKevin Enderbymovq (%rsi,%ecx),%xmm0 31ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosier 3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 64: error: invalid 16-bit base register 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%si) 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: scale factor in 16-bit address must be 1 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%si,2) 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: invalid 16-bit base register 3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%cx) 4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: invalid 16-bit base/index register combination 4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(%bp,%bx) 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// 32: error: 16-bit memory operand may not include only index register 4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesmovl %eax,(,%bx) 4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 47ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosier// 32: error: invalid operand for instruction 48ffc49cbea41c08132587a3e622bb65191fa576a2Chad Rosieroutb al, 4 4937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 5037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// 32: error: invalid segment register 5137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// 64: error: invalid segment register 5237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesmovl %eax:0x00, %ebx 53ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines 54ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 32: error: invalid operand for instruction 55ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 64: error: invalid operand for instruction 56ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinescmpps $-129, %xmm0, %xmm0 57ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines 58ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 32: error: invalid operand for instruction 59ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// 64: error: invalid operand for instruction 60ebe69fe11e48d322045d5949c83283927a0d790bStephen Hinescmppd $256, %xmm0, %xmm0 61