1ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# RUN: llvm-mc -triple thumbv7 -mattr=virtualization -show-encoding %s | FileCheck %s --check-prefix=CHECK-THUMB
2ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
3ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc    #1
4ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc    #7
5ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc    #257
6ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc    #65535
7ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xe0,0xf7,0x01,0x80]
8ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xe0,0xf7,0x07,0x80]
9ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xe0,0xf7,0x01,0x81]
10ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xef,0xf7,0xff,0x8f]
11ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
12ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc.w    #1
13ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc.w    #7
14ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc.w    #257
15ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    hvc.w    #65535
16ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xe0,0xf7,0x01,0x80]
17ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xe0,0xf7,0x07,0x80]
18ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xe0,0xf7,0x01,0x81]
19ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xef,0xf7,0xff,0x8f]
20ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
21ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    eret
22ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it eq; ereteq
23ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it ne; eretne
24ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it hs; ereths
25ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it lo; eretlo
26ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it mi; eretmi
27ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it pl; eretpl
28ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it vs; eretvs
29ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it vc; eretvc
30ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it hi; erethi
31ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it ls; eretls
32ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it ge; eretge
33ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it lt; eretlt
34ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it gt; eretgt
35ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    it le; eretle
36ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
37ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
38ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
39ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
40ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
41ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
42ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
43ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
44ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
45ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
46ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
47ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
48ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
49ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
50ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
51ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
52ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# SUBS PC, LR, #0 should have the same encoding as ERET.
53ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# The conditional forms can't be tested becuse the ARM assembler parser doesn't
54ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# accept SUBS<cond> PC, LR, #<imm>, only the unconditonal form is allowed. This
55ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# is due to the way that the custom parser handles optional operands; see the
56ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# FIXME in ARM/AsmParser/ARMAsmParser.cpp.
57ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines
58ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines    subs pc, lr, #0
59ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines# CHECK-THUMB: [0xde,0xf3,0x00,0x8f]
60