mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-10 20:42:32 +00:00
[AVR] Add all of the machine code test suite
Summary: This adds all of the AVR machine code tests. Reviewers: arsenm, kparzysz Subscribers: wdng, japaric Differential Revision: https://reviews.llvm.org/D26387 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286417 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
35ce2dbc66
commit
64af2512f1
14
test/MC/AVR/inst-adc.s
Normal file
14
test/MC/AVR/inst-adc.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
adc r0, r15
|
||||
adc r15, r0
|
||||
adc r16, r31
|
||||
adc r31, r16
|
||||
|
||||
; CHECK: adc r0, r15 ; encoding: [0x0f,0x1c]
|
||||
; CHECK: adc r15, r0 ; encoding: [0xf0,0x1c]
|
||||
; CHECK: adc r16, r31 ; encoding: [0x0f,0x1f]
|
||||
; CHECK: adc r31, r16 ; encoding: [0xf0,0x1f]
|
14
test/MC/AVR/inst-add.s
Normal file
14
test/MC/AVR/inst-add.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
add r0, r15
|
||||
add r15, r0
|
||||
add r16, r31
|
||||
add r31, r16
|
||||
|
||||
; CHECK: add r0, r15 ; encoding: [0x0f,0x0c]
|
||||
; CHECK: add r15, r0 ; encoding: [0xf0,0x0c]
|
||||
; CHECK: add r16, r31 ; encoding: [0x0f,0x0f]
|
||||
; CHECK: add r31, r16 ; encoding: [0xf0,0x0f]
|
27
test/MC/AVR/inst-adiw.s
Normal file
27
test/MC/AVR/inst-adiw.s
Normal file
@ -0,0 +1,27 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=addsubiw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
adiw r26, 12
|
||||
adiw r26, 63
|
||||
|
||||
adiw r28, 17
|
||||
adiw r28, 0
|
||||
|
||||
adiw r30, 63
|
||||
adiw r30, 3
|
||||
|
||||
adiw r24, SYMBOL
|
||||
|
||||
; CHECK: adiw r26, 12 ; encoding: [0x1c,0x96]
|
||||
; CHECK: adiw r26, 63 ; encoding: [0xdf,0x96]
|
||||
|
||||
; CHECK: adiw r28, 17 ; encoding: [0x61,0x96]
|
||||
; CHECK: adiw r28, 0 ; encoding: [0x20,0x96]
|
||||
|
||||
; CHECK: adiw r30, 63 ; encoding: [0xff,0x96]
|
||||
; CHECK: adiw r30, 3 ; encoding: [0x33,0x96]
|
||||
|
||||
; CHECK: adiw r24, SYMBOL ; encoding: [0b00AAAAAA,0x96]
|
||||
; fixup A - offset: 0, value: SYMBOL, kind: fixup_6_adiw
|
14
test/MC/AVR/inst-and.s
Normal file
14
test/MC/AVR/inst-and.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
and r0, r15
|
||||
and r15, r0
|
||||
and r16, r31
|
||||
and r31, r16
|
||||
|
||||
; CHECK: and r0, r15 ; encoding: [0x0f,0x20]
|
||||
; CHECK: and r15, r0 ; encoding: [0xf0,0x20]
|
||||
; CHECK: and r16, r31 ; encoding: [0x0f,0x23]
|
||||
; CHECK: and r31, r16 ; encoding: [0xf0,0x23]
|
19
test/MC/AVR/inst-andi.s
Normal file
19
test/MC/AVR/inst-andi.s
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
andi r16, 255
|
||||
andi r29, 190
|
||||
andi r22, 172
|
||||
andi r27, 92
|
||||
|
||||
andi r20, BAR
|
||||
|
||||
; CHECK: andi r16, 255 ; encoding: [0x0f,0x7f]
|
||||
; CHECK: andi r29, 190 ; encoding: [0xde,0x7b]
|
||||
; CHECK: andi r22, 172 ; encoding: [0x6c,0x7a]
|
||||
; CHECK: andi r27, 92 ; encoding: [0xbc,0x75]
|
||||
|
||||
; CHECK: andi r20, BAR ; encoding: [0x40'A',0x70]
|
||||
; CHECK: ; fixup A - offset: 0, value: BAR, kind: fixup_ldi
|
14
test/MC/AVR/inst-asr.s
Normal file
14
test/MC/AVR/inst-asr.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
asr r31
|
||||
asr r25
|
||||
asr r5
|
||||
asr r0
|
||||
|
||||
; CHECK: asr r31 ; encoding: [0xf5,0x95]
|
||||
; CHECK: asr r25 ; encoding: [0x95,0x95]
|
||||
; CHECK: asr r5 ; encoding: [0x55,0x94]
|
||||
; CHECK: asr r0 ; encoding: [0x05,0x94]
|
14
test/MC/AVR/inst-bld.s
Normal file
14
test/MC/AVR/inst-bld.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
bld r3, 5
|
||||
bld r1, 1
|
||||
bld r0, 0
|
||||
bld r7, 2
|
||||
|
||||
; CHECK: bld r3, 5 ; encoding: [0x35,0xf8]
|
||||
; CHECK: bld r1, 1 ; encoding: [0x11,0xf8]
|
||||
; CHECK: bld r0, 0 ; encoding: [0x00,0xf8]
|
||||
; CHECK: bld r7, 2 ; encoding: [0x72,0xf8]
|
12
test/MC/AVR/inst-brbc.s
Normal file
12
test/MC/AVR/inst-brbc.s
Normal file
@ -0,0 +1,12 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
brbc 3, .+8
|
||||
brbc 0, .-16
|
||||
|
||||
; CHECK: brvc .Ltmp0+8 ; encoding: [0bAAAAA011,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp0+8, kind: fixup_7_pcrel
|
||||
; CHECK: brcc .Ltmp1-16 ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp1-16, kind: fixup_7_pcrel
|
12
test/MC/AVR/inst-brbs.s
Normal file
12
test/MC/AVR/inst-brbs.s
Normal file
@ -0,0 +1,12 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
brbs 3, .+8
|
||||
brbs 0, .-12
|
||||
|
||||
; CHECK: brvs .Ltmp0+8 ; encoding: [0bAAAAA011,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp0+8, kind: fixup_7_pcrel
|
||||
; CHECK: brcs .Ltmp1-12 ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp1-12, kind: fixup_7_pcrel
|
8
test/MC/AVR/inst-break.s
Normal file
8
test/MC/AVR/inst-break.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=break -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
break
|
||||
|
||||
; CHECK: break ; encoding: [0x98,0x95]
|
14
test/MC/AVR/inst-bst.s
Normal file
14
test/MC/AVR/inst-bst.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
bst r3, 5
|
||||
bst r1, 1
|
||||
bst r0, 0
|
||||
bst r7, 2
|
||||
|
||||
; CHECK: bst r3, 5 ; encoding: [0x35,0xfa]
|
||||
; CHECK: bst r1, 1 ; encoding: [0x11,0xfa]
|
||||
; CHECK: bst r0, 0 ; encoding: [0x00,0xfa]
|
||||
; CHECK: bst r7, 2 ; encoding: [0x72,0xfa]
|
14
test/MC/AVR/inst-call.s
Normal file
14
test/MC/AVR/inst-call.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=jmpcall -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
call 4096
|
||||
call -124
|
||||
call -12
|
||||
call 0
|
||||
|
||||
; CHECK: call 4096 ; encoding: [0x0e,0x94,0x00,0x08]
|
||||
; CHECK: call -124 ; encoding: [0xff,0x95,0xc2,0xff]
|
||||
; CHECK: call -12 ; encoding: [0xff,0x95,0xfa,0xff]
|
||||
; CHECK: call 0 ; encoding: [0x0e,0x94,0x00,0x00]
|
20
test/MC/AVR/inst-cbi.s
Normal file
20
test/MC/AVR/inst-cbi.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
cbi 3, 5
|
||||
cbi 1, 1
|
||||
cbi 0, 0
|
||||
cbi 7, 2
|
||||
|
||||
cbi bar-2, 2
|
||||
|
||||
; CHECK: cbi 3, 5 ; encoding: [0x1d,0x98]
|
||||
; CHECK: cbi 1, 1 ; encoding: [0x09,0x98]
|
||||
; CHECK: cbi 0, 0 ; encoding: [0x00,0x98]
|
||||
; CHECK: cbi 7, 2 ; encoding: [0x3a,0x98]
|
||||
|
||||
; CHECK: cbi bar-2, 2 ; encoding: [0bAAAAA010,0x98]
|
||||
; CHECK: ; fixup A - offset: 0, value: bar-2, kind: fixup_port5
|
||||
|
14
test/MC/AVR/inst-cbr.s
Normal file
14
test/MC/AVR/inst-cbr.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
cbr r17, 208
|
||||
cbr r24, 190
|
||||
cbr r20, 173
|
||||
cbr r31, 0
|
||||
|
||||
; CHECK: cbr r17, 208 ; encoding: [0x1f,0x72]
|
||||
; CHECK: cbr r24, 190 ; encoding: [0x81,0x74]
|
||||
; CHECK: cbr r20, 173 ; encoding: [0x42,0x75]
|
||||
; CHECK: cbr r31, 0 ; encoding: [0xff,0x7f]
|
14
test/MC/AVR/inst-clr.s
Normal file
14
test/MC/AVR/inst-clr.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
clr r2
|
||||
clr r12
|
||||
clr r5
|
||||
clr r0
|
||||
|
||||
; CHECK: eor r2, r2 ; encoding: [0x22,0x24]
|
||||
; CHECK: eor r12, r12 ; encoding: [0xcc,0x24]
|
||||
; CHECK: eor r5, r5 ; encoding: [0x55,0x24]
|
||||
; CHECK: eor r0, r0 ; encoding: [0x00,0x24]
|
14
test/MC/AVR/inst-com.s
Normal file
14
test/MC/AVR/inst-com.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
com r30
|
||||
com r17
|
||||
com r4
|
||||
com r0
|
||||
|
||||
; CHECK: com r30 ; encoding: [0xe0,0x95]
|
||||
; CHECK: com r17 ; encoding: [0x10,0x95]
|
||||
; CHECK: com r4 ; encoding: [0x40,0x94]
|
||||
; CHECK: com r0 ; encoding: [0x00,0x94]
|
14
test/MC/AVR/inst-cp.s
Normal file
14
test/MC/AVR/inst-cp.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
cp r12, r2
|
||||
cp r19, r0
|
||||
cp r15, r31
|
||||
cp r0, r0
|
||||
|
||||
; CHECK: cp r12, r2 ; encoding: [0xc2,0x14]
|
||||
; CHECK: cp r19, r0 ; encoding: [0x30,0x15]
|
||||
; CHECK: cp r15, r31 ; encoding: [0xff,0x16]
|
||||
; CHECK: cp r0, r0 ; encoding: [0x00,0x14]
|
14
test/MC/AVR/inst-cpc.s
Normal file
14
test/MC/AVR/inst-cpc.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
cp r13, r12
|
||||
cp r20, r0
|
||||
cp r10, r31
|
||||
cp r0, r0
|
||||
|
||||
; CHECK: cp r13, r12 ; encoding: [0xdc,0x14]
|
||||
; CHECK: cp r20, r0 ; encoding: [0x40,0x15]
|
||||
; CHECK: cp r10, r31 ; encoding: [0xaf,0x16]
|
||||
; CHECK: cp r0, r0 ; encoding: [0x00,0x14]
|
20
test/MC/AVR/inst-cpi.s
Normal file
20
test/MC/AVR/inst-cpi.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
cpi r16, 241
|
||||
cpi r29, 190
|
||||
cpi r22, 172
|
||||
cpi r27, 92
|
||||
|
||||
cpi r21, ear
|
||||
|
||||
; CHECK: cpi r16, 241 ; encoding: [0x01,0x3f]
|
||||
; CHECK: cpi r29, 190 ; encoding: [0xde,0x3b]
|
||||
; CHECK: cpi r22, 172 ; encoding: [0x6c,0x3a]
|
||||
; CHECK: cpi r27, 92 ; encoding: [0xbc,0x35]
|
||||
|
||||
; CHECK: cpi r21, ear ; encoding: [0x50'A',0x30]
|
||||
; CHECK: ; fixup A - offset: 0, value: ear, kind: fixup_ldi
|
||||
|
14
test/MC/AVR/inst-cpse.s
Normal file
14
test/MC/AVR/inst-cpse.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
cpse r2, r13
|
||||
cpse r9, r0
|
||||
cpse r5, r31
|
||||
cpse r3, r3
|
||||
|
||||
; CHECK: cpse r2, r13 ; encoding: [0x2d,0x10]
|
||||
; CHECK: cpse r9, r0 ; encoding: [0x90,0x10]
|
||||
; CHECK: cpse r5, r31 ; encoding: [0x5f,0x12]
|
||||
; CHECK: cpse r3, r3 ; encoding: [0x33,0x10]
|
14
test/MC/AVR/inst-dec.s
Normal file
14
test/MC/AVR/inst-dec.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
dec r26
|
||||
dec r3
|
||||
dec r24
|
||||
dec r20
|
||||
|
||||
; CHECK: dec r26 ; encoding: [0xaa,0x95]
|
||||
; CHECK: dec r3 ; encoding: [0x3a,0x94]
|
||||
; CHECK: dec r24 ; encoding: [0x8a,0x95]
|
||||
; CHECK: dec r20 ; encoding: [0x4a,0x95]
|
14
test/MC/AVR/inst-des.s
Normal file
14
test/MC/AVR/inst-des.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=des -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
des 0
|
||||
des 6
|
||||
des 1
|
||||
des 8
|
||||
|
||||
; CHECK: des 0 ; encoding: [0x0b,0x94]
|
||||
; CHECK: des 6 ; encoding: [0x6b,0x94]
|
||||
; CHECK: des 1 ; encoding: [0x1b,0x94]
|
||||
; CHECK: des 8 ; encoding: [0x8b,0x94]
|
8
test/MC/AVR/inst-eicall.s
Normal file
8
test/MC/AVR/inst-eicall.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=eijmpcall -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
eicall
|
||||
|
||||
; CHECK: eicall ; encoding: [0x19,0x95]
|
8
test/MC/AVR/inst-eijmp.s
Normal file
8
test/MC/AVR/inst-eijmp.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=eijmpcall -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
eijmp
|
||||
|
||||
; CHECK: eijmp ; encoding: [0x19,0x94]
|
20
test/MC/AVR/inst-elpm.s
Normal file
20
test/MC/AVR/inst-elpm.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=elpm,elpmx -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
elpm
|
||||
|
||||
elpm r3, Z
|
||||
elpm r23, Z
|
||||
|
||||
elpm r8, Z+
|
||||
elpm r0, Z+
|
||||
|
||||
; CHECK: elpm ; encoding: [0xd8,0x95]
|
||||
|
||||
; CHECK: elpm r3, Z ; encoding: [0x36,0x90]
|
||||
; CHECK: elpm r23, Z ; encoding: [0x76,0x91]
|
||||
|
||||
; CHECK: elpm r8, Z+ ; encoding: [0x87,0x90]
|
||||
; CHECK: elpm r0, Z+ ; encoding: [0x07,0x90]
|
14
test/MC/AVR/inst-eor.s
Normal file
14
test/MC/AVR/inst-eor.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
eor r0, r15
|
||||
eor r15, r0
|
||||
eor r16, r31
|
||||
eor r31, r16
|
||||
|
||||
; CHECK: eor r0, r15 ; encoding: [0x0f,0x24]
|
||||
; CHECK: eor r15, r0 ; encoding: [0xf0,0x24]
|
||||
; CHECK: eor r16, r31 ; encoding: [0x0f,0x27]
|
||||
; CHECK: eor r31, r16 ; encoding: [0xf0,0x27]
|
238
test/MC/AVR/inst-family-cond-branch.s
Normal file
238
test/MC/AVR/inst-family-cond-branch.s
Normal file
@ -0,0 +1,238 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
; BREQ
|
||||
breq .-18
|
||||
breq .-12
|
||||
brbs 1, .-18
|
||||
brbs 1, baz
|
||||
|
||||
; CHECK: breq .Ltmp0-18 ; encoding: [0bAAAAA001,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp0-18, kind: fixup_7_pcrel
|
||||
; CHECK: breq .Ltmp1-12 ; encoding: [0bAAAAA001,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp1-12, kind: fixup_7_pcrel
|
||||
; CHECK: brbs 1, .Ltmp2-18 ; encoding: [0bAAAAA001,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp2-18, kind: fixup_7_pcrel
|
||||
; CHECK: brbs 1, baz ; encoding: [0bAAAAA001,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: baz, kind: fixup_7_pcrel
|
||||
|
||||
; BRNE
|
||||
brne .+10
|
||||
brne .+2
|
||||
brbc 1, .+10
|
||||
brbc 1, bar
|
||||
|
||||
; CHECK: brne .Ltmp3+10 ; encoding: [0bAAAAA001,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp3+10, kind: fixup_7_pcrel
|
||||
; CHECK: brne .Ltmp4+2 ; encoding: [0bAAAAA001,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp4+2, kind: fixup_7_pcrel
|
||||
; CHECK: brbc 1, .Ltmp5+10 ; encoding: [0bAAAAA001,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp5+10, kind: fixup_7_pcrel
|
||||
; CHECK: brbc 1, bar ; encoding: [0bAAAAA001,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: bar, kind: fixup_7_pcrel
|
||||
|
||||
bar:
|
||||
; BRCS
|
||||
brcs .+8
|
||||
brcs .+4
|
||||
brbs 0, .+8
|
||||
brbs 0, end
|
||||
|
||||
; CHECK: brcs .Ltmp6+8 ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp6+8, kind: fixup_7_pcrel
|
||||
; CHECK: brcs .Ltmp7+4 ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp7+4, kind: fixup_7_pcrel
|
||||
; CHECK: brcs .Ltmp8+8 ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp8+8, kind: fixup_7_pcrel
|
||||
; CHECK: brcs end ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
; BRCC
|
||||
brcc .+66
|
||||
brcc .-22
|
||||
brbc 0, .+66
|
||||
brbc 0, baz
|
||||
|
||||
; CHECK: brcc .Ltmp9+66 ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp9+66, kind: fixup_7_pcrel
|
||||
; CHECK: brcc .Ltmp10-22 ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp10-22, kind: fixup_7_pcrel
|
||||
; CHECK: brcc .Ltmp11+66 ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp11+66, kind: fixup_7_pcrel
|
||||
; CHECK: brcc baz ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: baz, kind: fixup_7_pcrel
|
||||
|
||||
; BRSH
|
||||
brsh .+32
|
||||
brsh .+70
|
||||
brsh car
|
||||
|
||||
; CHECK: brsh .Ltmp12+32 ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp12+32, kind: fixup_7_pcrel
|
||||
; CHECK: brsh .Ltmp13+70 ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp13+70, kind: fixup_7_pcrel
|
||||
; CHECK: brsh car ; encoding: [0bAAAAA000,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
|
||||
|
||||
baz:
|
||||
|
||||
; BRLO
|
||||
brlo .+12
|
||||
brlo .+28
|
||||
brlo car
|
||||
|
||||
; CHECK: brlo .Ltmp14+12 ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp14+12, kind: fixup_7_pcrel
|
||||
; CHECK: brlo .Ltmp15+28 ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp15+28, kind: fixup_7_pcrel
|
||||
; CHECK: brlo car ; encoding: [0bAAAAA000,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
|
||||
|
||||
; BRMI
|
||||
brmi .+66
|
||||
brmi .+58
|
||||
brmi car
|
||||
|
||||
; CHECK: brmi .Ltmp16+66 ; encoding: [0bAAAAA010,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp16+66, kind: fixup_7_pcrel
|
||||
; CHECK: brmi .Ltmp17+58 ; encoding: [0bAAAAA010,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp17+58, kind: fixup_7_pcrel
|
||||
; CHECK: brmi car ; encoding: [0bAAAAA010,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
|
||||
|
||||
; BRPL
|
||||
brpl .-12
|
||||
brpl .+18
|
||||
brpl car
|
||||
|
||||
; CHECK: brpl .Ltmp18-12 ; encoding: [0bAAAAA010,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp18-12, kind: fixup_7_pcrel
|
||||
; CHECK: brpl .Ltmp19+18 ; encoding: [0bAAAAA010,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp19+18, kind: fixup_7_pcrel
|
||||
; CHECK: brpl car ; encoding: [0bAAAAA010,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
|
||||
|
||||
; BRGE
|
||||
brge .+50
|
||||
brge .+42
|
||||
brge car
|
||||
|
||||
; CHECK: brge .Ltmp20+50 ; encoding: [0bAAAAA100,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp20+50, kind: fixup_7_pcrel
|
||||
; CHECK: brge .Ltmp21+42 ; encoding: [0bAAAAA100,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp21+42, kind: fixup_7_pcrel
|
||||
; CHECK: brge car ; encoding: [0bAAAAA100,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
|
||||
|
||||
car:
|
||||
; BRLT
|
||||
brlt .+16
|
||||
brlt .+2
|
||||
brlt end
|
||||
|
||||
; CHECK: brlt .Ltmp22+16 ; encoding: [0bAAAAA100,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp22+16, kind: fixup_7_pcrel
|
||||
; CHECK: brlt .Ltmp23+2 ; encoding: [0bAAAAA100,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp23+2, kind: fixup_7_pcrel
|
||||
; CHECK: brlt end ; encoding: [0bAAAAA100,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
; BRHS
|
||||
brhs .-66
|
||||
brhs .+14
|
||||
brhs just_another_label
|
||||
|
||||
; CHECK: brhs .Ltmp24-66 ; encoding: [0bAAAAA101,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp24-66, kind: fixup_7_pcrel
|
||||
; CHECK: brhs .Ltmp25+14 ; encoding: [0bAAAAA101,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp25+14, kind: fixup_7_pcrel
|
||||
; CHECK: brhs just_another_label ; encoding: [0bAAAAA101,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: just_another_label, kind: fixup_7_pcrel
|
||||
|
||||
; BRHC
|
||||
brhc .+12
|
||||
brhc .+14
|
||||
brhc just_another_label
|
||||
|
||||
; CHECK: brhc .Ltmp26+12 ; encoding: [0bAAAAA101,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp26+12, kind: fixup_7_pcrel
|
||||
; CHECK: brhc .Ltmp27+14 ; encoding: [0bAAAAA101,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp27+14, kind: fixup_7_pcrel
|
||||
; CHECK: brhc just_another_label ; encoding: [0bAAAAA101,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: just_another_label, kind: fixup_7_pcrel
|
||||
|
||||
; BRTS
|
||||
brts .+18
|
||||
brts .+22
|
||||
brts just_another_label
|
||||
|
||||
; CHECK: brts .Ltmp28+18 ; encoding: [0bAAAAA110,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp28+18, kind: fixup_7_pcrel
|
||||
; CHECK: brts .Ltmp29+22 ; encoding: [0bAAAAA110,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp29+22, kind: fixup_7_pcrel
|
||||
; CHECK: brts just_another_label ; encoding: [0bAAAAA110,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: just_another_label, kind: fixup_7_pcrel
|
||||
|
||||
just_another_label:
|
||||
; BRTC
|
||||
brtc .+52
|
||||
brtc .+50
|
||||
brtc end
|
||||
|
||||
; CHECK: brtc .Ltmp30+52 ; encoding: [0bAAAAA110,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp30+52, kind: fixup_7_pcrel
|
||||
; CHECK: brtc .Ltmp31+50 ; encoding: [0bAAAAA110,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp31+50, kind: fixup_7_pcrel
|
||||
; CHECK: brtc end ; encoding: [0bAAAAA110,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
; BRVS
|
||||
brvs .+18
|
||||
brvs .+32
|
||||
brvs end
|
||||
|
||||
; CHECK: brvs .Ltmp32+18 ; encoding: [0bAAAAA011,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp32+18, kind: fixup_7_pcrel
|
||||
; CHECK: brvs .Ltmp33+32 ; encoding: [0bAAAAA011,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp33+32, kind: fixup_7_pcrel
|
||||
; CHECK: brvs end ; encoding: [0bAAAAA011,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
; BRVC
|
||||
brvc .-28
|
||||
brvc .-62
|
||||
brvc end
|
||||
|
||||
; CHECK: brvc .Ltmp34-28 ; encoding: [0bAAAAA011,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp34-28, kind: fixup_7_pcrel
|
||||
; CHECK: brvc .Ltmp35-62 ; encoding: [0bAAAAA011,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp35-62, kind: fixup_7_pcrel
|
||||
; CHECK: brvc end ; encoding: [0bAAAAA011,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
; BRIE
|
||||
brie .+20
|
||||
brie .+40
|
||||
brie end
|
||||
|
||||
; CHECK: brie .Ltmp36+20 ; encoding: [0bAAAAA111,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp36+20, kind: fixup_7_pcrel
|
||||
; CHECK: brie .Ltmp37+40 ; encoding: [0bAAAAA111,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp37+40, kind: fixup_7_pcrel
|
||||
; CHECK: brie end ; encoding: [0bAAAAA111,0b111100AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
; BRID
|
||||
brid .+42
|
||||
brid .+62
|
||||
brid end
|
||||
|
||||
; CHECK: brid .Ltmp38+42 ; encoding: [0bAAAAA111,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp38+42, kind: fixup_7_pcrel
|
||||
; CHECK: brid .Ltmp39+62 ; encoding: [0bAAAAA111,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp39+62, kind: fixup_7_pcrel
|
||||
; CHECK: brid end ; encoding: [0bAAAAA111,0b111101AA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
|
||||
|
||||
end:
|
105
test/MC/AVR/inst-family-set-clr-flag.s
Normal file
105
test/MC/AVR/inst-family-set-clr-flag.s
Normal file
@ -0,0 +1,105 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
foo:
|
||||
|
||||
; Flag set operations
|
||||
|
||||
; SEC
|
||||
bset 0
|
||||
sec
|
||||
|
||||
; SEZ
|
||||
bset 1
|
||||
sez
|
||||
|
||||
; SEN
|
||||
bset 2
|
||||
sen
|
||||
|
||||
; SEV
|
||||
bset 3
|
||||
sev
|
||||
|
||||
; SES
|
||||
bset 4
|
||||
ses
|
||||
|
||||
; SEH
|
||||
bset 5
|
||||
seh
|
||||
|
||||
; SET
|
||||
bset 6
|
||||
set
|
||||
|
||||
; SEI
|
||||
bset 7
|
||||
sei
|
||||
|
||||
; Flag clear operations
|
||||
|
||||
; CLC
|
||||
bclr 0
|
||||
clc
|
||||
|
||||
; CLZ
|
||||
bclr 1
|
||||
clz
|
||||
|
||||
; CLN
|
||||
bclr 2
|
||||
cln
|
||||
|
||||
; CLV
|
||||
bclr 3
|
||||
clv
|
||||
|
||||
; CLS
|
||||
bclr 4
|
||||
cls
|
||||
|
||||
; CLH
|
||||
bclr 5
|
||||
clh
|
||||
|
||||
; CLT
|
||||
bclr 6
|
||||
clt
|
||||
|
||||
; CLI
|
||||
bclr 7
|
||||
cli
|
||||
|
||||
; CHECK: sec ; encoding: [0x08,0x94]
|
||||
; CHECK: sec ; encoding: [0x08,0x94]
|
||||
; CHECK: sez ; encoding: [0x18,0x94]
|
||||
; CHECK: sez ; encoding: [0x18,0x94]
|
||||
; CHECK: sen ; encoding: [0x28,0x94]
|
||||
; CHECK: sen ; encoding: [0x28,0x94]
|
||||
; CHECK: sev ; encoding: [0x38,0x94]
|
||||
; CHECK: sev ; encoding: [0x38,0x94]
|
||||
; CHECK: ses ; encoding: [0x48,0x94]
|
||||
; CHECK: ses ; encoding: [0x48,0x94]
|
||||
; CHECK: seh ; encoding: [0x58,0x94]
|
||||
; CHECK: seh ; encoding: [0x58,0x94]
|
||||
; CHECK: set ; encoding: [0x68,0x94]
|
||||
; CHECK: set ; encoding: [0x68,0x94]
|
||||
; CHECK: sei ; encoding: [0x78,0x94]
|
||||
; CHECK: sei ; encoding: [0x78,0x94]
|
||||
|
||||
; CHECK: clc ; encoding: [0x88,0x94]
|
||||
; CHECK: clc ; encoding: [0x88,0x94]
|
||||
; CHECK: clz ; encoding: [0x98,0x94]
|
||||
; CHECK: clz ; encoding: [0x98,0x94]
|
||||
; CHECK: cln ; encoding: [0xa8,0x94]
|
||||
; CHECK: cln ; encoding: [0xa8,0x94]
|
||||
; CHECK: clv ; encoding: [0xb8,0x94]
|
||||
; CHECK: clv ; encoding: [0xb8,0x94]
|
||||
; CHECK: cls ; encoding: [0xc8,0x94]
|
||||
; CHECK: cls ; encoding: [0xc8,0x94]
|
||||
; CHECK: clh ; encoding: [0xd8,0x94]
|
||||
; CHECK: clh ; encoding: [0xd8,0x94]
|
||||
; CHECK: clt ; encoding: [0xe8,0x94]
|
||||
; CHECK: clt ; encoding: [0xe8,0x94]
|
||||
; CHECK: cli ; encoding: [0xf8,0x94]
|
||||
; CHECK: cli ; encoding: [0xf8,0x94]
|
14
test/MC/AVR/inst-fmul.s
Normal file
14
test/MC/AVR/inst-fmul.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=mul -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
fmul r22, r16
|
||||
fmul r19, r17
|
||||
fmul r21, r23
|
||||
fmul r23, r23
|
||||
|
||||
; CHECK: fmul r22, r16 ; encoding: [0x68,0x03]
|
||||
; CHECK: fmul r19, r17 ; encoding: [0x39,0x03]
|
||||
; CHECK: fmul r21, r23 ; encoding: [0x5f,0x03]
|
||||
; CHECK: fmul r23, r23 ; encoding: [0x7f,0x03]
|
14
test/MC/AVR/inst-fmuls.s
Normal file
14
test/MC/AVR/inst-fmuls.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=mul -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
fmuls r22, r16
|
||||
fmuls r19, r17
|
||||
fmuls r21, r23
|
||||
fmuls r23, r23
|
||||
|
||||
; CHECK: fmuls r22, r16 ; encoding: [0xe0,0x03]
|
||||
; CHECK: fmuls r19, r17 ; encoding: [0xb1,0x03]
|
||||
; CHECK: fmuls r21, r23 ; encoding: [0xd7,0x03]
|
||||
; CHECK: fmuls r23, r23 ; encoding: [0xf7,0x03]
|
14
test/MC/AVR/inst-fmulsu.s
Normal file
14
test/MC/AVR/inst-fmulsu.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=mul -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
fmulsu r22, r16
|
||||
fmulsu r19, r17
|
||||
fmulsu r21, r23
|
||||
fmulsu r23, r23
|
||||
|
||||
; CHECK: fmulsu r22, r16 ; encoding: [0xe8,0x03]
|
||||
; CHECK: fmulsu r19, r17 ; encoding: [0xb9,0x03]
|
||||
; CHECK: fmulsu r21, r23 ; encoding: [0xdf,0x03]
|
||||
; CHECK: fmulsu r23, r23 ; encoding: [0xff,0x03]
|
8
test/MC/AVR/inst-icall.s
Normal file
8
test/MC/AVR/inst-icall.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=ijmpcall -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
icall
|
||||
|
||||
; CHECK: icall ; encoding: [0x09,0x95]
|
8
test/MC/AVR/inst-ijmp.s
Normal file
8
test/MC/AVR/inst-ijmp.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=ijmpcall -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
ijmp
|
||||
|
||||
; CHECK: ijmp ; encoding: [0x09,0x94]
|
20
test/MC/AVR/inst-in.s
Normal file
20
test/MC/AVR/inst-in.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
in r2, 4
|
||||
in r9, 6
|
||||
in r5, 32
|
||||
in r0, 0
|
||||
|
||||
in r20, foo+1
|
||||
|
||||
; CHECK: in r2, 4 ; encoding: [0x24,0xb0]
|
||||
; CHECK: in r9, 6 ; encoding: [0x96,0xb0]
|
||||
; CHECK: in r5, 32 ; encoding: [0x50,0xb4]
|
||||
; CHECK: in r0, 0 ; encoding: [0x00,0xb0]
|
||||
|
||||
; CHECK: in r20, foo+1 ; encoding: [0x40'A',0xb1'A']
|
||||
; CHECK: ; fixup A - offset: 0, value: foo+1, kind: fixup_port6
|
||||
|
14
test/MC/AVR/inst-inc.s
Normal file
14
test/MC/AVR/inst-inc.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
inc r12
|
||||
inc r29
|
||||
inc r6
|
||||
inc r20
|
||||
|
||||
; CHECK: inc r12 ; encoding: [0xc3,0x94]
|
||||
; CHECK: inc r29 ; encoding: [0xd3,0x95]
|
||||
; CHECK: inc r6 ; encoding: [0x63,0x94]
|
||||
; CHECK: inc r20 ; encoding: [0x43,0x95]
|
19
test/MC/AVR/inst-jmp.s
Normal file
19
test/MC/AVR/inst-jmp.s
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=jmpcall -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
jmp 200
|
||||
jmp -12
|
||||
jmp 80
|
||||
jmp 0
|
||||
|
||||
jmp foo+1
|
||||
|
||||
; CHECK: jmp 200 ; encoding: [0x0c,0x94,0x64,0x00]
|
||||
; CHECK: jmp -12 ; encoding: [0xfd,0x95,0xfa,0xff]
|
||||
; CHECK: jmp 80 ; encoding: [0x0c,0x94,0x28,0x00]
|
||||
; CHECK: jmp 0 ; encoding: [0x0c,0x94,0x00,0x00]
|
||||
|
||||
; CHECK: jmp foo+1 ; encoding: [0x0c'A',0x94'A',0b00AAAAAA,0x00]
|
||||
; CHECK: ; fixup A - offset: 0, value: foo+1, kind: fixup_call
|
14
test/MC/AVR/inst-lac.s
Normal file
14
test/MC/AVR/inst-lac.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=rmw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
lac Z, r13
|
||||
lac Z, r0
|
||||
lac Z, r31
|
||||
lac Z, r3
|
||||
|
||||
; CHECK: lac Z, r13 ; encoding: [0xd6,0x92]
|
||||
; CHECK: lac Z, r0 ; encoding: [0x06,0x92]
|
||||
; CHECK: lac Z, r31 ; encoding: [0xf6,0x93]
|
||||
; CHECK: lac Z, r3 ; encoding: [0x36,0x92]
|
14
test/MC/AVR/inst-las.s
Normal file
14
test/MC/AVR/inst-las.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=rmw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
las Z, r13
|
||||
las Z, r0
|
||||
las Z, r31
|
||||
las Z, r3
|
||||
|
||||
; CHECK: las Z, r13 ; encoding: [0xd5,0x92]
|
||||
; CHECK: las Z, r0 ; encoding: [0x05,0x92]
|
||||
; CHECK: las Z, r31 ; encoding: [0xf5,0x93]
|
||||
; CHECK: las Z, r3 ; encoding: [0x35,0x92]
|
14
test/MC/AVR/inst-lat.s
Normal file
14
test/MC/AVR/inst-lat.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=rmw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
lat Z, r13
|
||||
lat Z, r0
|
||||
lat Z, r31
|
||||
lat Z, r3
|
||||
|
||||
; CHECK: lat Z, r13 ; encoding: [0xd7,0x92]
|
||||
; CHECK: lat Z, r0 ; encoding: [0x07,0x92]
|
||||
; CHECK: lat Z, r31 ; encoding: [0xf7,0x93]
|
||||
; CHECK: lat Z, r3 ; encoding: [0x37,0x92]
|
73
test/MC/AVR/inst-ld.s
Normal file
73
test/MC/AVR/inst-ld.s
Normal file
@ -0,0 +1,73 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
; Normal
|
||||
|
||||
ld r10, X
|
||||
ld r17, X
|
||||
|
||||
ld r30, Y
|
||||
ld r19, Y
|
||||
|
||||
ld r10, Z
|
||||
ld r2, Z
|
||||
|
||||
; Postincremenet
|
||||
|
||||
ld r10, X+
|
||||
ld r17, X+
|
||||
|
||||
ld r30, Y+
|
||||
ld r19, Y+
|
||||
|
||||
ld r10, Z+
|
||||
ld r2, Z+
|
||||
|
||||
; Predecrement
|
||||
|
||||
ld r10, -X
|
||||
ld r17, -X
|
||||
|
||||
ld r30, -Y
|
||||
ld r19, -Y
|
||||
|
||||
ld r10, -Z
|
||||
ld r2, -Z
|
||||
|
||||
|
||||
; Normal
|
||||
|
||||
; CHECK: ld r10, X ; encoding: [0xac,0x90]
|
||||
; CHECK: ld r17, X ; encoding: [0x1c,0x91]
|
||||
|
||||
; CHECK: ld r30, Y ; encoding: [0xe8,0x81]
|
||||
; CHECK: ld r19, Y ; encoding: [0x38,0x81]
|
||||
|
||||
; CHECK: ld r10, Z ; encoding: [0xa0,0x80]
|
||||
; CHECK: ld r2, Z ; encoding: [0x20,0x80]
|
||||
|
||||
|
||||
; Postincrement
|
||||
|
||||
; CHECK: ld r10, X+ ; encoding: [0xad,0x90]
|
||||
; CHECK: ld r17, X+ ; encoding: [0x1d,0x91]
|
||||
|
||||
; CHECK: ld r30, Y+ ; encoding: [0xe9,0x91]
|
||||
; CHECK: ld r19, Y+ ; encoding: [0x39,0x91]
|
||||
|
||||
; CHECK: ld r10, Z+ ; encoding: [0xa1,0x90]
|
||||
; CHECK: ld r2, Z+ ; encoding: [0x21,0x90]
|
||||
|
||||
|
||||
; Predecrement
|
||||
|
||||
; CHECK: ld r10, -X ; encoding: [0xae,0x90]
|
||||
; CHECK: ld r17, -X ; encoding: [0x1e,0x91]
|
||||
|
||||
; CHECK: ld r30, -Y ; encoding: [0xea,0x91]
|
||||
; CHECK: ld r19, -Y ; encoding: [0x3a,0x91]
|
||||
|
||||
; CHECK: ld r10, -Z ; encoding: [0xa2,0x90]
|
||||
; CHECK: ld r2, -Z ; encoding: [0x22,0x90]
|
20
test/MC/AVR/inst-ldd.s
Normal file
20
test/MC/AVR/inst-ldd.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
ldd r2, Y+2
|
||||
ldd r0, Y+0
|
||||
|
||||
ldd r9, Z+12
|
||||
ldd r7, Z+30
|
||||
|
||||
ldd r9, Z+foo
|
||||
|
||||
; CHECK: ldd r2, Y+2 ; encoding: [0x2a,0x80]
|
||||
; CHECK: ldd r0, Y+0 ; encoding: [0x08,0x80]
|
||||
|
||||
; CHECK: ldd r9, Z+12 ; encoding: [0x94,0x84]
|
||||
; CHECK: ldd r7, Z+30 ; encoding: [0x76,0x8c]
|
||||
|
||||
; CHECK: ldd r9, Z+foo ; encoding: [0x90'A',0x80'A']
|
||||
; CHECK: ; fixup A - offset: 0, value: +foo, kind: fixup_6
|
17
test/MC/AVR/inst-ldi.s
Normal file
17
test/MC/AVR/inst-ldi.s
Normal file
@ -0,0 +1,17 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
ldi r16, 241
|
||||
ldi r29, 190
|
||||
ldi r22, 172
|
||||
ldi r27, 92
|
||||
ldi r21, SYMBOL+3
|
||||
|
||||
; CHECK: ldi r16, 241 ; encoding: [0x01,0xef]
|
||||
; CHECK: ldi r29, 190 ; encoding: [0xde,0xeb]
|
||||
; CHECK: ldi r22, 172 ; encoding: [0x6c,0xea]
|
||||
; CHECK: ldi r27, 92 ; encoding: [0xbc,0xe5]
|
||||
|
||||
; CHECK: ldi r21, SYMBOL+3 ; encoding: [0x50'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: SYMBOL+3, kind: fixup_ldi
|
16
test/MC/AVR/inst-lds.s
Normal file
16
test/MC/AVR/inst-lds.s
Normal file
@ -0,0 +1,16 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
lds r16, 241
|
||||
lds r29, 190
|
||||
lds r22, 172
|
||||
lds r27, 92
|
||||
lds r4, SYMBOL+12
|
||||
|
||||
; CHECK: lds r16, 241 ; encoding: [0x00,0x91,0xf1,0x00]
|
||||
; CHECK: lds r29, 190 ; encoding: [0xd0,0x91,0xbe,0x00]
|
||||
; CHECK: lds r22, 172 ; encoding: [0x60,0x91,0xac,0x00]
|
||||
; CHECK: lds r27, 92 ; encoding: [0xb0,0x91,0x5c,0x00]
|
||||
; CHECK: lds r4, SYMBOL+12 ; encoding: [0x40'A',0x90'A',0x00,0x00]
|
||||
; CHECK: ; fixup A - offset: 0, value: SYMBOL+12, kind: fixup_16
|
20
test/MC/AVR/inst-lpm.s
Normal file
20
test/MC/AVR/inst-lpm.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=lpm,lpmx -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
lpm
|
||||
|
||||
lpm r3, Z
|
||||
lpm r23, Z
|
||||
|
||||
lpm r8, Z+
|
||||
lpm r0, Z+
|
||||
|
||||
; CHECK: lpm ; encoding: [0xc8,0x95]
|
||||
|
||||
; CHECK: lpm r3, Z ; encoding: [0x34,0x90]
|
||||
; CHECK: lpm r23, Z ; encoding: [0x74,0x91]
|
||||
|
||||
; CHECK: lpm r8, Z+ ; encoding: [0x85,0x90]
|
||||
; CHECK: lpm r0, Z+ ; encoding: [0x05,0x90]
|
14
test/MC/AVR/inst-lsl.s
Normal file
14
test/MC/AVR/inst-lsl.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
lsl r31
|
||||
lsl r25
|
||||
lsl r5
|
||||
lsl r0
|
||||
|
||||
; CHECK: lsl r31 ; encoding: [0xff,0x0f]
|
||||
; CHECK: lsl r25 ; encoding: [0x99,0x0f]
|
||||
; CHECK: lsl r5 ; encoding: [0x55,0x0c]
|
||||
; CHECK: lsl r0 ; encoding: [0x00,0x0c]
|
14
test/MC/AVR/inst-lsr.s
Normal file
14
test/MC/AVR/inst-lsr.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
lsr r31
|
||||
lsr r25
|
||||
lsr r5
|
||||
lsr r0
|
||||
|
||||
; CHECK: lsr r31 ; encoding: [0xf6,0x95]
|
||||
; CHECK: lsr r25 ; encoding: [0x96,0x95]
|
||||
; CHECK: lsr r5 ; encoding: [0x56,0x94]
|
||||
; CHECK: lsr r0 ; encoding: [0x06,0x94]
|
14
test/MC/AVR/inst-mov.s
Normal file
14
test/MC/AVR/inst-mov.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
mov r2, r13
|
||||
mov r9, r0
|
||||
mov r5, r31
|
||||
mov r3, r3
|
||||
|
||||
; CHECK: mov r2, r13 ; encoding: [0x2d,0x2c]
|
||||
; CHECK: mov r9, r0 ; encoding: [0x90,0x2c]
|
||||
; CHECK: mov r5, r31 ; encoding: [0x5f,0x2e]
|
||||
; CHECK: mov r3, r3 ; encoding: [0x33,0x2c]
|
14
test/MC/AVR/inst-movw.s
Normal file
14
test/MC/AVR/inst-movw.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=movw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
movw r10, r8
|
||||
movw r12, r16
|
||||
movw r20, r22
|
||||
movw r8, r12
|
||||
|
||||
; CHECK: movw r10, r8 ; encoding: [0x54,0x01]
|
||||
; CHECK: movw r12, r16 ; encoding: [0x68,0x01]
|
||||
; CHECK: movw r20, r22 ; encoding: [0xab,0x01]
|
||||
; CHECK: movw r8, r12 ; encoding: [0x46,0x01]
|
13
test/MC/AVR/inst-mul.s
Normal file
13
test/MC/AVR/inst-mul.s
Normal file
@ -0,0 +1,13 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=mul -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
mul r0, r15
|
||||
mul r15, r0
|
||||
mul r16, r31
|
||||
mul r31, r16
|
||||
|
||||
; CHECK: mul r0, r15 ; encoding: [0x0f,0x9c]
|
||||
; CHECK: mul r15, r0 ; encoding: [0xf0,0x9c]
|
||||
; CHECK: mul r16, r31 ; encoding: [0x0f,0x9f]
|
||||
; CHECK: mul r31, r16 ; encoding: [0xf0,0x9f]
|
14
test/MC/AVR/inst-muls.s
Normal file
14
test/MC/AVR/inst-muls.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=mul -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
muls r22, r16
|
||||
muls r19, r17
|
||||
muls r28, r31
|
||||
muls r31, r31
|
||||
|
||||
; CHECK: muls r22, r16 ; encoding: [0x60,0x02]
|
||||
; CHECK: muls r19, r17 ; encoding: [0x31,0x02]
|
||||
; CHECK: muls r28, r31 ; encoding: [0xcf,0x02]
|
||||
; CHECK: muls r31, r31 ; encoding: [0xff,0x02]
|
14
test/MC/AVR/inst-mulsu.s
Normal file
14
test/MC/AVR/inst-mulsu.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=mul -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
mulsu r22, r16
|
||||
mulsu r19, r17
|
||||
mulsu r21, r23
|
||||
mulsu r23, r23
|
||||
|
||||
; CHECK: mulsu r22, r16 ; encoding: [0x60,0x03]
|
||||
; CHECK: mulsu r19, r17 ; encoding: [0x31,0x03]
|
||||
; CHECK: mulsu r21, r23 ; encoding: [0x57,0x03]
|
||||
; CHECK: mulsu r23, r23 ; encoding: [0x77,0x03]
|
12
test/MC/AVR/inst-neg.s
Normal file
12
test/MC/AVR/inst-neg.s
Normal file
@ -0,0 +1,12 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
foo:
|
||||
neg r15
|
||||
neg r1
|
||||
neg r22
|
||||
neg r31
|
||||
|
||||
; CHECK: neg r15 ; encoding: [0xf1,0x94]
|
||||
; CHECK: neg r1 ; encoding: [0x11,0x94]
|
||||
; CHECK: neg r22 ; encoding: [0x61,0x95]
|
||||
; CHECK: neg r31 ; encoding: [0xf1,0x95]
|
8
test/MC/AVR/inst-nop.s
Normal file
8
test/MC/AVR/inst-nop.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
nop
|
||||
|
||||
; CHECK: nop ; encoding: [0x00,0x00]
|
13
test/MC/AVR/inst-or.s
Normal file
13
test/MC/AVR/inst-or.s
Normal file
@ -0,0 +1,13 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
or r0, r15
|
||||
or r15, r0
|
||||
or r16, r31
|
||||
or r31, r16
|
||||
|
||||
; CHECK: or r0, r15 ; encoding: [0x0f,0x28]
|
||||
; CHECK: or r15, r0 ; encoding: [0xf0,0x28]
|
||||
; CHECK: or r16, r31 ; encoding: [0x0f,0x2b]
|
||||
; CHECK: or r31, r16 ; encoding: [0xf0,0x2b]
|
19
test/MC/AVR/inst-ori.s
Normal file
19
test/MC/AVR/inst-ori.s
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
ori r17, 208
|
||||
ori r24, 190
|
||||
ori r20, 173
|
||||
ori r31, 0
|
||||
|
||||
ori r16, FOOBAR
|
||||
|
||||
; CHECK: ori r17, 208 ; encoding: [0x10,0x6d]
|
||||
; CHECK: ori r24, 190 ; encoding: [0x8e,0x6b]
|
||||
; CHECK: ori r20, 173 ; encoding: [0x4d,0x6a]
|
||||
; CHECK: ori r31, 0 ; encoding: [0xf0,0x60]
|
||||
|
||||
; CHECK: ori r16, FOOBAR ; encoding: [A,0x60]
|
||||
; CHECK: ; fixup A - offset: 0, value: FOOBAR, kind: fixup_ldi
|
20
test/MC/AVR/inst-out.s
Normal file
20
test/MC/AVR/inst-out.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
out 4, r2
|
||||
out 6, r9
|
||||
out 32, r5
|
||||
out 0, r0
|
||||
|
||||
out bar-8, r29
|
||||
|
||||
; CHECK: out 4, r2 ; encoding: [0x24,0xb8]
|
||||
; CHECK: out 6, r9 ; encoding: [0x96,0xb8]
|
||||
; CHECK: out 32, r5 ; encoding: [0x50,0xbc]
|
||||
; CHECK: out 0, r0 ; encoding: [0x00,0xb8]
|
||||
|
||||
; CHECK: out bar-8, r29 ; encoding: [0xd0'A',0xb9'A']
|
||||
; CHECK: ; fixup A - offset: 0, value: bar-8, kind: fixup_port6
|
||||
|
14
test/MC/AVR/inst-pop.s
Normal file
14
test/MC/AVR/inst-pop.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
pop r31
|
||||
pop r25
|
||||
pop r5
|
||||
pop r0
|
||||
|
||||
; CHECK: pop r31 ; encoding: [0xff,0x91]
|
||||
; CHECK: pop r25 ; encoding: [0x9f,0x91]
|
||||
; CHECK: pop r5 ; encoding: [0x5f,0x90]
|
||||
; CHECK: pop r0 ; encoding: [0x0f,0x90]
|
14
test/MC/AVR/inst-push.s
Normal file
14
test/MC/AVR/inst-push.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
push r31
|
||||
push r25
|
||||
push r5
|
||||
push r0
|
||||
|
||||
; CHECK: push r31 ; encoding: [0xff,0x93]
|
||||
; CHECK: push r25 ; encoding: [0x9f,0x93]
|
||||
; CHECK: push r5 ; encoding: [0x5f,0x92]
|
||||
; CHECK: push r0 ; encoding: [0x0f,0x92]
|
19
test/MC/AVR/inst-rcall.s
Normal file
19
test/MC/AVR/inst-rcall.s
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
rcall .+0
|
||||
rcall .-8
|
||||
rcall .+12
|
||||
rcall .+46
|
||||
|
||||
; CHECK: rcall .Ltmp0+0 ; encoding: [A,0b1101AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp0+0, kind: fixup_13_pcrel
|
||||
; CHECK: rcall .Ltmp1-8 ; encoding: [A,0b1101AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp1-8, kind: fixup_13_pcrel
|
||||
; CHECK: rcall .Ltmp2+12 ; encoding: [A,0b1101AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp2+12, kind: fixup_13_pcrel
|
||||
; CHECK: rcall .Ltmp3+46 ; encoding: [A,0b1101AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp3+46, kind: fixup_13_pcrel
|
||||
|
8
test/MC/AVR/inst-ret.s
Normal file
8
test/MC/AVR/inst-ret.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
ret
|
||||
|
||||
; CHECK: ret ; encoding: [0x08,0x95]
|
8
test/MC/AVR/inst-reti.s
Normal file
8
test/MC/AVR/inst-reti.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
reti
|
||||
|
||||
; CHECK: reti ; encoding: [0x18,0x95]
|
31
test/MC/AVR/inst-rjmp.s
Normal file
31
test/MC/AVR/inst-rjmp.s
Normal file
@ -0,0 +1,31 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
rjmp .+2
|
||||
rjmp .-2
|
||||
rjmp foo
|
||||
rjmp .+8
|
||||
rjmp end
|
||||
rjmp .+0
|
||||
end:
|
||||
rjmp .-4
|
||||
rjmp .-6
|
||||
|
||||
; CHECK: rjmp .Ltmp0+2 ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp0+2, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp .Ltmp1-2 ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp1-2, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp foo ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: foo, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp .Ltmp2+8 ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp2+8, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp end ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp .Ltmp3+0 ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp3+0, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp .Ltmp4-4 ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp4-4, kind: fixup_13_pcrel
|
||||
; CHECK: rjmp .Ltmp5-6 ; encoding: [A,0b1100AAAA]
|
||||
; CHECK: ; fixup A - offset: 0, value: .Ltmp5-6, kind: fixup_13_pcrel
|
14
test/MC/AVR/inst-rol.s
Normal file
14
test/MC/AVR/inst-rol.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
rol r31
|
||||
rol r25
|
||||
rol r5
|
||||
rol r0
|
||||
|
||||
; CHECK: rol r31 ; encoding: [0xff,0x1f]
|
||||
; CHECK: rol r25 ; encoding: [0x99,0x1f]
|
||||
; CHECK: rol r5 ; encoding: [0x55,0x1c]
|
||||
; CHECK: rol r0 ; encoding: [0x00,0x1c]
|
14
test/MC/AVR/inst-ror.s
Normal file
14
test/MC/AVR/inst-ror.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
ror r31
|
||||
ror r25
|
||||
ror r5
|
||||
ror r0
|
||||
|
||||
; CHECK: ror r31 ; encoding: [0xf7,0x95]
|
||||
; CHECK: ror r25 ; encoding: [0x97,0x95]
|
||||
; CHECK: ror r5 ; encoding: [0x57,0x94]
|
||||
; CHECK: ror r0 ; encoding: [0x07,0x94]
|
14
test/MC/AVR/inst-sbc.s
Normal file
14
test/MC/AVR/inst-sbc.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbc r0, r15
|
||||
sbc r15, r0
|
||||
sbc r16, r31
|
||||
sbc r31, r16
|
||||
|
||||
; CHECK: sbc r0, r15 ; encoding: [0x0f,0x08]
|
||||
; CHECK: sbc r15, r0 ; encoding: [0xf0,0x08]
|
||||
; CHECK: sbc r16, r31 ; encoding: [0x0f,0x0b]
|
||||
; CHECK: sbc r31, r16 ; encoding: [0xf0,0x0b]
|
18
test/MC/AVR/inst-sbci.s
Normal file
18
test/MC/AVR/inst-sbci.s
Normal file
@ -0,0 +1,18 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbci r17, 21
|
||||
sbci r23, 196
|
||||
sbci r30, 244
|
||||
sbci r19, 16
|
||||
sbci r22, FOO
|
||||
|
||||
; CHECK: sbci r17, 21 ; encoding: [0x15,0x41]
|
||||
; CHECK: sbci r23, 196 ; encoding: [0x74,0x4c]
|
||||
; CHECK: sbci r30, 244 ; encoding: [0xe4,0x4f]
|
||||
; CHECK: sbci r19, 16 ; encoding: [0x30,0x41]
|
||||
|
||||
; CHECK: sbci r22, FOO ; encoding: [0x60'A',0x40]
|
||||
; CHECK: ; fixup A - offset: 0, value: FOO, kind: fixup_ldi
|
20
test/MC/AVR/inst-sbi.s
Normal file
20
test/MC/AVR/inst-sbi.s
Normal file
@ -0,0 +1,20 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbi 3, 5
|
||||
sbi 1, 1
|
||||
sbi 0, 0
|
||||
sbi 7, 2
|
||||
|
||||
sbi main, 0
|
||||
|
||||
; CHECK: sbi 3, 5 ; encoding: [0x1d,0x9a]
|
||||
; CHECK: sbi 1, 1 ; encoding: [0x09,0x9a]
|
||||
; CHECK: sbi 0, 0 ; encoding: [0x00,0x9a]
|
||||
; CHECK: sbi 7, 2 ; encoding: [0x3a,0x9a]
|
||||
|
||||
; CHECK: sbi main, 0 ; encoding: [0bAAAAA000,0x9a]
|
||||
; CHECK: ; fixup A - offset: 0, value: main, kind: fixup_port5
|
||||
|
19
test/MC/AVR/inst-sbic.s
Normal file
19
test/MC/AVR/inst-sbic.s
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbic 4, 3
|
||||
sbic 6, 2
|
||||
sbic 16, 5
|
||||
sbic 0, 0
|
||||
|
||||
sbic foo+1, 1
|
||||
|
||||
; CHECK: sbic 4, 3 ; encoding: [0x23,0x99]
|
||||
; CHECK: sbic 6, 2 ; encoding: [0x32,0x99]
|
||||
; CHECK: sbic 16, 5 ; encoding: [0x85,0x99]
|
||||
; CHECK: sbic 0, 0 ; encoding: [0x00,0x99]
|
||||
|
||||
; CHECK: sbic foo+1, 1 ; encoding: [0bAAAAA001,0x99]
|
||||
; CHECK: ; fixup A - offset: 0, value: foo+1, kind: fixup_port5
|
18
test/MC/AVR/inst-sbis.s
Normal file
18
test/MC/AVR/inst-sbis.s
Normal file
@ -0,0 +1,18 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
sbis 4, 3
|
||||
sbis 6, 2
|
||||
sbis 16, 5
|
||||
sbis 0, 0
|
||||
|
||||
sbis FOO+4, 7
|
||||
|
||||
; CHECK: sbis 4, 3 ; encoding: [0x23,0x9b]
|
||||
; CHECK: sbis 6, 2 ; encoding: [0x32,0x9b]
|
||||
; CHECK: sbis 16, 5 ; encoding: [0x85,0x9b]
|
||||
; CHECK: sbis 0, 0 ; encoding: [0x00,0x9b]
|
||||
|
||||
; CHECK: sbis FOO+4, 7 ; encoding: [0bAAAAA111,0x9b]
|
||||
; CHECK: ; fixup A - offset: 0, value: FOO+4, kind: fixup_port5
|
33
test/MC/AVR/inst-sbiw.s
Normal file
33
test/MC/AVR/inst-sbiw.s
Normal file
@ -0,0 +1,33 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=addsubiw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbiw r26, 54
|
||||
sbiw X, 63
|
||||
|
||||
sbiw 28, 52
|
||||
sbiw r28, 0
|
||||
|
||||
sbiw r30, 63
|
||||
sbiw Z, 47
|
||||
|
||||
sbiw r24, 1
|
||||
sbiw r24, 2
|
||||
|
||||
sbiw r24, SYMBOL-1
|
||||
|
||||
; CHECK: sbiw r26, 54 ; encoding: [0xd6,0x97]
|
||||
; CHECK: sbiw r26, 63 ; encoding: [0xdf,0x97]
|
||||
|
||||
; CHECK: sbiw r28, 52 ; encoding: [0xe4,0x97]
|
||||
; CHECK: sbiw r28, 0 ; encoding: [0x20,0x97]
|
||||
|
||||
; CHECK: sbiw r30, 63 ; encoding: [0xff,0x97]
|
||||
; CHECK: sbiw r30, 47 ; encoding: [0xbf,0x97]
|
||||
|
||||
; CHECK: sbiw r24, 1 ; encoding: [0x01,0x97]
|
||||
; CHECK: sbiw r24, 2 ; encoding: [0x02,0x97]
|
||||
|
||||
; CHECK: sbiw r24, SYMBOL-1 ; encoding: [0b00AAAAAA,0x97]
|
||||
; fixup A - offset: 0, value: SYMBOL-1, kind: fixup_6_adiw
|
18
test/MC/AVR/inst-sbr.s
Normal file
18
test/MC/AVR/inst-sbr.s
Normal file
@ -0,0 +1,18 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
sbr r17, 208
|
||||
sbr r24, 190
|
||||
sbr r20, 173
|
||||
sbr r31, 0
|
||||
|
||||
sbr r19, _start
|
||||
|
||||
; CHECK: sbr r17, 208 ; encoding: [0x10,0x6d]
|
||||
; CHECK: sbr r24, 190 ; encoding: [0x8e,0x6b]
|
||||
; CHECK: sbr r20, 173 ; encoding: [0x4d,0x6a]
|
||||
; CHECK: sbr r31, 0 ; encoding: [0xf0,0x60]
|
||||
|
||||
; CHECK: sbr r19, _start ; encoding: [0x30'A',0x60]
|
||||
; CHECK: ; fixup A - offset: 0, value: _start, kind: fixup_ldi
|
11
test/MC/AVR/inst-sbrc.s
Normal file
11
test/MC/AVR/inst-sbrc.s
Normal file
@ -0,0 +1,11 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbrc r2, 3
|
||||
sbrc r0, 7
|
||||
|
||||
; CHECK: sbrc r2, 3 ; encoding: [0x23,0xfc]
|
||||
; CHECK: sbrc r0, 7 ; encoding: [0x07,0xfc]
|
||||
|
11
test/MC/AVR/inst-sbrs.s
Normal file
11
test/MC/AVR/inst-sbrs.s
Normal file
@ -0,0 +1,11 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sbrs r2, 3
|
||||
sbrs r0, 7
|
||||
|
||||
; CHECK: sbrs r2, 3 ; encoding: [0x23,0xfe]
|
||||
; CHECK: sbrs r0, 7 ; encoding: [0x07,0xfe]
|
||||
|
13
test/MC/AVR/inst-ser.s
Normal file
13
test/MC/AVR/inst-ser.s
Normal file
@ -0,0 +1,13 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
ser r16
|
||||
ser r31
|
||||
ser r27
|
||||
ser r31
|
||||
|
||||
; CHECK: ldi r16, 255 ; encoding: [0x0f,0xef]
|
||||
; CHECK: ldi r31, 255 ; encoding: [0xff,0xef]
|
||||
; CHECK: ldi r27, 255 ; encoding: [0xbf,0xef]
|
||||
; CHECK: ldi r31, 255 ; encoding: [0xff,0xef]
|
8
test/MC/AVR/inst-sleep.s
Normal file
8
test/MC/AVR/inst-sleep.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sleep
|
||||
|
||||
; CHECK: sleep ; encoding: [0x88,0x95]
|
10
test/MC/AVR/inst-spm.s
Normal file
10
test/MC/AVR/inst-spm.s
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=spm,spmx -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
spm
|
||||
spm Z+
|
||||
|
||||
; CHECK: spm ; encoding: [0xe8,0x95]
|
||||
; CHECK: spm Z+ ; encoding: [0xf8,0x95]
|
71
test/MC/AVR/inst-st.s
Normal file
71
test/MC/AVR/inst-st.s
Normal file
@ -0,0 +1,71 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
; Normal
|
||||
|
||||
st X, r10
|
||||
st X, r17
|
||||
|
||||
st Y, r30
|
||||
st Y, r19
|
||||
|
||||
st Z, r10
|
||||
st Z, r2
|
||||
|
||||
; Postincrement
|
||||
|
||||
st X+, r10
|
||||
st X+, r17
|
||||
|
||||
st Y+, r30
|
||||
st Y+, r19
|
||||
|
||||
st Z+, r10
|
||||
st Z+, r2
|
||||
|
||||
; Predecrement
|
||||
|
||||
st -X, r10
|
||||
st -X, r17
|
||||
|
||||
st -Y, r30
|
||||
st -Y, r19
|
||||
|
||||
st -Z, r10
|
||||
st -Z, r2
|
||||
|
||||
; Normal
|
||||
|
||||
; CHECK: st X, r10 ; encoding: [0xac,0x92]
|
||||
; CHECK: st X, r17 ; encoding: [0x1c,0x93]
|
||||
|
||||
; CHECK: st Y, r30 ; encoding: [0xe8,0x83]
|
||||
; CHECK: st Y, r19 ; encoding: [0x38,0x83]
|
||||
|
||||
; CHECK: st Z, r10 ; encoding: [0xa0,0x82]
|
||||
; CHECK: st Z, r2 ; encoding: [0x20,0x82]
|
||||
|
||||
|
||||
; Postincrement
|
||||
|
||||
; CHECK: st X+, r10 ; encoding: [0xad,0x92]
|
||||
; CHECK: st X+, r17 ; encoding: [0x1d,0x93]
|
||||
|
||||
; CHECK: st Y+, r30 ; encoding: [0xe9,0x93]
|
||||
; CHECK: st Y+, r19 ; encoding: [0x39,0x93]
|
||||
|
||||
; CHECK: st Z+, r10 ; encoding: [0xa1,0x92]
|
||||
; CHECK: st Z+, r2 ; encoding: [0x21,0x92]
|
||||
|
||||
|
||||
; Predecrement
|
||||
|
||||
; CHECK: st -X, r10 ; encoding: [0xae,0x92]
|
||||
; CHECK: st -X, r17 ; encoding: [0x1e,0x93]
|
||||
|
||||
; CHECK: st -Y, r30 ; encoding: [0xea,0x93]
|
||||
; CHECK: st -Y, r19 ; encoding: [0x3a,0x93]
|
||||
|
||||
; CHECK: st -Z, r10 ; encoding: [0xa2,0x92]
|
||||
; CHECK: st -Z, r2 ; encoding: [0x22,0x92]
|
22
test/MC/AVR/inst-std.s
Normal file
22
test/MC/AVR/inst-std.s
Normal file
@ -0,0 +1,22 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
std Y+2, r2
|
||||
std Y+0, r0
|
||||
|
||||
std Z+12, r9
|
||||
std Z+30, r7
|
||||
|
||||
std Y+foo, r9
|
||||
|
||||
; CHECK: std Y+2, r2 ; encoding: [0x2a,0x82]
|
||||
; CHECK: std Y+0, r0 ; encoding: [0x08,0x82]
|
||||
|
||||
; CHECK: std Z+12, r9 ; encoding: [0x94,0x86]
|
||||
; CHECK: std Z+30, r7 ; encoding: [0x76,0x8e]
|
||||
|
||||
; CHECK: std Y+foo, r9 ; encoding: [0x98'A',0x82'A']
|
||||
; CHECK: ; fixup A - offset: 0, value: +foo, kind: fixup_6
|
||||
|
14
test/MC/AVR/inst-sts.s
Normal file
14
test/MC/AVR/inst-sts.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
sts 3, r5
|
||||
sts 255, r7
|
||||
sts SYMBOL+1, r25
|
||||
|
||||
; CHECK: sts 3, r5 ; encoding: [0x50,0x92,0x03,0x00]
|
||||
; CHECK: sts 255, r7 ; encoding: [0x70,0x92,0xff,0x00]
|
||||
; CHECK: sts SYMBOL+1, r25 ; encoding: [0x90'A',0x93'A',0x00,0x00]
|
||||
; CHECK: ; fixup A - offset: 0, value: SYMBOL+1, kind: fixup_16
|
||||
|
13
test/MC/AVR/inst-sub.s
Normal file
13
test/MC/AVR/inst-sub.s
Normal file
@ -0,0 +1,13 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
sub r0, r15
|
||||
sub r15, r0
|
||||
sub r16, r31
|
||||
sub r31, r16
|
||||
|
||||
; CHECK: sub r0, r15 ; encoding: [0x0f,0x18]
|
||||
; CHECK: sub r15, r0 ; encoding: [0xf0,0x18]
|
||||
; CHECK: sub r16, r31 ; encoding: [0x0f,0x1b]
|
||||
; CHECK: sub r31, r16 ; encoding: [0xf0,0x1b]
|
18
test/MC/AVR/inst-subi.s
Normal file
18
test/MC/AVR/inst-subi.s
Normal file
@ -0,0 +1,18 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
subi r22, 82
|
||||
subi r27, 39
|
||||
subi r31, 244
|
||||
subi r16, 144
|
||||
|
||||
subi r20, EXTERN_SYMBOL+0
|
||||
|
||||
; CHECK: subi r22, 82 ; encoding: [0x62,0x55]
|
||||
; CHECK: subi r27, 39 ; encoding: [0xb7,0x52]
|
||||
; CHECK: subi r31, 244 ; encoding: [0xf4,0x5f]
|
||||
; CHECK: subi r16, 144 ; encoding: [0x00,0x59]
|
||||
|
||||
; CHECK: subi r20, EXTERN_SYMBOL+0 ; encoding: [0x40'A',0x50]
|
||||
; CHECK: ; fixup A - offset: 0, value: EXTERN_SYMBOL+0, kind: fixup_ldi
|
14
test/MC/AVR/inst-swap.s
Normal file
14
test/MC/AVR/inst-swap.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
swap r31
|
||||
swap r25
|
||||
swap r5
|
||||
swap r0
|
||||
|
||||
; CHECK: swap r31 ; encoding: [0xf2,0x95]
|
||||
; CHECK: swap r25 ; encoding: [0x92,0x95]
|
||||
; CHECK: swap r5 ; encoding: [0x52,0x94]
|
||||
; CHECK: swap r0 ; encoding: [0x02,0x94]
|
14
test/MC/AVR/inst-tst.s
Normal file
14
test/MC/AVR/inst-tst.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
tst r3
|
||||
tst r14
|
||||
tst r24
|
||||
tst r12
|
||||
|
||||
; CHECK: tst r3 ; encoding: [0x33,0x20]
|
||||
; CHECK: tst r14 ; encoding: [0xee,0x20]
|
||||
; CHECK: tst r24 ; encoding: [0x88,0x23]
|
||||
; CHECK: tst r12 ; encoding: [0xcc,0x20]
|
8
test/MC/AVR/inst-wdr.s
Normal file
8
test/MC/AVR/inst-wdr.s
Normal file
@ -0,0 +1,8 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
wdr
|
||||
|
||||
; CHECK: wdr ; encoding: [0xa8,0x95]
|
14
test/MC/AVR/inst-xch.s
Normal file
14
test/MC/AVR/inst-xch.s
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=rmw -show-encoding < %s | FileCheck %s
|
||||
|
||||
|
||||
foo:
|
||||
|
||||
xch Z, r13
|
||||
xch Z, r0
|
||||
xch Z, r31
|
||||
xch Z, r3
|
||||
|
||||
; CHECK: xch Z, r13 ; encoding: [0xd4,0x92]
|
||||
; CHECK: xch Z, r0 ; encoding: [0x04,0x92]
|
||||
; CHECK: xch Z, r31 ; encoding: [0xf4,0x93]
|
||||
; CHECK: xch Z, r3 ; encoding: [0x34,0x92]
|
3
test/MC/AVR/lit.local.cfg
Normal file
3
test/MC/AVR/lit.local.cfg
Normal file
@ -0,0 +1,3 @@
|
||||
if not 'AVR' in config.root.targets:
|
||||
config.unsupported = True
|
||||
|
203
test/MC/AVR/modifiers.s
Normal file
203
test/MC/AVR/modifiers.s
Normal file
@ -0,0 +1,203 @@
|
||||
; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
|
||||
|
||||
; TODO: Add support for lo8(-foo + 3), and add test
|
||||
; FIXME: most of these tests use values (i.e. 0x0815) that are out of bounds.
|
||||
|
||||
foo:
|
||||
|
||||
ldi r24, lo8(0x42)
|
||||
ldi r24, lo8(0x2342)
|
||||
|
||||
ldi r24, lo8(0x23)
|
||||
ldi r24, hi8(0x2342)
|
||||
|
||||
; CHECK: ldi r24, lo8(66) ; encoding: [0x82,0xe4]
|
||||
; CHECK: ldi r24, lo8(9026) ; encoding: [0x82,0xe4]
|
||||
|
||||
; CHECK: ldi r24, lo8(35) ; encoding: [0x83,0xe2]
|
||||
; CHECK: ldi r24, hi8(9026) ; encoding: [0x83,0xe2]
|
||||
|
||||
|
||||
bar:
|
||||
|
||||
ldi r24, lo8(bar)
|
||||
ldi r24, hi8(bar)
|
||||
|
||||
; CHECK: ldi r24, lo8(bar) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: lo8(bar), kind: fixup_lo8_ldi
|
||||
; CHECK: ldi r24, hi8(bar) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hi8(bar), kind: fixup_hi8_ldi
|
||||
|
||||
lo8:
|
||||
|
||||
ldi r24, lo8(0x0815)
|
||||
ldi r24, lo8(foo)
|
||||
ldi r24, lo8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, lo8(2069) ; encoding: [0x85,0xe1]
|
||||
; CHECK: ldi r24, lo8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: lo8(foo), kind: fixup_lo8_ldi
|
||||
; CHECK: ldi r24, lo8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: lo8(bar+5), kind: fixup_lo8_ldi
|
||||
|
||||
lo8_neg:
|
||||
|
||||
ldi r24, -lo8(123456)
|
||||
ldi r24, -lo8(foo)
|
||||
|
||||
; CHECK: ldi r24, -lo8(123456) ; encoding: [0x80,0xec]
|
||||
; CHECK: ldi r24, -lo8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -lo8(foo), kind: fixup_lo8_ldi_neg
|
||||
|
||||
hi8:
|
||||
|
||||
ldi r24, hi8(0x0815)
|
||||
ldi r24, hi8(foo)
|
||||
ldi r24, hi8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, hi8(2069) ; encoding: [0x88,0xe0]
|
||||
; CHECK: ldi r24, hi8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hi8(foo), kind: fixup_hi8_ldi
|
||||
; CHECK: ldi r24, hi8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hi8(bar+5), kind: fixup_hi8_ldi
|
||||
|
||||
hi8_neg:
|
||||
|
||||
ldi r24, -hi8(123456)
|
||||
ldi r24, -hi8(foo)
|
||||
|
||||
; CHECK: ldi r24, -hi8(123456) ; encoding: [0x8d,0xe1]
|
||||
; CHECK: ldi r24, -hi8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -hi8(foo), kind: fixup_hi8_ldi_neg
|
||||
|
||||
hh8:
|
||||
|
||||
ldi r24, hh8(0x0815)
|
||||
ldi r24, hh8(foo)
|
||||
ldi r24, hh8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, hh8(2069) ; encoding: [0x80,0xe0]
|
||||
; CHECK: ldi r24, hh8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hh8(foo), kind: fixup_hh8_ldi
|
||||
; CHECK: ldi r24, hh8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hh8(bar+5), kind: fixup_hh8_ldi
|
||||
|
||||
hh8_neg:
|
||||
|
||||
ldi r24, -hh8(123456)
|
||||
ldi r24, -hh8(foo)
|
||||
|
||||
; CHECK: ldi r24, -hh8(123456) ; encoding: [0x8e,0xef]
|
||||
; CHECK: ldi r24, -hh8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -hh8(foo), kind: fixup_hh8_ldi_neg
|
||||
|
||||
hlo8: ; synonym with hh8() above, hence the... odd results
|
||||
|
||||
ldi r24, hlo8(0x0815)
|
||||
ldi r24, hlo8(foo)
|
||||
ldi r24, hlo8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, hh8(2069) ; encoding: [0x80,0xe0]
|
||||
; CHECK: ldi r24, hh8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hh8(foo), kind: fixup_hh8_ldi
|
||||
; CHECK: ldi r24, hh8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hh8(bar+5), kind: fixup_hh8_ldi
|
||||
|
||||
hlo8_neg:
|
||||
|
||||
ldi r24, -hlo8(123456)
|
||||
ldi r24, -hlo8(foo)
|
||||
|
||||
|
||||
; CHECK: ldi r24, -hh8(123456) ; encoding: [0x8e,0xef]
|
||||
; CHECK: ldi r24, -hh8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -hh8(foo), kind: fixup_hh8_ldi_neg
|
||||
|
||||
hhi8:
|
||||
|
||||
ldi r24, hhi8(0x0815)
|
||||
ldi r24, hhi8(foo)
|
||||
ldi r24, hhi8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, hhi8(2069) ; encoding: [0x80,0xe0]
|
||||
; CHECK: ldi r24, hhi8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hhi8(foo), kind: fixup_ms8_ldi
|
||||
; CHECK: ldi r24, hhi8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: hhi8(bar+5), kind: fixup_ms8_ldi
|
||||
|
||||
hhi8_neg:
|
||||
ldi r24, -hhi8(123456)
|
||||
ldi r24, -hhi8(foo)
|
||||
|
||||
|
||||
; CHECK: ldi r24, -hhi8(123456) ; encoding: [0x8f,0xef]
|
||||
; CHECK: ldi r24, -hhi8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -hhi8(foo), kind: fixup_ms8_ldi_neg
|
||||
|
||||
pm_lo8:
|
||||
ldi r24, pm_lo8(0x0815)
|
||||
ldi r24, pm_lo8(foo)
|
||||
ldi r24, pm_lo8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, pm_lo8(2069) ; encoding: [0x8a,0xe0]
|
||||
; CHECK: ldi r24, pm_lo8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: pm_lo8(foo), kind: fixup_lo8_ldi_pm
|
||||
; CHECK: ldi r24, pm_lo8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: pm_lo8(bar+5), kind: fixup_lo8_ldi_pm
|
||||
|
||||
pm_hi8:
|
||||
ldi r24, pm_hi8(0x0815)
|
||||
ldi r24, pm_hi8(foo)
|
||||
ldi r24, pm_hi8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, pm_hi8(2069) ; encoding: [0x84,0xe0]
|
||||
; CHECK: ldi r24, pm_hi8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: pm_hi8(foo), kind: fixup_hi8_ldi_pm
|
||||
; CHECK: ldi r24, pm_hi8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: pm_hi8(bar+5), kind: fixup_hi8_ldi_pm
|
||||
|
||||
pm_hh8:
|
||||
ldi r24, pm_hh8(0x0815)
|
||||
ldi r24, pm_hh8(foo)
|
||||
ldi r24, pm_hh8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, pm_hh8(2069) ; encoding: [0x80,0xe0]
|
||||
; CHECK: ldi r24, pm_hh8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: pm_hh8(foo), kind: fixup_hh8_ldi_pm
|
||||
; CHECK: ldi r24, pm_hh8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: pm_hh8(bar+5), kind: fixup_hh8_ldi_pm
|
||||
|
||||
|
||||
pm_lo8_neg:
|
||||
ldi r24, -pm_lo8(0x0815)
|
||||
ldi r24, -pm_lo8(foo)
|
||||
ldi r24, -pm_lo8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, -pm_lo8(2069) ; encoding: [0x85,0xef]
|
||||
; CHECK: ldi r24, -pm_lo8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -pm_lo8(foo), kind: fixup_lo8_ldi_pm_neg
|
||||
; CHECK: ldi r24, -pm_lo8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -pm_lo8(bar+5), kind: fixup_lo8_ldi_pm_neg
|
||||
|
||||
pm_hi8_neg:
|
||||
ldi r24, -pm_hi8(0x0815)
|
||||
ldi r24, -pm_hi8(foo)
|
||||
ldi r24, -pm_hi8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, -pm_hi8(2069) ; encoding: [0x8b,0xef]
|
||||
; CHECK: ldi r24, -pm_hi8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -pm_hi8(foo), kind: fixup_hi8_ldi_pm_neg
|
||||
; CHECK: ldi r24, -pm_hi8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -pm_hi8(bar+5), kind: fixup_hi8_ldi_pm_neg
|
||||
|
||||
pm_hh8_neg:
|
||||
ldi r24, -pm_hh8(0x0815)
|
||||
ldi r24, -pm_hh8(foo)
|
||||
ldi r24, -pm_hh8(bar + 5)
|
||||
|
||||
; CHECK: ldi r24, -pm_hh8(2069) ; encoding: [0x8f,0xef]
|
||||
; CHECK: ldi r24, -pm_hh8(foo) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -pm_hh8(foo), kind: fixup_hh8_ldi_pm_neg
|
||||
; CHECK: ldi r24, -pm_hh8(bar+5) ; encoding: [0x80'A',0xe0]
|
||||
; CHECK: ; fixup A - offset: 0, value: -pm_hh8(bar+5), kind: fixup_hh8_ldi_pm_neg
|
||||
|
5
test/MC/AVR/out-of-range-fixups/adiw-fail.s
Normal file
5
test/MC/AVR/out-of-range-fixups/adiw-fail.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: not llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: error: out of range immediate (expected an integer in the range 0 to 63)
|
||||
adiw r24, foo+64
|
||||
|
5
test/MC/AVR/out-of-range-fixups/adiw-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/adiw-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_6_ADIW foo+63
|
||||
adiw r24, foo+63
|
||||
|
5
test/MC/AVR/out-of-range-fixups/brbs-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/brbs-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_7_PCREL foo+127
|
||||
brbs 1, foo+127
|
||||
|
5
test/MC/AVR/out-of-range-fixups/call-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/call-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s 2>&1 | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_CALL foo+8388607
|
||||
jmp foo+8388607
|
||||
|
5
test/MC/AVR/out-of-range-fixups/in-fail.s
Normal file
5
test/MC/AVR/out-of-range-fixups/in-fail.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: not llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: error: out of range port number (expected an integer in the range 0 to 63)
|
||||
in r3, foo+64
|
||||
|
5
test/MC/AVR/out-of-range-fixups/in-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/in-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_PORT6 foo+63
|
||||
in r3, foo+63
|
||||
|
5
test/MC/AVR/out-of-range-fixups/lds-fail.s
Normal file
5
test/MC/AVR/out-of-range-fixups/lds-fail.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: not llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: error: out of range port number (expected an integer in the range 0 to 65535)
|
||||
lds r2, foo+65536
|
||||
|
5
test/MC/AVR/out-of-range-fixups/lds-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/lds-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_16 foo+65535
|
||||
lds r2, foo+65535
|
||||
|
5
test/MC/AVR/out-of-range-fixups/rjmp-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/rjmp-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_13_PCREL foo+4095
|
||||
rjmp foo+4095
|
||||
|
5
test/MC/AVR/out-of-range-fixups/sbi-fail.s
Normal file
5
test/MC/AVR/out-of-range-fixups/sbi-fail.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: not llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: error: out of range port number (expected an integer in the range 0 to 31)
|
||||
sbi foo+32, 1
|
||||
|
5
test/MC/AVR/out-of-range-fixups/sbi-pass.s
Normal file
5
test/MC/AVR/out-of-range-fixups/sbi-pass.s
Normal file
@ -0,0 +1,5 @@
|
||||
; RUN: llvm-mc -triple avr -mattr=avr6 -filetype=obj < %s | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: R_AVR_PORT5 foo+31
|
||||
sbi foo+31, 1
|
||||
|
75
test/MC/AVR/relocations.s
Normal file
75
test/MC/AVR/relocations.s
Normal file
@ -0,0 +1,75 @@
|
||||
; RUN: llvm-mc -filetype=obj -triple=avr %s -mattr=avr6 | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; CHECK: RELOCATION RECORDS FOR
|
||||
|
||||
; CHECK-NEXT: R_AVR_LDI SYMBOL+3
|
||||
ldi r21, SYMBOL+3
|
||||
|
||||
; CHECK-NEXT: R_AVR_6_ADIW FOO
|
||||
adiw r24, FOO
|
||||
|
||||
; CHECK-NEXT: R_AVR_16 BAR+2
|
||||
lds r8, BAR+2
|
||||
|
||||
; CHECK-NEXT: R_AVR_PORT5 foo
|
||||
sbic foo, 1
|
||||
|
||||
; CHECK-NEXT: R_AVR_PORT6 Bar+2
|
||||
in r30, Bar+2
|
||||
|
||||
; CHECK-NEXT: R_AVR_CALL foo+3
|
||||
call foo+3
|
||||
|
||||
; CHECK-NEXT: R_AVR_13_PCREL foo-10
|
||||
rjmp foo-10
|
||||
|
||||
; CHECK-NEXT: R_AVR_7_PCREL foo+2
|
||||
brcs foo+2
|
||||
|
||||
; CHECK-NEXT: R_AVR_LO8_LDI bar+3
|
||||
ldi r24, lo8(bar+3)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HI8_LDI abc
|
||||
ldi r30, hi8(abc)
|
||||
|
||||
; CHECK-NEXT: R_AVR_LO8_LDI_NEG abc
|
||||
ldi r16, -lo8(abc)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HI8_LDI_NEG abc
|
||||
ldi r16, -hi8(abc)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HH8_LDI foo
|
||||
ldi r16, hh8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HH8_LDI_NEG foo
|
||||
ldi r16, -hh8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HH8_LDI foo
|
||||
ldi r24, hlo8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HH8_LDI_NEG foo
|
||||
ldi r24, -hlo8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_MS8_LDI bar
|
||||
ldi r24, hhi8(bar)
|
||||
|
||||
; CHECK-NEXT: R_AVR_MS8_LDI_NEG bar
|
||||
ldi r24, -hhi8(bar)
|
||||
|
||||
; CHECK-NEXT: R_AVR_LO8_LDI_PM foo
|
||||
ldi r17, pm_lo8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HI8_LDI_PM bar
|
||||
ldi r22, pm_hi8(bar)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HH8_LDI_PM baz
|
||||
ldi r25, pm_hh8(baz)
|
||||
|
||||
; CHECK-NEXT: R_AVR_LO8_LDI_PM_NEG
|
||||
ldi r25, -pm_lo8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HI8_LDI_PM_NEG
|
||||
ldi r25, -pm_hi8(foo)
|
||||
|
||||
; CHECK-NEXT: R_AVR_HH8_LDI_PM_NEG
|
||||
ldi r25, -pm_hh8(foo)
|
16
test/MC/AVR/symbol_relocation.s
Normal file
16
test/MC/AVR/symbol_relocation.s
Normal file
@ -0,0 +1,16 @@
|
||||
; RUN: llvm-mc -filetype=obj -triple=avr %s -mattr=avr6 | llvm-objdump -r - | FileCheck %s
|
||||
|
||||
; Checks that a global symbol with the address of another
|
||||
; symbol generates a R_AVR_16_PM relocation, as the symbol
|
||||
; will always be in program memory.
|
||||
|
||||
; CHECK: RELOCATION RECORDS FOR [.rela.text]:
|
||||
; CHECK-NEXT: 00000002 R_AVR_16_PM .text
|
||||
|
||||
foo:
|
||||
ret
|
||||
|
||||
.globl ptr
|
||||
ptr:
|
||||
.short foo
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user