77 lines · plain
1// RUN: llvm-mc -triple i686-unknown-unknown -x86-asm-syntax=intel %s | FileCheck %s --check-prefixes=CHECK-32,CHECK2// RUN: llvm-mc -triple x86_64-unknown-unknown --defsym X64=1 -x86-asm-syntax=intel %s | FileCheck %s --check-prefixes=CHECK-64,CHECK3 4// RUN: not llvm-mc -triple i686-unknown-unknown --defsym ERR=1 -x86-asm-syntax=intel %s 2>&1 | FileCheck %s --check-prefixes=ERR-325 6t0:7call direct_branch8jmp direct_branch9// CHECK-LABEL: t0:10// CHECK-64: callq direct_branch11// CHECK-32: calll direct_branch12// CHECK: jmp direct_branch13 14t1:15call [fn_ref]16jmp [fn_ref]17// CHECK-LABEL: t1:18// CHECK-64: callq *fn_ref19// CHECK-64: jmpq *fn_ref20// CHECK-32: calll *fn_ref21// CHECK-32: jmpl *fn_ref22 23.ifdef X6424 25 t2:26 call qword ptr [fn_ref]27 jmp qword ptr [fn_ref]28 // CHECK-64-LABEL: t2:29 // CHECK-64: callq *fn_ref30 // CHECK-64: jmpq *fn_ref31 32 t3:33 call qword ptr [rip + fn_ref]34 jmp qword ptr [rip + fn_ref]35 // CHECK-64-LABEL: t3:36 // CHECK-64: callq *fn_ref(%rip)37 // CHECK-64: jmpq *fn_ref(%rip)38 39.else40 41 t4:42 call dword ptr [fn_ref]43 jmp dword ptr [fn_ref]44 // CHECK-32-LABEL: t4:45 // CHECK-32: calll *fn_ref46 // CHECK-32: jmpl *fn_ref47 48 t5:49 call dword ptr fn_ref50 jmp dword ptr fn_ref51 // CHECK-32-LABEL: t5:52 // CHECK-32: calll *fn_ref53 // CHECK-32: jmpl *fn_ref54 55 t6:56 call dword ptr [offset fn_ref]57 jmp dword ptr [offset fn_ref]58 // CHECK-32-LABEL: t6:59 // CHECK-32: calll *fn_ref60 // CHECK-32: jmpl *fn_ref61 62.ifdef ERR63 64 call [offset fn_ref]65 // ERR-32: {{.*}}.s:[[#@LINE-1]]:8: error: `OFFSET` operator cannot be used in an unconditional branch66 jmp [offset fn_ref]67 // ERR-32: {{.*}}.s:[[#@LINE-1]]:7: error: `OFFSET` operator cannot be used in an unconditional branch68 69 call offset fn_ref70 // ERR-32: {{.*}}.s:[[#@LINE-1]]:3: error: invalid operand for instruction71 jmp offset fn_ref72 // ERR-32: {{.*}}.s:[[#@LINE-1]]:3: error: invalid operand for instruction73 74.endif75 76.endif77