1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 13:11:39 +01:00
llvm-mirror/test/MC/AArch64/inst-directive-other.s
Martin Storsjo 2a982f7d52 [AArch64] Support the .inst directive for MachO and COFF targets
Contrary to ELF, we don't add any markers that distinguish data generated
with .long from normal instructions, so the .inst directive only adds
compatibility with assembly that uses it.

Differential Revision: https://reviews.llvm.org/D49935

llvm-svn: 338355
2018-07-31 09:26:52 +00:00

43 lines
1.9 KiB
ArmAsm

// RUN: llvm-mc %s -triple=arm64-apple-darwin -filetype=asm -o - \
// RUN: | FileCheck %s --check-prefix=CHECK-ASM
// RUN: llvm-mc %s -triple=arm64-apple-darwin -filetype=obj -o - \
// RUN: | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-CODE
// RUN: llvm-mc %s -triple=aarch64-win32-gnu -filetype=asm -o - \
// RUN: | FileCheck %s --check-prefix=CHECK-ASM
// RUN: llvm-mc %s -triple=aarch64-win32-gnu -filetype=obj -o - \
// RUN: | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-CODE
// RUN: llvm-mc %s -triple=aarch64-linux-gnu -filetype=asm -o - \
// RUN: | FileCheck %s --check-prefix=CHECK-ASM
// RUN: llvm-mc %s -triple=aarch64-linux-gnu -filetype=obj -o - \
// RUN: | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-DATA
// RUN: llvm-mc %s -triple=aarch64_be-linux-gnu -filetype=asm -o - \
// RUN: | FileCheck %s --check-prefix=CHECK-ASM
// RUN: llvm-mc %s -triple=aarch64_be-linux-gnu -filetype=obj -o - \
// RUN: | llvm-objdump -d - | FileCheck %s --check-prefixes=CHECK-OBJ,CHECK-OBJ-BE
.text
.p2align 2
.globl _func
_func:
nop
// A .long is stored differently for big endian aarch64 targets, while
// instructions always are stored in little endian.
// ELF distinguishes between data and code when emitted this way, but
// MachO and COFF don't.
.long 0xd503201f
.inst 0xd503201f
// CHECK-ASM: .p2align 2
// CHECK-ASM: .globl _func
// CHECK-ASM: _func:
// CHECK-ASM: nop
// CHECK-ASM: .{{long|word}} 3573751839
// CHECK-ASM: .inst 0xd503201f
// CHECK-OBJ: 0: 1f 20 03 d5 nop
// CHECK-OBJ-CODE: 4: 1f 20 03 d5 nop
// CHECK-OBJ-DATA: 4: 1f 20 03 d5 .word 0xd503201f
// CHECK-OBJ-BE: 4: d5 03 20 1f .word 0xd503201f
// CHECK-OBJ: 8: 1f 20 03 d5 nop