forked from OSchip/llvm-project
164 lines
6.6 KiB
ArmAsm
164 lines
6.6 KiB
ArmAsm
; RUN: llvm-mc -triple msp430 -show-encoding %s \
|
|
; RUN: | FileCheck -check-prefixes=CHECK,CHECK-INST %s
|
|
|
|
; RUN: llvm-mc -triple msp430 -filetype=obj %s \
|
|
; RUN: | llvm-objdump -d - | FileCheck --check-prefix=CHECK-INST %s
|
|
|
|
;; IForm8 instructions
|
|
mov.b r7, r8 ; CHECK-INST: mov.b r7, r8
|
|
; CHECK: encoding: [0x48,0x47]
|
|
add.b r7, r8 ; CHECK-INST: add.b r7, r8
|
|
; CHECK: encoding: [0x48,0x57]
|
|
addc.b r7, r8 ; CHECK-INST: addc.b r7, r8
|
|
; CHECK: encoding: [0x48,0x67]
|
|
subc.b r7, r8 ; CHECK-INST: subc.b r7, r8
|
|
; CHECK: encoding: [0x48,0x77]
|
|
sub.b r7, r8 ; CHECK-INST: sub.b r7, r8
|
|
; CHECK: encoding: [0x48,0x87]
|
|
cmp.b r7, r8 ; CHECK-INST: cmp.b r7, r8
|
|
; CHECK: encoding: [0x48,0x97]
|
|
dadd.b r7, r8 ; CHECK-INST: dadd.b r7, r8
|
|
; CHECK: encoding: [0x48,0xa7]
|
|
bit.b r7, r8 ; CHECK-INST: bit.b r7, r8
|
|
; CHECK: encoding: [0x48,0xb7]
|
|
bic.b r7, r8 ; CHECK-INST: bic.b r7, r8
|
|
; CHECK: encoding: [0x48,0xc7]
|
|
bis.b r7, r8 ; CHECK-INST: bis.b r7, r8
|
|
; CHECK: encoding: [0x48,0xd7]
|
|
xor.b r7, r8 ; CHECK-INST: xor.b r7, r8
|
|
; CHECK: encoding: [0x48,0xe7]
|
|
and.b r7, r8 ; CHECK-INST: and.b r7, r8
|
|
; CHECK: encoding: [0x48,0xf7]
|
|
|
|
;; IForm16 instructions
|
|
mov r7, r8 ; CHECK-INST: mov r7, r8
|
|
; CHECK: encoding: [0x08,0x47]
|
|
add r7, r8 ; CHECK-INST: add r7, r8
|
|
; CHECK: encoding: [0x08,0x57]
|
|
addc r7, r8 ; CHECK-INST: addc r7, r8
|
|
; CHECK: encoding: [0x08,0x67]
|
|
subc r7, r8 ; CHECK-INST: subc r7, r8
|
|
; CHECK: encoding: [0x08,0x77]
|
|
sub r7, r8 ; CHECK-INST: sub r7, r8
|
|
; CHECK: encoding: [0x08,0x87]
|
|
cmp r7, r8 ; CHECK-INST: cmp r7, r8
|
|
; CHECK: encoding: [0x08,0x97]
|
|
dadd r7, r8 ; CHECK-INST: dadd r7, r8
|
|
; CHECK: encoding: [0x08,0xa7]
|
|
bit r7, r8 ; CHECK-INST: bit r7, r8
|
|
; CHECK: encoding: [0x08,0xb7]
|
|
bic r7, r8 ; CHECK-INST: bic r7, r8
|
|
; CHECK: encoding: [0x08,0xc7]
|
|
bis r7, r8 ; CHECK-INST: bis r7, r8
|
|
; CHECK: encoding: [0x08,0xd7]
|
|
xor r7, r8 ; CHECK-INST: xor r7, r8
|
|
; CHECK: encoding: [0x08,0xe7]
|
|
and r7, r8 ; CHECK-INST: and r7, r8
|
|
; CHECK: encoding: [0x08,0xf7]
|
|
|
|
;; IIForm8 instructions
|
|
rrc.b r7 ; CHECK-INST: rrc.b r7
|
|
; CHECK: encoding: [0x47,0x10]
|
|
rra.b r7 ; CHECK-INST: rra.b r7
|
|
; CHECK: encoding: [0x47,0x11]
|
|
push.b r7 ; CHECK-INST: push.b r7
|
|
; CHECK: encoding: [0x47,0x12]
|
|
|
|
;; IIForm16 instructions
|
|
rrc r7 ; CHECK-INST: rrc r7
|
|
; CHECK: encoding: [0x07,0x10]
|
|
swpb r7 ; CHECK-INST: swpb r7
|
|
; CHECK: encoding: [0x87,0x10]
|
|
rra r7 ; CHECK-INST: rra r7
|
|
; CHECK: encoding: [0x07,0x11]
|
|
sxt r7 ; CHECK-INST: sxt r7
|
|
; CHECK: encoding: [0x87,0x11]
|
|
push r7 ; CHECK-INST: push r7
|
|
; CHECK: encoding: [0x07,0x12]
|
|
call r7 ; CHECK-INST: call r7
|
|
; CHECK: encoding: [0x87,0x12]
|
|
reti ; CHECK-INST: reti
|
|
; CHECK: encoding: [0x00,0x13]
|
|
|
|
;; CJForm instructions
|
|
jnz -2 ; CHECK-INST: jne $-2
|
|
; CHECK: encoding: [0xfe,0x23]
|
|
jne -2 ; CHECK-INST: jne $-2
|
|
; CHECK: encoding: [0xfe,0x23]
|
|
jeq -2 ; CHECK-INST: jeq $-2
|
|
; CHECK: encoding: [0xfe,0x27]
|
|
jz -2 ; CHECK-INST: jeq $-2
|
|
; CHECK: encoding: [0xfe,0x27]
|
|
jnc -2 ; CHECK-INST: jlo $-2
|
|
; CHECK: encoding: [0xfe,0x2b]
|
|
jlo -2 ; CHECK-INST: jlo $-2
|
|
; CHECK: encoding: [0xfe,0x2b]
|
|
jc -2 ; CHECK-INST: jhs $-2
|
|
; CHECK: encoding: [0xfe,0x2f]
|
|
jhs -2 ; CHECK-INST: jhs $-2
|
|
; CHECK: encoding: [0xfe,0x2f]
|
|
jn -2 ; CHECK-INST: jn $-2
|
|
; CHECK: encoding: [0xfe,0x33]
|
|
jge -2 ; CHECK-INST: jge $-2
|
|
; CHECK: encoding: [0xfe,0x37]
|
|
jl -2 ; CHECK-INST: jl $-2
|
|
; CHECK: encoding: [0xfe,0x3b]
|
|
jmp $-2 ; CHECK-INST: jmp $-2
|
|
; CHECK: encoding: [0xfe,0x3f]
|
|
|
|
;; Emulated arithmetic instructions
|
|
adc r7 ; CHECK-INST: adc r7
|
|
; CHECK: encoding: [0x07,0x63]
|
|
dadc r7 ; CHECK-INST: dadc r7
|
|
; CHECK: encoding: [0x07,0xa3]
|
|
dec r7 ; CHECK-INST: dec r7
|
|
; CHECK: encoding: [0x17,0x83]
|
|
decd r7 ; CHECK-INST: decd r7
|
|
; CHECK: encoding: [0x27,0x83]
|
|
inc r7 ; CHECK-INST: inc r7
|
|
; CHECK: encoding: [0x17,0x53]
|
|
incd r7 ; CHECK-INST: incd r7
|
|
; CHECK: encoding: [0x27,0x53]
|
|
sbc r7 ; CHECK-INST: sbc r7
|
|
; CHECK: encoding: [0x07,0x73]
|
|
|
|
;; Emulated logical instructions
|
|
inv r7 ; CHECK-INST: inv r7
|
|
; CHECK: encoding: [0x37,0xe3]
|
|
rla r7 ; CHECK-INST: add r7, r7
|
|
; CHECK: encoding: [0x07,0x57]
|
|
rlc r7 ; CHECK-INST: addc r7, r7
|
|
; CHECK: encoding: [0x07,0x67]
|
|
|
|
;; Emulated program flow control instructions
|
|
br r7 ; CHECK-INST: br r7
|
|
; CHECK: encoding: [0x00,0x47]
|
|
dint ; CHECK-INST: dint
|
|
; CHECK: encoding: [0x32,0xc2]
|
|
eint ; CHECK-INST: eint
|
|
; CHECK: encoding: [0x32,0xd2]
|
|
nop ; CHECK-INST: nop
|
|
; CHECK: encoding: [0x03,0x43]
|
|
ret ; CHECK-INST: ret
|
|
; CHECK: encoding: [0x30,0x41]
|
|
|
|
;; Emulated data instruction
|
|
clr r7 ; CHECK-INST: clr r7
|
|
; CHECK: encoding: [0x07,0x43]
|
|
clrc ; CHECK-INST: clrc
|
|
; CHECK: encoding: [0x12,0xc3]
|
|
clrn ; CHECK-INST: clrn
|
|
; CHECK: encoding: [0x22,0xc2]
|
|
clrz ; CHECK-INST: clrz
|
|
; CHECK: encoding: [0x22,0xc3]
|
|
pop r7 ; CHECK-INST: pop r7
|
|
; CHECK: encoding: [0x37,0x41]
|
|
setc ; CHECK-INST: setc
|
|
; CHECK: encoding: [0x12,0xd3]
|
|
setn ; CHECK-INST: setn
|
|
; CHECK: encoding: [0x22,0xd2]
|
|
setz ; CHECK-INST: setz
|
|
; CHECK: encoding: [0x22,0xd3]
|
|
tst r7 ; CHECK-INST: tst r7
|
|
; CHECK: encoding: [0x07,0x93]
|