| // RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s | |
| # Immediates | |
| # CHECK: addl $1, %eax | |
| addl $1, %eax | |
| # CHECK: addl $3, %eax | |
| addl $(1+2), %eax | |
| # CHECK: addl $a, %eax | |
| addl $a, %eax | |
| # CHECK: addl $3, %eax | |
| addl $1 + 2, %eax | |
| # Disambiguation | |
| # CHECK: addl $1, 8 | |
| addl $1, 4+4 | |
| # CHECK: addl $1, 8 | |
| addl $1, (4+4) | |
| # CHECK: addl $1, 8(%eax) | |
| addl $1, 4+4(%eax) | |
| # CHECK: addl $1, 8(%eax) | |
| addl $1, (4+4)(%eax) | |
| # CHECK: addl $1, 8(%eax) | |
| addl $1, 8(%eax) | |
| # CHECK: addl $1, (%eax) | |
| addl $1, (%eax) | |
| # CHECK: addl $1, 8(,%eax) | |
| addl $1, (4+4)(,%eax) | |
| # Indirect Memory Operands | |
| # CHECK: addl $1, 1(%eax) | |
| addl $1, 1(%eax) | |
| # CHECK: addl $1, 1(%eax,%ebx) | |
| addl $1, 1(%eax,%ebx) | |
| # CHECK: addl $1, 1(%eax,%ebx) | |
| addl $1, 1(%eax,%ebx,) | |
| # CHECK: addl $1, 1(%eax,%ebx,4) | |
| addl $1, 1(%eax,%ebx,4) | |
| # CHECK: addl $1, 1(,%ebx) | |
| addl $1, 1(,%ebx) | |
| # CHECK: addl $1, 1(,%ebx) | |
| addl $1, 1(,%ebx,) | |
| # CHECK: addl $1, 1(,%ebx,4) | |
| addl $1, 1(,%ebx,4) | |
| # CHECK: addl $1, 1(,%ebx,4) | |
| addl $1, 1(,%ebx,(2+2)) | |
| # '*' | |
| # CHECK: calll a | |
| call a | |
| # CHECK: calll *%eax | |
| call *%eax | |
| # CHECK: calll *4(%eax) | |
| call *4(%eax) | |
| foo: | |
| calll foo() | |
| # CHECK: calll foo{{$}} | |
| calll foo(,) | |
| # CHECK: calll foo{{$}} | |
| # CHECK: movl %gs:8, %eax | |
| movl %gs:8, %eax | |