1; RUN: llvm-mc -triple msp430 -show-encoding %s \ 2; RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s 3 4; RUN: llvm-mc -triple msp430 -filetype=obj %s \ 5; RUN: | llvm-objdump -d - | FileCheck --check-prefix=CHECK-INST %s 6 7 ;; IForm8 instructions 8 mov.b r7, r8 ; CHECK-INST: mov.b r7, r8 9 ; CHECK: encoding: [0x48,0x47] 10 add.b r7, r8 ; CHECK-INST: add.b r7, r8 11 ; CHECK: encoding: [0x48,0x57] 12 addc.b r7, r8 ; CHECK-INST: addc.b r7, r8 13 ; CHECK: encoding: [0x48,0x67] 14 subc.b r7, r8 ; CHECK-INST: subc.b r7, r8 15 ; CHECK: encoding: [0x48,0x77] 16 sub.b r7, r8 ; CHECK-INST: sub.b r7, r8 17 ; CHECK: encoding: [0x48,0x87] 18 cmp.b r7, r8 ; CHECK-INST: cmp.b r7, r8 19 ; CHECK: encoding: [0x48,0x97] 20 dadd.b r7, r8 ; CHECK-INST: dadd.b r7, r8 21 ; CHECK: encoding: [0x48,0xa7] 22 bit.b r7, r8 ; CHECK-INST: bit.b r7, r8 23 ; CHECK: encoding: [0x48,0xb7] 24 bic.b r7, r8 ; CHECK-INST: bic.b r7, r8 25 ; CHECK: encoding: [0x48,0xc7] 26 bis.b r7, r8 ; CHECK-INST: bis.b r7, r8 27 ; CHECK: encoding: [0x48,0xd7] 28 xor.b r7, r8 ; CHECK-INST: xor.b r7, r8 29 ; CHECK: encoding: [0x48,0xe7] 30 and.b r7, r8 ; CHECK-INST: and.b r7, r8 31 ; CHECK: encoding: [0x48,0xf7] 32 33 ;; IForm16 instructions 34 mov r7, r8 ; CHECK-INST: mov r7, r8 35 ; CHECK: encoding: [0x08,0x47] 36 add r7, r8 ; CHECK-INST: add r7, r8 37 ; CHECK: encoding: [0x08,0x57] 38 addc r7, r8 ; CHECK-INST: addc r7, r8 39 ; CHECK: encoding: [0x08,0x67] 40 subc r7, r8 ; CHECK-INST: subc r7, r8 41 ; CHECK: encoding: [0x08,0x77] 42 sub r7, r8 ; CHECK-INST: sub r7, r8 43 ; CHECK: encoding: [0x08,0x87] 44 cmp r7, r8 ; CHECK-INST: cmp r7, r8 45 ; CHECK: encoding: [0x08,0x97] 46 dadd r7, r8 ; CHECK-INST: dadd r7, r8 47 ; CHECK: encoding: [0x08,0xa7] 48 bit r7, r8 ; CHECK-INST: bit r7, r8 49 ; CHECK: encoding: [0x08,0xb7] 50 bic r7, r8 ; CHECK-INST: bic r7, r8 51 ; CHECK: encoding: [0x08,0xc7] 52 bis r7, r8 ; CHECK-INST: bis r7, r8 53 ; CHECK: encoding: [0x08,0xd7] 54 xor r7, r8 ; CHECK-INST: xor r7, r8 55 ; CHECK: encoding: [0x08,0xe7] 56 and r7, r8 ; CHECK-INST: and r7, r8 57 ; CHECK: encoding: [0x08,0xf7] 58 59 ;; IIForm8 instructions 60 rrc.b r7 ; CHECK-INST: rrc.b r7 61 ; CHECK: encoding: [0x47,0x10] 62 rra.b r7 ; CHECK-INST: rra.b r7 63 ; CHECK: encoding: [0x47,0x11] 64 push.b r7 ; CHECK-INST: push.b r7 65 ; CHECK: encoding: [0x47,0x12] 66 67 ;; IIForm16 instructions 68 rrc r7 ; CHECK-INST: rrc r7 69 ; CHECK: encoding: [0x07,0x10] 70 swpb r7 ; CHECK-INST: swpb r7 71 ; CHECK: encoding: [0x87,0x10] 72 rra r7 ; CHECK-INST: rra r7 73 ; CHECK: encoding: [0x07,0x11] 74 sxt r7 ; CHECK-INST: sxt r7 75 ; CHECK: encoding: [0x87,0x11] 76 push r7 ; CHECK-INST: push r7 77 ; CHECK: encoding: [0x07,0x12] 78 call r7 ; CHECK-INST: call r7 79 ; CHECK: encoding: [0x87,0x12] 80 reti ; CHECK-INST: reti 81 ; CHECK: encoding: [0x00,0x13] 82 83 ;; CJForm instructions 84 jnz -2 ; CHECK-INST: jne $-2 85 ; CHECK: encoding: [0xfe,0x23] 86 jne -2 ; CHECK-INST: jne $-2 87 ; CHECK: encoding: [0xfe,0x23] 88 jeq -2 ; CHECK-INST: jeq $-2 89 ; CHECK: encoding: [0xfe,0x27] 90 jz -2 ; CHECK-INST: jeq $-2 91 ; CHECK: encoding: [0xfe,0x27] 92 jnc -2 ; CHECK-INST: jlo $-2 93 ; CHECK: encoding: [0xfe,0x2b] 94 jlo -2 ; CHECK-INST: jlo $-2 95 ; CHECK: encoding: [0xfe,0x2b] 96 jc -2 ; CHECK-INST: jhs $-2 97 ; CHECK: encoding: [0xfe,0x2f] 98 jhs -2 ; CHECK-INST: jhs $-2 99 ; CHECK: encoding: [0xfe,0x2f] 100 jn -2 ; CHECK-INST: jn $-2 101 ; CHECK: encoding: [0xfe,0x33] 102 jge -2 ; CHECK-INST: jge $-2 103 ; CHECK: encoding: [0xfe,0x37] 104 jl -2 ; CHECK-INST: jl $-2 105 ; CHECK: encoding: [0xfe,0x3b] 106 jmp $-2 ; CHECK-INST: jmp $-2 107 ; CHECK: encoding: [0xfe,0x3f] 108 109 ;; Emulated arithmetic instructions 110 adc r7 ; CHECK-INST: adc r7 111 ; CHECK: encoding: [0x07,0x63] 112 dadc r7 ; CHECK-INST: dadc r7 113 ; CHECK: encoding: [0x07,0xa3] 114 dec r7 ; CHECK-INST: dec r7 115 ; CHECK: encoding: [0x17,0x83] 116 decd r7 ; CHECK-INST: decd r7 117 ; CHECK: encoding: [0x27,0x83] 118 inc r7 ; CHECK-INST: inc r7 119 ; CHECK: encoding: [0x17,0x53] 120 incd r7 ; CHECK-INST: incd r7 121 ; CHECK: encoding: [0x27,0x53] 122 sbc r7 ; CHECK-INST: sbc r7 123 ; CHECK: encoding: [0x07,0x73] 124 125 ;; Emulated logical instructions 126 inv r7 ; CHECK-INST: inv r7 127 ; CHECK: encoding: [0x37,0xe3] 128 rla r7 ; CHECK-INST: add r7, r7 129 ; CHECK: encoding: [0x07,0x57] 130 rlc r7 ; CHECK-INST: addc r7, r7 131 ; CHECK: encoding: [0x07,0x67] 132 133 ;; Emulated program flow control instructions 134 br r7 ; CHECK-INST: br r7 135 ; CHECK: encoding: [0x00,0x47] 136 dint ; CHECK-INST: dint 137 ; CHECK: encoding: [0x32,0xc2] 138 eint ; CHECK-INST: eint 139 ; CHECK: encoding: [0x32,0xd2] 140 nop ; CHECK-INST: nop 141 ; CHECK: encoding: [0x03,0x43] 142 ret ; CHECK-INST: ret 143 ; CHECK: encoding: [0x30,0x41] 144 145 ;; Emulated data instruction 146 clr r7 ; CHECK-INST: clr r7 147 ; CHECK: encoding: [0x07,0x43] 148 clrc ; CHECK-INST: clrc 149 ; CHECK: encoding: [0x12,0xc3] 150 clrn ; CHECK-INST: clrn 151 ; CHECK: encoding: [0x22,0xc2] 152 clrz ; CHECK-INST: clrz 153 ; CHECK: encoding: [0x22,0xc3] 154 pop r7 ; CHECK-INST: pop r7 155 ; CHECK: encoding: [0x37,0x41] 156 setc ; CHECK-INST: setc 157 ; CHECK: encoding: [0x12,0xd3] 158 setn ; CHECK-INST: setn 159 ; CHECK: encoding: [0x22,0xd2] 160 setz ; CHECK-INST: setz 161 ; CHECK: encoding: [0x22,0xd3] 162 tst r7 ; CHECK-INST: tst r7 163 ; CHECK: encoding: [0x07,0x93] 164