Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 1 | # RUN: llvm-mc --disassemble %s -triple=arm-apple-darwin9 | FileCheck %s |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 2 | |
| 3 | # CHECK: b #0 |
| 4 | 0xfe 0xff 0xff 0xea |
| 5 | |
| 6 | # CHECK: bfc r8, #0, #16 |
| 7 | 0x1f 0x80 0xcf 0xe7 |
| 8 | |
| 9 | # CHECK: bfi r8, r0, #16, #1 |
| 10 | 0x10 0x88 0xd0 0xe7 |
| 11 | |
Bob Wilson | 775eec22 | 2011-01-28 17:50:30 +0000 | [diff] [blame] | 12 | # CHECK: mov pc, lr |
| 13 | 0x0e 0xf0 0xa0 0xe1 |
| 14 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 15 | # CHECK: cmn r0, #1 |
| 16 | 0x01 0x00 0x70 0xe3 |
| 17 | |
Johnny Chen | d59c73f | 2010-08-11 23:35:12 +0000 | [diff] [blame] | 18 | # CHECK: dmb |
| 19 | 0x5f 0xf0 0x7f 0xf5 |
| 20 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 21 | # CHECK: dmb nshst |
| 22 | 0x56 0xf0 0x7f 0xf5 |
| 23 | |
Johnny Chen | d59c73f | 2010-08-11 23:35:12 +0000 | [diff] [blame] | 24 | # CHECK: dsb |
| 25 | 0x4f 0xf0 0x7f 0xf5 |
| 26 | |
Johnny Chen | 8e8f1c1 | 2010-08-12 20:46:17 +0000 | [diff] [blame] | 27 | # CHECK: dsb st |
| 28 | 0x4e 0xf0 0x7f 0xf5 |
| 29 | |
| 30 | # CHECK: isb |
| 31 | 0x6f 0xf0 0x7f 0xf5 |
| 32 | |
Johnny Chen | 807e174 | 2010-04-16 19:33:23 +0000 | [diff] [blame] | 33 | # CHECK: ldclvc p5, cr15, [r8], #-0 |
| 34 | 0x00 0xf5 0x78 0x7c |
| 35 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 36 | # CHECK: ldr r0, [r2], #15 |
| 37 | 0x0f 0x00 0x92 0xe4 |
| 38 | |
Johnny Chen | 2b7aba1 | 2010-04-16 19:57:21 +0000 | [diff] [blame] | 39 | # CHECK: ldrh r0, [r2], #0 |
| 40 | 0xb0 0x00 0xd2 0xe0 |
| 41 | |
Johnny Chen | 1d3ee60 | 2010-04-15 23:23:40 +0000 | [diff] [blame] | 42 | # CHECK: ldrht r0, [r2], #15 |
| 43 | 0xbf 0x00 0xf2 0xe0 |
| 44 | |
Johnny Chen | acbc06c | 2010-04-15 23:12:47 +0000 | [diff] [blame] | 45 | # CHECK: ldrsbtvs lr, [r2], -r9 |
| 46 | 0xd9 0xe9 0x32 0x60 |
| 47 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 48 | # CHECK: lsls r0, r2, #31 |
| 49 | 0x82 0x0f 0xb0 0xe1 |
| 50 | |
Owen Anderson | ec47597 | 2011-01-13 22:38:16 +0000 | [diff] [blame] | 51 | # CHECK: mcr2 p0, #0, r2, c1, c0, #7 |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 52 | 0xf0 0x20 0x01 0xfe |
| 53 | |
| 54 | # CHECK: movt r8, #65535 |
| 55 | 0xff 0x8f 0x4f 0xe3 |
| 56 | |
Bob Wilson | 5935184 | 2010-10-15 03:23:44 +0000 | [diff] [blame] | 57 | # CHECK: mvnspl r7, #245, 2 |
Johnny Chen | fc93503 | 2010-04-12 18:46:53 +0000 | [diff] [blame] | 58 | 0xf5 0x71 0xf0 0x53 |
| 59 | |
Bob Wilson | 97886d5 | 2010-08-05 00:34:42 +0000 | [diff] [blame] | 60 | # CHECK-NOT: orr r7, r8, r7, rrx #0 |
| 61 | # CHECK: orr r7, r8, r7, rrx |
| 62 | 0x67 0x70 0x88 0xe1 |
| 63 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 64 | # CHECK: pkhbt r8, r9, r10, lsl #4 |
| 65 | 0x1a 0x82 0x89 0xe6 |
| 66 | |
Bob Wilson | 942b10f | 2010-08-17 17:23:19 +0000 | [diff] [blame] | 67 | # CHECK-NOT: pkhbtls pc, r11, r11, lsl #0 |
| 68 | # CHECK: pkhbtls pc, r11, r11 |
| 69 | 0x1b 0xf0 0x8b 0x96 |
| 70 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 71 | # CHECK: pop {r0, r2, r4, r6, r8, r10} |
| 72 | 0x55 0x05 0xbd 0xe8 |
| 73 | |
| 74 | # CHECK: push {r0, r2, r4, r6, r8, r10} |
| 75 | 0x55 0x05 0x2d 0xe9 |
| 76 | |
| 77 | # CHECK: qsax r8, r9, r10 |
| 78 | 0x5a 0x8f 0x29 0xe6 |
| 79 | |
| 80 | # CHECK: rfedb r0! |
| 81 | 0x00 0x0a 0x30 0xf9 |
| 82 | |
Bob Wilson | adb93e5 | 2010-08-05 18:23:43 +0000 | [diff] [blame] | 83 | # CHECK-NOT: rsbeq r0, r2, r0, lsl #0 |
| 84 | # CHECK: rsbeq r0, r2, r0 |
| 85 | 0x00 0x00 0x62 0x00 |
| 86 | |
Bob Wilson | 5935184 | 2010-10-15 03:23:44 +0000 | [diff] [blame] | 87 | # CHECK-NOT: rscseq r0, r0, r1, lsl #0 |
| 88 | # CHECK: rscseq r0, r0, r1 |
Bob Wilson | 72de307 | 2010-08-05 18:59:36 +0000 | [diff] [blame] | 89 | 0x01 0x00 0xf0 0x00 |
| 90 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 91 | # CHECK: sbcs r0, pc, #1 |
| 92 | 0x01 0x00 0xdf 0xe2 |
| 93 | |
| 94 | # CHECK: sbfx r0, r1, #0, #8 |
| 95 | 0x51 0x00 0xa7 0xe7 |
| 96 | |
| 97 | # CHECK: ssat r8, #1, r10, lsl #8 |
| 98 | 0x1a 0x84 0xa0 0xe6 |
| 99 | |
Bob Wilson | add51311 | 2010-08-11 23:10:46 +0000 | [diff] [blame] | 100 | # CHECK-NOT: ssatmi r0, #17, r12, lsl #0 |
| 101 | # CHECK: ssatmi r0, #17, r12 |
| 102 | 0x1c 0x00 0xb0 0x46 |
| 103 | |
Johnny Chen | 7b999ea | 2010-04-02 22:27:38 +0000 | [diff] [blame] | 104 | # CHECK: stmdb r10!, {r4, r5, r6, r7, lr} |
| 105 | 0xf0 0x40 0x2a 0xe9 |
| 106 | |
| 107 | # CHECK: teq r0, #31 |
| 108 | 0x1f 0x00 0x30 0xe3 |
| 109 | |
| 110 | # CHECK: ubfx r0, r0, #16, #1 |
| 111 | 0x50 0x08 0xe0 0xe7 |
| 112 | |
Johnny Chen | 74491bb | 2010-08-12 01:40:54 +0000 | [diff] [blame] | 113 | # CHECK: usat r8, #0, r10, asr #32 |
| 114 | 0x5a 0x80 0xe0 0xe6 |
Jim Grosbach | 7e72ec6 | 2010-10-13 21:00:04 +0000 | [diff] [blame] | 115 | |
| 116 | # CHECK: setend be |
| 117 | 0x00 0x02 0x01 0xf1 |
| 118 | |
| 119 | # CHECK: setend le |
| 120 | 0x00 0x00 0x01 0xf1 |
Bruno Cardoso Lopes | 90d1dfe | 2011-02-14 13:09:44 +0000 | [diff] [blame] | 121 | |
| 122 | # CHECK: cpsie aif |
| 123 | 0xc0 0x01 0x08 0xf1 |
| 124 | |
| 125 | # CHECK: cps #15 |
| 126 | 0x0f 0x00 0x02 0xf1 |
| 127 | |
| 128 | # CHECK: cpsie if, #10 |
| 129 | 0xca 0x00 0x0a 0xf1 |
Bruno Cardoso Lopes | 9cd4397 | 2011-02-18 19:45:59 +0000 | [diff] [blame^] | 130 | |
| 131 | # CHECK: msr cpsr_fc, r0 |
| 132 | 0x00 0xf0 0x29 0xe1 |