xref: /netbsd-src/external/gpl3/binutils.old/dist/cpu/mep-avc.cpu (revision 16dce51364ebe8aeafbae46bc5aa167b8115bc45)
1*16dce513Schristos; Toshiba MeP AVC Coprocessor description.  -*- Scheme -*-
2*16dce513Schristos; Copyright 2011 Free Software Foundation, Inc.
3*16dce513Schristos;
4*16dce513Schristos; Contributed by Red Hat Inc;
5*16dce513Schristos;
6*16dce513Schristos; This file is part of the GNU Binutils.
7*16dce513Schristos;
8*16dce513Schristos; This program is free software; you can redistribute it and/or modify
9*16dce513Schristos; it under the terms of the GNU General Public License as published by
10*16dce513Schristos; the Free Software Foundation; either version 3 of the License, or
11*16dce513Schristos; (at your option) any later version.
12*16dce513Schristos;
13*16dce513Schristos; This program is distributed in the hope that it will be useful,
14*16dce513Schristos; but WITHOUT ANY WARRANTY; without even the implied warranty of
15*16dce513Schristos; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16*16dce513Schristos; GNU General Public License for more details.
17*16dce513Schristos;
18*16dce513Schristos; You should have received a copy of the GNU General Public License
19*16dce513Schristos; along with this program; if not, write to the Free Software
20*16dce513Schristos; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21*16dce513Schristos; MA 02110-1301, USA.
22*16dce513Schristos
23*16dce513Schristos; This file was customized based upon the output of a2cgen 0.42
24*16dce513Schristos
25*16dce513Schristos;------------------------------------------------------------------------------
26*16dce513Schristos; MeP-Integrator will redefine the isa pmacros below to allow the bit widths
27*16dce513Schristos; specified below for each ME_MODULE using this coprocessor.
28*16dce513Schristos; This coprocessor requires 16 and 32 bit insns.
29*16dce513Schristos;------------------------------------------------------------------------------
30*16dce513Schristos; begin-isas
31*16dce513Schristos(define-pmacro avc-core-isa () (ISA ext_core1))
32*16dce513Schristos(define-pmacro avc-16-isa   () (ISA ext_cop1_16))
33*16dce513Schristos(define-pmacro avc-32-isa   () (ISA ext_cop1_32))
34*16dce513Schristos(define-pmacro all-avc-isas () (ISA ext_core1,ext_cop1_16,ext_cop1_32))
35*16dce513Schristos; end-isas
36*16dce513Schristos
37*16dce513Schristos(define-pmacro (dncpi xname xcomment xattrs xsyntax xformat xsemantics xtiming)
38*16dce513Schristos   (dni xname xcomment (.splice (.unsplice xattrs) avc-core-isa) xsyntax xformat xsemantics xtiming))
39*16dce513Schristos(define-pmacro (dn16i xname xcomment xattrs xsyntax xformat xsemantics xtiming)
40*16dce513Schristos   (dni xname xcomment (.splice (.unsplice xattrs) avc-16-isa) xsyntax xformat xsemantics xtiming))
41*16dce513Schristos(define-pmacro (dn32i xname xcomment xattrs xsyntax xformat xsemantics xtiming)
42*16dce513Schristos   (dni xname xcomment (.splice (.unsplice xattrs) avc-32-isa) xsyntax xformat xsemantics xtiming))
43*16dce513Schristos
44*16dce513Schristos; register definitions
45*16dce513Schristos; ---------------------
46*16dce513Schristos; NOTE: This exists solely for the purpose of providing the proper register names for this coprocessor.
47*16dce513Schristos; GDB will use the hardware table generated from this declaration. The operands use h-cr
48*16dce513Schristos; from mep-core.cpu so that SID's semantic trace will be consistent between
49*16dce513Schristos; the core and the coprocessor but use parse/print handlers which reference the hardware table
50*16dce513Schristos; generated from this declarations
51*16dce513Schristos(define-hardware
52*16dce513Schristos  (name h-cr-avc)
53*16dce513Schristos  (comment "32-bit coprocessor registers for avc coprocessor")
54*16dce513Schristos  (attrs VIRTUAL all-avc-isas)
55*16dce513Schristos  (type register SI (32))
56*16dce513Schristos  (set (index newval) (c-call VOID "h_cr64_set" index (ext DI newval)))
57*16dce513Schristos  (get (index) (trunc SI (c-call DI "h_cr64_get" index)))
58*16dce513Schristos  (indices keyword "$c" (.map -reg-pair (.iota 8)))
59*16dce513Schristos)
60*16dce513Schristos; NOTE: This exists solely for the purpose of providing the proper register names for this coprocessor.
61*16dce513Schristos; GDB will use the hardware table generated from this declaration. The operands use h-ccr
62*16dce513Schristos; from mep-core.cpu so that SID's semantic trace will be consistent between
63*16dce513Schristos; the core and the coprocessor but use parse/print handlers which reference the hardware table
64*16dce513Schristos; generated from this declarations
65*16dce513Schristos(define-hardware
66*16dce513Schristos  (name h-ccr-avc)
67*16dce513Schristos  (comment "Coprocessor control registers for avc coprocessor")
68*16dce513Schristos  (attrs VIRTUAL all-avc-isas)
69*16dce513Schristos  (type register SI (64))
70*16dce513Schristos  (set (index newval) (c-call VOID "h_ccr_set" index newval))
71*16dce513Schristos  (get (index) (c-call SI "h_ccr_get" index))
72*16dce513Schristos  (indices keyword ""
73*16dce513Schristos	(.splice
74*16dce513Schristos        ($accl1 5) ($acch1 4) ($accl0 3) ($acch0 2) ($CBCR 1) ($csar 0)
75*16dce513Schristos        ($cbcr 1)
76*16dce513Schristos		(.unsplice (.map -ccr-reg-pair (.iota 6)))
77*16dce513Schristos        )
78*16dce513Schristos  )
79*16dce513Schristos)
80*16dce513Schristos(dnop avccopCCR5 "Audio Copro Accumulator" (all-avc-isas) h-ccr 5)
81*16dce513Schristos(dnop avccopCCR4 "Audio Copro Accumulator" (all-avc-isas) h-ccr 4)
82*16dce513Schristos(dnop avccopCCR3 "Audio Copro Accumulator" (all-avc-isas) h-ccr 3)
83*16dce513Schristos(dnop avccopCCR2 "Audio Copro Accumulator" (all-avc-isas) h-ccr 2)
84*16dce513Schristos(dnop avccopCCR1 "Audio Copro Branch Condition Register" (all-avc-isas) h-ccr 1)
85*16dce513Schristos(dnop avccopCCR0 "Audio Copro Shift-Amount Register" (all-avc-isas) h-ccr 0)
86*16dce513Schristos
87*16dce513Schristos; instruction field and operand definitions
88*16dce513Schristos(dnf f-avc-v3sub4u0 "sub opecode field" (avc-32-isa) 0 4)
89*16dce513Schristos(dnf f-avc-v1sub4u0 "sub opecode field" (avc-16-isa) 0 4)
90*16dce513Schristos(dnf f-avc-v3Rn "register field" (avc-32-isa) 4 4)
91*16dce513Schristos(dnop avcv3Rn "the operand definition" (avc-32-isa) h-gpr f-avc-v3Rn)
92*16dce513Schristos(dnf f-avc-v3CCRn "register field" (avc-32-isa) 4 4)
93*16dce513Schristos(define-full-operand avcv3CCRn "the operand definition" (avc-32-isa (CDATA REGNUM)) h-ccr DFLT f-avc-v3CCRn ( (parse "avc_ccr") (print "avc_ccr")) () ())
94*16dce513Schristos(df f-avc-v3Imm16s4x24e32-hi "split immediate field hi" (avc-32-isa) 4 8 INT #f #f)
95*16dce513Schristos(df f-avc-v3Imm16s4x24e32-lo "split immediate field lo" (avc-32-isa) 24 8 UINT #f #f)
96*16dce513Schristos(define-multi-ifield
97*16dce513Schristos (name f-avc-v3Imm16s4x24e32)
98*16dce513Schristos (comment "split immediate field")
99*16dce513Schristos (attrs avc-32-isa)
100*16dce513Schristos (mode INT)
101*16dce513Schristos (subfields f-avc-v3Imm16s4x24e32-hi f-avc-v3Imm16s4x24e32-lo)
102*16dce513Schristos (insert (sequence ()
103*16dce513Schristos    (set (ifield f-avc-v3Imm16s4x24e32-hi) (sra INT (ifield f-avc-v3Imm16s4x24e32) 8))
104*16dce513Schristos    (set (ifield f-avc-v3Imm16s4x24e32-lo) (and (ifield f-avc-v3Imm16s4x24e32) #xff))))
105*16dce513Schristos (extract (set (ifield f-avc-v3Imm16s4x24e32)
106*16dce513Schristos    (or (sll (ifield f-avc-v3Imm16s4x24e32-hi) 8) (ifield f-avc-v3Imm16s4x24e32-lo))))
107*16dce513Schristos )
108*16dce513Schristos(dnop avcv3Imm16s4x24e32 "the operand definition" (avc-32-isa) h-sint f-avc-v3Imm16s4x24e32)
109*16dce513Schristos(dnf f-avc-v3CRn "register field" (avc-32-isa) 4 4)
110*16dce513Schristos(define-full-operand avcv3CRn "the operand definition" (avc-32-isa) h-cr DFLT f-avc-v3CRn ((parse "avc_cr") (print "avc_cr")) () ())
111*16dce513Schristos(dnf f-avc-v1CRq "register field" (avc-16-isa) 4 4)
112*16dce513Schristos(define-full-operand avcv1CRq "the operand definition" (avc-16-isa) h-cr DFLT f-avc-v1CRq ((parse "avc_cr") (print "avc_cr")) () ())
113*16dce513Schristos(dnf f-avc-v1sub4u4 "sub opecode field" (avc-16-isa) 4 4)
114*16dce513Schristos(dnf f-avc-c3Rn "register field" (avc-core-isa) 4 4)
115*16dce513Schristos(dnop avcc3Rn "the operand definition" (avc-core-isa) h-gpr f-avc-c3Rn)
116*16dce513Schristos(dnf f-avc-c3CCRn "register field" (avc-core-isa) 4 4)
117*16dce513Schristos(define-full-operand avcc3CCRn "the operand definition" (avc-core-isa (CDATA REGNUM)) h-ccr DFLT f-avc-c3CCRn ( (parse "avc_ccr") (print "avc_ccr")) () ())
118*16dce513Schristos(df f-avc-c3Imm16s4x24e32-hi "split immediate field hi" (avc-core-isa) 4 8 INT #f #f)
119*16dce513Schristos(df f-avc-c3Imm16s4x24e32-lo "split immediate field lo" (avc-core-isa) 24 8 UINT #f #f)
120*16dce513Schristos(define-multi-ifield
121*16dce513Schristos (name f-avc-c3Imm16s4x24e32)
122*16dce513Schristos (comment "split immediate field")
123*16dce513Schristos (attrs avc-core-isa)
124*16dce513Schristos (mode INT)
125*16dce513Schristos (subfields f-avc-c3Imm16s4x24e32-hi f-avc-c3Imm16s4x24e32-lo)
126*16dce513Schristos (insert (sequence ()
127*16dce513Schristos    (set (ifield f-avc-c3Imm16s4x24e32-hi) (sra INT (ifield f-avc-c3Imm16s4x24e32) 8))
128*16dce513Schristos    (set (ifield f-avc-c3Imm16s4x24e32-lo) (and (ifield f-avc-c3Imm16s4x24e32) #xff))))
129*16dce513Schristos (extract (set (ifield f-avc-c3Imm16s4x24e32)
130*16dce513Schristos    (or (sll (ifield f-avc-c3Imm16s4x24e32-hi) 8) (ifield f-avc-c3Imm16s4x24e32-lo))))
131*16dce513Schristos )
132*16dce513Schristos(dnop avcc3Imm16s4x24e32 "the operand definition" (avc-core-isa) h-sint f-avc-c3Imm16s4x24e32)
133*16dce513Schristos(dnf f-avc-c3CRn "register field" (avc-core-isa) 4 4)
134*16dce513Schristos(define-full-operand avcc3CRn "the operand definition" (avc-core-isa) h-cr DFLT f-avc-c3CRn ((parse "avc_cr") (print "avc_cr")) () ())
135*16dce513Schristos(dnf f-avc-c3sub4u4 "sub opecode field" (avc-core-isa) 4 4)
136*16dce513Schristos(dnf f-avc-v3Rm "register field" (avc-32-isa) 8 4)
137*16dce513Schristos(dnop avcv3Rm "the operand definition" (avc-32-isa) h-gpr f-avc-v3Rm)
138*16dce513Schristos(df f-avc-v1Imm5u8 "immediate field" (avc-16-isa) 8 5 UINT #f #f)
139*16dce513Schristos(dnop avcv1Imm5u8 "the operand definition" (avc-16-isa) h-uint f-avc-v1Imm5u8)
140*16dce513Schristos(df f-avc-v1Imm6s8 "immediate field" (avc-16-isa) 8 6 INT #f #f)
141*16dce513Schristos(dnop avcv1Imm6s8 "the operand definition" (avc-16-isa) h-sint f-avc-v1Imm6s8)
142*16dce513Schristos(df f-avc-v1Imm8s8 "immediate field" (avc-16-isa) 8 8 INT #f #f)
143*16dce513Schristos(dnop avcv1Imm8s8 "the operand definition" (avc-16-isa) h-sint f-avc-v1Imm8s8)
144*16dce513Schristos(dnf f-avc-v1CRp "register field" (avc-16-isa) 8 4)
145*16dce513Schristos(define-full-operand avcv1CRp "the operand definition" (avc-16-isa) h-cr DFLT f-avc-v1CRp ((parse "avc_cr") (print "avc_cr")) () ())
146*16dce513Schristos(dnf f-avc-v1sub4u8 "sub opecode field" (avc-16-isa) 8 4)
147*16dce513Schristos(dnf f-avc-c3Rm "register field" (avc-core-isa) 8 4)
148*16dce513Schristos(dnop avcc3Rm "the operand definition" (avc-core-isa) h-gpr f-avc-c3Rm)
149*16dce513Schristos(dnf f-avc-c3sub4u8 "sub opecode field" (avc-core-isa) 8 4)
150*16dce513Schristos(dnf f-avc-v3sub4u12 "sub opecode field" (avc-32-isa) 12 4)
151*16dce513Schristos(dnf f-avc-v1CRo "register field" (avc-16-isa) 12 4)
152*16dce513Schristos(define-full-operand avcv1CRo "the operand definition" (avc-16-isa) h-cr DFLT f-avc-v1CRo ((parse "avc_cr") (print "avc_cr")) () ())
153*16dce513Schristos(dnf f-avc-v1sub4u12 "sub opecode field" (avc-16-isa) 12 4)
154*16dce513Schristos(dnf f-avc-v1sub3u13 "sub opecode field" (avc-16-isa) 13 3)
155*16dce513Schristos(dnf f-avc-v1sub2u14 "sub opecode field" (avc-16-isa) 14 2)
156*16dce513Schristos(dnf f-avc-v3sub4u16 "sub opecode field" (avc-32-isa) 16 4)
157*16dce513Schristos(dnf f-avc-c3sub4u16 "sub opecode field" (avc-core-isa) 16 4)
158*16dce513Schristos(dnf f-avc-v3CRq "register field" (avc-32-isa) 20 4)
159*16dce513Schristos(define-full-operand avcv3CRq "the operand definition" (avc-32-isa) h-cr DFLT f-avc-v3CRq ((parse "avc_cr") (print "avc_cr")) () ())
160*16dce513Schristos(dnf f-avc-v3sub4u20 "sub opecode field" (avc-32-isa) 20 4)
161*16dce513Schristos(dnf f-avc-c3CRq "register field" (avc-core-isa) 20 4)
162*16dce513Schristos(define-full-operand avcc3CRq "the operand definition" (avc-core-isa) h-cr DFLT f-avc-c3CRq ((parse "avc_cr") (print "avc_cr")) () ())
163*16dce513Schristos(dnf f-avc-c3sub4u20 "sub opecode field" (avc-core-isa) 20 4)
164*16dce513Schristos(dnf f-avc-v3sub4u24 "sub opecode field" (avc-32-isa) 24 4)
165*16dce513Schristos(df f-avc-c3Imm5u24 "immediate field" (avc-core-isa) 24 5 UINT #f #f)
166*16dce513Schristos(dnop avcc3Imm5u24 "the operand definition" (avc-core-isa) h-uint f-avc-c3Imm5u24)
167*16dce513Schristos(df f-avc-c3Imm6s24 "immediate field" (avc-core-isa) 24 6 INT #f #f)
168*16dce513Schristos(dnop avcc3Imm6s24 "the operand definition" (avc-core-isa) h-sint f-avc-c3Imm6s24)
169*16dce513Schristos(dnf f-avc-c3CRp "register field" (avc-core-isa) 24 4)
170*16dce513Schristos(define-full-operand avcc3CRp "the operand definition" (avc-core-isa) h-cr DFLT f-avc-c3CRp ((parse "avc_cr") (print "avc_cr")) () ())
171*16dce513Schristos(dnf f-avc-c3sub4u24 "sub opecode field" (avc-core-isa) 24 4)
172*16dce513Schristos(dnf f-avc-v3sub4u28 "sub opecode field" (avc-32-isa) 28 4)
173*16dce513Schristos(dnf f-avc-c3CRo "register field" (avc-core-isa) 28 4)
174*16dce513Schristos(define-full-operand avcc3CRo "the operand definition" (avc-core-isa) h-cr DFLT f-avc-c3CRo ((parse "avc_cr") (print "avc_cr")) () ())
175*16dce513Schristos(dnf f-avc-c3sub4u28 "sub opecode field" (avc-core-isa) 28 4)
176*16dce513Schristos(dnf f-avc-c3sub3u29 "sub opecode field" (avc-core-isa) 29 3)
177*16dce513Schristos(dnf f-avc-c3sub2u30 "sub opecode field" (avc-core-isa) 30 2)
178*16dce513Schristos
179*16dce513Schristos; instruction definitions
180*16dce513Schristos(dncpi cnop_avc_c3 "cnop" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cnop"))
181*16dce513Schristos "cnop"
182*16dce513Schristos(+ MAJ_15 (f-sub4 7) (f-avc-c3sub4u28 #x0) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
183*16dce513Schristos(c-call "check_option_cp" pc)
184*16dce513Schristos ())
185*16dce513Schristos(dncpi cmov1_avc_c3 "cmov1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmov1"))
186*16dce513Schristos "cmov $avcc3CRn,$avcc3Rm"
187*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRn avcc3Rm (f-avc-c3sub4u28 #x0) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xf))
188*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
189*16dce513Schristos(set avcc3CRn avcc3Rm)
190*16dce513Schristos)
191*16dce513Schristos ())
192*16dce513Schristos(dncpi cmov2_avc_c3 "cmov2" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmov2"))
193*16dce513Schristos "cmov $avcc3Rm,$avcc3CRn"
194*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rm avcc3CRn (f-avc-c3sub4u28 #x1) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xf))
195*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
196*16dce513Schristos(set avcc3Rm avcc3CRn)
197*16dce513Schristos)
198*16dce513Schristos ())
199*16dce513Schristos(dncpi cmovi_avc_c3 "cmovi" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmovi"))
200*16dce513Schristos "cmovi $avcc3CRq,$avcc3Imm16s4x24e32"
201*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm16s4x24e32 (f-avc-c3sub4u16 #xe))
202*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
203*16dce513Schristos(set avcc3CRq (ext SI avcc3Imm16s4x24e32))
204*16dce513Schristos)
205*16dce513Schristos ())
206*16dce513Schristos(dncpi cmovc1_avc_c3 "cmovc1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmovc1"))
207*16dce513Schristos "cmovc $avcc3CCRn,$avcc3Rm"
208*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CCRn avcc3Rm (f-avc-c3sub4u28 #x2) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xf))
209*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
210*16dce513Schristos(set avcc3CCRn avcc3Rm)
211*16dce513Schristos)
212*16dce513Schristos ())
213*16dce513Schristos(dncpi cmovc2_avc_c3 "cmovc2" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmovc2"))
214*16dce513Schristos "cmovc $avcc3Rm,$avcc3CCRn"
215*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rm avcc3CCRn (f-avc-c3sub4u28 #x3) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xf))
216*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
217*16dce513Schristos(set avcc3Rm avcc3CCRn)
218*16dce513Schristos)
219*16dce513Schristos ())
220*16dce513Schristos(dncpi cmov_avc_c3 "cmov" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmov"))
221*16dce513Schristos "cmov $avcc3CRq,$avcc3CRp"
222*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x3) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
223*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
224*16dce513Schristos(set avcc3CRq avcc3CRp)
225*16dce513Schristos)
226*16dce513Schristos ())
227*16dce513Schristos(dncpi cadd3_avc_c3 "cadd3" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cadd3"))
228*16dce513Schristos "cadd3 $avcc3CRo,$avcc3CRq,$avcc3CRp"
229*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRo avcc3CRq avcc3CRp (f-avc-c3sub4u16 #x3) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
230*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
231*16dce513Schristos(set avcc3CRo (add avcc3CRq avcc3CRp))
232*16dce513Schristos)
233*16dce513Schristos ())
234*16dce513Schristos(dncpi caddi_avc_c3 "caddi" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "caddi"))
235*16dce513Schristos "caddi $avcc3CRq,$avcc3Imm6s24"
236*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm6s24 (f-avc-c3sub2u30 #x0) (f-avc-c3sub4u16 #x1) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
237*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
238*16dce513Schristos(set avcc3CRq (add avcc3CRq (ext SI avcc3Imm6s24)))
239*16dce513Schristos)
240*16dce513Schristos ())
241*16dce513Schristos(dncpi csub_avc_c3 "csub" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csub"))
242*16dce513Schristos "csub $avcc3CRq,$avcc3CRp"
243*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x2) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
244*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
245*16dce513Schristos(set avcc3CRq (sub avcc3CRq avcc3CRp))
246*16dce513Schristos)
247*16dce513Schristos ())
248*16dce513Schristos(dncpi cneg_avc_c3 "cneg" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cneg"))
249*16dce513Schristos "cneg $avcc3CRq,$avcc3CRp"
250*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x1) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
251*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
252*16dce513Schristos(set avcc3CRq (neg avcc3CRp))
253*16dce513Schristos)
254*16dce513Schristos ())
255*16dce513Schristos(dncpi cextb_avc_c3 "cextb" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cextb"))
256*16dce513Schristos "cextb $avcc3CRq"
257*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
258*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
259*16dce513Schristos(set avcc3CRq (ext SI (and QI (srl avcc3CRq 0) #xff)))
260*16dce513Schristos)
261*16dce513Schristos ())
262*16dce513Schristos(dncpi cexth_avc_c3 "cexth" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cexth"))
263*16dce513Schristos "cexth $avcc3CRq"
264*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u24 #x2) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
265*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
266*16dce513Schristos(set avcc3CRq (ext SI (and HI (srl avcc3CRq 0) #xffff)))
267*16dce513Schristos)
268*16dce513Schristos ())
269*16dce513Schristos(dncpi cextub_avc_c3 "cextub" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cextub"))
270*16dce513Schristos "cextub $avcc3CRq"
271*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u24 #x8) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
272*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
273*16dce513Schristos(set avcc3CRq (zext SI (and QI (srl avcc3CRq 0) #xff)))
274*16dce513Schristos)
275*16dce513Schristos ())
276*16dce513Schristos(dncpi cextuh_avc_c3 "cextuh" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cextuh"))
277*16dce513Schristos "cextuh $avcc3CRq"
278*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u24 #xa) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
279*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
280*16dce513Schristos(set avcc3CRq (zext SI (and HI (srl avcc3CRq 0) #xffff)))
281*16dce513Schristos)
282*16dce513Schristos ())
283*16dce513Schristos(dncpi cscltz_avc_c3 "cscltz" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cscltz"))
284*16dce513Schristos "cscltz $avcc3CRq"
285*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #xa) (f-avc-c3sub4u24 #xa) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
286*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
287*16dce513Schristos(if (lt (ext SI avcc3CRq) (ext SI 0)) (set avccopCCR1 (or (sll (srl avccopCCR1 1) 1) (srl (sll (zext SI 1) 31) 31)))
288*16dce513Schristos(set avccopCCR1 (or (sll (srl avccopCCR1 1) 1) (srl (sll (zext SI 0) 31) 31)))
289*16dce513Schristos)
290*16dce513Schristos)
291*16dce513Schristos ())
292*16dce513Schristos(dncpi cldz_avc_c3 "cldz" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cldz"))
293*16dce513Schristos "cldz $avcc3CRq,$avcc3CRp"
294*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x0) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
295*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
296*16dce513Schristos(if (and avcc3CRp #x80000000) (set avcc3CRq 0)
297*16dce513Schristos(if (and avcc3CRp #x40000000) (set avcc3CRq 1)
298*16dce513Schristos(if (and avcc3CRp #x20000000) (set avcc3CRq 2)
299*16dce513Schristos(if (and avcc3CRp #x10000000) (set avcc3CRq 3)
300*16dce513Schristos(if (and avcc3CRp #x8000000) (set avcc3CRq 4)
301*16dce513Schristos(if (and avcc3CRp #x4000000) (set avcc3CRq 5)
302*16dce513Schristos(if (and avcc3CRp #x2000000) (set avcc3CRq 6)
303*16dce513Schristos(if (and avcc3CRp #x1000000) (set avcc3CRq 7)
304*16dce513Schristos(if (and avcc3CRp #x800000) (set avcc3CRq 8)
305*16dce513Schristos(if (and avcc3CRp #x400000) (set avcc3CRq 9)
306*16dce513Schristos(if (and avcc3CRp #x200000) (set avcc3CRq 10)
307*16dce513Schristos(if (and avcc3CRp #x100000) (set avcc3CRq 11)
308*16dce513Schristos(if (and avcc3CRp #x80000) (set avcc3CRq 12)
309*16dce513Schristos(if (and avcc3CRp #x40000) (set avcc3CRq 13)
310*16dce513Schristos(if (and avcc3CRp #x20000) (set avcc3CRq 14)
311*16dce513Schristos(if (and avcc3CRp #x10000) (set avcc3CRq 15)
312*16dce513Schristos(if (and avcc3CRp #x8000) (set avcc3CRq 16)
313*16dce513Schristos(if (and avcc3CRp #x4000) (set avcc3CRq 17)
314*16dce513Schristos(if (and avcc3CRp #x2000) (set avcc3CRq 18)
315*16dce513Schristos(if (and avcc3CRp #x1000) (set avcc3CRq 19)
316*16dce513Schristos(if (and avcc3CRp #x800) (set avcc3CRq 20)
317*16dce513Schristos(if (and avcc3CRp #x400) (set avcc3CRq 21)
318*16dce513Schristos(if (and avcc3CRp #x200) (set avcc3CRq 22)
319*16dce513Schristos(if (and avcc3CRp #x100) (set avcc3CRq 23)
320*16dce513Schristos(if (and avcc3CRp #x80) (set avcc3CRq 24)
321*16dce513Schristos(if (and avcc3CRp #x40) (set avcc3CRq 25)
322*16dce513Schristos(if (and avcc3CRp #x20) (set avcc3CRq 26)
323*16dce513Schristos(if (and avcc3CRp #x10) (set avcc3CRq 27)
324*16dce513Schristos(if (and avcc3CRp #x8) (set avcc3CRq 28)
325*16dce513Schristos(if (and avcc3CRp #x4) (set avcc3CRq 29)
326*16dce513Schristos(if (and avcc3CRp #x2) (set avcc3CRq 30)
327*16dce513Schristos(if (and avcc3CRp #x1) (set avcc3CRq 31)
328*16dce513Schristos(set avcc3CRq 32)
329*16dce513Schristos)
330*16dce513Schristos)
331*16dce513Schristos)
332*16dce513Schristos)
333*16dce513Schristos)
334*16dce513Schristos)
335*16dce513Schristos)
336*16dce513Schristos)
337*16dce513Schristos)
338*16dce513Schristos)
339*16dce513Schristos)
340*16dce513Schristos)
341*16dce513Schristos)
342*16dce513Schristos)
343*16dce513Schristos)
344*16dce513Schristos)
345*16dce513Schristos)
346*16dce513Schristos)
347*16dce513Schristos)
348*16dce513Schristos)
349*16dce513Schristos)
350*16dce513Schristos)
351*16dce513Schristos)
352*16dce513Schristos)
353*16dce513Schristos)
354*16dce513Schristos)
355*16dce513Schristos)
356*16dce513Schristos)
357*16dce513Schristos)
358*16dce513Schristos)
359*16dce513Schristos)
360*16dce513Schristos)
361*16dce513Schristos)
362*16dce513Schristos ())
363*16dce513Schristos(dncpi cabs_avc_c3 "cabs" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cabs"))
364*16dce513Schristos "cabs $avcc3CRq,$avcc3CRp"
365*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x3) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
366*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
367*16dce513Schristos(set avcc3CRq (abs (ext SI (subword SI (sub avcc3CRq avcc3CRp) 1))))
368*16dce513Schristos)
369*16dce513Schristos ())
370*16dce513Schristos(dncpi cad1s_avc_c3 "cad1s" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cad1s"))
371*16dce513Schristos "cad1s $avcc3CRq,$avcc3CRp"
372*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x1) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
373*16dce513Schristos(sequence((DI tmp0)) (c-call "check_option_cp" pc)
374*16dce513Schristos(set tmp0 (ext SI (subword SI (add avcc3CRq avcc3CRp) 1)))
375*16dce513Schristos(set avcc3CRq (subword SI (sra tmp0 1) 1))
376*16dce513Schristos)
377*16dce513Schristos ())
378*16dce513Schristos(dncpi csb1s_avc_c3 "csb1s" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csb1s"))
379*16dce513Schristos "csb1s $avcc3CRq,$avcc3CRp"
380*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x2) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
381*16dce513Schristos(sequence((DI tmp0)) (c-call "check_option_cp" pc)
382*16dce513Schristos(set tmp0 (ext SI (subword SI (sub avcc3CRq avcc3CRp) 1)))
383*16dce513Schristos(set avcc3CRq (subword SI (sra tmp0 1) 1))
384*16dce513Schristos)
385*16dce513Schristos ())
386*16dce513Schristos(dncpi cmin_avc_c3 "cmin" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmin"))
387*16dce513Schristos "cmin $avcc3CRq,$avcc3CRp"
388*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x8) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
389*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
390*16dce513Schristos(if (lt (ext SI avcc3CRq) (ext SI avcc3CRp)) (set avcc3CRq avcc3CRq)
391*16dce513Schristos(set avcc3CRq avcc3CRp)
392*16dce513Schristos)
393*16dce513Schristos)
394*16dce513Schristos ())
395*16dce513Schristos(dncpi cmax_avc_c3 "cmax" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmax"))
396*16dce513Schristos "cmax $avcc3CRq,$avcc3CRp"
397*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
398*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
399*16dce513Schristos(if (gt (ext SI avcc3CRq) (ext SI avcc3CRp)) (set avcc3CRq avcc3CRq)
400*16dce513Schristos(set avcc3CRq avcc3CRp)
401*16dce513Schristos)
402*16dce513Schristos)
403*16dce513Schristos ())
404*16dce513Schristos(dncpi cminu_avc_c3 "cminu" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cminu"))
405*16dce513Schristos "cminu $avcc3CRq,$avcc3CRp"
406*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xa) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
407*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
408*16dce513Schristos(if (ltu (zext SI avcc3CRq) (zext SI avcc3CRp)) (set avcc3CRq avcc3CRq)
409*16dce513Schristos(set avcc3CRq avcc3CRp)
410*16dce513Schristos)
411*16dce513Schristos)
412*16dce513Schristos ())
413*16dce513Schristos(dncpi cmaxu_avc_c3 "cmaxu" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmaxu"))
414*16dce513Schristos "cmaxu $avcc3CRq,$avcc3CRp"
415*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xb) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
416*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
417*16dce513Schristos(if (gtu (zext SI avcc3CRq) (zext SI avcc3CRp)) (set avcc3CRq avcc3CRq)
418*16dce513Schristos(set avcc3CRq avcc3CRp)
419*16dce513Schristos)
420*16dce513Schristos)
421*16dce513Schristos ())
422*16dce513Schristos(dncpi cclipi_avc_c3 "cclipi" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cclipi"))
423*16dce513Schristos "cclipi $avcc3CRq,$avcc3Imm5u24"
424*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm5u24 (f-avc-c3sub3u29 #x4) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
425*16dce513Schristos(sequence((DI tmp1)(DI tmp0)) (c-call "check_option_cp" pc)
426*16dce513Schristos(if (eq (zext SI avcc3Imm5u24) (ext SI 0)) (set avcc3CRq 0)
427*16dce513Schristos(sequence() (set tmp0 (sll 1 (sub avcc3Imm5u24 1)))
428*16dce513Schristos(set tmp1 (sub (subword SI tmp0 1) 1))
429*16dce513Schristos(if (gt (ext SI avcc3CRq) (ext SI (subword SI tmp1 1))) (set avcc3CRq (subword SI tmp1 1))
430*16dce513Schristos(if (lt (ext SI avcc3CRq) (ext SI (neg (subword SI tmp0 1)))) (set avcc3CRq (neg (subword SI tmp0 1)))
431*16dce513Schristos(set avcc3CRq avcc3CRq)
432*16dce513Schristos)
433*16dce513Schristos)
434*16dce513Schristos)
435*16dce513Schristos)
436*16dce513Schristos)
437*16dce513Schristos ())
438*16dce513Schristos(dncpi cclipiu_avc_c3 "cclipiu" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cclipiu"))
439*16dce513Schristos "cclipiu $avcc3CRq,$avcc3Imm5u24"
440*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm5u24 (f-avc-c3sub3u29 #x5) (f-avc-c3sub4u16 #x5) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
441*16dce513Schristos(sequence((DI tmp1)(DI tmp0)) (c-call "check_option_cp" pc)
442*16dce513Schristos(if (eq (zext SI avcc3Imm5u24) (ext SI 0)) (set avcc3CRq 0)
443*16dce513Schristos(sequence() (set tmp0 (sub (sll 1 avcc3Imm5u24) 1))
444*16dce513Schristos(if (gt (ext SI avcc3CRq) (ext SI (subword SI tmp0 1))) (set avcc3CRq (subword SI tmp0 1))
445*16dce513Schristos(if (lt (ext SI avcc3CRq) (ext SI 0)) (set avcc3CRq 0)
446*16dce513Schristos(set avcc3CRq avcc3CRq)
447*16dce513Schristos)
448*16dce513Schristos)
449*16dce513Schristos)
450*16dce513Schristos)
451*16dce513Schristos)
452*16dce513Schristos ())
453*16dce513Schristos(dncpi cor_avc_c3 "cor" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cor"))
454*16dce513Schristos "cor $avcc3CRq,$avcc3CRp"
455*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x4) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
456*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
457*16dce513Schristos(set avcc3CRq (or avcc3CRq avcc3CRp))
458*16dce513Schristos)
459*16dce513Schristos ())
460*16dce513Schristos(dncpi cand_avc_c3 "cand" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cand"))
461*16dce513Schristos "cand $avcc3CRq,$avcc3CRp"
462*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x5) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
463*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
464*16dce513Schristos(set avcc3CRq (and avcc3CRq avcc3CRp))
465*16dce513Schristos)
466*16dce513Schristos ())
467*16dce513Schristos(dncpi cxor_avc_c3 "cxor" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cxor"))
468*16dce513Schristos "cxor $avcc3CRq,$avcc3CRp"
469*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x6) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
470*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
471*16dce513Schristos(set avcc3CRq (xor avcc3CRq avcc3CRp))
472*16dce513Schristos)
473*16dce513Schristos ())
474*16dce513Schristos(dncpi cnor_avc_c3 "cnor" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cnor"))
475*16dce513Schristos "cnor $avcc3CRq,$avcc3CRp"
476*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x7) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
477*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
478*16dce513Schristos(set avcc3CRq (inv (or avcc3CRq avcc3CRp)))
479*16dce513Schristos)
480*16dce513Schristos ())
481*16dce513Schristos(dncpi csra_avc_c3 "csra" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csra"))
482*16dce513Schristos "csra $avcc3CRq,$avcc3CRp"
483*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xc) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
484*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
485*16dce513Schristos(set avcc3CRq (sra avcc3CRq (and QI (srl avcc3CRp 0) #x1f)))
486*16dce513Schristos)
487*16dce513Schristos ())
488*16dce513Schristos(dncpi csrl_avc_c3 "csrl" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csrl"))
489*16dce513Schristos "csrl $avcc3CRq,$avcc3CRp"
490*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xd) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
491*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
492*16dce513Schristos(set avcc3CRq (srl avcc3CRq (and QI (srl avcc3CRp 0) #x1f)))
493*16dce513Schristos)
494*16dce513Schristos ())
495*16dce513Schristos(dncpi csll_avc_c3 "csll" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csll"))
496*16dce513Schristos "csll $avcc3CRq,$avcc3CRp"
497*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xe) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
498*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
499*16dce513Schristos(set avcc3CRq (sll avcc3CRq (and QI (srl avcc3CRp 0) #x1f)))
500*16dce513Schristos)
501*16dce513Schristos ())
502*16dce513Schristos(dncpi csrai_avc_c3 "csrai" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csrai"))
503*16dce513Schristos "csrai $avcc3CRq,$avcc3Imm5u24"
504*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm5u24 (f-avc-c3sub3u29 #x2) (f-avc-c3sub4u16 #x1) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
505*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
506*16dce513Schristos(set avcc3CRq (sra avcc3CRq avcc3Imm5u24))
507*16dce513Schristos)
508*16dce513Schristos ())
509*16dce513Schristos(dncpi csrli_avc_c3 "csrli" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "csrli"))
510*16dce513Schristos "csrli $avcc3CRq,$avcc3Imm5u24"
511*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm5u24 (f-avc-c3sub3u29 #x3) (f-avc-c3sub4u16 #x1) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
512*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
513*16dce513Schristos(set avcc3CRq (srl avcc3CRq avcc3Imm5u24))
514*16dce513Schristos)
515*16dce513Schristos ())
516*16dce513Schristos(dncpi cslli_avc_c3 "cslli" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cslli"))
517*16dce513Schristos "cslli $avcc3CRq,$avcc3Imm5u24"
518*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3Imm5u24 (f-avc-c3sub3u29 #x6) (f-avc-c3sub4u16 #x1) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
519*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
520*16dce513Schristos(set avcc3CRq (sll avcc3CRq avcc3Imm5u24))
521*16dce513Schristos)
522*16dce513Schristos ())
523*16dce513Schristos(dncpi cfsft_avc_c3 "cfsft" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cfsft"))
524*16dce513Schristos "cfsft $avcc3CRq,$avcc3CRp"
525*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xf) (f-avc-c3sub4u16 #x0) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
526*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
527*16dce513Schristos(set avcc3CRq (subword SI (sll (or (sll (zext DI (zext SI avcc3CRq)) 32) (zext DI avcc3CRp)) (and QI (srl avccopCCR0 0) #x3f)) 0))
528*16dce513Schristos)
529*16dce513Schristos ())
530*16dce513Schristos(dncpi cfsfta0_avc_c3 "cfsfta0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cfsfta0"))
531*16dce513Schristos "cfsfta0 $avcc3CRq"
532*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #x7) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u16 #x1) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
533*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
534*16dce513Schristos(set avcc3CRq (subword SI (sll (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (and QI (srl avccopCCR0 0) #x3f)) 0))
535*16dce513Schristos)
536*16dce513Schristos ())
537*16dce513Schristos(dncpi cfsfta1_avc_c3 "cfsfta1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cfsfta1"))
538*16dce513Schristos "cfsfta1 $avcc3CRq"
539*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq (f-avc-c3sub4u28 #xf) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u16 #x1) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
540*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
541*16dce513Schristos(set avcc3CRq (subword SI (sll (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (and QI (srl avccopCCR0 0) #x3f)) 0))
542*16dce513Schristos)
543*16dce513Schristos ())
544*16dce513Schristos(dncpi cmula0_avc_c3 "cmula0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmula0"))
545*16dce513Schristos "cmula0 $avcc3CRq,$avcc3CRp"
546*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x0) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
547*16dce513Schristos(sequence((DI concat0)) (c-call "check_option_cp" pc)
548*16dce513Schristos(set concat0 (mul (ext DI avcc3CRq) (ext DI avcc3CRp)))
549*16dce513Schristos(set avccopCCR2 (subword SI concat0 0))
550*16dce513Schristos(set avccopCCR3 (subword SI concat0 1))
551*16dce513Schristos)
552*16dce513Schristos ())
553*16dce513Schristos(dncpi cmulua0_avc_c3 "cmulua0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmulua0"))
554*16dce513Schristos "cmulua0 $avcc3CRq,$avcc3CRp"
555*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x1) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
556*16dce513Schristos(sequence((DI concat1)) (c-call "check_option_cp" pc)
557*16dce513Schristos(set concat1 (mul (zext DI avcc3CRq) (zext DI avcc3CRp)))
558*16dce513Schristos(set avccopCCR2 (subword SI concat1 0))
559*16dce513Schristos(set avccopCCR3 (subword SI concat1 1))
560*16dce513Schristos)
561*16dce513Schristos ())
562*16dce513Schristos(dncpi cnmula0_avc_c3 "cnmula0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cnmula0"))
563*16dce513Schristos "cnmula0 $avcc3CRq,$avcc3CRp"
564*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x2) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
565*16dce513Schristos(sequence((DI concat2)) (c-call "check_option_cp" pc)
566*16dce513Schristos(set concat2 (neg (mul (ext DI avcc3CRq) (ext DI avcc3CRp))))
567*16dce513Schristos(set avccopCCR2 (subword SI concat2 0))
568*16dce513Schristos(set avccopCCR3 (subword SI concat2 1))
569*16dce513Schristos)
570*16dce513Schristos ())
571*16dce513Schristos(dncpi cmada0_avc_c3 "cmada0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmada0"))
572*16dce513Schristos "cmada0 $avcc3CRq,$avcc3CRp"
573*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x4) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
574*16dce513Schristos(sequence((DI concat3)) (c-call "check_option_cp" pc)
575*16dce513Schristos(set concat3 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcc3CRq) (ext DI avcc3CRp))))
576*16dce513Schristos(set avccopCCR2 (subword SI concat3 0))
577*16dce513Schristos(set avccopCCR3 (subword SI concat3 1))
578*16dce513Schristos)
579*16dce513Schristos ())
580*16dce513Schristos(dncpi cmadua0_avc_c3 "cmadua0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmadua0"))
581*16dce513Schristos "cmadua0 $avcc3CRq,$avcc3CRp"
582*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x5) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
583*16dce513Schristos(sequence((DI concat4)) (c-call "check_option_cp" pc)
584*16dce513Schristos(set concat4 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcc3CRq) (zext DI avcc3CRp))))
585*16dce513Schristos(set avccopCCR2 (subword SI concat4 0))
586*16dce513Schristos(set avccopCCR3 (subword SI concat4 1))
587*16dce513Schristos)
588*16dce513Schristos ())
589*16dce513Schristos(dncpi cmsba0_avc_c3 "cmsba0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmsba0"))
590*16dce513Schristos "cmsba0 $avcc3CRq,$avcc3CRp"
591*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x6) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
592*16dce513Schristos(sequence((DI concat5)) (c-call "check_option_cp" pc)
593*16dce513Schristos(set concat5 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcc3CRq) (ext DI avcc3CRp))))
594*16dce513Schristos(set avccopCCR2 (subword SI concat5 0))
595*16dce513Schristos(set avccopCCR3 (subword SI concat5 1))
596*16dce513Schristos)
597*16dce513Schristos ())
598*16dce513Schristos(dncpi cmsbua0_avc_c3 "cmsbua0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmsbua0"))
599*16dce513Schristos "cmsbua0 $avcc3CRq,$avcc3CRp"
600*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x7) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
601*16dce513Schristos(sequence((DI concat6)) (c-call "check_option_cp" pc)
602*16dce513Schristos(set concat6 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcc3CRq) (zext DI avcc3CRp))))
603*16dce513Schristos(set avccopCCR2 (subword SI concat6 0))
604*16dce513Schristos(set avccopCCR3 (subword SI concat6 1))
605*16dce513Schristos)
606*16dce513Schristos ())
607*16dce513Schristos(dncpi cmula1_avc_c3 "cmula1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmula1"))
608*16dce513Schristos "cmula1 $avcc3CRq,$avcc3CRp"
609*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x8) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
610*16dce513Schristos(sequence((DI concat7)) (c-call "check_option_cp" pc)
611*16dce513Schristos(set concat7 (mul (ext DI avcc3CRq) (ext DI avcc3CRp)))
612*16dce513Schristos(set avccopCCR4 (subword SI concat7 0))
613*16dce513Schristos(set avccopCCR5 (subword SI concat7 1))
614*16dce513Schristos)
615*16dce513Schristos ())
616*16dce513Schristos(dncpi cmulua1_avc_c3 "cmulua1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmulua1"))
617*16dce513Schristos "cmulua1 $avcc3CRq,$avcc3CRp"
618*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
619*16dce513Schristos(sequence((DI concat8)) (c-call "check_option_cp" pc)
620*16dce513Schristos(set concat8 (mul (zext DI avcc3CRq) (zext DI avcc3CRp)))
621*16dce513Schristos(set avccopCCR4 (subword SI concat8 0))
622*16dce513Schristos(set avccopCCR5 (subword SI concat8 1))
623*16dce513Schristos)
624*16dce513Schristos ())
625*16dce513Schristos(dncpi cnmula1_avc_c3 "cnmula1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cnmula1"))
626*16dce513Schristos "cnmula1 $avcc3CRq,$avcc3CRp"
627*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xa) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
628*16dce513Schristos(sequence((DI concat9)) (c-call "check_option_cp" pc)
629*16dce513Schristos(set concat9 (neg (mul (ext DI avcc3CRq) (ext DI avcc3CRp))))
630*16dce513Schristos(set avccopCCR4 (subword SI concat9 0))
631*16dce513Schristos(set avccopCCR5 (subword SI concat9 1))
632*16dce513Schristos)
633*16dce513Schristos ())
634*16dce513Schristos(dncpi cmada1_avc_c3 "cmada1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmada1"))
635*16dce513Schristos "cmada1 $avcc3CRq,$avcc3CRp"
636*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xc) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
637*16dce513Schristos(sequence((DI concat10)) (c-call "check_option_cp" pc)
638*16dce513Schristos(set concat10 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcc3CRq) (ext DI avcc3CRp))))
639*16dce513Schristos(set avccopCCR4 (subword SI concat10 0))
640*16dce513Schristos(set avccopCCR5 (subword SI concat10 1))
641*16dce513Schristos)
642*16dce513Schristos ())
643*16dce513Schristos(dncpi cmadua1_avc_c3 "cmadua1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmadua1"))
644*16dce513Schristos "cmadua1 $avcc3CRq,$avcc3CRp"
645*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xd) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
646*16dce513Schristos(sequence((DI concat11)) (c-call "check_option_cp" pc)
647*16dce513Schristos(set concat11 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcc3CRq) (zext DI avcc3CRp))))
648*16dce513Schristos(set avccopCCR4 (subword SI concat11 0))
649*16dce513Schristos(set avccopCCR5 (subword SI concat11 1))
650*16dce513Schristos)
651*16dce513Schristos ())
652*16dce513Schristos(dncpi cmsba1_avc_c3 "cmsba1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmsba1"))
653*16dce513Schristos "cmsba1 $avcc3CRq,$avcc3CRp"
654*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xe) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
655*16dce513Schristos(sequence((DI concat12)) (c-call "check_option_cp" pc)
656*16dce513Schristos(set concat12 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcc3CRq) (ext DI avcc3CRp))))
657*16dce513Schristos(set avccopCCR4 (subword SI concat12 0))
658*16dce513Schristos(set avccopCCR5 (subword SI concat12 1))
659*16dce513Schristos)
660*16dce513Schristos ())
661*16dce513Schristos(dncpi cmsbua1_avc_c3 "cmsbua1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "cmsbua1"))
662*16dce513Schristos "cmsbua1 $avcc3CRq,$avcc3CRp"
663*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3CRq avcc3CRp (f-avc-c3sub4u28 #xf) (f-avc-c3sub4u16 #x4) (f-avc-c3sub4u8 #x0) (f-avc-c3sub4u4 #x0))
664*16dce513Schristos(sequence((DI concat13)) (c-call "check_option_cp" pc)
665*16dce513Schristos(set concat13 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcc3CRq) (zext DI avcc3CRp))))
666*16dce513Schristos(set avccopCCR4 (subword SI concat13 0))
667*16dce513Schristos(set avccopCCR5 (subword SI concat13 1))
668*16dce513Schristos)
669*16dce513Schristos ())
670*16dce513Schristos(dncpi xmula0_avc_c3 "xmula0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmula0"))
671*16dce513Schristos "xmula0 $avcc3Rn,$avcc3Rm"
672*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x0) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
673*16dce513Schristos(sequence((DI concat14)) (c-call "check_option_cp" pc)
674*16dce513Schristos(set concat14 (mul (ext DI avcc3Rn) (ext DI avcc3Rm)))
675*16dce513Schristos(set avccopCCR2 (subword SI concat14 0))
676*16dce513Schristos(set avccopCCR3 (subword SI concat14 1))
677*16dce513Schristos)
678*16dce513Schristos ())
679*16dce513Schristos(dncpi xmulua0_avc_c3 "xmulua0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmulua0"))
680*16dce513Schristos "xmulua0 $avcc3Rn,$avcc3Rm"
681*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x1) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
682*16dce513Schristos(sequence((DI concat15)) (c-call "check_option_cp" pc)
683*16dce513Schristos(set concat15 (mul (zext DI avcc3Rn) (zext DI avcc3Rm)))
684*16dce513Schristos(set avccopCCR2 (subword SI concat15 0))
685*16dce513Schristos(set avccopCCR3 (subword SI concat15 1))
686*16dce513Schristos)
687*16dce513Schristos ())
688*16dce513Schristos(dncpi xnmula0_avc_c3 "xnmula0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xnmula0"))
689*16dce513Schristos "xnmula0 $avcc3Rn,$avcc3Rm"
690*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x2) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
691*16dce513Schristos(sequence((DI concat16)) (c-call "check_option_cp" pc)
692*16dce513Schristos(set concat16 (neg (mul (ext DI avcc3Rn) (ext DI avcc3Rm))))
693*16dce513Schristos(set avccopCCR2 (subword SI concat16 0))
694*16dce513Schristos(set avccopCCR3 (subword SI concat16 1))
695*16dce513Schristos)
696*16dce513Schristos ())
697*16dce513Schristos(dncpi xmada0_avc_c3 "xmada0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmada0"))
698*16dce513Schristos "xmada0 $avcc3Rn,$avcc3Rm"
699*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x4) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
700*16dce513Schristos(sequence((DI concat17)) (c-call "check_option_cp" pc)
701*16dce513Schristos(set concat17 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcc3Rn) (ext DI avcc3Rm))))
702*16dce513Schristos(set avccopCCR2 (subword SI concat17 0))
703*16dce513Schristos(set avccopCCR3 (subword SI concat17 1))
704*16dce513Schristos)
705*16dce513Schristos ())
706*16dce513Schristos(dncpi xmadua0_avc_c3 "xmadua0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmadua0"))
707*16dce513Schristos "xmadua0 $avcc3Rn,$avcc3Rm"
708*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x5) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
709*16dce513Schristos(sequence((DI concat18)) (c-call "check_option_cp" pc)
710*16dce513Schristos(set concat18 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcc3Rn) (zext DI avcc3Rm))))
711*16dce513Schristos(set avccopCCR2 (subword SI concat18 0))
712*16dce513Schristos(set avccopCCR3 (subword SI concat18 1))
713*16dce513Schristos)
714*16dce513Schristos ())
715*16dce513Schristos(dncpi xmsba0_avc_c3 "xmsba0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmsba0"))
716*16dce513Schristos "xmsba0 $avcc3Rn,$avcc3Rm"
717*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x6) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
718*16dce513Schristos(sequence((DI concat19)) (c-call "check_option_cp" pc)
719*16dce513Schristos(set concat19 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcc3Rn) (ext DI avcc3Rm))))
720*16dce513Schristos(set avccopCCR2 (subword SI concat19 0))
721*16dce513Schristos(set avccopCCR3 (subword SI concat19 1))
722*16dce513Schristos)
723*16dce513Schristos ())
724*16dce513Schristos(dncpi xmsbua0_avc_c3 "xmsbua0" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmsbua0"))
725*16dce513Schristos "xmsbua0 $avcc3Rn,$avcc3Rm"
726*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x7) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
727*16dce513Schristos(sequence((DI concat20)) (c-call "check_option_cp" pc)
728*16dce513Schristos(set concat20 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcc3Rn) (zext DI avcc3Rm))))
729*16dce513Schristos(set avccopCCR2 (subword SI concat20 0))
730*16dce513Schristos(set avccopCCR3 (subword SI concat20 1))
731*16dce513Schristos)
732*16dce513Schristos ())
733*16dce513Schristos(dncpi xmula1_avc_c3 "xmula1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmula1"))
734*16dce513Schristos "xmula1 $avcc3Rn,$avcc3Rm"
735*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x8) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
736*16dce513Schristos(sequence((DI concat21)) (c-call "check_option_cp" pc)
737*16dce513Schristos(set concat21 (mul (ext DI avcc3Rn) (ext DI avcc3Rm)))
738*16dce513Schristos(set avccopCCR4 (subword SI concat21 0))
739*16dce513Schristos(set avccopCCR5 (subword SI concat21 1))
740*16dce513Schristos)
741*16dce513Schristos ())
742*16dce513Schristos(dncpi xmulua1_avc_c3 "xmulua1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmulua1"))
743*16dce513Schristos "xmulua1 $avcc3Rn,$avcc3Rm"
744*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #x9) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
745*16dce513Schristos(sequence((DI concat22)) (c-call "check_option_cp" pc)
746*16dce513Schristos(set concat22 (mul (zext DI avcc3Rn) (zext DI avcc3Rm)))
747*16dce513Schristos(set avccopCCR4 (subword SI concat22 0))
748*16dce513Schristos(set avccopCCR5 (subword SI concat22 1))
749*16dce513Schristos)
750*16dce513Schristos ())
751*16dce513Schristos(dncpi xnmula1_avc_c3 "xnmula1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xnmula1"))
752*16dce513Schristos "xnmula1 $avcc3Rn,$avcc3Rm"
753*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #xa) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
754*16dce513Schristos(sequence((DI concat23)) (c-call "check_option_cp" pc)
755*16dce513Schristos(set concat23 (neg (mul (ext DI avcc3Rn) (ext DI avcc3Rm))))
756*16dce513Schristos(set avccopCCR4 (subword SI concat23 0))
757*16dce513Schristos(set avccopCCR5 (subword SI concat23 1))
758*16dce513Schristos)
759*16dce513Schristos ())
760*16dce513Schristos(dncpi xmada1_avc_c3 "xmada1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmada1"))
761*16dce513Schristos "xmada1 $avcc3Rn,$avcc3Rm"
762*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #xc) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
763*16dce513Schristos(sequence((DI concat24)) (c-call "check_option_cp" pc)
764*16dce513Schristos(set concat24 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcc3Rn) (ext DI avcc3Rm))))
765*16dce513Schristos(set avccopCCR4 (subword SI concat24 0))
766*16dce513Schristos(set avccopCCR5 (subword SI concat24 1))
767*16dce513Schristos)
768*16dce513Schristos ())
769*16dce513Schristos(dncpi xmadua1_avc_c3 "xmadua1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmadua1"))
770*16dce513Schristos "xmadua1 $avcc3Rn,$avcc3Rm"
771*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #xd) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
772*16dce513Schristos(sequence((DI concat25)) (c-call "check_option_cp" pc)
773*16dce513Schristos(set concat25 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcc3Rn) (zext DI avcc3Rm))))
774*16dce513Schristos(set avccopCCR4 (subword SI concat25 0))
775*16dce513Schristos(set avccopCCR5 (subword SI concat25 1))
776*16dce513Schristos)
777*16dce513Schristos ())
778*16dce513Schristos(dncpi xmsba1_avc_c3 "xmsba1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmsba1"))
779*16dce513Schristos "xmsba1 $avcc3Rn,$avcc3Rm"
780*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #xe) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
781*16dce513Schristos(sequence((DI concat26)) (c-call "check_option_cp" pc)
782*16dce513Schristos(set concat26 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcc3Rn) (ext DI avcc3Rm))))
783*16dce513Schristos(set avccopCCR4 (subword SI concat26 0))
784*16dce513Schristos(set avccopCCR5 (subword SI concat26 1))
785*16dce513Schristos)
786*16dce513Schristos ())
787*16dce513Schristos(dncpi xmsbua1_avc_c3 "xmsbua1" (OPTIONAL_CP_INSN (SLOT C3) (INTRINSIC "xmsbua1"))
788*16dce513Schristos "xmsbua1 $avcc3Rn,$avcc3Rm"
789*16dce513Schristos(+ MAJ_15 (f-sub4 7) avcc3Rn avcc3Rm (f-avc-c3sub4u28 #xf) (f-avc-c3sub4u24 #x0) (f-avc-c3sub4u20 #x0) (f-avc-c3sub4u16 #xc))
790*16dce513Schristos(sequence((DI concat27)) (c-call "check_option_cp" pc)
791*16dce513Schristos(set concat27 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcc3Rn) (zext DI avcc3Rm))))
792*16dce513Schristos(set avccopCCR4 (subword SI concat27 0))
793*16dce513Schristos(set avccopCCR5 (subword SI concat27 1))
794*16dce513Schristos)
795*16dce513Schristos ())
796*16dce513Schristos(dn16i cnop_avc_v1 "cnop" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cnop"))
797*16dce513Schristos "cnop"
798*16dce513Schristos(+ (f-avc-v1sub4u12 #x0) (f-avc-v1sub4u8 #x0) (f-avc-v1sub4u4 #x0) (f-avc-v1sub4u0 #x0))
799*16dce513Schristos(c-call "check_option_cp" pc)
800*16dce513Schristos ())
801*16dce513Schristos(dnmi cpnop16_avc_v1 "cpnop16"
802*16dce513Schristos(avc-16-isa NO-DIS)
803*16dce513Schristos"cpnop16"
804*16dce513Schristos(emit cnop_avc_v1)
805*16dce513Schristos)
806*16dce513Schristos(dn16i cmov_avc_v1 "cmov" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmov"))
807*16dce513Schristos "cmov $avcv1CRq,$avcv1CRp"
808*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x3) (f-avc-v1sub4u0 #x0))
809*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
810*16dce513Schristos(set avcv1CRq avcv1CRp)
811*16dce513Schristos)
812*16dce513Schristos ())
813*16dce513Schristos(dn16i cmovi_avc_v1 "cmovi" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmovi"))
814*16dce513Schristos "cmovi $avcv1CRq,$avcv1Imm8s8"
815*16dce513Schristos(+ avcv1CRq avcv1Imm8s8 (f-avc-v1sub4u0 #x2))
816*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
817*16dce513Schristos(set avcv1CRq (ext SI avcv1Imm8s8))
818*16dce513Schristos)
819*16dce513Schristos ())
820*16dce513Schristos(dn16i cadd3_avc_v1 "cadd3" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cadd3"))
821*16dce513Schristos "cadd3 $avcv1CRo,$avcv1CRq,$avcv1CRp"
822*16dce513Schristos(+ avcv1CRo avcv1CRq avcv1CRp (f-avc-v1sub4u0 #x3))
823*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
824*16dce513Schristos(set avcv1CRo (add avcv1CRq avcv1CRp))
825*16dce513Schristos)
826*16dce513Schristos ())
827*16dce513Schristos(dn16i caddi_avc_v1 "caddi" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "caddi"))
828*16dce513Schristos "caddi $avcv1CRq,$avcv1Imm6s8"
829*16dce513Schristos(+ avcv1CRq avcv1Imm6s8 (f-avc-v1sub2u14 #x0) (f-avc-v1sub4u0 #x1))
830*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
831*16dce513Schristos(set avcv1CRq (add avcv1CRq (ext SI avcv1Imm6s8)))
832*16dce513Schristos)
833*16dce513Schristos ())
834*16dce513Schristos(dn16i csub_avc_v1 "csub" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csub"))
835*16dce513Schristos "csub $avcv1CRq,$avcv1CRp"
836*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x2) (f-avc-v1sub4u0 #x0))
837*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
838*16dce513Schristos(set avcv1CRq (sub avcv1CRq avcv1CRp))
839*16dce513Schristos)
840*16dce513Schristos ())
841*16dce513Schristos(dn16i cneg_avc_v1 "cneg" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cneg"))
842*16dce513Schristos "cneg $avcv1CRq,$avcv1CRp"
843*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x1) (f-avc-v1sub4u0 #x0))
844*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
845*16dce513Schristos(set avcv1CRq (neg avcv1CRp))
846*16dce513Schristos)
847*16dce513Schristos ())
848*16dce513Schristos(dn16i cextb_avc_v1 "cextb" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cextb"))
849*16dce513Schristos "cextb $avcv1CRq"
850*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #x9) (f-avc-v1sub4u8 #x0) (f-avc-v1sub4u0 #x0))
851*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
852*16dce513Schristos(set avcv1CRq (ext SI (and QI (srl avcv1CRq 0) #xff)))
853*16dce513Schristos)
854*16dce513Schristos ())
855*16dce513Schristos(dn16i cexth_avc_v1 "cexth" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cexth"))
856*16dce513Schristos "cexth $avcv1CRq"
857*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #x9) (f-avc-v1sub4u8 #x2) (f-avc-v1sub4u0 #x0))
858*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
859*16dce513Schristos(set avcv1CRq (ext SI (and HI (srl avcv1CRq 0) #xffff)))
860*16dce513Schristos)
861*16dce513Schristos ())
862*16dce513Schristos(dn16i cextub_avc_v1 "cextub" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cextub"))
863*16dce513Schristos "cextub $avcv1CRq"
864*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #x9) (f-avc-v1sub4u8 #x8) (f-avc-v1sub4u0 #x0))
865*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
866*16dce513Schristos(set avcv1CRq (zext SI (and QI (srl avcv1CRq 0) #xff)))
867*16dce513Schristos)
868*16dce513Schristos ())
869*16dce513Schristos(dn16i cextuh_avc_v1 "cextuh" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cextuh"))
870*16dce513Schristos "cextuh $avcv1CRq"
871*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #x9) (f-avc-v1sub4u8 #xa) (f-avc-v1sub4u0 #x0))
872*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
873*16dce513Schristos(set avcv1CRq (zext SI (and HI (srl avcv1CRq 0) #xffff)))
874*16dce513Schristos)
875*16dce513Schristos ())
876*16dce513Schristos(dn16i cscltz_avc_v1 "cscltz" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cscltz"))
877*16dce513Schristos "cscltz $avcv1CRq"
878*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #xa) (f-avc-v1sub4u8 #xa) (f-avc-v1sub4u0 #x0))
879*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
880*16dce513Schristos(if (lt (ext SI avcv1CRq) (ext SI 0)) (set avccopCCR1 (or (sll (srl avccopCCR1 1) 1) (srl (sll (zext SI 1) 31) 31)))
881*16dce513Schristos(set avccopCCR1 (or (sll (srl avccopCCR1 1) 1) (srl (sll (zext SI 0) 31) 31)))
882*16dce513Schristos)
883*16dce513Schristos)
884*16dce513Schristos ())
885*16dce513Schristos(dn16i cldz_avc_v1 "cldz" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cldz"))
886*16dce513Schristos "cldz $avcv1CRq,$avcv1CRp"
887*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x0) (f-avc-v1sub4u0 #x5))
888*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
889*16dce513Schristos(if (and avcv1CRp #x80000000) (set avcv1CRq 0)
890*16dce513Schristos(if (and avcv1CRp #x40000000) (set avcv1CRq 1)
891*16dce513Schristos(if (and avcv1CRp #x20000000) (set avcv1CRq 2)
892*16dce513Schristos(if (and avcv1CRp #x10000000) (set avcv1CRq 3)
893*16dce513Schristos(if (and avcv1CRp #x8000000) (set avcv1CRq 4)
894*16dce513Schristos(if (and avcv1CRp #x4000000) (set avcv1CRq 5)
895*16dce513Schristos(if (and avcv1CRp #x2000000) (set avcv1CRq 6)
896*16dce513Schristos(if (and avcv1CRp #x1000000) (set avcv1CRq 7)
897*16dce513Schristos(if (and avcv1CRp #x800000) (set avcv1CRq 8)
898*16dce513Schristos(if (and avcv1CRp #x400000) (set avcv1CRq 9)
899*16dce513Schristos(if (and avcv1CRp #x200000) (set avcv1CRq 10)
900*16dce513Schristos(if (and avcv1CRp #x100000) (set avcv1CRq 11)
901*16dce513Schristos(if (and avcv1CRp #x80000) (set avcv1CRq 12)
902*16dce513Schristos(if (and avcv1CRp #x40000) (set avcv1CRq 13)
903*16dce513Schristos(if (and avcv1CRp #x20000) (set avcv1CRq 14)
904*16dce513Schristos(if (and avcv1CRp #x10000) (set avcv1CRq 15)
905*16dce513Schristos(if (and avcv1CRp #x8000) (set avcv1CRq 16)
906*16dce513Schristos(if (and avcv1CRp #x4000) (set avcv1CRq 17)
907*16dce513Schristos(if (and avcv1CRp #x2000) (set avcv1CRq 18)
908*16dce513Schristos(if (and avcv1CRp #x1000) (set avcv1CRq 19)
909*16dce513Schristos(if (and avcv1CRp #x800) (set avcv1CRq 20)
910*16dce513Schristos(if (and avcv1CRp #x400) (set avcv1CRq 21)
911*16dce513Schristos(if (and avcv1CRp #x200) (set avcv1CRq 22)
912*16dce513Schristos(if (and avcv1CRp #x100) (set avcv1CRq 23)
913*16dce513Schristos(if (and avcv1CRp #x80) (set avcv1CRq 24)
914*16dce513Schristos(if (and avcv1CRp #x40) (set avcv1CRq 25)
915*16dce513Schristos(if (and avcv1CRp #x20) (set avcv1CRq 26)
916*16dce513Schristos(if (and avcv1CRp #x10) (set avcv1CRq 27)
917*16dce513Schristos(if (and avcv1CRp #x8) (set avcv1CRq 28)
918*16dce513Schristos(if (and avcv1CRp #x4) (set avcv1CRq 29)
919*16dce513Schristos(if (and avcv1CRp #x2) (set avcv1CRq 30)
920*16dce513Schristos(if (and avcv1CRp #x1) (set avcv1CRq 31)
921*16dce513Schristos(set avcv1CRq 32)
922*16dce513Schristos)
923*16dce513Schristos)
924*16dce513Schristos)
925*16dce513Schristos)
926*16dce513Schristos)
927*16dce513Schristos)
928*16dce513Schristos)
929*16dce513Schristos)
930*16dce513Schristos)
931*16dce513Schristos)
932*16dce513Schristos)
933*16dce513Schristos)
934*16dce513Schristos)
935*16dce513Schristos)
936*16dce513Schristos)
937*16dce513Schristos)
938*16dce513Schristos)
939*16dce513Schristos)
940*16dce513Schristos)
941*16dce513Schristos)
942*16dce513Schristos)
943*16dce513Schristos)
944*16dce513Schristos)
945*16dce513Schristos)
946*16dce513Schristos)
947*16dce513Schristos)
948*16dce513Schristos)
949*16dce513Schristos)
950*16dce513Schristos)
951*16dce513Schristos)
952*16dce513Schristos)
953*16dce513Schristos)
954*16dce513Schristos)
955*16dce513Schristos ())
956*16dce513Schristos(dn16i cabs_avc_v1 "cabs" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cabs"))
957*16dce513Schristos "cabs $avcv1CRq,$avcv1CRp"
958*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x3) (f-avc-v1sub4u0 #x5))
959*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
960*16dce513Schristos(set avcv1CRq (abs (ext SI (subword SI (sub avcv1CRq avcv1CRp) 1))))
961*16dce513Schristos)
962*16dce513Schristos ())
963*16dce513Schristos(dn16i cad1s_avc_v1 "cad1s" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cad1s"))
964*16dce513Schristos "cad1s $avcv1CRq,$avcv1CRp"
965*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x1) (f-avc-v1sub4u0 #x5))
966*16dce513Schristos(sequence((DI tmp0)) (c-call "check_option_cp" pc)
967*16dce513Schristos(set tmp0 (ext SI (subword SI (add avcv1CRq avcv1CRp) 1)))
968*16dce513Schristos(set avcv1CRq (subword SI (sra tmp0 1) 1))
969*16dce513Schristos)
970*16dce513Schristos ())
971*16dce513Schristos(dn16i csb1s_avc_v1 "csb1s" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csb1s"))
972*16dce513Schristos "csb1s $avcv1CRq,$avcv1CRp"
973*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x2) (f-avc-v1sub4u0 #x5))
974*16dce513Schristos(sequence((DI tmp0)) (c-call "check_option_cp" pc)
975*16dce513Schristos(set tmp0 (ext SI (subword SI (sub avcv1CRq avcv1CRp) 1)))
976*16dce513Schristos(set avcv1CRq (subword SI (sra tmp0 1) 1))
977*16dce513Schristos)
978*16dce513Schristos ())
979*16dce513Schristos(dn16i cmin_avc_v1 "cmin" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmin"))
980*16dce513Schristos "cmin $avcv1CRq,$avcv1CRp"
981*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x8) (f-avc-v1sub4u0 #x5))
982*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
983*16dce513Schristos(if (lt (ext SI avcv1CRq) (ext SI avcv1CRp)) (set avcv1CRq avcv1CRq)
984*16dce513Schristos(set avcv1CRq avcv1CRp)
985*16dce513Schristos)
986*16dce513Schristos)
987*16dce513Schristos ())
988*16dce513Schristos(dn16i cmax_avc_v1 "cmax" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmax"))
989*16dce513Schristos "cmax $avcv1CRq,$avcv1CRp"
990*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x9) (f-avc-v1sub4u0 #x5))
991*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
992*16dce513Schristos(if (gt (ext SI avcv1CRq) (ext SI avcv1CRp)) (set avcv1CRq avcv1CRq)
993*16dce513Schristos(set avcv1CRq avcv1CRp)
994*16dce513Schristos)
995*16dce513Schristos)
996*16dce513Schristos ())
997*16dce513Schristos(dn16i cminu_avc_v1 "cminu" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cminu"))
998*16dce513Schristos "cminu $avcv1CRq,$avcv1CRp"
999*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xa) (f-avc-v1sub4u0 #x5))
1000*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1001*16dce513Schristos(if (ltu (zext SI avcv1CRq) (zext SI avcv1CRp)) (set avcv1CRq avcv1CRq)
1002*16dce513Schristos(set avcv1CRq avcv1CRp)
1003*16dce513Schristos)
1004*16dce513Schristos)
1005*16dce513Schristos ())
1006*16dce513Schristos(dn16i cmaxu_avc_v1 "cmaxu" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmaxu"))
1007*16dce513Schristos "cmaxu $avcv1CRq,$avcv1CRp"
1008*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xb) (f-avc-v1sub4u0 #x5))
1009*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1010*16dce513Schristos(if (gtu (zext SI avcv1CRq) (zext SI avcv1CRp)) (set avcv1CRq avcv1CRq)
1011*16dce513Schristos(set avcv1CRq avcv1CRp)
1012*16dce513Schristos)
1013*16dce513Schristos)
1014*16dce513Schristos ())
1015*16dce513Schristos(dn16i cclipi_avc_v1 "cclipi" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cclipi"))
1016*16dce513Schristos "cclipi $avcv1CRq,$avcv1Imm5u8"
1017*16dce513Schristos(+ avcv1CRq avcv1Imm5u8 (f-avc-v1sub3u13 #x4) (f-avc-v1sub4u0 #x5))
1018*16dce513Schristos(sequence((DI tmp1)(DI tmp0)) (c-call "check_option_cp" pc)
1019*16dce513Schristos(if (eq (zext SI avcv1Imm5u8) (ext SI 0)) (set avcv1CRq 0)
1020*16dce513Schristos(sequence() (set tmp0 (sll 1 (sub avcv1Imm5u8 1)))
1021*16dce513Schristos(set tmp1 (sub (subword SI tmp0 1) 1))
1022*16dce513Schristos(if (gt (ext SI avcv1CRq) (ext SI (subword SI tmp1 1))) (set avcv1CRq (subword SI tmp1 1))
1023*16dce513Schristos(if (lt (ext SI avcv1CRq) (ext SI (neg (subword SI tmp0 1)))) (set avcv1CRq (neg (subword SI tmp0 1)))
1024*16dce513Schristos(set avcv1CRq avcv1CRq)
1025*16dce513Schristos)
1026*16dce513Schristos)
1027*16dce513Schristos)
1028*16dce513Schristos)
1029*16dce513Schristos)
1030*16dce513Schristos ())
1031*16dce513Schristos(dn16i cclipiu_avc_v1 "cclipiu" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cclipiu"))
1032*16dce513Schristos "cclipiu $avcv1CRq,$avcv1Imm5u8"
1033*16dce513Schristos(+ avcv1CRq avcv1Imm5u8 (f-avc-v1sub3u13 #x5) (f-avc-v1sub4u0 #x5))
1034*16dce513Schristos(sequence((DI tmp0)) (c-call "check_option_cp" pc)
1035*16dce513Schristos(if (eq (zext SI avcv1Imm5u8) (ext SI 0)) (set avcv1CRq 0)
1036*16dce513Schristos(sequence() (set tmp0 (sub (sll 1 avcv1Imm5u8) 1))
1037*16dce513Schristos(if (gt (ext SI avcv1CRq) (ext SI (subword SI tmp0 1))) (set avcv1CRq (subword SI tmp0 1))
1038*16dce513Schristos(if (lt (ext SI avcv1CRq) (ext SI 0)) (set avcv1CRq 0)
1039*16dce513Schristos(set avcv1CRq avcv1CRq)
1040*16dce513Schristos)
1041*16dce513Schristos)
1042*16dce513Schristos)
1043*16dce513Schristos)
1044*16dce513Schristos)
1045*16dce513Schristos ())
1046*16dce513Schristos(dn16i cor_avc_v1 "cor" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cor"))
1047*16dce513Schristos "cor $avcv1CRq,$avcv1CRp"
1048*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x4) (f-avc-v1sub4u0 #x0))
1049*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1050*16dce513Schristos(set avcv1CRq (or avcv1CRq avcv1CRp))
1051*16dce513Schristos)
1052*16dce513Schristos ())
1053*16dce513Schristos(dn16i cand_avc_v1 "cand" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cand"))
1054*16dce513Schristos "cand $avcv1CRq,$avcv1CRp"
1055*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x5) (f-avc-v1sub4u0 #x0))
1056*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1057*16dce513Schristos(set avcv1CRq (and avcv1CRq avcv1CRp))
1058*16dce513Schristos)
1059*16dce513Schristos ())
1060*16dce513Schristos(dn16i cxor_avc_v1 "cxor" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cxor"))
1061*16dce513Schristos "cxor $avcv1CRq,$avcv1CRp"
1062*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x6) (f-avc-v1sub4u0 #x0))
1063*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1064*16dce513Schristos(set avcv1CRq (xor avcv1CRq avcv1CRp))
1065*16dce513Schristos)
1066*16dce513Schristos ())
1067*16dce513Schristos(dn16i cnor_avc_v1 "cnor" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cnor"))
1068*16dce513Schristos "cnor $avcv1CRq,$avcv1CRp"
1069*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x7) (f-avc-v1sub4u0 #x0))
1070*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1071*16dce513Schristos(set avcv1CRq (inv (or avcv1CRq avcv1CRp)))
1072*16dce513Schristos)
1073*16dce513Schristos ())
1074*16dce513Schristos(dn16i csra_avc_v1 "csra" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csra"))
1075*16dce513Schristos "csra $avcv1CRq,$avcv1CRp"
1076*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xc) (f-avc-v1sub4u0 #x0))
1077*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1078*16dce513Schristos(set avcv1CRq (sra avcv1CRq (and QI (srl avcv1CRp 0) #x1f)))
1079*16dce513Schristos)
1080*16dce513Schristos ())
1081*16dce513Schristos(dn16i csrl_avc_v1 "csrl" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csrl"))
1082*16dce513Schristos "csrl $avcv1CRq,$avcv1CRp"
1083*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xd) (f-avc-v1sub4u0 #x0))
1084*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1085*16dce513Schristos(set avcv1CRq (srl avcv1CRq (and QI (srl avcv1CRp 0) #x1f)))
1086*16dce513Schristos)
1087*16dce513Schristos ())
1088*16dce513Schristos(dn16i csll_avc_v1 "csll" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csll"))
1089*16dce513Schristos "csll $avcv1CRq,$avcv1CRp"
1090*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xe) (f-avc-v1sub4u0 #x0))
1091*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1092*16dce513Schristos(set avcv1CRq (sll avcv1CRq (and QI (srl avcv1CRp 0) #x1f)))
1093*16dce513Schristos)
1094*16dce513Schristos ())
1095*16dce513Schristos(dn16i csrai_avc_v1 "csrai" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csrai"))
1096*16dce513Schristos "csrai $avcv1CRq,$avcv1Imm5u8"
1097*16dce513Schristos(+ avcv1CRq avcv1Imm5u8 (f-avc-v1sub3u13 #x2) (f-avc-v1sub4u0 #x1))
1098*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1099*16dce513Schristos(set avcv1CRq (sra avcv1CRq avcv1Imm5u8))
1100*16dce513Schristos)
1101*16dce513Schristos ())
1102*16dce513Schristos(dn16i csrli_avc_v1 "csrli" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "csrli"))
1103*16dce513Schristos "csrli $avcv1CRq,$avcv1Imm5u8"
1104*16dce513Schristos(+ avcv1CRq avcv1Imm5u8 (f-avc-v1sub3u13 #x3) (f-avc-v1sub4u0 #x1))
1105*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1106*16dce513Schristos(set avcv1CRq (srl avcv1CRq avcv1Imm5u8))
1107*16dce513Schristos)
1108*16dce513Schristos ())
1109*16dce513Schristos(dn16i cslli_avc_v1 "cslli" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cslli"))
1110*16dce513Schristos "cslli $avcv1CRq,$avcv1Imm5u8"
1111*16dce513Schristos(+ avcv1CRq avcv1Imm5u8 (f-avc-v1sub3u13 #x6) (f-avc-v1sub4u0 #x1))
1112*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1113*16dce513Schristos(set avcv1CRq (sll avcv1CRq avcv1Imm5u8))
1114*16dce513Schristos)
1115*16dce513Schristos ())
1116*16dce513Schristos(dn16i cfsft_avc_v1 "cfsft" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cfsft"))
1117*16dce513Schristos "cfsft $avcv1CRq,$avcv1CRp"
1118*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xf) (f-avc-v1sub4u0 #x0))
1119*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1120*16dce513Schristos(set avcv1CRq (subword SI (sll (or (sll (zext DI (zext SI avcv1CRq)) 32) (zext DI avcv1CRp)) (and QI (srl avccopCCR0 0) #x3f)) 0))
1121*16dce513Schristos)
1122*16dce513Schristos ())
1123*16dce513Schristos(dn16i cfsfta0_avc_v1 "cfsfta0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cfsfta0"))
1124*16dce513Schristos "cfsfta0 $avcv1CRq"
1125*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #x7) (f-avc-v1sub4u8 #x0) (f-avc-v1sub4u0 #x1))
1126*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1127*16dce513Schristos(set avcv1CRq (subword SI (sll (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (and QI (srl avccopCCR0 0) #x3f)) 0))
1128*16dce513Schristos)
1129*16dce513Schristos ())
1130*16dce513Schristos(dn16i cfsfta1_avc_v1 "cfsfta1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cfsfta1"))
1131*16dce513Schristos "cfsfta1 $avcv1CRq"
1132*16dce513Schristos(+ avcv1CRq (f-avc-v1sub4u12 #xf) (f-avc-v1sub4u8 #x0) (f-avc-v1sub4u0 #x1))
1133*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1134*16dce513Schristos(set avcv1CRq (subword SI (sll (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (and QI (srl avccopCCR0 0) #x3f)) 0))
1135*16dce513Schristos)
1136*16dce513Schristos ())
1137*16dce513Schristos(dn16i cmula0_avc_v1 "cmula0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmula0"))
1138*16dce513Schristos "cmula0 $avcv1CRq,$avcv1CRp"
1139*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x0) (f-avc-v1sub4u0 #x4))
1140*16dce513Schristos(sequence((DI concat28)) (c-call "check_option_cp" pc)
1141*16dce513Schristos(set concat28 (mul (ext DI avcv1CRq) (ext DI avcv1CRp)))
1142*16dce513Schristos(set avccopCCR2 (subword SI concat28 0))
1143*16dce513Schristos(set avccopCCR3 (subword SI concat28 1))
1144*16dce513Schristos)
1145*16dce513Schristos ())
1146*16dce513Schristos(dn16i cmulua0_avc_v1 "cmulua0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmulua0"))
1147*16dce513Schristos "cmulua0 $avcv1CRq,$avcv1CRp"
1148*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x1) (f-avc-v1sub4u0 #x4))
1149*16dce513Schristos(sequence((DI concat29)) (c-call "check_option_cp" pc)
1150*16dce513Schristos(set concat29 (mul (zext DI avcv1CRq) (zext DI avcv1CRp)))
1151*16dce513Schristos(set avccopCCR2 (subword SI concat29 0))
1152*16dce513Schristos(set avccopCCR3 (subword SI concat29 1))
1153*16dce513Schristos)
1154*16dce513Schristos ())
1155*16dce513Schristos(dn16i cnmula0_avc_v1 "cnmula0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cnmula0"))
1156*16dce513Schristos "cnmula0 $avcv1CRq,$avcv1CRp"
1157*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x2) (f-avc-v1sub4u0 #x4))
1158*16dce513Schristos(sequence((DI concat30)) (c-call "check_option_cp" pc)
1159*16dce513Schristos(set concat30 (neg (mul (ext DI avcv1CRq) (ext DI avcv1CRp))))
1160*16dce513Schristos(set avccopCCR2 (subword SI concat30 0))
1161*16dce513Schristos(set avccopCCR3 (subword SI concat30 1))
1162*16dce513Schristos)
1163*16dce513Schristos ())
1164*16dce513Schristos(dn16i cmada0_avc_v1 "cmada0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmada0"))
1165*16dce513Schristos "cmada0 $avcv1CRq,$avcv1CRp"
1166*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x4) (f-avc-v1sub4u0 #x4))
1167*16dce513Schristos(sequence((DI concat31)) (c-call "check_option_cp" pc)
1168*16dce513Schristos(set concat31 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcv1CRq) (ext DI avcv1CRp))))
1169*16dce513Schristos(set avccopCCR2 (subword SI concat31 0))
1170*16dce513Schristos(set avccopCCR3 (subword SI concat31 1))
1171*16dce513Schristos)
1172*16dce513Schristos ())
1173*16dce513Schristos(dn16i cmadua0_avc_v1 "cmadua0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmadua0"))
1174*16dce513Schristos "cmadua0 $avcv1CRq,$avcv1CRp"
1175*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x5) (f-avc-v1sub4u0 #x4))
1176*16dce513Schristos(sequence((DI concat32)) (c-call "check_option_cp" pc)
1177*16dce513Schristos(set concat32 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcv1CRq) (zext DI avcv1CRp))))
1178*16dce513Schristos(set avccopCCR2 (subword SI concat32 0))
1179*16dce513Schristos(set avccopCCR3 (subword SI concat32 1))
1180*16dce513Schristos)
1181*16dce513Schristos ())
1182*16dce513Schristos(dn16i cmsba0_avc_v1 "cmsba0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmsba0"))
1183*16dce513Schristos "cmsba0 $avcv1CRq,$avcv1CRp"
1184*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x6) (f-avc-v1sub4u0 #x4))
1185*16dce513Schristos(sequence((DI concat33)) (c-call "check_option_cp" pc)
1186*16dce513Schristos(set concat33 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcv1CRq) (ext DI avcv1CRp))))
1187*16dce513Schristos(set avccopCCR2 (subword SI concat33 0))
1188*16dce513Schristos(set avccopCCR3 (subword SI concat33 1))
1189*16dce513Schristos)
1190*16dce513Schristos ())
1191*16dce513Schristos(dn16i cmsbua0_avc_v1 "cmsbua0" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmsbua0"))
1192*16dce513Schristos "cmsbua0 $avcv1CRq,$avcv1CRp"
1193*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x7) (f-avc-v1sub4u0 #x4))
1194*16dce513Schristos(sequence((DI concat34)) (c-call "check_option_cp" pc)
1195*16dce513Schristos(set concat34 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcv1CRq) (zext DI avcv1CRp))))
1196*16dce513Schristos(set avccopCCR2 (subword SI concat34 0))
1197*16dce513Schristos(set avccopCCR3 (subword SI concat34 1))
1198*16dce513Schristos)
1199*16dce513Schristos ())
1200*16dce513Schristos(dn16i cmula1_avc_v1 "cmula1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmula1"))
1201*16dce513Schristos "cmula1 $avcv1CRq,$avcv1CRp"
1202*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x8) (f-avc-v1sub4u0 #x4))
1203*16dce513Schristos(sequence((DI concat35)) (c-call "check_option_cp" pc)
1204*16dce513Schristos(set concat35 (mul (ext DI avcv1CRq) (ext DI avcv1CRp)))
1205*16dce513Schristos(set avccopCCR4 (subword SI concat35 0))
1206*16dce513Schristos(set avccopCCR5 (subword SI concat35 1))
1207*16dce513Schristos)
1208*16dce513Schristos ())
1209*16dce513Schristos(dn16i cmulua1_avc_v1 "cmulua1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmulua1"))
1210*16dce513Schristos "cmulua1 $avcv1CRq,$avcv1CRp"
1211*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #x9) (f-avc-v1sub4u0 #x4))
1212*16dce513Schristos(sequence((DI concat36)) (c-call "check_option_cp" pc)
1213*16dce513Schristos(set concat36 (mul (zext DI avcv1CRq) (zext DI avcv1CRp)))
1214*16dce513Schristos(set avccopCCR4 (subword SI concat36 0))
1215*16dce513Schristos(set avccopCCR5 (subword SI concat36 1))
1216*16dce513Schristos)
1217*16dce513Schristos ())
1218*16dce513Schristos(dn16i cnmula1_avc_v1 "cnmula1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cnmula1"))
1219*16dce513Schristos "cnmula1 $avcv1CRq,$avcv1CRp"
1220*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xa) (f-avc-v1sub4u0 #x4))
1221*16dce513Schristos(sequence((DI concat37)) (c-call "check_option_cp" pc)
1222*16dce513Schristos(set concat37 (neg (mul (ext DI avcv1CRq) (ext DI avcv1CRp))))
1223*16dce513Schristos(set avccopCCR4 (subword SI concat37 0))
1224*16dce513Schristos(set avccopCCR5 (subword SI concat37 1))
1225*16dce513Schristos)
1226*16dce513Schristos ())
1227*16dce513Schristos(dn16i cmada1_avc_v1 "cmada1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmada1"))
1228*16dce513Schristos "cmada1 $avcv1CRq,$avcv1CRp"
1229*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xc) (f-avc-v1sub4u0 #x4))
1230*16dce513Schristos(sequence((DI concat38)) (c-call "check_option_cp" pc)
1231*16dce513Schristos(set concat38 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcv1CRq) (ext DI avcv1CRp))))
1232*16dce513Schristos(set avccopCCR4 (subword SI concat38 0))
1233*16dce513Schristos(set avccopCCR5 (subword SI concat38 1))
1234*16dce513Schristos)
1235*16dce513Schristos ())
1236*16dce513Schristos(dn16i cmadua1_avc_v1 "cmadua1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmadua1"))
1237*16dce513Schristos "cmadua1 $avcv1CRq,$avcv1CRp"
1238*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xd) (f-avc-v1sub4u0 #x4))
1239*16dce513Schristos(sequence((DI concat39)) (c-call "check_option_cp" pc)
1240*16dce513Schristos(set concat39 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcv1CRq) (zext DI avcv1CRp))))
1241*16dce513Schristos(set avccopCCR4 (subword SI concat39 0))
1242*16dce513Schristos(set avccopCCR5 (subword SI concat39 1))
1243*16dce513Schristos)
1244*16dce513Schristos ())
1245*16dce513Schristos(dn16i cmsba1_avc_v1 "cmsba1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmsba1"))
1246*16dce513Schristos "cmsba1 $avcv1CRq,$avcv1CRp"
1247*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xe) (f-avc-v1sub4u0 #x4))
1248*16dce513Schristos(sequence((DI concat40)) (c-call "check_option_cp" pc)
1249*16dce513Schristos(set concat40 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcv1CRq) (ext DI avcv1CRp))))
1250*16dce513Schristos(set avccopCCR4 (subword SI concat40 0))
1251*16dce513Schristos(set avccopCCR5 (subword SI concat40 1))
1252*16dce513Schristos)
1253*16dce513Schristos ())
1254*16dce513Schristos(dn16i cmsbua1_avc_v1 "cmsbua1" (VLIW64_NO_MATCHING_NOP (SLOT V1) (INTRINSIC "cmsbua1"))
1255*16dce513Schristos "cmsbua1 $avcv1CRq,$avcv1CRp"
1256*16dce513Schristos(+ avcv1CRq avcv1CRp (f-avc-v1sub4u12 #xf) (f-avc-v1sub4u0 #x4))
1257*16dce513Schristos(sequence((DI concat41)) (c-call "check_option_cp" pc)
1258*16dce513Schristos(set concat41 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcv1CRq) (zext DI avcv1CRp))))
1259*16dce513Schristos(set avccopCCR4 (subword SI concat41 0))
1260*16dce513Schristos(set avccopCCR5 (subword SI concat41 1))
1261*16dce513Schristos)
1262*16dce513Schristos ())
1263*16dce513Schristos(dn32i cmov1_avc_v3 "cmov1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "cmov1"))
1264*16dce513Schristos "cmov $avcv3CRn,$avcv3Rm"
1265*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3CRn avcv3Rm (f-avc-v3sub4u28 #x0) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xf))
1266*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1267*16dce513Schristos(set avcv3CRn avcv3Rm)
1268*16dce513Schristos)
1269*16dce513Schristos ())
1270*16dce513Schristos(dn32i cmov2_avc_v3 "cmov2" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "cmov2"))
1271*16dce513Schristos "cmov $avcv3Rm,$avcv3CRn"
1272*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rm avcv3CRn (f-avc-v3sub4u28 #x1) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xf))
1273*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1274*16dce513Schristos(set avcv3Rm avcv3CRn)
1275*16dce513Schristos)
1276*16dce513Schristos ())
1277*16dce513Schristos(dn32i cmovi_avc_v3 "cmovi" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "cmovi"))
1278*16dce513Schristos "cmovi $avcv3CRq,$avcv3Imm16s4x24e32"
1279*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3CRq avcv3Imm16s4x24e32 (f-avc-v3sub4u16 #xe))
1280*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1281*16dce513Schristos(set avcv3CRq (ext SI avcv3Imm16s4x24e32))
1282*16dce513Schristos)
1283*16dce513Schristos ())
1284*16dce513Schristos(dn32i cmovc1_avc_v3 "cmovc1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "cmovc1"))
1285*16dce513Schristos "cmovc $avcv3CCRn,$avcv3Rm"
1286*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3CCRn avcv3Rm (f-avc-v3sub4u28 #x2) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xf))
1287*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1288*16dce513Schristos(set avcv3CCRn avcv3Rm)
1289*16dce513Schristos)
1290*16dce513Schristos ())
1291*16dce513Schristos(dn32i cmovc2_avc_v3 "cmovc2" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "cmovc2"))
1292*16dce513Schristos "cmovc $avcv3Rm,$avcv3CCRn"
1293*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rm avcv3CCRn (f-avc-v3sub4u28 #x3) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xf))
1294*16dce513Schristos(sequence() (c-call "check_option_cp" pc)
1295*16dce513Schristos(set avcv3Rm avcv3CCRn)
1296*16dce513Schristos)
1297*16dce513Schristos ())
1298*16dce513Schristos(dn32i xmula0_avc_v3 "xmula0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmula0"))
1299*16dce513Schristos "xmula0 $avcv3Rn,$avcv3Rm"
1300*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x0) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1301*16dce513Schristos(sequence((DI concat42)) (c-call "check_option_cp" pc)
1302*16dce513Schristos(set concat42 (mul (ext DI avcv3Rn) (ext DI avcv3Rm)))
1303*16dce513Schristos(set avccopCCR2 (subword SI concat42 0))
1304*16dce513Schristos(set avccopCCR3 (subword SI concat42 1))
1305*16dce513Schristos)
1306*16dce513Schristos ())
1307*16dce513Schristos(dn32i xmulua0_avc_v3 "xmulua0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmulua0"))
1308*16dce513Schristos "xmulua0 $avcv3Rn,$avcv3Rm"
1309*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x1) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1310*16dce513Schristos(sequence((DI concat43)) (c-call "check_option_cp" pc)
1311*16dce513Schristos(set concat43 (mul (zext DI avcv3Rn) (zext DI avcv3Rm)))
1312*16dce513Schristos(set avccopCCR2 (subword SI concat43 0))
1313*16dce513Schristos(set avccopCCR3 (subword SI concat43 1))
1314*16dce513Schristos)
1315*16dce513Schristos ())
1316*16dce513Schristos(dn32i xnmula0_avc_v3 "xnmula0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xnmula0"))
1317*16dce513Schristos "xnmula0 $avcv3Rn,$avcv3Rm"
1318*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x2) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1319*16dce513Schristos(sequence((DI concat44)) (c-call "check_option_cp" pc)
1320*16dce513Schristos(set concat44 (neg (mul (ext DI avcv3Rn) (ext DI avcv3Rm))))
1321*16dce513Schristos(set avccopCCR2 (subword SI concat44 0))
1322*16dce513Schristos(set avccopCCR3 (subword SI concat44 1))
1323*16dce513Schristos)
1324*16dce513Schristos ())
1325*16dce513Schristos(dn32i xmada0_avc_v3 "xmada0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmada0"))
1326*16dce513Schristos "xmada0 $avcv3Rn,$avcv3Rm"
1327*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x4) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1328*16dce513Schristos(sequence((DI concat45)) (c-call "check_option_cp" pc)
1329*16dce513Schristos(set concat45 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcv3Rn) (ext DI avcv3Rm))))
1330*16dce513Schristos(set avccopCCR2 (subword SI concat45 0))
1331*16dce513Schristos(set avccopCCR3 (subword SI concat45 1))
1332*16dce513Schristos)
1333*16dce513Schristos ())
1334*16dce513Schristos(dn32i xmadua0_avc_v3 "xmadua0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmadua0"))
1335*16dce513Schristos "xmadua0 $avcv3Rn,$avcv3Rm"
1336*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x5) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1337*16dce513Schristos(sequence((DI concat46)) (c-call "check_option_cp" pc)
1338*16dce513Schristos(set concat46 (add (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcv3Rn) (zext DI avcv3Rm))))
1339*16dce513Schristos(set avccopCCR2 (subword SI concat46 0))
1340*16dce513Schristos(set avccopCCR3 (subword SI concat46 1))
1341*16dce513Schristos)
1342*16dce513Schristos ())
1343*16dce513Schristos(dn32i xmsba0_avc_v3 "xmsba0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmsba0"))
1344*16dce513Schristos "xmsba0 $avcv3Rn,$avcv3Rm"
1345*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x6) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1346*16dce513Schristos(sequence((DI concat47)) (c-call "check_option_cp" pc)
1347*16dce513Schristos(set concat47 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (ext DI avcv3Rn) (ext DI avcv3Rm))))
1348*16dce513Schristos(set avccopCCR2 (subword SI concat47 0))
1349*16dce513Schristos(set avccopCCR3 (subword SI concat47 1))
1350*16dce513Schristos)
1351*16dce513Schristos ())
1352*16dce513Schristos(dn32i xmsbua0_avc_v3 "xmsbua0" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmsbua0"))
1353*16dce513Schristos "xmsbua0 $avcv3Rn,$avcv3Rm"
1354*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x7) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1355*16dce513Schristos(sequence((DI concat48)) (c-call "check_option_cp" pc)
1356*16dce513Schristos(set concat48 (sub (or (sll (zext DI (zext SI avccopCCR2)) 32) (zext DI avccopCCR3)) (mul (zext DI avcv3Rn) (zext DI avcv3Rm))))
1357*16dce513Schristos(set avccopCCR2 (subword SI concat48 0))
1358*16dce513Schristos(set avccopCCR3 (subword SI concat48 1))
1359*16dce513Schristos)
1360*16dce513Schristos ())
1361*16dce513Schristos(dn32i xmula1_avc_v3 "xmula1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmula1"))
1362*16dce513Schristos "xmula1 $avcv3Rn,$avcv3Rm"
1363*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x8) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1364*16dce513Schristos(sequence((DI concat49)) (c-call "check_option_cp" pc)
1365*16dce513Schristos(set concat49 (mul (ext DI avcv3Rn) (ext DI avcv3Rm)))
1366*16dce513Schristos(set avccopCCR4 (subword SI concat49 0))
1367*16dce513Schristos(set avccopCCR5 (subword SI concat49 1))
1368*16dce513Schristos)
1369*16dce513Schristos ())
1370*16dce513Schristos(dn32i xmulua1_avc_v3 "xmulua1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmulua1"))
1371*16dce513Schristos "xmulua1 $avcv3Rn,$avcv3Rm"
1372*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #x9) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1373*16dce513Schristos(sequence((DI concat50)) (c-call "check_option_cp" pc)
1374*16dce513Schristos(set concat50 (mul (zext DI avcv3Rn) (zext DI avcv3Rm)))
1375*16dce513Schristos(set avccopCCR4 (subword SI concat50 0))
1376*16dce513Schristos(set avccopCCR5 (subword SI concat50 1))
1377*16dce513Schristos)
1378*16dce513Schristos ())
1379*16dce513Schristos(dn32i xnmula1_avc_v3 "xnmula1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xnmula1"))
1380*16dce513Schristos "xnmula1 $avcv3Rn,$avcv3Rm"
1381*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #xa) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1382*16dce513Schristos(sequence((DI concat51)) (c-call "check_option_cp" pc)
1383*16dce513Schristos(set concat51 (neg (mul (ext DI avcv3Rn) (ext DI avcv3Rm))))
1384*16dce513Schristos(set avccopCCR4 (subword SI concat51 0))
1385*16dce513Schristos(set avccopCCR5 (subword SI concat51 1))
1386*16dce513Schristos)
1387*16dce513Schristos ())
1388*16dce513Schristos(dn32i xmada1_avc_v3 "xmada1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmada1"))
1389*16dce513Schristos "xmada1 $avcv3Rn,$avcv3Rm"
1390*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #xc) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1391*16dce513Schristos(sequence((DI concat52)) (c-call "check_option_cp" pc)
1392*16dce513Schristos(set concat52 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcv3Rn) (ext DI avcv3Rm))))
1393*16dce513Schristos(set avccopCCR4 (subword SI concat52 0))
1394*16dce513Schristos(set avccopCCR5 (subword SI concat52 1))
1395*16dce513Schristos)
1396*16dce513Schristos ())
1397*16dce513Schristos(dn32i xmadua1_avc_v3 "xmadua1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmadua1"))
1398*16dce513Schristos "xmadua1 $avcv3Rn,$avcv3Rm"
1399*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #xd) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1400*16dce513Schristos(sequence((DI concat53)) (c-call "check_option_cp" pc)
1401*16dce513Schristos(set concat53 (add (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcv3Rn) (zext DI avcv3Rm))))
1402*16dce513Schristos(set avccopCCR4 (subword SI concat53 0))
1403*16dce513Schristos(set avccopCCR5 (subword SI concat53 1))
1404*16dce513Schristos)
1405*16dce513Schristos ())
1406*16dce513Schristos(dn32i xmsba1_avc_v3 "xmsba1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmsba1"))
1407*16dce513Schristos "xmsba1 $avcv3Rn,$avcv3Rm"
1408*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #xe) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1409*16dce513Schristos(sequence((DI concat54)) (c-call "check_option_cp" pc)
1410*16dce513Schristos(set concat54 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (ext DI avcv3Rn) (ext DI avcv3Rm))))
1411*16dce513Schristos(set avccopCCR4 (subword SI concat54 0))
1412*16dce513Schristos(set avccopCCR5 (subword SI concat54 1))
1413*16dce513Schristos)
1414*16dce513Schristos ())
1415*16dce513Schristos(dn32i xmsbua1_avc_v3 "xmsbua1" (VLIW64_NO_MATCHING_NOP (SLOT V3) (INTRINSIC "xmsbua1"))
1416*16dce513Schristos "xmsbua1 $avcv3Rn,$avcv3Rm"
1417*16dce513Schristos(+ (f-avc-v3sub4u0 #xf) (f-avc-v3sub4u12 #x7) avcv3Rn avcv3Rm (f-avc-v3sub4u28 #xf) (f-avc-v3sub4u24 #x0) (f-avc-v3sub4u20 #x0) (f-avc-v3sub4u16 #xc))
1418*16dce513Schristos(sequence((DI concat55)) (c-call "check_option_cp" pc)
1419*16dce513Schristos(set concat55 (sub (or (sll (zext DI (zext SI avccopCCR4)) 32) (zext DI avccopCCR5)) (mul (zext DI avcv3Rn) (zext DI avcv3Rm))))
1420*16dce513Schristos(set avccopCCR4 (subword SI concat55 0))
1421*16dce513Schristos(set avccopCCR5 (subword SI concat55 1))
1422*16dce513Schristos)
1423*16dce513Schristos ())
1424