llvm/test/MC/ARM/inst-directive.s
Saleem Abdulrasool 304512cf40 ARM IAS: support .inst directive
This adds support for the .inst directive.  This is an ARM specific directive to
indicate an instruction encoded as a constant expression.  The major difference
between .word, .short, or .byte and .inst is that the latter will be
disassembled as an instruction since it does not get flagged as data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197657 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-19 05:17:58 +00:00

82 lines
1.9 KiB
ArmAsm

@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-readobj -s -sd | FileCheck %s
.syntax unified
@-------------------------------------------------------------------------------
@ arm_inst
@-------------------------------------------------------------------------------
.arm
.section .inst.arm_inst
.align 2
.global arm_inst
.type arm_inst,%function
arm_inst:
.inst 0xdefe
@ CHECK: Section {
@ CHECK: Name: .inst.arm_inst
@ CHECK: SectionData (
@ CHECK-NEXT: 0000: FEDE0000
@ CHECK-NEXT: )
@-------------------------------------------------------------------------------
@ thumb_inst_n
@-------------------------------------------------------------------------------
.thumb
.section .inst.thumb_inst_n
.align 2
.global thumb_inst_n
.type thumb_inst_n,%function
thumb_inst_n:
.inst.n 0xdefe
@ CHECK: Section {
@ CHECK: Name: .inst.thumb_inst_n
@ CHECK: SectionData (
@ CHECK-NEXT: 0000: FEDE
@ CHECK-NEXT: )
@-------------------------------------------------------------------------------
@ thumb_inst_w
@-------------------------------------------------------------------------------
.thumb
.section .inst.thumb_inst_w
.align 2
.global thumb_inst_w
.type thumb_inst_w,%function
thumb_inst_w:
.inst.w 0x00000000
@ CHECK: Section {
@ CHECK: Name: .inst.thumb_inst_w
@ CHECK: SectionData (
@ CHECK-NEXT: 0000: 00000000
@ CHECK-NEXT: )
@-------------------------------------------------------------------------------
@ thumb_inst_w
@-------------------------------------------------------------------------------
.thumb
.section .inst.thumb_inst_inst
.align 2
.global thumb_inst_inst
.type thumb_inst_inst,%function
thumb_inst_inst:
.inst.w 0xf2400000, 0xf2c00000
@ CHECK: Section {
@ CHECK: Name: .inst.thumb_inst_inst
@ CHECK: SectionData (
@ CHECK-NEXT: 0000: 40F20000 C0F20000
@ CHECK-NEXT: )