1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/test/MC/ARM/virtexts-thumb.s
Charlie Turner 5186769a0c Add Thumb HVC and ERET virtualisation extension instructions.
Patch by Matthew Wahab.

Change-Id: I131f71c1150d5fa797066a18e09d526c19bf9016
llvm-svn: 222990
2014-12-01 08:39:19 +00:00

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 becuse 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]