| # RUN: rm -rf %t && split-file %s %t && cd %t |
| # RUN: llvm-mc -triple=x86_64 --disassemble --hex a.s | FileCheck %s |
| # RUN: llvm-mc -triple=x86_64 --disassemble --hex decode1.s 2>&1 | FileCheck %s --check-prefix=DECODE1 --implicit-check-not=warning: |
| # RUN: not llvm-mc -triple=x86_64 --disassemble --hex decode2.s 2>&1 | FileCheck %s --check-prefix=DECODE2 --implicit-check-not=warning: |
| # RUN: not llvm-mc -triple=x86_64 --disassemble --hex err1.s 2>&1 | FileCheck %s --check-prefix=ERR1 --implicit-check-not=error: |
| # RUN: not llvm-mc -triple=x86_64 --disassemble --hex err2.s 2>&1 | FileCheck %s --check-prefix=ERR2 --implicit-check-not=error: |
| |
| #--- a.s |
| 4883ec08 31 # comment |
| # comment |
| ed4829 c390 |
| [c3c3][4829c3] |
| [90] |
| |
| # CHECK: subq $8, %rsp |
| # CHECK-NEXT: xorl %ebp, %ebp |
| # CHECK-NEXT: subq %rax, %rbx |
| # CHECK-NEXT: nop |
| # CHECK-NEXT: retq |
| # CHECK-NEXT: retq |
| # CHECK-NEXT: subq %rax, %rbx |
| # CHECK-NEXT: nop |
| # CHECK-EMPTY: |
| |
| #--- decode1.s |
| 4889 |
| |
| # DECODE1: 1:1: warning: invalid instruction encoding |
| |
| #--- decode2.s |
| [4889][4889] [4889]4889c3 |
| [4889] |
| |
| # DECODE2: 1:2: warning: invalid instruction encoding |
| # DECODE2: 1:8: warning: invalid instruction encoding |
| # DECODE2: 1:15: warning: invalid instruction encoding |
| # DECODE2: 2:3: warning: invalid instruction encoding |
| |
| #--- err1.s |
| 0x31ed |
| 0xcc |
| g0 |
| |
| # ERR1: 1:1: error: invalid input token |
| # ERR1: 2:1: error: invalid input token |
| # ERR1: 3:1: error: invalid input token |
| # ERR1: xorl %ebp, %ebp |
| # ERR1-NEXT: int3 |
| # ERR1-EMPTY: |
| |
| #--- err2.s |
| g |
| 90c |
| cc |
| c |
| |
| # ERR2: 1:1: error: expected two hex digits |
| # ERR2: 2:3: error: expected two hex digits |
| # ERR2: 4:1: error: expected two hex digits |
| # ERR2: nop |
| # ERR2-NEXT: int3 |
| # ERR2-EMPTY: |