60 lines
1.7 KiB
ArmAsm
60 lines
1.7 KiB
ArmAsm
# RUN: llvm-mc -triple thumbv7 -mattr=virtualization -show-encoding %s | FileCheck %s --check-prefix=CHECK-THUMB
|
|
|
|
hvc #1
|
|
hvc #7
|
|
hvc #257
|
|
hvc #65535
|
|
# CHECK-THUMB: [0xe0,0xf7,0x01,0x80]
|
|
# CHECK-THUMB: [0xe0,0xf7,0x07,0x80]
|
|
# CHECK-THUMB: [0xe0,0xf7,0x01,0x81]
|
|
# CHECK-THUMB: [0xef,0xf7,0xff,0x8f]
|
|
|
|
hvc.w #1
|
|
hvc.w #7
|
|
hvc.w #257
|
|
hvc.w #65535
|
|
# CHECK-THUMB: [0xe0,0xf7,0x01,0x80]
|
|
# CHECK-THUMB: [0xe0,0xf7,0x07,0x80]
|
|
# CHECK-THUMB: [0xe0,0xf7,0x01,0x81]
|
|
# CHECK-THUMB: [0xef,0xf7,0xff,0x8f]
|
|
|
|
eret
|
|
it eq; ereteq
|
|
it ne; eretne
|
|
it hs; ereths
|
|
it lo; eretlo
|
|
it mi; eretmi
|
|
it pl; eretpl
|
|
it vs; eretvs
|
|
it vc; eretvc
|
|
it hi; erethi
|
|
it ls; eretls
|
|
it ge; eretge
|
|
it lt; eretlt
|
|
it gt; eretgt
|
|
it le; eretle
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|
|
|
|
# SUBS PC, LR, #0 should have the same encoding as ERET.
|
|
# The conditional forms can't be tested because the ARM assembler parser doesn't
|
|
# accept SUBS<cond> PC, LR, #<imm>, only the unconditonal form is allowed. This
|
|
# is due to the way that the custom parser handles optional operands; see the
|
|
# FIXME in ARM/AsmParser/ARMAsmParser.cpp.
|
|
|
|
subs pc, lr, #0
|
|
# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
|