1; RUN: llvm-mc -triple msp430 -show-encoding < %s | FileCheck %s 2 3foo: 4 mov r8, r15 5 mov disp+2(r8), r15 6 mov disp+2, r15 7 mov &disp+2, r15 8 mov @r8, r15 9 mov @r8+, r15 10 mov #disp+2, r15 11 12; CHECK: mov r8, r15 ; encoding: [0x0f,0x48] 13; CHECK: mov disp+2(r8), r15 ; encoding: [0x1f,0x48,A,A] 14; CHECK: mov disp+2, r15 ; encoding: [0x1f,0x40,A,A] 15; CHECK: mov &disp+2, r15 ; encoding: [0x1f,0x42,A,A] 16; CHECK: mov @r8, r15 ; encoding: [0x2f,0x48] 17; CHECK: mov @r8+, r15 ; encoding: [0x3f,0x48] 18; CHECK: mov #disp+2, r15 ; encoding: [0x3f,0x40,A,A] 19 20 mov #42, r15 21 mov #42, 12(r15) 22 mov #42, &disp 23 mov disp, disp+2 24 mov r7, @r15 25 26; CHECK: mov #42, r15 ; encoding: [0x3f,0x40,0x2a,0x00] 27; CHECK: mov #42, 12(r15) ; encoding: [0xbf,0x40,0x2a,0x00,0x0c,0x00] 28; CHECK: mov #42, &disp ; encoding: [0xb2,0x40,0x2a,0x00,A,A] 29; CHECK: mov disp, disp+2 ; encoding: [0x90,0x40,A,A,B,B] 30; CHECK: mov r7, 0(r15) ; encoding: [0x8f,0x47,0x00,0x00] 31 32 add r7, r8 33 add 6(r7), r8 34 add &disp, r8 35 add disp, r8 36 add @r9, r8 37 add @r9+, r8 38 add #42, r8 39 40; CHECK: add r7, r8 ; encoding: [0x08,0x57] 41; CHECK: add 6(r7), r8 ; encoding: [0x18,0x57,0x06,0x00] 42; CHECK: add &disp, r8 ; encoding: [0x18,0x52,A,A] 43; CHECK: add disp, r8 ; encoding: [0x18,0x50,A,A] 44; CHECK: add @r9, r8 ; encoding: [0x28,0x59] 45; CHECK: add @r9+, r8 ; encoding: [0x38,0x59] 46; CHECK: add #42, r8 ; encoding: [0x38,0x50,0x2a,0x00] 47 48 add r7, 6(r5) 49 add 6(r7), 6(r5) 50 add &disp, 6(r5) 51 add disp, 6(r5) 52 add @r9, 6(r5) 53 add @r9+, 6(r5) 54 add #42, 6(r5) 55 56; CHECK: add r7, 6(r5) ; encoding: [0x85,0x57,0x06,0x00] 57; CHECK: add 6(r7), 6(r5) ; encoding: [0x95,0x57,0x06,0x00,0x06,0x00] 58; CHECK: add &disp, 6(r5) ; encoding: [0x95,0x52,A,A,0x06,0x00] 59; CHECK: add disp, 6(r5) ; encoding: [0x95,0x50,A,A,0x06,0x00] 60; CHECK: add @r9, 6(r5) ; encoding: [0xa5,0x59,0x06,0x00] 61; CHECK: add @r9+, 6(r5) ; encoding: [0xb5,0x59,0x06,0x00] 62; CHECK: add #42, 6(r5) ; encoding: [0xb5,0x50,0x2a,0x00,0x06,0x00] 63 64 add r7, &disp 65 add 6(r7), &disp 66 add &disp, &disp 67 add disp, &disp 68 add @r9, &disp 69 add @r9+, &disp 70 add #42, &disp 71 72; CHECK: add r7, &disp ; encoding: [0x82,0x57,A,A] 73; CHECK: add 6(r7), &disp ; encoding: [0x92,0x57,0x06,0x00,A,A] 74; CHECK: add &disp, &disp ; encoding: [0x92,0x52,A,A,B,B] 75; CHECK: add disp, &disp ; encoding: [0x92,0x50,A,A,B,B] 76; CHECK: add @r9, &disp ; encoding: [0xa2,0x59,A,A] 77; CHECK: add @r9+, &disp ; encoding: [0xb2,0x59,A,A] 78; CHECK: add #42, &disp ; encoding: [0xb2,0x50,0x2a,0x00,A,A] 79 80 add r7, disp 81 add 6(r7), disp 82 add &disp, disp 83 add disp, disp 84 add @r9, disp 85 add @r9+, disp 86 add #42, disp 87 88; CHECK: add r7, disp ; encoding: [0x80,0x57,A,A] 89; CHECK: add 6(r7), disp ; encoding: [0x90,0x57,0x06,0x00,A,A] 90; CHECK: add &disp, disp ; encoding: [0x90,0x52,A,A,B,B] 91; CHECK: add disp, disp ; encoding: [0x90,0x50,A,A,B,B] 92; CHECK: add @r9, disp ; encoding: [0xa0,0x59,A,A] 93; CHECK: add @r9+, disp ; encoding: [0xb0,0x59,A,A] 94; CHECK: add #42, disp ; encoding: [0xb0,0x50,0x2a,0x00,A,A] 95 96 call r7 97 call 6(r7) 98 call @r7 99 call @r7+ 100 call disp+6(r7) 101 call &disp 102 call disp 103 call #disp 104 105; CHECK: call r7 ; encoding: [0x87,0x12] 106; CHECK: call 6(r7) ; encoding: [0x97,0x12,0x06,0x00] 107; CHECK: call @r7 ; encoding: [0xa7,0x12] 108; CHECK: call @r7+ ; encoding: [0xb7,0x12] 109; CHECK: call disp+6(r7) ; encoding: [0x97,0x12,A,A] 110; CHECK: call &disp ; encoding: [0x92,0x12,A,A] 111; CHECK: call disp ; encoding: [0x90,0x12,A,A] 112; CHECK: call #disp ; encoding: [0xb0,0x12,A,A] 113 114 rra r7 ; CHECK: rra r7 ; encoding: [0x07,0x11] 115 rra 2(r7) ; CHECK: rra 2(r7) ; encoding: [0x17,0x11,0x02,0x00] 116 rra @r7 ; CHECK: rra @r7 ; encoding: [0x27,0x11] 117 rra @r7+ ; CHECK: rra @r7+ ; encoding: [0x37,0x11] 118 119 rrc r7 ; CHECK: rrc r7 ; encoding: [0x07,0x10] 120 rrc 2(r7) ; CHECK: rrc 2(r7) ; encoding: [0x17,0x10,0x02,0x00] 121 rrc @r7 ; CHECK: rrc @r7 ; encoding: [0x27,0x10] 122 rrc @r7+ ; CHECK: rrc @r7+ ; encoding: [0x37,0x10] 123 124 swpb r7 ; CHECK: swpb r7 ; encoding: [0x87,0x10] 125 swpb 2(r7) ; CHECK: swpb 2(r7) ; encoding: [0x97,0x10,0x02,0x00] 126 swpb @r7 ; CHECK: swpb @r7 ; encoding: [0xa7,0x10] 127 swpb @r7+ ; CHECK: swpb @r7+ ; encoding: [0xb7,0x10] 128 129 sxt r7 ; CHECK: sxt r7 ; encoding: [0x87,0x11] 130 sxt 2(r7) ; CHECK: sxt 2(r7) ; encoding: [0x97,0x11,0x02,0x00] 131 sxt @r7 ; CHECK: sxt @r7 ; encoding: [0xa7,0x11] 132 sxt @r7+ ; CHECK: sxt @r7+ ; encoding: [0xb7,0x11] 133 134 cmp r5, r7 ; CHECK: cmp r5, r7 ; encoding: [0x07,0x95] 135 cmp 2(r5), r7 ; CHECK: cmp 2(r5), r7 ; encoding: [0x17,0x95,0x02,0x00] 136 cmp #-1, r7 ; CHECK: cmp #-1, r7 ; encoding: [0x37,0x93] 137 cmp #42, r7 ; CHECK: cmp #42, r7 ; encoding: [0x37,0x90,0x2a,0x00] 138 cmp @r5, r7 ; CHECK: cmp @r5, r7 ; encoding: [0x27,0x95] 139 cmp @r5+, r7 ; CHECK: cmp @r5+, r7 ; encoding: [0x37,0x95] 140 141 cmp r5, 2(r7) ; CHECK: cmp r5, 2(r7) ; encoding: [0x87,0x95,0x02,0x00] 142 cmp 2(r7), 2(r7) ; CHECK: cmp 2(r7), 2(r7) ; encoding: [0x97,0x97,0x02,0x00,0x02,0x00] 143 cmp #-1, 2(r7) ; CHECK: cmp #-1, 2(r7) ; encoding: [0xb7,0x93,0x02,0x00] 144 cmp #42, 2(r7) ; CHECK: cmp #42, 2(r7) ; encoding: [0xb7,0x90,0x2a,0x00,0x02,0x00] 145 cmp @r5, 2(r7) ; CHECK: cmp @r5, 2(r7) ; encoding: [0xa7,0x95,0x02,0x00] 146 cmp @r5+, 2(r7) ; CHECK: cmp @r5+, 2(r7) ; encoding: [0xb7,0x95,0x02,0x00] 147 148 bit r5, r7 ; CHECK: bit r5, r7 ; encoding: [0x07,0xb5] 149 bit 2(r5), r7 ; CHECK: bit 2(r5), r7 ; encoding: [0x17,0xb5,0x02,0x00] 150 bit #-1, r7 ; CHECK: bit #-1, r7 ; encoding: [0x37,0xb3] 151 bit #42, r7 ; CHECK: bit #42, r7 ; encoding: [0x37,0xb0,0x2a,0x00] 152 bit @r5, r7 ; CHECK: bit @r5, r7 ; encoding: [0x27,0xb5] 153 bit @r5+, r7 ; CHECK: bit @r5+, r7 ; encoding: [0x37,0xb5] 154 155 bit r5, 2(r7) ; CHECK: bit r5, 2(r7) ; encoding: [0x87,0xb5,0x02,0x00] 156 bit 2(r7), 2(r7) ; CHECK: bit 2(r7), 2(r7) ; encoding: [0x97,0xb7,0x02,0x00,0x02,0x00] 157 bit #-1, 2(r7) ; CHECK: bit #-1, 2(r7) ; encoding: [0xb7,0xb3,0x02,0x00] 158 bit #42, 2(r7) ; CHECK: bit #42, 2(r7) ; encoding: [0xb7,0xb0,0x2a,0x00,0x02,0x00] 159 bit @r5, 2(r7) ; CHECK: bit @r5, 2(r7) ; encoding: [0xa7,0xb5,0x02,0x00] 160 bit @r5+, 2(r7) ; CHECK: bit @r5+, 2(r7) ; encoding: [0xb7,0xb5,0x02,0x00] 161 162disp: 163 .word 0xcafe 164 .word 0xbabe 165