mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-26 23:29:22 +00:00
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
82 lines
1.9 KiB
ArmAsm
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: )
|
|
|