164 lines · plain
1; RUN: llvm-mc -triple msp430 -show-encoding %s \2; RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s3 4; RUN: llvm-mc -triple msp430 -filetype=obj %s \5; RUN: | llvm-objdump -d - | FileCheck --check-prefix=CHECK-INST %s6 7 ;; IForm8 instructions8 mov.b r7, r8 ; CHECK-INST: mov.b r7, r89 ; CHECK: encoding: [0x48,0x47]10 add.b r7, r8 ; CHECK-INST: add.b r7, r811 ; CHECK: encoding: [0x48,0x57]12 addc.b r7, r8 ; CHECK-INST: addc.b r7, r813 ; CHECK: encoding: [0x48,0x67]14 subc.b r7, r8 ; CHECK-INST: subc.b r7, r815 ; CHECK: encoding: [0x48,0x77]16 sub.b r7, r8 ; CHECK-INST: sub.b r7, r817 ; CHECK: encoding: [0x48,0x87]18 cmp.b r7, r8 ; CHECK-INST: cmp.b r7, r819 ; CHECK: encoding: [0x48,0x97]20 dadd.b r7, r8 ; CHECK-INST: dadd.b r7, r821 ; CHECK: encoding: [0x48,0xa7]22 bit.b r7, r8 ; CHECK-INST: bit.b r7, r823 ; CHECK: encoding: [0x48,0xb7]24 bic.b r7, r8 ; CHECK-INST: bic.b r7, r825 ; CHECK: encoding: [0x48,0xc7]26 bis.b r7, r8 ; CHECK-INST: bis.b r7, r827 ; CHECK: encoding: [0x48,0xd7]28 xor.b r7, r8 ; CHECK-INST: xor.b r7, r829 ; CHECK: encoding: [0x48,0xe7]30 and.b r7, r8 ; CHECK-INST: and.b r7, r831 ; CHECK: encoding: [0x48,0xf7]32 33 ;; IForm16 instructions34 mov r7, r8 ; CHECK-INST: mov r7, r835 ; CHECK: encoding: [0x08,0x47]36 add r7, r8 ; CHECK-INST: add r7, r837 ; CHECK: encoding: [0x08,0x57]38 addc r7, r8 ; CHECK-INST: addc r7, r839 ; CHECK: encoding: [0x08,0x67]40 subc r7, r8 ; CHECK-INST: subc r7, r841 ; CHECK: encoding: [0x08,0x77]42 sub r7, r8 ; CHECK-INST: sub r7, r843 ; CHECK: encoding: [0x08,0x87]44 cmp r7, r8 ; CHECK-INST: cmp r7, r845 ; CHECK: encoding: [0x08,0x97]46 dadd r7, r8 ; CHECK-INST: dadd r7, r847 ; CHECK: encoding: [0x08,0xa7]48 bit r7, r8 ; CHECK-INST: bit r7, r849 ; CHECK: encoding: [0x08,0xb7]50 bic r7, r8 ; CHECK-INST: bic r7, r851 ; CHECK: encoding: [0x08,0xc7]52 bis r7, r8 ; CHECK-INST: bis r7, r853 ; CHECK: encoding: [0x08,0xd7]54 xor r7, r8 ; CHECK-INST: xor r7, r855 ; CHECK: encoding: [0x08,0xe7]56 and r7, r8 ; CHECK-INST: and r7, r857 ; CHECK: encoding: [0x08,0xf7]58 59 ;; IIForm8 instructions60 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 instructions68 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 instructions84 jnz -2 ; CHECK-INST: jne $-285 ; CHECK: encoding: [0xfe,0x23]86 jne -2 ; CHECK-INST: jne $-287 ; CHECK: encoding: [0xfe,0x23]88 jeq -2 ; CHECK-INST: jeq $-289 ; CHECK: encoding: [0xfe,0x27]90 jz -2 ; CHECK-INST: jeq $-291 ; CHECK: encoding: [0xfe,0x27]92 jnc -2 ; CHECK-INST: jlo $-293 ; CHECK: encoding: [0xfe,0x2b]94 jlo -2 ; CHECK-INST: jlo $-295 ; CHECK: encoding: [0xfe,0x2b]96 jc -2 ; CHECK-INST: jhs $-297 ; CHECK: encoding: [0xfe,0x2f]98 jhs -2 ; CHECK-INST: jhs $-299 ; CHECK: encoding: [0xfe,0x2f]100 jn -2 ; CHECK-INST: jn $-2101 ; CHECK: encoding: [0xfe,0x33]102 jge -2 ; CHECK-INST: jge $-2103 ; CHECK: encoding: [0xfe,0x37]104 jl -2 ; CHECK-INST: jl $-2105 ; CHECK: encoding: [0xfe,0x3b]106 jmp $-2 ; CHECK-INST: jmp $-2107 ; CHECK: encoding: [0xfe,0x3f]108 109 ;; Emulated arithmetic instructions110 adc r7 ; CHECK-INST: adc r7111 ; CHECK: encoding: [0x07,0x63]112 dadc r7 ; CHECK-INST: dadc r7113 ; CHECK: encoding: [0x07,0xa3]114 dec r7 ; CHECK-INST: dec r7115 ; CHECK: encoding: [0x17,0x83]116 decd r7 ; CHECK-INST: decd r7117 ; CHECK: encoding: [0x27,0x83]118 inc r7 ; CHECK-INST: inc r7119 ; CHECK: encoding: [0x17,0x53]120 incd r7 ; CHECK-INST: incd r7121 ; CHECK: encoding: [0x27,0x53]122 sbc r7 ; CHECK-INST: sbc r7123 ; CHECK: encoding: [0x07,0x73]124 125 ;; Emulated logical instructions126 inv r7 ; CHECK-INST: inv r7127 ; CHECK: encoding: [0x37,0xe3]128 rla r7 ; CHECK-INST: add r7, r7129 ; CHECK: encoding: [0x07,0x57]130 rlc r7 ; CHECK-INST: addc r7, r7131 ; CHECK: encoding: [0x07,0x67]132 133 ;; Emulated program flow control instructions134 br r7 ; CHECK-INST: br r7 135 ; CHECK: encoding: [0x00,0x47]136 dint ; CHECK-INST: dint137 ; CHECK: encoding: [0x32,0xc2]138 eint ; CHECK-INST: eint139 ; CHECK: encoding: [0x32,0xd2]140 nop ; CHECK-INST: nop141 ; CHECK: encoding: [0x03,0x43]142 ret ; CHECK-INST: ret 143 ; CHECK: encoding: [0x30,0x41]144 145 ;; Emulated data instruction146 clr r7 ; CHECK-INST: clr r7147 ; CHECK: encoding: [0x07,0x43]148 clrc ; CHECK-INST: clrc149 ; CHECK: encoding: [0x12,0xc3]150 clrn ; CHECK-INST: clrn151 ; CHECK: encoding: [0x22,0xc2]152 clrz ; CHECK-INST: clrz153 ; CHECK: encoding: [0x22,0xc3]154 pop r7 ; CHECK-INST: pop r7155 ; CHECK: encoding: [0x37,0x41]156 setc ; CHECK-INST: setc157 ; CHECK: encoding: [0x12,0xd3]158 setn ; CHECK-INST: setn159 ; CHECK: encoding: [0x22,0xd2]160 setz ; CHECK-INST: setz161 ; CHECK: encoding: [0x22,0xd3]162 tst r7 ; CHECK-INST: tst r7163 ; CHECK: encoding: [0x07,0x93]164