1 ! RUN
: llvm-mc
%s
-triple
=sparc
-show-encoding | FileCheck
%s
--check-prefixes
=CHECK
,V8
2 ! RUN
: llvm-mc
%s
-triple
=sparcv9
-show-encoding | FileCheck
%s
--check-prefixes
=CHECK
,V9
4 ! CHECK
: rd
%y
, %i0
! encoding
: [0xb1,0x40,0x00,0x00]
7 ! CHECK
: rd
%asr1
, %i0
! encoding
: [0xb1,0x40,0x40,0x00]
10 ! CHECK
: wr
%i0
, 5, %y
! encoding
: [0x81,0x86,0x20,0x05]
13 ! CHECK
: wr
%i0
, %i1
, %asr15
! encoding
: [0x9f,0x86,0x00,0x19]
16 ! CHECK
: rd
%asr15
, %g0
! encoding
: [0x81,0x43,0xc0,0x00]
19 ! CHECK
: rd
%psr
, %i0
! encoding
: [0xb1,0x48,0x00,0x00]
22 ! CHECK
: rd
%wim
, %i0
! encoding
: [0xb1,0x50,0x00,0x00]
25 ! CHECK
: rd
%tbr
, %i0
! encoding
: [0xb1,0x58,0x00,0x00]
28 ! CHECK
: wr
%i0
, 5, %psr
! encoding
: [0x81,0x8e,0x20,0x05]
31 ! CHECK
: wr
%i0
, 5, %wim
! encoding
: [0x81,0x96,0x20,0x05]
34 ! CHECK
: wr
%i0
, 5, %tbr
! encoding
: [0x81,0x9e,0x20,0x05]
37 ! CHECK
: ld [%g2+
20], %fsr
! encoding
: [0xc1,0x08,0xa0,0x14]
40 ! CHECK
: ld [%g2+
%i5
], %fsr
! encoding
: [0xc1,0x08,0x80,0x1d]
43 ! CHECK
: st %fsr
, [%g2+
20] ! encoding
: [0xc1,0x28,0xa0,0x14]
46 ! CHECK
: st %fsr
, [%g2+
%i5
] ! encoding
: [0xc1,0x28,0x80,0x1d]
49 ! CHECK
: std %fq
, [%g6+
%i2
] ! encoding
: [0xc1,0x31,0x80,0x1a]
52 !! Those instructions are processed differently on V8
and V9.
54 ! V8
: rd
%asr2
, %i0
! encoding
: [0xb1,0x40,0x80,0x00]
55 ! V9
: rd
%ccr
, %i0
! encoding
: [0xb1,0x40,0x80,0x00]
57 ! V8
: wr
%i0
, 7, %asr2
! encoding
: [0x85,0x86,0x20,0x07]
58 ! V9
: wr
%i0
, 7, %ccr
! encoding
: [0x85,0x86,0x20,0x07]
61 ! V8
: rd
%asr3
, %i0
! encoding
: [0xb1,0x40,0xc0,0x00]
62 ! V9
: rd
%asi
, %i0
! encoding
: [0xb1,0x40,0xc0,0x00]
64 ! V8
: wr
%i0
, 7, %asr3
! encoding
: [0x87,0x86,0x20,0x07]
65 ! V9
: wr
%i0
, 7, %asi
! encoding
: [0x87,0x86,0x20,0x07]
68 ! V8
: rd
%asr4
, %i0
! encoding
: [0xb1,0x41,0x00,0x00]
69 ! V9
: rd
%tick
, %i0
! encoding
: [0xb1,0x41,0x00,0x00]
71 ! V8
: wr
%i0
, 7, %asr4
! encoding
: [0x89,0x86,0x20,0x07]
72 ! V9
: wr
%i0
, 7, %tick
! encoding
: [0x89,0x86,0x20,0x07]
75 ! V8
: rd
%asr5
, %i0
! encoding
: [0xb1,0x41,0x40,0x00]
76 ! V9
: rd
%pc
, %i0
! encoding
: [0xb1,0x41,0x40,0x00]
78 ! V8
: wr
%i0
, 7, %asr5
! encoding
: [0x8b,0x86,0x20,0x07]
79 ! V9
: wr
%i0
, 7, %pc
! encoding
: [0x8b,0x86,0x20,0x07]
82 ! V8
: rd
%asr6
, %i0
! encoding
: [0xb1,0x41,0x80,0x00]
83 ! V9
: rd
%fprs
, %i0
! encoding
: [0xb1,0x41,0x80,0x00]
85 ! V8
: wr
%i0
, 7, %asr6
! encoding
: [0x8d,0x86,0x20,0x07]
86 ! V9
: wr
%i0
, 7, %fprs
! encoding
: [0x8d,0x86,0x20,0x07]
89 !! Alternate names for
%asr2-
%asr6 are only for V9.
90 !! TODO
: make sure that using alternate names returns
91 !! an error on V8
(currently it doesn
't, see SparcRegisterInfo.td).
93 ! V9: rd %ccr, %i0 ! encoding: [0xb1,0x40,0x80,0x00]
95 ! V9: wr %i0, 7, %ccr ! encoding: [0x85,0x86,0x20,0x07]
98 ! V9: rd %asi, %i0 ! encoding: [0xb1,0x40,0xc0,0x00]
100 ! V9: wr %i0, 7, %asi ! encoding: [0x87,0x86,0x20,0x07]
103 ! V9: rd %tick, %i0 ! encoding: [0xb1,0x41,0x00,0x00]
105 ! V9: wr %i0, 7, %tick ! encoding: [0x89,0x86,0x20,0x07]
108 ! V9: rd %pc, %i0 ! encoding: [0xb1,0x41,0x40,0x00]
110 ! V9: wr %i0, 7, %pc ! encoding: [0x8b,0x86,0x20,0x07]
113 ! V9: rd %fprs, %i0 ! encoding: [0xb1,0x41,0x80,0x00]
115 ! V9: wr %i0, 7, %fprs ! encoding: [0x8d,0x86,0x20,0x07]