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