brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 2ccfc49 Raw
55 lines · plain
1// RUN: not llvm-mc -triple i686-unknown-unknown -x86-asm-syntax=att %s -o /dev/null 2>&1 | FileCheck %s2 3// This tests weird forms of Intel and AT&T syntax that gas accepts that we4// don't.  The [no]prefix operand of the syntax directive indicates whether5// registers need a '%' prefix.6 7.intel_syntax prefix8// CHECK: error: '.intel_syntax prefix' is not supported: registers must not have a '%' prefix in .intel_syntax9_test2:10	mov	DWORD PTR [%esp - 4], 25711.att_syntax noprefix12// CHECK: error: '.att_syntax noprefix' is not supported: registers must have a '%' prefix in .att_syntax13	movl	$257, -4(esp)14 15 16.intel_syntax noprefix17 18.global arr19.global i20.set FOO, 221 22//CHECK: error: cannot use more than one symbol in memory operand23mov eax, DWORD PTR arr[i]24//CHECK: error: rip can only be used as a base register25.code6426mov rax, rip27//CHECK: error: invalid base+index expression28mov rbx, [rax+rip]29//CHECK: error: scale factor in address must be 1, 2, 4 or 830lea RDX, [unknown_number * RAX + RBX + _foo]31//CHECK: error: BaseReg/IndexReg already set!32lea RDX, [4 * RAX + 27 * RBX + _pat]33//CHECK: error: unexpected bracket encountered34lea RDX, [[arr]35//CHECK: error: unexpected bracket encountered36lea RDX, [arr[]37 38.intel_syntax39 40// CHECK: error: invalid operand for instruction41punpcklbw mm0, qword ptr [rsp]42// CHECK: error: invalid operand for instruction43punpcklwd mm0, word ptr [rsp]44// CHECK: error: invalid operand for instruction45punpckldq mm0, qword ptr [rsp]46 47// CHECK: error: invalid 16-bit base register48lea bx, [ax]49 50// CHECK: invalid base+index expression51lea eax, [eax+esp*1]52 53// CHECK: 16-bit addresses cannot have a scale54lea ax, [bx+si*1]55