• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 //   * Redistributions of source code must retain the above copyright notice,
8 //     this list of conditions and the following disclaimer.
9 //   * Redistributions in binary form must reproduce the above copyright notice,
10 //     this list of conditions and the following disclaimer in the documentation
11 //     and/or other materials provided with the distribution.
12 //   * Neither the name of ARM Limited nor the names of its contributors may be
13 //     used to endorse or promote products derived from this software without
14 //     specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 
27 #ifndef VIXL_AARCH32_ASSEMBLER_AARCH32_H_
28 #define VIXL_AARCH32_ASSEMBLER_AARCH32_H_
29 
30 #include "assembler-base-vixl.h"
31 
32 #include "aarch32/instructions-aarch32.h"
33 #include "aarch32/label-aarch32.h"
34 
35 namespace vixl {
36 namespace aarch32 {
37 
38 class Assembler : public internal::AssemblerBase {
39   InstructionSet isa_;
40   Condition first_condition_;
41   uint16_t it_mask_;
42   bool has_32_dregs_;
43   bool allow_unpredictable_;
44   bool allow_strongly_discouraged_;
45 
46  protected:
47   void EmitT32_16(uint16_t instr);
48   void EmitT32_32(uint32_t instr);
49   void EmitA32(uint32_t instr);
50   // Check that the condition of the current instruction is consistent with the
51   // IT state.
CheckIT(Condition condition)52   void CheckIT(Condition condition) {
53 #ifdef VIXL_DEBUG
54     PerformCheckIT(condition);
55 #else
56     USE(condition);
57 #endif
58   }
59 #ifdef VIXL_DEBUG
60   void PerformCheckIT(Condition condition);
61 #endif
AdvanceIT()62   void AdvanceIT() { it_mask_ = (it_mask_ << 1) & 0xf; }
63   void BindHelper(Label* label);
PlaceHelper(RawLiteral * literal)64   void PlaceHelper(RawLiteral* literal) {
65     BindHelper(literal);
66     GetBuffer()->EmitData(literal->GetDataAddress(), literal->GetSize());
67   }
68   uint32_t Link(uint32_t instr,
69                 Label* label,
70                 const Label::LabelEmitOperator& op);
71 
72  public:
73   class AllowUnpredictableScope {
74     Assembler* assembler_;
75     bool old_;
76 
77    public:
AllowUnpredictableScope(Assembler * assembler)78     explicit AllowUnpredictableScope(Assembler* assembler)
79         : assembler_(assembler), old_(assembler->allow_unpredictable_) {
80       assembler_->allow_unpredictable_ = true;
81     }
~AllowUnpredictableScope()82     ~AllowUnpredictableScope() { assembler_->allow_unpredictable_ = old_; }
83   };
84   class AllowStronglyDiscouragedScope {
85     Assembler* assembler_;
86     bool old_;
87 
88    public:
AllowStronglyDiscouragedScope(Assembler * assembler)89     explicit AllowStronglyDiscouragedScope(Assembler* assembler)
90         : assembler_(assembler), old_(assembler->allow_strongly_discouraged_) {
91       assembler_->allow_strongly_discouraged_ = true;
92     }
~AllowStronglyDiscouragedScope()93     ~AllowStronglyDiscouragedScope() {
94       assembler_->allow_strongly_discouraged_ = old_;
95     }
96   };
97 
98   explicit Assembler(InstructionSet isa = kDefaultISA)
isa_(isa)99       : isa_(isa),
100         first_condition_(al),
101         it_mask_(0),
102         has_32_dregs_(true),
103         allow_unpredictable_(false),
104         allow_strongly_discouraged_(false) {
105 #if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
106     // Avoid compiler warning.
107     USE(isa_);
108     VIXL_ASSERT(isa == A32);
109 #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
110     USE(isa_);
111     VIXL_ASSERT(isa == T32);
112 #endif
113   }
114   explicit Assembler(size_t capacity, InstructionSet isa = kDefaultISA)
AssemblerBase(capacity)115       : AssemblerBase(capacity),
116         isa_(isa),
117         first_condition_(al),
118         it_mask_(0),
119         has_32_dregs_(true),
120         allow_unpredictable_(false),
121         allow_strongly_discouraged_(false) {
122 #if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
123     VIXL_ASSERT(isa == A32);
124 #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
125     VIXL_ASSERT(isa == T32);
126 #endif
127   }
128   Assembler(byte* buffer, size_t capacity, InstructionSet isa = kDefaultISA)
AssemblerBase(buffer,capacity)129       : AssemblerBase(buffer, capacity),
130         isa_(isa),
131         first_condition_(al),
132         it_mask_(0),
133         has_32_dregs_(true),
134         allow_unpredictable_(false),
135         allow_strongly_discouraged_(false) {
136 #if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
137     VIXL_ASSERT(isa == A32);
138 #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
139     VIXL_ASSERT(isa == T32);
140 #endif
141   }
~Assembler()142   virtual ~Assembler() {}
143 
UseInstructionSet(InstructionSet isa)144   void UseInstructionSet(InstructionSet isa) {
145 #if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
146     USE(isa);
147     VIXL_ASSERT(isa == A32);
148 #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
149     USE(isa);
150     VIXL_ASSERT(isa == T32);
151 #else
152     VIXL_ASSERT((isa_ == isa) || (GetCursorOffset() == 0));
153     isa_ = isa;
154 #endif
155   }
156 
157 #if defined(VIXL_INCLUDE_TARGET_A32_ONLY)
GetInstructionSetInUse()158   InstructionSet GetInstructionSetInUse() const { return A32; }
159 #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY)
GetInstructionSetInUse()160   InstructionSet GetInstructionSetInUse() const { return T32; }
161 #else
GetInstructionSetInUse()162   InstructionSet GetInstructionSetInUse() const { return isa_; }
163 #endif
164 
UseT32()165   void UseT32() { UseInstructionSet(T32); }
UseA32()166   void UseA32() { UseInstructionSet(A32); }
IsUsingT32()167   bool IsUsingT32() const { return GetInstructionSetInUse() == T32; }
IsUsingA32()168   bool IsUsingA32() const { return GetInstructionSetInUse() == A32; }
169 
SetIT(Condition first_condition,uint16_t it_mask)170   void SetIT(Condition first_condition, uint16_t it_mask) {
171     VIXL_ASSERT(it_mask_ == 0);
172     first_condition_ = first_condition;
173     it_mask_ = it_mask;
174   }
Is16BitEncoding(uint16_t instr)175   bool Is16BitEncoding(uint16_t instr) const {
176     VIXL_ASSERT(IsUsingT32());
177     return instr < 0xe800;
178   }
InITBlock()179   bool InITBlock() { return it_mask_ != 0; }
OutsideITBlock()180   bool OutsideITBlock() { return it_mask_ == 0; }
OutsideITBlockOrLast()181   bool OutsideITBlockOrLast() { return (it_mask_ == 0) || (it_mask_ == 0x8); }
OutsideITBlockAndAlOrLast(Condition cond)182   bool OutsideITBlockAndAlOrLast(Condition cond) {
183     return ((it_mask_ == 0) && cond.Is(al)) || (it_mask_ == 0x8);
184   }
CheckNotIT()185   void CheckNotIT() { VIXL_ASSERT(it_mask_ == 0); }
Has32DRegs()186   bool Has32DRegs() const { return has_32_dregs_; }
SetHas32DRegs(bool has_32_dregs)187   void SetHas32DRegs(bool has_32_dregs) { has_32_dregs_ = has_32_dregs; }
188 
GetCursorOffset()189   int32_t GetCursorOffset() const {
190     ptrdiff_t offset = buffer_.GetCursorOffset();
191     VIXL_ASSERT(IsInt32(offset));
192     return static_cast<int32_t>(offset);
193   }
194 
GetArchitectureStatePCOffset()195   uint32_t GetArchitectureStatePCOffset() const { return IsUsingT32() ? 4 : 8; }
bind(Label * label)196   void bind(Label* label) {
197     VIXL_ASSERT(AllowAssembler());
198     BindHelper(label);
199   }
place(RawLiteral * literal)200   void place(RawLiteral* literal) {
201     VIXL_ASSERT(AllowAssembler());
202     VIXL_ASSERT(literal->IsManuallyPlaced());
203     PlaceHelper(literal);
204   }
205 
GetSizeOfCodeGeneratedSince(Label * label)206   size_t GetSizeOfCodeGeneratedSince(Label* label) const {
207     VIXL_ASSERT(label->IsBound());
208     return buffer_.GetOffsetFrom(label->GetLocation());
209   }
210 
211   void EncodeLabelFor(const Label::ForwardReference& forward, Label* label);
212 
213   // Helpers for it instruction.
it(Condition cond)214   void it(Condition cond) { it(cond, 0x8); }
itt(Condition cond)215   void itt(Condition cond) { it(cond, 0x4); }
ite(Condition cond)216   void ite(Condition cond) { it(cond, 0xc); }
ittt(Condition cond)217   void ittt(Condition cond) { it(cond, 0x2); }
itet(Condition cond)218   void itet(Condition cond) { it(cond, 0xa); }
itte(Condition cond)219   void itte(Condition cond) { it(cond, 0x6); }
itee(Condition cond)220   void itee(Condition cond) { it(cond, 0xe); }
itttt(Condition cond)221   void itttt(Condition cond) { it(cond, 0x1); }
itett(Condition cond)222   void itett(Condition cond) { it(cond, 0x9); }
ittet(Condition cond)223   void ittet(Condition cond) { it(cond, 0x5); }
iteet(Condition cond)224   void iteet(Condition cond) { it(cond, 0xd); }
ittte(Condition cond)225   void ittte(Condition cond) { it(cond, 0x3); }
itete(Condition cond)226   void itete(Condition cond) { it(cond, 0xb); }
ittee(Condition cond)227   void ittee(Condition cond) { it(cond, 0x7); }
iteee(Condition cond)228   void iteee(Condition cond) { it(cond, 0xf); }
229 
230   // Start of generated code.
231   typedef void (Assembler::*InstructionCondSizeRROp)(Condition cond,
232                                                      EncodingSize size,
233                                                      Register rd,
234                                                      Register rn,
235                                                      const Operand& operand);
236   typedef void (Assembler::*InstructionCondROp)(Condition cond,
237                                                 Register rd,
238                                                 const Operand& operand);
239   typedef void (Assembler::*InstructionROp)(Register rd,
240                                             const Operand& operand);
241   typedef void (Assembler::*InstructionCondRROp)(Condition cond,
242                                                  Register rd,
243                                                  Register rn,
244                                                  const Operand& operand);
245   typedef void (Assembler::*InstructionCondSizeRL)(Condition cond,
246                                                    EncodingSize size,
247                                                    Register rd,
248                                                    Label* label);
249   typedef void (Assembler::*InstructionCondSizeL)(Condition cond,
250                                                   EncodingSize size,
251                                                   Label* label);
252   typedef void (Assembler::*InstructionCondRIOp)(Condition cond,
253                                                  Register rd,
254                                                  uint32_t lsb,
255                                                  const Operand& operand);
256   typedef void (Assembler::*InstructionCondRRIOp)(Condition cond,
257                                                   Register rd,
258                                                   Register rn,
259                                                   uint32_t lsb,
260                                                   const Operand& operand);
261   typedef void (Assembler::*InstructionCondI)(Condition cond, uint32_t imm);
262   typedef void (Assembler::*InstructionCondL)(Condition cond, Label* label);
263   typedef void (Assembler::*InstructionCondR)(Condition cond, Register rm);
264   typedef void (Assembler::*InstructionRL)(Register rn, Label* label);
265   typedef void (Assembler::*InstructionCond)(Condition cond);
266   typedef void (Assembler::*InstructionCondRR)(Condition cond,
267                                                Register rd,
268                                                Register rm);
269   typedef void (Assembler::*InstructionCondSizeROp)(Condition cond,
270                                                     EncodingSize size,
271                                                     Register rn,
272                                                     const Operand& operand);
273   typedef void (Assembler::*InstructionCondRRR)(Condition cond,
274                                                 Register rd,
275                                                 Register rn,
276                                                 Register rm);
277   typedef void (Assembler::*InstructionCondBa)(Condition cond,
278                                                MemoryBarrier option);
279   typedef void (Assembler::*InstructionCondRwbDrl)(Condition cond,
280                                                    Register rn,
281                                                    WriteBack write_back,
282                                                    DRegisterList dreglist);
283   typedef void (Assembler::*InstructionCondRMop)(Condition cond,
284                                                  Register rt,
285                                                  const MemOperand& operand);
286   typedef void (Assembler::*InstructionCondRRMop)(Condition cond,
287                                                   Register rt,
288                                                   Register rt2,
289                                                   const MemOperand& operand);
290   typedef void (Assembler::*InstructionCondSizeRwbRl)(Condition cond,
291                                                       EncodingSize size,
292                                                       Register rn,
293                                                       WriteBack write_back,
294                                                       RegisterList registers);
295   typedef void (Assembler::*InstructionCondRwbRl)(Condition cond,
296                                                   Register rn,
297                                                   WriteBack write_back,
298                                                   RegisterList registers);
299   typedef void (Assembler::*InstructionCondSizeRMop)(Condition cond,
300                                                      EncodingSize size,
301                                                      Register rt,
302                                                      const MemOperand& operand);
303   typedef void (Assembler::*InstructionCondRL)(Condition cond,
304                                                Register rt,
305                                                Label* label);
306   typedef void (Assembler::*InstructionCondRRL)(Condition cond,
307                                                 Register rt,
308                                                 Register rt2,
309                                                 Label* label);
310   typedef void (Assembler::*InstructionCondRRRR)(
311       Condition cond, Register rd, Register rn, Register rm, Register ra);
312   typedef void (Assembler::*InstructionCondRSr)(Condition cond,
313                                                 Register rd,
314                                                 SpecialRegister spec_reg);
315   typedef void (Assembler::*InstructionCondMsrOp)(
316       Condition cond, MaskedSpecialRegister spec_reg, const Operand& operand);
317   typedef void (Assembler::*InstructionCondSizeRRR)(
318       Condition cond, EncodingSize size, Register rd, Register rn, Register rm);
319   typedef void (Assembler::*InstructionCondSize)(Condition cond,
320                                                  EncodingSize size);
321   typedef void (Assembler::*InstructionCondMop)(Condition cond,
322                                                 const MemOperand& operand);
323   typedef void (Assembler::*InstructionCondSizeRl)(Condition cond,
324                                                    EncodingSize size,
325                                                    RegisterList registers);
326   typedef void (Assembler::*InstructionCondSizeOrl)(Condition cond,
327                                                     EncodingSize size,
328                                                     Register rt);
329   typedef void (Assembler::*InstructionCondSizeRR)(Condition cond,
330                                                    EncodingSize size,
331                                                    Register rd,
332                                                    Register rm);
333   typedef void (Assembler::*InstructionDtQQQ)(DataType dt,
334                                               QRegister rd,
335                                               QRegister rn,
336                                               QRegister rm);
337   typedef void (Assembler::*InstructionCondRIR)(Condition cond,
338                                                 Register rd,
339                                                 uint32_t imm,
340                                                 Register rn);
341   typedef void (Assembler::*InstructionCondRRRMop)(Condition cond,
342                                                    Register rd,
343                                                    Register rt,
344                                                    Register rt2,
345                                                    const MemOperand& operand);
346   typedef void (Assembler::*InstructionCondSizeI)(Condition cond,
347                                                   EncodingSize size,
348                                                   uint32_t imm);
349   typedef void (Assembler::*InstructionCondDtDDD)(
350       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
351   typedef void (Assembler::*InstructionCondDtQQQ)(
352       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
353   typedef void (Assembler::*InstructionCondDtQDD)(
354       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
355   typedef void (Assembler::*InstructionCondDtDD)(Condition cond,
356                                                  DataType dt,
357                                                  DRegister rd,
358                                                  DRegister rm);
359   typedef void (Assembler::*InstructionCondDtQQ)(Condition cond,
360                                                  DataType dt,
361                                                  QRegister rd,
362                                                  QRegister rm);
363   typedef void (Assembler::*InstructionCondDtSS)(Condition cond,
364                                                  DataType dt,
365                                                  SRegister rd,
366                                                  SRegister rm);
367   typedef void (Assembler::*InstructionCondDtSSS)(
368       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
369   typedef void (Assembler::*InstructionCondDtDQQ)(
370       Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm);
371   typedef void (Assembler::*InstructionCondDtQQD)(
372       Condition cond, DataType dt, QRegister rd, QRegister rn, DRegister rm);
373   typedef void (Assembler::*InstructionCondDtDDDop)(Condition cond,
374                                                     DataType dt,
375                                                     DRegister rd,
376                                                     DRegister rn,
377                                                     const DOperand& operand);
378   typedef void (Assembler::*InstructionCondDtQQQop)(Condition cond,
379                                                     DataType dt,
380                                                     QRegister rd,
381                                                     QRegister rn,
382                                                     const QOperand& operand);
383   typedef void (Assembler::*InstructionCondDtSFi)(Condition cond,
384                                                   DataType dt,
385                                                   SRegister rd,
386                                                   double imm);
387   typedef void (Assembler::*InstructionCondDtDFi)(Condition cond,
388                                                   DataType dt,
389                                                   DRegister rd,
390                                                   double imm);
391   typedef void (Assembler::*InstructionCondDtDtDS)(
392       Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm);
393   typedef void (Assembler::*InstructionCondDtDtSD)(
394       Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm);
395   typedef void (Assembler::*InstructionCondDtDtDDSi)(Condition cond,
396                                                      DataType dt1,
397                                                      DataType dt2,
398                                                      DRegister rd,
399                                                      DRegister rm,
400                                                      int32_t fbits);
401   typedef void (Assembler::*InstructionCondDtDtQQSi)(Condition cond,
402                                                      DataType dt1,
403                                                      DataType dt2,
404                                                      QRegister rd,
405                                                      QRegister rm,
406                                                      int32_t fbits);
407   typedef void (Assembler::*InstructionCondDtDtSSSi)(Condition cond,
408                                                      DataType dt1,
409                                                      DataType dt2,
410                                                      SRegister rd,
411                                                      SRegister rm,
412                                                      int32_t fbits);
413   typedef void (Assembler::*InstructionCondDtDtDD)(
414       Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm);
415   typedef void (Assembler::*InstructionCondDtDtQQ)(
416       Condition cond, DataType dt1, DataType dt2, QRegister rd, QRegister rm);
417   typedef void (Assembler::*InstructionCondDtDtDQ)(
418       Condition cond, DataType dt1, DataType dt2, DRegister rd, QRegister rm);
419   typedef void (Assembler::*InstructionCondDtDtQD)(
420       Condition cond, DataType dt1, DataType dt2, QRegister rd, DRegister rm);
421   typedef void (Assembler::*InstructionCondDtDtSS)(
422       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
423   typedef void (Assembler::*InstructionDtDtDD)(DataType dt1,
424                                                DataType dt2,
425                                                DRegister rd,
426                                                DRegister rm);
427   typedef void (Assembler::*InstructionDtDtQQ)(DataType dt1,
428                                                DataType dt2,
429                                                QRegister rd,
430                                                QRegister rm);
431   typedef void (Assembler::*InstructionDtDtSS)(DataType dt1,
432                                                DataType dt2,
433                                                SRegister rd,
434                                                SRegister rm);
435   typedef void (Assembler::*InstructionDtDtSD)(DataType dt1,
436                                                DataType dt2,
437                                                SRegister rd,
438                                                DRegister rm);
439   typedef void (Assembler::*InstructionCondDtQR)(Condition cond,
440                                                  DataType dt,
441                                                  QRegister rd,
442                                                  Register rt);
443   typedef void (Assembler::*InstructionCondDtDR)(Condition cond,
444                                                  DataType dt,
445                                                  DRegister rd,
446                                                  Register rt);
447   typedef void (Assembler::*InstructionCondDtDDx)(Condition cond,
448                                                   DataType dt,
449                                                   DRegister rd,
450                                                   DRegisterLane rm);
451   typedef void (Assembler::*InstructionCondDtQDx)(Condition cond,
452                                                   DataType dt,
453                                                   QRegister rd,
454                                                   DRegisterLane rm);
455   typedef void (Assembler::*InstructionCondDtDDDDop)(Condition cond,
456                                                      DataType dt,
457                                                      DRegister rd,
458                                                      DRegister rn,
459                                                      DRegister rm,
460                                                      const DOperand& operand);
461   typedef void (Assembler::*InstructionCondDtQQQQop)(Condition cond,
462                                                      DataType dt,
463                                                      QRegister rd,
464                                                      QRegister rn,
465                                                      QRegister rm,
466                                                      const QOperand& operand);
467   typedef void (Assembler::*InstructionCondDtNrlAmop)(
468       Condition cond,
469       DataType dt,
470       const NeonRegisterList& nreglist,
471       const AlignedMemOperand& operand);
472   typedef void (Assembler::*InstructionCondDtNrlMop)(
473       Condition cond,
474       DataType dt,
475       const NeonRegisterList& nreglist,
476       const MemOperand& operand);
477   typedef void (Assembler::*InstructionCondDtRwbDrl)(Condition cond,
478                                                      DataType dt,
479                                                      Register rn,
480                                                      WriteBack write_back,
481                                                      DRegisterList dreglist);
482   typedef void (Assembler::*InstructionCondDtRwbSrl)(Condition cond,
483                                                      DataType dt,
484                                                      Register rn,
485                                                      WriteBack write_back,
486                                                      SRegisterList sreglist);
487   typedef void (Assembler::*InstructionCondDtDL)(Condition cond,
488                                                  DataType dt,
489                                                  DRegister rd,
490                                                  Label* label);
491   typedef void (Assembler::*InstructionCondDtDMop)(Condition cond,
492                                                    DataType dt,
493                                                    DRegister rd,
494                                                    const MemOperand& operand);
495   typedef void (Assembler::*InstructionCondDtSL)(Condition cond,
496                                                  DataType dt,
497                                                  SRegister rd,
498                                                  Label* label);
499   typedef void (Assembler::*InstructionCondDtSMop)(Condition cond,
500                                                    DataType dt,
501                                                    SRegister rd,
502                                                    const MemOperand& operand);
503   typedef void (Assembler::*InstructionDtDDD)(DataType dt,
504                                               DRegister rd,
505                                               DRegister rn,
506                                               DRegister rm);
507   typedef void (Assembler::*InstructionDtSSS)(DataType dt,
508                                               SRegister rd,
509                                               SRegister rn,
510                                               SRegister rm);
511   typedef void (Assembler::*InstructionCondDtDDDx)(Condition cond,
512                                                    DataType dt,
513                                                    DRegister rd,
514                                                    DRegister rn,
515                                                    DRegisterLane rm);
516   typedef void (Assembler::*InstructionCondDtQQDx)(Condition cond,
517                                                    DataType dt,
518                                                    QRegister rd,
519                                                    QRegister rn,
520                                                    DRegisterLane rm);
521   typedef void (Assembler::*InstructionCondDtQDDx)(Condition cond,
522                                                    DataType dt,
523                                                    QRegister rd,
524                                                    DRegister rn,
525                                                    DRegisterLane rm);
526   typedef void (Assembler::*InstructionCondRS)(Condition cond,
527                                                Register rt,
528                                                SRegister rn);
529   typedef void (Assembler::*InstructionCondSR)(Condition cond,
530                                                SRegister rn,
531                                                Register rt);
532   typedef void (Assembler::*InstructionCondRRD)(Condition cond,
533                                                 Register rt,
534                                                 Register rt2,
535                                                 DRegister rm);
536   typedef void (Assembler::*InstructionCondDRR)(Condition cond,
537                                                 DRegister rm,
538                                                 Register rt,
539                                                 Register rt2);
540   typedef void (Assembler::*InstructionCondRRSS)(
541       Condition cond, Register rt, Register rt2, SRegister rm, SRegister rm1);
542   typedef void (Assembler::*InstructionCondSSRR)(
543       Condition cond, SRegister rm, SRegister rm1, Register rt, Register rt2);
544   typedef void (Assembler::*InstructionCondDtDxR)(Condition cond,
545                                                   DataType dt,
546                                                   DRegisterLane rd,
547                                                   Register rt);
548   typedef void (Assembler::*InstructionCondDtDDop)(Condition cond,
549                                                    DataType dt,
550                                                    DRegister rd,
551                                                    const DOperand& operand);
552   typedef void (Assembler::*InstructionCondDtQQop)(Condition cond,
553                                                    DataType dt,
554                                                    QRegister rd,
555                                                    const QOperand& operand);
556   typedef void (Assembler::*InstructionCondDtSSop)(Condition cond,
557                                                    DataType dt,
558                                                    SRegister rd,
559                                                    const SOperand& operand);
560   typedef void (Assembler::*InstructionCondDtRDx)(Condition cond,
561                                                   DataType dt,
562                                                   Register rt,
563                                                   DRegisterLane rn);
564   typedef void (Assembler::*InstructionCondDtQD)(Condition cond,
565                                                  DataType dt,
566                                                  QRegister rd,
567                                                  DRegister rm);
568   typedef void (Assembler::*InstructionCondDtDQ)(Condition cond,
569                                                  DataType dt,
570                                                  DRegister rd,
571                                                  QRegister rm);
572   typedef void (Assembler::*InstructionCondRoaSfp)(Condition cond,
573                                                    RegisterOrAPSR_nzcv rt,
574                                                    SpecialFPRegister spec_reg);
575   typedef void (Assembler::*InstructionCondSfpR)(Condition cond,
576                                                  SpecialFPRegister spec_reg,
577                                                  Register rt);
578   typedef void (Assembler::*InstructionCondDtDDIr)(Condition cond,
579                                                    DataType dt,
580                                                    DRegister rd,
581                                                    DRegister rn,
582                                                    DRegister dm,
583                                                    unsigned index);
584   typedef void (Assembler::*InstructionCondDtQQIr)(Condition cond,
585                                                    DataType dt,
586                                                    QRegister rd,
587                                                    QRegister rn,
588                                                    DRegister dm,
589                                                    unsigned index);
590   typedef void (Assembler::*InstructionCondDtQDIr)(Condition cond,
591                                                    DataType dt,
592                                                    QRegister rd,
593                                                    DRegister rn,
594                                                    DRegister dm,
595                                                    unsigned index);
596   typedef void (Assembler::*InstructionCondDtDrl)(Condition cond,
597                                                   DataType dt,
598                                                   DRegisterList dreglist);
599   typedef void (Assembler::*InstructionCondDtSrl)(Condition cond,
600                                                   DataType dt,
601                                                   SRegisterList sreglist);
602   typedef void (Assembler::*InstructionCondDtDQQop)(Condition cond,
603                                                     DataType dt,
604                                                     DRegister rd,
605                                                     QRegister rm,
606                                                     const QOperand& operand);
607   typedef void (Assembler::*InstructionCondDtQDDop)(Condition cond,
608                                                     DataType dt,
609                                                     QRegister rd,
610                                                     DRegister rm,
611                                                     const DOperand& operand);
612   typedef void (Assembler::*InstructionCondDtDNrlD)(
613       Condition cond,
614       DataType dt,
615       DRegister rd,
616       const NeonRegisterList& nreglist,
617       DRegister rm);
Delegate(InstructionType type,InstructionCondSizeRROp,Condition,EncodingSize,Register,Register,const Operand &)618   virtual void Delegate(InstructionType type,
619                         InstructionCondSizeRROp /*instruction*/,
620                         Condition /*cond*/,
621                         EncodingSize /*size*/,
622                         Register /*rd*/,
623                         Register /*rn*/,
624                         const Operand& /*operand*/) {
625     USE(type);
626     VIXL_ASSERT((type == kAdc) || (type == kAdcs) || (type == kAdd) ||
627                 (type == kAdds) || (type == kAnd) || (type == kAnds) ||
628                 (type == kAsr) || (type == kAsrs) || (type == kBic) ||
629                 (type == kBics) || (type == kEor) || (type == kEors) ||
630                 (type == kLsl) || (type == kLsls) || (type == kLsr) ||
631                 (type == kLsrs) || (type == kOrr) || (type == kOrrs) ||
632                 (type == kRor) || (type == kRors) || (type == kRsb) ||
633                 (type == kRsbs) || (type == kSbc) || (type == kSbcs) ||
634                 (type == kSub) || (type == kSubs));
635     UnimplementedDelegate(type);
636   }
Delegate(InstructionType type,InstructionCondROp,Condition,Register,const Operand &)637   virtual void Delegate(InstructionType type,
638                         InstructionCondROp /*instruction*/,
639                         Condition /*cond*/,
640                         Register /*rd*/,
641                         const Operand& /*operand*/) {
642     USE(type);
643     VIXL_ASSERT((type == kAdd) || (type == kMovt) || (type == kMovw) ||
644                 (type == kSub) || (type == kSxtb16) || (type == kTeq) ||
645                 (type == kUxtb16));
646     UnimplementedDelegate(type);
647   }
Delegate(InstructionType type,InstructionROp,Register,const Operand &)648   virtual void Delegate(InstructionType type,
649                         InstructionROp /*instruction*/,
650                         Register /*rd*/,
651                         const Operand& /*operand*/) {
652     USE(type);
653     VIXL_ASSERT((type == kAdds) || (type == kSubs));
654     UnimplementedDelegate(type);
655   }
Delegate(InstructionType type,InstructionCondRROp,Condition,Register,Register,const Operand &)656   virtual void Delegate(InstructionType type,
657                         InstructionCondRROp /*instruction*/,
658                         Condition /*cond*/,
659                         Register /*rd*/,
660                         Register /*rn*/,
661                         const Operand& /*operand*/) {
662     USE(type);
663     VIXL_ASSERT((type == kAddw) || (type == kOrn) || (type == kOrns) ||
664                 (type == kPkhbt) || (type == kPkhtb) || (type == kRsc) ||
665                 (type == kRscs) || (type == kSubw) || (type == kSxtab) ||
666                 (type == kSxtab16) || (type == kSxtah) || (type == kUxtab) ||
667                 (type == kUxtab16) || (type == kUxtah));
668     UnimplementedDelegate(type);
669   }
Delegate(InstructionType type,InstructionCondSizeRL,Condition,EncodingSize,Register,Label *)670   virtual void Delegate(InstructionType type,
671                         InstructionCondSizeRL /*instruction*/,
672                         Condition /*cond*/,
673                         EncodingSize /*size*/,
674                         Register /*rd*/,
675                         Label* /*label*/) {
676     USE(type);
677     VIXL_ASSERT((type == kAdr) || (type == kLdr));
678     UnimplementedDelegate(type);
679   }
Delegate(InstructionType type,InstructionCondSizeL,Condition,EncodingSize,Label *)680   virtual void Delegate(InstructionType type,
681                         InstructionCondSizeL /*instruction*/,
682                         Condition /*cond*/,
683                         EncodingSize /*size*/,
684                         Label* /*label*/) {
685     USE(type);
686     VIXL_ASSERT((type == kB));
687     UnimplementedDelegate(type);
688   }
Delegate(InstructionType type,InstructionCondRIOp,Condition,Register,uint32_t,const Operand &)689   virtual void Delegate(InstructionType type,
690                         InstructionCondRIOp /*instruction*/,
691                         Condition /*cond*/,
692                         Register /*rd*/,
693                         uint32_t /*lsb*/,
694                         const Operand& /*operand*/) {
695     USE(type);
696     VIXL_ASSERT((type == kBfc) || (type == kSsat) || (type == kUsat));
697     UnimplementedDelegate(type);
698   }
Delegate(InstructionType type,InstructionCondRRIOp,Condition,Register,Register,uint32_t,const Operand &)699   virtual void Delegate(InstructionType type,
700                         InstructionCondRRIOp /*instruction*/,
701                         Condition /*cond*/,
702                         Register /*rd*/,
703                         Register /*rn*/,
704                         uint32_t /*lsb*/,
705                         const Operand& /*operand*/) {
706     USE(type);
707     VIXL_ASSERT((type == kBfi) || (type == kSbfx) || (type == kUbfx));
708     UnimplementedDelegate(type);
709   }
Delegate(InstructionType type,InstructionCondI,Condition,uint32_t)710   virtual void Delegate(InstructionType type,
711                         InstructionCondI /*instruction*/,
712                         Condition /*cond*/,
713                         uint32_t /*imm*/) {
714     USE(type);
715     VIXL_ASSERT((type == kBkpt) || (type == kHlt) || (type == kHvc) ||
716                 (type == kSvc));
717     UnimplementedDelegate(type);
718   }
Delegate(InstructionType type,InstructionCondL,Condition,Label *)719   virtual void Delegate(InstructionType type,
720                         InstructionCondL /*instruction*/,
721                         Condition /*cond*/,
722                         Label* /*label*/) {
723     USE(type);
724     VIXL_ASSERT((type == kBl) || (type == kBlx) || (type == kPld) ||
725                 (type == kPli));
726     UnimplementedDelegate(type);
727   }
Delegate(InstructionType type,InstructionCondR,Condition,Register)728   virtual void Delegate(InstructionType type,
729                         InstructionCondR /*instruction*/,
730                         Condition /*cond*/,
731                         Register /*rm*/) {
732     USE(type);
733     VIXL_ASSERT((type == kBlx) || (type == kBx) || (type == kBxj));
734     UnimplementedDelegate(type);
735   }
Delegate(InstructionType type,InstructionRL,Register,Label *)736   virtual void Delegate(InstructionType type,
737                         InstructionRL /*instruction*/,
738                         Register /*rn*/,
739                         Label* /*label*/) {
740     USE(type);
741     VIXL_ASSERT((type == kCbnz) || (type == kCbz));
742     UnimplementedDelegate(type);
743   }
Delegate(InstructionType type,InstructionCond,Condition)744   virtual void Delegate(InstructionType type,
745                         InstructionCond /*instruction*/,
746                         Condition /*cond*/) {
747     USE(type);
748     VIXL_ASSERT((type == kClrex));
749     UnimplementedDelegate(type);
750   }
Delegate(InstructionType type,InstructionCondRR,Condition,Register,Register)751   virtual void Delegate(InstructionType type,
752                         InstructionCondRR /*instruction*/,
753                         Condition /*cond*/,
754                         Register /*rd*/,
755                         Register /*rm*/) {
756     USE(type);
757     VIXL_ASSERT((type == kClz) || (type == kRbit) || (type == kRrx) ||
758                 (type == kRrxs));
759     UnimplementedDelegate(type);
760   }
Delegate(InstructionType type,InstructionCondSizeROp,Condition,EncodingSize,Register,const Operand &)761   virtual void Delegate(InstructionType type,
762                         InstructionCondSizeROp /*instruction*/,
763                         Condition /*cond*/,
764                         EncodingSize /*size*/,
765                         Register /*rn*/,
766                         const Operand& /*operand*/) {
767     USE(type);
768     VIXL_ASSERT((type == kCmn) || (type == kCmp) || (type == kMov) ||
769                 (type == kMovs) || (type == kMvn) || (type == kMvns) ||
770                 (type == kSxtb) || (type == kSxth) || (type == kTst) ||
771                 (type == kUxtb) || (type == kUxth));
772     UnimplementedDelegate(type);
773   }
Delegate(InstructionType type,InstructionCondRRR,Condition,Register,Register,Register)774   virtual void Delegate(InstructionType type,
775                         InstructionCondRRR /*instruction*/,
776                         Condition /*cond*/,
777                         Register /*rd*/,
778                         Register /*rn*/,
779                         Register /*rm*/) {
780     USE(type);
781     VIXL_ASSERT((type == kCrc32b) || (type == kCrc32cb) || (type == kCrc32ch) ||
782                 (type == kCrc32cw) || (type == kCrc32h) || (type == kCrc32w) ||
783                 (type == kMuls) || (type == kQadd) || (type == kQadd16) ||
784                 (type == kQadd8) || (type == kQasx) || (type == kQdadd) ||
785                 (type == kQdsub) || (type == kQsax) || (type == kQsub) ||
786                 (type == kQsub16) || (type == kQsub8) || (type == kSadd16) ||
787                 (type == kSadd8) || (type == kSasx) || (type == kSdiv) ||
788                 (type == kSel) || (type == kShadd16) || (type == kShadd8) ||
789                 (type == kShasx) || (type == kShsax) || (type == kShsub16) ||
790                 (type == kShsub8) || (type == kSmmul) || (type == kSmmulr) ||
791                 (type == kSmuad) || (type == kSmuadx) || (type == kSmulbb) ||
792                 (type == kSmulbt) || (type == kSmultb) || (type == kSmultt) ||
793                 (type == kSmulwb) || (type == kSmulwt) || (type == kSmusd) ||
794                 (type == kSmusdx) || (type == kSsax) || (type == kSsub16) ||
795                 (type == kSsub8) || (type == kUadd16) || (type == kUadd8) ||
796                 (type == kUasx) || (type == kUdiv) || (type == kUhadd16) ||
797                 (type == kUhadd8) || (type == kUhasx) || (type == kUhsax) ||
798                 (type == kUhsub16) || (type == kUhsub8) || (type == kUqadd16) ||
799                 (type == kUqadd8) || (type == kUqasx) || (type == kUqsax) ||
800                 (type == kUqsub16) || (type == kUqsub8) || (type == kUsad8) ||
801                 (type == kUsax) || (type == kUsub16) || (type == kUsub8));
802     UnimplementedDelegate(type);
803   }
Delegate(InstructionType type,InstructionCondBa,Condition,MemoryBarrier)804   virtual void Delegate(InstructionType type,
805                         InstructionCondBa /*instruction*/,
806                         Condition /*cond*/,
807                         MemoryBarrier /*option*/) {
808     USE(type);
809     VIXL_ASSERT((type == kDmb) || (type == kDsb) || (type == kIsb));
810     UnimplementedDelegate(type);
811   }
Delegate(InstructionType type,InstructionCondRwbDrl,Condition,Register,WriteBack,DRegisterList)812   virtual void Delegate(InstructionType type,
813                         InstructionCondRwbDrl /*instruction*/,
814                         Condition /*cond*/,
815                         Register /*rn*/,
816                         WriteBack /*write_back*/,
817                         DRegisterList /*dreglist*/) {
818     USE(type);
819     VIXL_ASSERT((type == kFldmdbx) || (type == kFldmiax) ||
820                 (type == kFstmdbx) || (type == kFstmiax));
821     UnimplementedDelegate(type);
822   }
DelegateIt(Condition,uint16_t)823   virtual void DelegateIt(Condition /*cond*/, uint16_t /*mask*/) {
824     UnimplementedDelegate(kIt);
825   }
Delegate(InstructionType type,InstructionCondRMop,Condition,Register,const MemOperand &)826   virtual void Delegate(InstructionType type,
827                         InstructionCondRMop /*instruction*/,
828                         Condition /*cond*/,
829                         Register /*rt*/,
830                         const MemOperand& /*operand*/) {
831     USE(type);
832     VIXL_ASSERT((type == kLda) || (type == kLdab) || (type == kLdaex) ||
833                 (type == kLdaexb) || (type == kLdaexh) || (type == kLdah) ||
834                 (type == kLdrex) || (type == kLdrexb) || (type == kLdrexh) ||
835                 (type == kStl) || (type == kStlb) || (type == kStlh));
836     UnimplementedDelegate(type);
837   }
Delegate(InstructionType type,InstructionCondRRMop,Condition,Register,Register,const MemOperand &)838   virtual void Delegate(InstructionType type,
839                         InstructionCondRRMop /*instruction*/,
840                         Condition /*cond*/,
841                         Register /*rt*/,
842                         Register /*rt2*/,
843                         const MemOperand& /*operand*/) {
844     USE(type);
845     VIXL_ASSERT((type == kLdaexd) || (type == kLdrd) || (type == kLdrexd) ||
846                 (type == kStlex) || (type == kStlexb) || (type == kStlexh) ||
847                 (type == kStrd) || (type == kStrex) || (type == kStrexb) ||
848                 (type == kStrexh));
849     UnimplementedDelegate(type);
850   }
Delegate(InstructionType type,InstructionCondSizeRwbRl,Condition,EncodingSize,Register,WriteBack,RegisterList)851   virtual void Delegate(InstructionType type,
852                         InstructionCondSizeRwbRl /*instruction*/,
853                         Condition /*cond*/,
854                         EncodingSize /*size*/,
855                         Register /*rn*/,
856                         WriteBack /*write_back*/,
857                         RegisterList /*registers*/) {
858     USE(type);
859     VIXL_ASSERT((type == kLdm) || (type == kLdmfd) || (type == kStm) ||
860                 (type == kStmdb) || (type == kStmea));
861     UnimplementedDelegate(type);
862   }
Delegate(InstructionType type,InstructionCondRwbRl,Condition,Register,WriteBack,RegisterList)863   virtual void Delegate(InstructionType type,
864                         InstructionCondRwbRl /*instruction*/,
865                         Condition /*cond*/,
866                         Register /*rn*/,
867                         WriteBack /*write_back*/,
868                         RegisterList /*registers*/) {
869     USE(type);
870     VIXL_ASSERT((type == kLdmda) || (type == kLdmdb) || (type == kLdmea) ||
871                 (type == kLdmed) || (type == kLdmfa) || (type == kLdmib) ||
872                 (type == kStmda) || (type == kStmed) || (type == kStmfa) ||
873                 (type == kStmfd) || (type == kStmib));
874     UnimplementedDelegate(type);
875   }
Delegate(InstructionType type,InstructionCondSizeRMop,Condition,EncodingSize,Register,const MemOperand &)876   virtual void Delegate(InstructionType type,
877                         InstructionCondSizeRMop /*instruction*/,
878                         Condition /*cond*/,
879                         EncodingSize /*size*/,
880                         Register /*rt*/,
881                         const MemOperand& /*operand*/) {
882     USE(type);
883     VIXL_ASSERT((type == kLdr) || (type == kLdrb) || (type == kLdrh) ||
884                 (type == kLdrsb) || (type == kLdrsh) || (type == kStr) ||
885                 (type == kStrb) || (type == kStrh));
886     UnimplementedDelegate(type);
887   }
Delegate(InstructionType type,InstructionCondRL,Condition,Register,Label *)888   virtual void Delegate(InstructionType type,
889                         InstructionCondRL /*instruction*/,
890                         Condition /*cond*/,
891                         Register /*rt*/,
892                         Label* /*label*/) {
893     USE(type);
894     VIXL_ASSERT((type == kLdrb) || (type == kLdrh) || (type == kLdrsb) ||
895                 (type == kLdrsh));
896     UnimplementedDelegate(type);
897   }
Delegate(InstructionType type,InstructionCondRRL,Condition,Register,Register,Label *)898   virtual void Delegate(InstructionType type,
899                         InstructionCondRRL /*instruction*/,
900                         Condition /*cond*/,
901                         Register /*rt*/,
902                         Register /*rt2*/,
903                         Label* /*label*/) {
904     USE(type);
905     VIXL_ASSERT((type == kLdrd));
906     UnimplementedDelegate(type);
907   }
Delegate(InstructionType type,InstructionCondRRRR,Condition,Register,Register,Register,Register)908   virtual void Delegate(InstructionType type,
909                         InstructionCondRRRR /*instruction*/,
910                         Condition /*cond*/,
911                         Register /*rd*/,
912                         Register /*rn*/,
913                         Register /*rm*/,
914                         Register /*ra*/) {
915     USE(type);
916     VIXL_ASSERT((type == kMla) || (type == kMlas) || (type == kMls) ||
917                 (type == kSmlabb) || (type == kSmlabt) || (type == kSmlad) ||
918                 (type == kSmladx) || (type == kSmlal) || (type == kSmlalbb) ||
919                 (type == kSmlalbt) || (type == kSmlald) || (type == kSmlaldx) ||
920                 (type == kSmlals) || (type == kSmlaltb) || (type == kSmlaltt) ||
921                 (type == kSmlatb) || (type == kSmlatt) || (type == kSmlawb) ||
922                 (type == kSmlawt) || (type == kSmlsd) || (type == kSmlsdx) ||
923                 (type == kSmlsld) || (type == kSmlsldx) || (type == kSmmla) ||
924                 (type == kSmmlar) || (type == kSmmls) || (type == kSmmlsr) ||
925                 (type == kSmull) || (type == kSmulls) || (type == kUmaal) ||
926                 (type == kUmlal) || (type == kUmlals) || (type == kUmull) ||
927                 (type == kUmulls) || (type == kUsada8));
928     UnimplementedDelegate(type);
929   }
Delegate(InstructionType type,InstructionCondRSr,Condition,Register,SpecialRegister)930   virtual void Delegate(InstructionType type,
931                         InstructionCondRSr /*instruction*/,
932                         Condition /*cond*/,
933                         Register /*rd*/,
934                         SpecialRegister /*spec_reg*/) {
935     USE(type);
936     VIXL_ASSERT((type == kMrs));
937     UnimplementedDelegate(type);
938   }
Delegate(InstructionType type,InstructionCondMsrOp,Condition,MaskedSpecialRegister,const Operand &)939   virtual void Delegate(InstructionType type,
940                         InstructionCondMsrOp /*instruction*/,
941                         Condition /*cond*/,
942                         MaskedSpecialRegister /*spec_reg*/,
943                         const Operand& /*operand*/) {
944     USE(type);
945     VIXL_ASSERT((type == kMsr));
946     UnimplementedDelegate(type);
947   }
Delegate(InstructionType type,InstructionCondSizeRRR,Condition,EncodingSize,Register,Register,Register)948   virtual void Delegate(InstructionType type,
949                         InstructionCondSizeRRR /*instruction*/,
950                         Condition /*cond*/,
951                         EncodingSize /*size*/,
952                         Register /*rd*/,
953                         Register /*rn*/,
954                         Register /*rm*/) {
955     USE(type);
956     VIXL_ASSERT((type == kMul));
957     UnimplementedDelegate(type);
958   }
Delegate(InstructionType type,InstructionCondSize,Condition,EncodingSize)959   virtual void Delegate(InstructionType type,
960                         InstructionCondSize /*instruction*/,
961                         Condition /*cond*/,
962                         EncodingSize /*size*/) {
963     USE(type);
964     VIXL_ASSERT((type == kNop) || (type == kYield));
965     UnimplementedDelegate(type);
966   }
Delegate(InstructionType type,InstructionCondMop,Condition,const MemOperand &)967   virtual void Delegate(InstructionType type,
968                         InstructionCondMop /*instruction*/,
969                         Condition /*cond*/,
970                         const MemOperand& /*operand*/) {
971     USE(type);
972     VIXL_ASSERT((type == kPld) || (type == kPldw) || (type == kPli));
973     UnimplementedDelegate(type);
974   }
Delegate(InstructionType type,InstructionCondSizeRl,Condition,EncodingSize,RegisterList)975   virtual void Delegate(InstructionType type,
976                         InstructionCondSizeRl /*instruction*/,
977                         Condition /*cond*/,
978                         EncodingSize /*size*/,
979                         RegisterList /*registers*/) {
980     USE(type);
981     VIXL_ASSERT((type == kPop) || (type == kPush));
982     UnimplementedDelegate(type);
983   }
Delegate(InstructionType type,InstructionCondSizeOrl,Condition,EncodingSize,Register)984   virtual void Delegate(InstructionType type,
985                         InstructionCondSizeOrl /*instruction*/,
986                         Condition /*cond*/,
987                         EncodingSize /*size*/,
988                         Register /*rt*/) {
989     USE(type);
990     VIXL_ASSERT((type == kPop) || (type == kPush));
991     UnimplementedDelegate(type);
992   }
Delegate(InstructionType type,InstructionCondSizeRR,Condition,EncodingSize,Register,Register)993   virtual void Delegate(InstructionType type,
994                         InstructionCondSizeRR /*instruction*/,
995                         Condition /*cond*/,
996                         EncodingSize /*size*/,
997                         Register /*rd*/,
998                         Register /*rm*/) {
999     USE(type);
1000     VIXL_ASSERT((type == kRev) || (type == kRev16) || (type == kRevsh));
1001     UnimplementedDelegate(type);
1002   }
Delegate(InstructionType type,InstructionDtQQQ,DataType,QRegister,QRegister,QRegister)1003   virtual void Delegate(InstructionType type,
1004                         InstructionDtQQQ /*instruction*/,
1005                         DataType /*dt*/,
1006                         QRegister /*rd*/,
1007                         QRegister /*rn*/,
1008                         QRegister /*rm*/) {
1009     USE(type);
1010     VIXL_ASSERT((type == kVmaxnm) || (type == kVminnm));
1011     UnimplementedDelegate(type);
1012   }
Delegate(InstructionType type,InstructionCondRIR,Condition,Register,uint32_t,Register)1013   virtual void Delegate(InstructionType type,
1014                         InstructionCondRIR /*instruction*/,
1015                         Condition /*cond*/,
1016                         Register /*rd*/,
1017                         uint32_t /*imm*/,
1018                         Register /*rn*/) {
1019     USE(type);
1020     VIXL_ASSERT((type == kSsat16) || (type == kUsat16));
1021     UnimplementedDelegate(type);
1022   }
Delegate(InstructionType type,InstructionCondRRRMop,Condition,Register,Register,Register,const MemOperand &)1023   virtual void Delegate(InstructionType type,
1024                         InstructionCondRRRMop /*instruction*/,
1025                         Condition /*cond*/,
1026                         Register /*rd*/,
1027                         Register /*rt*/,
1028                         Register /*rt2*/,
1029                         const MemOperand& /*operand*/) {
1030     USE(type);
1031     VIXL_ASSERT((type == kStlexd) || (type == kStrexd));
1032     UnimplementedDelegate(type);
1033   }
Delegate(InstructionType type,InstructionCondSizeI,Condition,EncodingSize,uint32_t)1034   virtual void Delegate(InstructionType type,
1035                         InstructionCondSizeI /*instruction*/,
1036                         Condition /*cond*/,
1037                         EncodingSize /*size*/,
1038                         uint32_t /*imm*/) {
1039     USE(type);
1040     VIXL_ASSERT((type == kUdf));
1041     UnimplementedDelegate(type);
1042   }
Delegate(InstructionType type,InstructionCondDtDDD,Condition,DataType,DRegister,DRegister,DRegister)1043   virtual void Delegate(InstructionType type,
1044                         InstructionCondDtDDD /*instruction*/,
1045                         Condition /*cond*/,
1046                         DataType /*dt*/,
1047                         DRegister /*rd*/,
1048                         DRegister /*rn*/,
1049                         DRegister /*rm*/) {
1050     USE(type);
1051     VIXL_ASSERT((type == kVaba) || (type == kVabd) || (type == kVacge) ||
1052                 (type == kVacgt) || (type == kVacle) || (type == kVaclt) ||
1053                 (type == kVadd) || (type == kVbif) || (type == kVbit) ||
1054                 (type == kVbsl) || (type == kVceq) || (type == kVcge) ||
1055                 (type == kVcgt) || (type == kVcle) || (type == kVclt) ||
1056                 (type == kVdiv) || (type == kVeor) || (type == kVfma) ||
1057                 (type == kVfms) || (type == kVfnma) || (type == kVfnms) ||
1058                 (type == kVhadd) || (type == kVhsub) || (type == kVmax) ||
1059                 (type == kVmin) || (type == kVmla) || (type == kVmls) ||
1060                 (type == kVmul) || (type == kVnmla) || (type == kVnmls) ||
1061                 (type == kVnmul) || (type == kVpadd) || (type == kVpmax) ||
1062                 (type == kVpmin) || (type == kVqadd) || (type == kVqdmulh) ||
1063                 (type == kVqrdmulh) || (type == kVqrshl) || (type == kVqsub) ||
1064                 (type == kVrecps) || (type == kVrhadd) || (type == kVrshl) ||
1065                 (type == kVrsqrts) || (type == kVsub) || (type == kVtst));
1066     UnimplementedDelegate(type);
1067   }
Delegate(InstructionType type,InstructionCondDtQQQ,Condition,DataType,QRegister,QRegister,QRegister)1068   virtual void Delegate(InstructionType type,
1069                         InstructionCondDtQQQ /*instruction*/,
1070                         Condition /*cond*/,
1071                         DataType /*dt*/,
1072                         QRegister /*rd*/,
1073                         QRegister /*rn*/,
1074                         QRegister /*rm*/) {
1075     USE(type);
1076     VIXL_ASSERT((type == kVaba) || (type == kVabd) || (type == kVacge) ||
1077                 (type == kVacgt) || (type == kVacle) || (type == kVaclt) ||
1078                 (type == kVadd) || (type == kVbif) || (type == kVbit) ||
1079                 (type == kVbsl) || (type == kVceq) || (type == kVcge) ||
1080                 (type == kVcgt) || (type == kVcle) || (type == kVclt) ||
1081                 (type == kVeor) || (type == kVfma) || (type == kVfms) ||
1082                 (type == kVhadd) || (type == kVhsub) || (type == kVmax) ||
1083                 (type == kVmin) || (type == kVmla) || (type == kVmls) ||
1084                 (type == kVmul) || (type == kVqadd) || (type == kVqdmulh) ||
1085                 (type == kVqrdmulh) || (type == kVqrshl) || (type == kVqsub) ||
1086                 (type == kVrecps) || (type == kVrhadd) || (type == kVrshl) ||
1087                 (type == kVrsqrts) || (type == kVsub) || (type == kVtst));
1088     UnimplementedDelegate(type);
1089   }
Delegate(InstructionType type,InstructionCondDtQDD,Condition,DataType,QRegister,DRegister,DRegister)1090   virtual void Delegate(InstructionType type,
1091                         InstructionCondDtQDD /*instruction*/,
1092                         Condition /*cond*/,
1093                         DataType /*dt*/,
1094                         QRegister /*rd*/,
1095                         DRegister /*rn*/,
1096                         DRegister /*rm*/) {
1097     USE(type);
1098     VIXL_ASSERT((type == kVabal) || (type == kVabdl) || (type == kVaddl) ||
1099                 (type == kVmlal) || (type == kVmlsl) || (type == kVmull) ||
1100                 (type == kVqdmlal) || (type == kVqdmlsl) ||
1101                 (type == kVqdmull) || (type == kVsubl));
1102     UnimplementedDelegate(type);
1103   }
Delegate(InstructionType type,InstructionCondDtDD,Condition,DataType,DRegister,DRegister)1104   virtual void Delegate(InstructionType type,
1105                         InstructionCondDtDD /*instruction*/,
1106                         Condition /*cond*/,
1107                         DataType /*dt*/,
1108                         DRegister /*rd*/,
1109                         DRegister /*rm*/) {
1110     USE(type);
1111     VIXL_ASSERT((type == kVabs) || (type == kVcls) || (type == kVclz) ||
1112                 (type == kVcmp) || (type == kVcmpe) || (type == kVcnt) ||
1113                 (type == kVneg) || (type == kVpadal) || (type == kVpaddl) ||
1114                 (type == kVqabs) || (type == kVqneg) || (type == kVrecpe) ||
1115                 (type == kVrev16) || (type == kVrev32) || (type == kVrev64) ||
1116                 (type == kVrsqrte) || (type == kVsqrt) || (type == kVswp) ||
1117                 (type == kVtrn) || (type == kVuzp) || (type == kVzip));
1118     UnimplementedDelegate(type);
1119   }
Delegate(InstructionType type,InstructionCondDtQQ,Condition,DataType,QRegister,QRegister)1120   virtual void Delegate(InstructionType type,
1121                         InstructionCondDtQQ /*instruction*/,
1122                         Condition /*cond*/,
1123                         DataType /*dt*/,
1124                         QRegister /*rd*/,
1125                         QRegister /*rm*/) {
1126     USE(type);
1127     VIXL_ASSERT((type == kVabs) || (type == kVcls) || (type == kVclz) ||
1128                 (type == kVcnt) || (type == kVneg) || (type == kVpadal) ||
1129                 (type == kVpaddl) || (type == kVqabs) || (type == kVqneg) ||
1130                 (type == kVrecpe) || (type == kVrev16) || (type == kVrev32) ||
1131                 (type == kVrev64) || (type == kVrsqrte) || (type == kVswp) ||
1132                 (type == kVtrn) || (type == kVuzp) || (type == kVzip));
1133     UnimplementedDelegate(type);
1134   }
Delegate(InstructionType type,InstructionCondDtSS,Condition,DataType,SRegister,SRegister)1135   virtual void Delegate(InstructionType type,
1136                         InstructionCondDtSS /*instruction*/,
1137                         Condition /*cond*/,
1138                         DataType /*dt*/,
1139                         SRegister /*rd*/,
1140                         SRegister /*rm*/) {
1141     USE(type);
1142     VIXL_ASSERT((type == kVabs) || (type == kVcmp) || (type == kVcmpe) ||
1143                 (type == kVneg) || (type == kVsqrt));
1144     UnimplementedDelegate(type);
1145   }
Delegate(InstructionType type,InstructionCondDtSSS,Condition,DataType,SRegister,SRegister,SRegister)1146   virtual void Delegate(InstructionType type,
1147                         InstructionCondDtSSS /*instruction*/,
1148                         Condition /*cond*/,
1149                         DataType /*dt*/,
1150                         SRegister /*rd*/,
1151                         SRegister /*rn*/,
1152                         SRegister /*rm*/) {
1153     USE(type);
1154     VIXL_ASSERT((type == kVadd) || (type == kVdiv) || (type == kVfma) ||
1155                 (type == kVfms) || (type == kVfnma) || (type == kVfnms) ||
1156                 (type == kVmla) || (type == kVmls) || (type == kVmul) ||
1157                 (type == kVnmla) || (type == kVnmls) || (type == kVnmul) ||
1158                 (type == kVsub));
1159     UnimplementedDelegate(type);
1160   }
Delegate(InstructionType type,InstructionCondDtDQQ,Condition,DataType,DRegister,QRegister,QRegister)1161   virtual void Delegate(InstructionType type,
1162                         InstructionCondDtDQQ /*instruction*/,
1163                         Condition /*cond*/,
1164                         DataType /*dt*/,
1165                         DRegister /*rd*/,
1166                         QRegister /*rn*/,
1167                         QRegister /*rm*/) {
1168     USE(type);
1169     VIXL_ASSERT((type == kVaddhn) || (type == kVraddhn) || (type == kVrsubhn) ||
1170                 (type == kVsubhn));
1171     UnimplementedDelegate(type);
1172   }
Delegate(InstructionType type,InstructionCondDtQQD,Condition,DataType,QRegister,QRegister,DRegister)1173   virtual void Delegate(InstructionType type,
1174                         InstructionCondDtQQD /*instruction*/,
1175                         Condition /*cond*/,
1176                         DataType /*dt*/,
1177                         QRegister /*rd*/,
1178                         QRegister /*rn*/,
1179                         DRegister /*rm*/) {
1180     USE(type);
1181     VIXL_ASSERT((type == kVaddw) || (type == kVsubw));
1182     UnimplementedDelegate(type);
1183   }
Delegate(InstructionType type,InstructionCondDtDDDop,Condition,DataType,DRegister,DRegister,const DOperand &)1184   virtual void Delegate(InstructionType type,
1185                         InstructionCondDtDDDop /*instruction*/,
1186                         Condition /*cond*/,
1187                         DataType /*dt*/,
1188                         DRegister /*rd*/,
1189                         DRegister /*rn*/,
1190                         const DOperand& /*operand*/) {
1191     USE(type);
1192     VIXL_ASSERT((type == kVand) || (type == kVbic) || (type == kVceq) ||
1193                 (type == kVcge) || (type == kVcgt) || (type == kVcle) ||
1194                 (type == kVclt) || (type == kVorn) || (type == kVorr) ||
1195                 (type == kVqshl) || (type == kVqshlu) || (type == kVrshr) ||
1196                 (type == kVrsra) || (type == kVshl) || (type == kVshr) ||
1197                 (type == kVsli) || (type == kVsra) || (type == kVsri));
1198     UnimplementedDelegate(type);
1199   }
Delegate(InstructionType type,InstructionCondDtQQQop,Condition,DataType,QRegister,QRegister,const QOperand &)1200   virtual void Delegate(InstructionType type,
1201                         InstructionCondDtQQQop /*instruction*/,
1202                         Condition /*cond*/,
1203                         DataType /*dt*/,
1204                         QRegister /*rd*/,
1205                         QRegister /*rn*/,
1206                         const QOperand& /*operand*/) {
1207     USE(type);
1208     VIXL_ASSERT((type == kVand) || (type == kVbic) || (type == kVceq) ||
1209                 (type == kVcge) || (type == kVcgt) || (type == kVcle) ||
1210                 (type == kVclt) || (type == kVorn) || (type == kVorr) ||
1211                 (type == kVqshl) || (type == kVqshlu) || (type == kVrshr) ||
1212                 (type == kVrsra) || (type == kVshl) || (type == kVshr) ||
1213                 (type == kVsli) || (type == kVsra) || (type == kVsri));
1214     UnimplementedDelegate(type);
1215   }
Delegate(InstructionType type,InstructionCondDtSFi,Condition,DataType,SRegister,double)1216   virtual void Delegate(InstructionType type,
1217                         InstructionCondDtSFi /*instruction*/,
1218                         Condition /*cond*/,
1219                         DataType /*dt*/,
1220                         SRegister /*rd*/,
1221                         double /*imm*/) {
1222     USE(type);
1223     VIXL_ASSERT((type == kVcmp) || (type == kVcmpe));
1224     UnimplementedDelegate(type);
1225   }
Delegate(InstructionType type,InstructionCondDtDFi,Condition,DataType,DRegister,double)1226   virtual void Delegate(InstructionType type,
1227                         InstructionCondDtDFi /*instruction*/,
1228                         Condition /*cond*/,
1229                         DataType /*dt*/,
1230                         DRegister /*rd*/,
1231                         double /*imm*/) {
1232     USE(type);
1233     VIXL_ASSERT((type == kVcmp) || (type == kVcmpe));
1234     UnimplementedDelegate(type);
1235   }
Delegate(InstructionType type,InstructionCondDtDtDS,Condition,DataType,DataType,DRegister,SRegister)1236   virtual void Delegate(InstructionType type,
1237                         InstructionCondDtDtDS /*instruction*/,
1238                         Condition /*cond*/,
1239                         DataType /*dt1*/,
1240                         DataType /*dt2*/,
1241                         DRegister /*rd*/,
1242                         SRegister /*rm*/) {
1243     USE(type);
1244     VIXL_ASSERT((type == kVcvt) || (type == kVcvtb) || (type == kVcvtt));
1245     UnimplementedDelegate(type);
1246   }
Delegate(InstructionType type,InstructionCondDtDtSD,Condition,DataType,DataType,SRegister,DRegister)1247   virtual void Delegate(InstructionType type,
1248                         InstructionCondDtDtSD /*instruction*/,
1249                         Condition /*cond*/,
1250                         DataType /*dt1*/,
1251                         DataType /*dt2*/,
1252                         SRegister /*rd*/,
1253                         DRegister /*rm*/) {
1254     USE(type);
1255     VIXL_ASSERT((type == kVcvt) || (type == kVcvtb) || (type == kVcvtr) ||
1256                 (type == kVcvtt));
1257     UnimplementedDelegate(type);
1258   }
Delegate(InstructionType type,InstructionCondDtDtDDSi,Condition,DataType,DataType,DRegister,DRegister,int32_t)1259   virtual void Delegate(InstructionType type,
1260                         InstructionCondDtDtDDSi /*instruction*/,
1261                         Condition /*cond*/,
1262                         DataType /*dt1*/,
1263                         DataType /*dt2*/,
1264                         DRegister /*rd*/,
1265                         DRegister /*rm*/,
1266                         int32_t /*fbits*/) {
1267     USE(type);
1268     VIXL_ASSERT((type == kVcvt));
1269     UnimplementedDelegate(type);
1270   }
Delegate(InstructionType type,InstructionCondDtDtQQSi,Condition,DataType,DataType,QRegister,QRegister,int32_t)1271   virtual void Delegate(InstructionType type,
1272                         InstructionCondDtDtQQSi /*instruction*/,
1273                         Condition /*cond*/,
1274                         DataType /*dt1*/,
1275                         DataType /*dt2*/,
1276                         QRegister /*rd*/,
1277                         QRegister /*rm*/,
1278                         int32_t /*fbits*/) {
1279     USE(type);
1280     VIXL_ASSERT((type == kVcvt));
1281     UnimplementedDelegate(type);
1282   }
Delegate(InstructionType type,InstructionCondDtDtSSSi,Condition,DataType,DataType,SRegister,SRegister,int32_t)1283   virtual void Delegate(InstructionType type,
1284                         InstructionCondDtDtSSSi /*instruction*/,
1285                         Condition /*cond*/,
1286                         DataType /*dt1*/,
1287                         DataType /*dt2*/,
1288                         SRegister /*rd*/,
1289                         SRegister /*rm*/,
1290                         int32_t /*fbits*/) {
1291     USE(type);
1292     VIXL_ASSERT((type == kVcvt));
1293     UnimplementedDelegate(type);
1294   }
Delegate(InstructionType type,InstructionCondDtDtDD,Condition,DataType,DataType,DRegister,DRegister)1295   virtual void Delegate(InstructionType type,
1296                         InstructionCondDtDtDD /*instruction*/,
1297                         Condition /*cond*/,
1298                         DataType /*dt1*/,
1299                         DataType /*dt2*/,
1300                         DRegister /*rd*/,
1301                         DRegister /*rm*/) {
1302     USE(type);
1303     VIXL_ASSERT((type == kVcvt) || (type == kVrintr) || (type == kVrintx) ||
1304                 (type == kVrintz));
1305     UnimplementedDelegate(type);
1306   }
Delegate(InstructionType type,InstructionCondDtDtQQ,Condition,DataType,DataType,QRegister,QRegister)1307   virtual void Delegate(InstructionType type,
1308                         InstructionCondDtDtQQ /*instruction*/,
1309                         Condition /*cond*/,
1310                         DataType /*dt1*/,
1311                         DataType /*dt2*/,
1312                         QRegister /*rd*/,
1313                         QRegister /*rm*/) {
1314     USE(type);
1315     VIXL_ASSERT((type == kVcvt));
1316     UnimplementedDelegate(type);
1317   }
Delegate(InstructionType type,InstructionCondDtDtDQ,Condition,DataType,DataType,DRegister,QRegister)1318   virtual void Delegate(InstructionType type,
1319                         InstructionCondDtDtDQ /*instruction*/,
1320                         Condition /*cond*/,
1321                         DataType /*dt1*/,
1322                         DataType /*dt2*/,
1323                         DRegister /*rd*/,
1324                         QRegister /*rm*/) {
1325     USE(type);
1326     VIXL_ASSERT((type == kVcvt));
1327     UnimplementedDelegate(type);
1328   }
Delegate(InstructionType type,InstructionCondDtDtQD,Condition,DataType,DataType,QRegister,DRegister)1329   virtual void Delegate(InstructionType type,
1330                         InstructionCondDtDtQD /*instruction*/,
1331                         Condition /*cond*/,
1332                         DataType /*dt1*/,
1333                         DataType /*dt2*/,
1334                         QRegister /*rd*/,
1335                         DRegister /*rm*/) {
1336     USE(type);
1337     VIXL_ASSERT((type == kVcvt));
1338     UnimplementedDelegate(type);
1339   }
Delegate(InstructionType type,InstructionCondDtDtSS,Condition,DataType,DataType,SRegister,SRegister)1340   virtual void Delegate(InstructionType type,
1341                         InstructionCondDtDtSS /*instruction*/,
1342                         Condition /*cond*/,
1343                         DataType /*dt1*/,
1344                         DataType /*dt2*/,
1345                         SRegister /*rd*/,
1346                         SRegister /*rm*/) {
1347     USE(type);
1348     VIXL_ASSERT((type == kVcvt) || (type == kVcvtb) || (type == kVcvtr) ||
1349                 (type == kVcvtt) || (type == kVrintr) || (type == kVrintx) ||
1350                 (type == kVrintz));
1351     UnimplementedDelegate(type);
1352   }
Delegate(InstructionType type,InstructionDtDtDD,DataType,DataType,DRegister,DRegister)1353   virtual void Delegate(InstructionType type,
1354                         InstructionDtDtDD /*instruction*/,
1355                         DataType /*dt1*/,
1356                         DataType /*dt2*/,
1357                         DRegister /*rd*/,
1358                         DRegister /*rm*/) {
1359     USE(type);
1360     VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) ||
1361                 (type == kVcvtp) || (type == kVrinta) || (type == kVrintm) ||
1362                 (type == kVrintn) || (type == kVrintp));
1363     UnimplementedDelegate(type);
1364   }
Delegate(InstructionType type,InstructionDtDtQQ,DataType,DataType,QRegister,QRegister)1365   virtual void Delegate(InstructionType type,
1366                         InstructionDtDtQQ /*instruction*/,
1367                         DataType /*dt1*/,
1368                         DataType /*dt2*/,
1369                         QRegister /*rd*/,
1370                         QRegister /*rm*/) {
1371     USE(type);
1372     VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) ||
1373                 (type == kVcvtp) || (type == kVrinta) || (type == kVrintm) ||
1374                 (type == kVrintn) || (type == kVrintp) || (type == kVrintx) ||
1375                 (type == kVrintz));
1376     UnimplementedDelegate(type);
1377   }
Delegate(InstructionType type,InstructionDtDtSS,DataType,DataType,SRegister,SRegister)1378   virtual void Delegate(InstructionType type,
1379                         InstructionDtDtSS /*instruction*/,
1380                         DataType /*dt1*/,
1381                         DataType /*dt2*/,
1382                         SRegister /*rd*/,
1383                         SRegister /*rm*/) {
1384     USE(type);
1385     VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) ||
1386                 (type == kVcvtp) || (type == kVrinta) || (type == kVrintm) ||
1387                 (type == kVrintn) || (type == kVrintp));
1388     UnimplementedDelegate(type);
1389   }
Delegate(InstructionType type,InstructionDtDtSD,DataType,DataType,SRegister,DRegister)1390   virtual void Delegate(InstructionType type,
1391                         InstructionDtDtSD /*instruction*/,
1392                         DataType /*dt1*/,
1393                         DataType /*dt2*/,
1394                         SRegister /*rd*/,
1395                         DRegister /*rm*/) {
1396     USE(type);
1397     VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) ||
1398                 (type == kVcvtp));
1399     UnimplementedDelegate(type);
1400   }
Delegate(InstructionType type,InstructionCondDtQR,Condition,DataType,QRegister,Register)1401   virtual void Delegate(InstructionType type,
1402                         InstructionCondDtQR /*instruction*/,
1403                         Condition /*cond*/,
1404                         DataType /*dt*/,
1405                         QRegister /*rd*/,
1406                         Register /*rt*/) {
1407     USE(type);
1408     VIXL_ASSERT((type == kVdup));
1409     UnimplementedDelegate(type);
1410   }
Delegate(InstructionType type,InstructionCondDtDR,Condition,DataType,DRegister,Register)1411   virtual void Delegate(InstructionType type,
1412                         InstructionCondDtDR /*instruction*/,
1413                         Condition /*cond*/,
1414                         DataType /*dt*/,
1415                         DRegister /*rd*/,
1416                         Register /*rt*/) {
1417     USE(type);
1418     VIXL_ASSERT((type == kVdup));
1419     UnimplementedDelegate(type);
1420   }
Delegate(InstructionType type,InstructionCondDtDDx,Condition,DataType,DRegister,DRegisterLane)1421   virtual void Delegate(InstructionType type,
1422                         InstructionCondDtDDx /*instruction*/,
1423                         Condition /*cond*/,
1424                         DataType /*dt*/,
1425                         DRegister /*rd*/,
1426                         DRegisterLane /*rm*/) {
1427     USE(type);
1428     VIXL_ASSERT((type == kVdup));
1429     UnimplementedDelegate(type);
1430   }
Delegate(InstructionType type,InstructionCondDtQDx,Condition,DataType,QRegister,DRegisterLane)1431   virtual void Delegate(InstructionType type,
1432                         InstructionCondDtQDx /*instruction*/,
1433                         Condition /*cond*/,
1434                         DataType /*dt*/,
1435                         QRegister /*rd*/,
1436                         DRegisterLane /*rm*/) {
1437     USE(type);
1438     VIXL_ASSERT((type == kVdup));
1439     UnimplementedDelegate(type);
1440   }
Delegate(InstructionType type,InstructionCondDtDDDDop,Condition,DataType,DRegister,DRegister,DRegister,const DOperand &)1441   virtual void Delegate(InstructionType type,
1442                         InstructionCondDtDDDDop /*instruction*/,
1443                         Condition /*cond*/,
1444                         DataType /*dt*/,
1445                         DRegister /*rd*/,
1446                         DRegister /*rn*/,
1447                         DRegister /*rm*/,
1448                         const DOperand& /*operand*/) {
1449     USE(type);
1450     VIXL_ASSERT((type == kVext));
1451     UnimplementedDelegate(type);
1452   }
Delegate(InstructionType type,InstructionCondDtQQQQop,Condition,DataType,QRegister,QRegister,QRegister,const QOperand &)1453   virtual void Delegate(InstructionType type,
1454                         InstructionCondDtQQQQop /*instruction*/,
1455                         Condition /*cond*/,
1456                         DataType /*dt*/,
1457                         QRegister /*rd*/,
1458                         QRegister /*rn*/,
1459                         QRegister /*rm*/,
1460                         const QOperand& /*operand*/) {
1461     USE(type);
1462     VIXL_ASSERT((type == kVext));
1463     UnimplementedDelegate(type);
1464   }
Delegate(InstructionType type,InstructionCondDtNrlAmop,Condition,DataType,const NeonRegisterList &,const AlignedMemOperand &)1465   virtual void Delegate(InstructionType type,
1466                         InstructionCondDtNrlAmop /*instruction*/,
1467                         Condition /*cond*/,
1468                         DataType /*dt*/,
1469                         const NeonRegisterList& /*nreglist*/,
1470                         const AlignedMemOperand& /*operand*/) {
1471     USE(type);
1472     VIXL_ASSERT((type == kVld1) || (type == kVld2) || (type == kVld3) ||
1473                 (type == kVld4) || (type == kVst1) || (type == kVst2) ||
1474                 (type == kVst3) || (type == kVst4));
1475     UnimplementedDelegate(type);
1476   }
Delegate(InstructionType type,InstructionCondDtNrlMop,Condition,DataType,const NeonRegisterList &,const MemOperand &)1477   virtual void Delegate(InstructionType type,
1478                         InstructionCondDtNrlMop /*instruction*/,
1479                         Condition /*cond*/,
1480                         DataType /*dt*/,
1481                         const NeonRegisterList& /*nreglist*/,
1482                         const MemOperand& /*operand*/) {
1483     USE(type);
1484     VIXL_ASSERT((type == kVld3) || (type == kVst3));
1485     UnimplementedDelegate(type);
1486   }
Delegate(InstructionType type,InstructionCondDtRwbDrl,Condition,DataType,Register,WriteBack,DRegisterList)1487   virtual void Delegate(InstructionType type,
1488                         InstructionCondDtRwbDrl /*instruction*/,
1489                         Condition /*cond*/,
1490                         DataType /*dt*/,
1491                         Register /*rn*/,
1492                         WriteBack /*write_back*/,
1493                         DRegisterList /*dreglist*/) {
1494     USE(type);
1495     VIXL_ASSERT((type == kVldm) || (type == kVldmdb) || (type == kVldmia) ||
1496                 (type == kVstm) || (type == kVstmdb) || (type == kVstmia));
1497     UnimplementedDelegate(type);
1498   }
Delegate(InstructionType type,InstructionCondDtRwbSrl,Condition,DataType,Register,WriteBack,SRegisterList)1499   virtual void Delegate(InstructionType type,
1500                         InstructionCondDtRwbSrl /*instruction*/,
1501                         Condition /*cond*/,
1502                         DataType /*dt*/,
1503                         Register /*rn*/,
1504                         WriteBack /*write_back*/,
1505                         SRegisterList /*sreglist*/) {
1506     USE(type);
1507     VIXL_ASSERT((type == kVldm) || (type == kVldmdb) || (type == kVldmia) ||
1508                 (type == kVstm) || (type == kVstmdb) || (type == kVstmia));
1509     UnimplementedDelegate(type);
1510   }
Delegate(InstructionType type,InstructionCondDtDL,Condition,DataType,DRegister,Label *)1511   virtual void Delegate(InstructionType type,
1512                         InstructionCondDtDL /*instruction*/,
1513                         Condition /*cond*/,
1514                         DataType /*dt*/,
1515                         DRegister /*rd*/,
1516                         Label* /*label*/) {
1517     USE(type);
1518     VIXL_ASSERT((type == kVldr));
1519     UnimplementedDelegate(type);
1520   }
Delegate(InstructionType type,InstructionCondDtDMop,Condition,DataType,DRegister,const MemOperand &)1521   virtual void Delegate(InstructionType type,
1522                         InstructionCondDtDMop /*instruction*/,
1523                         Condition /*cond*/,
1524                         DataType /*dt*/,
1525                         DRegister /*rd*/,
1526                         const MemOperand& /*operand*/) {
1527     USE(type);
1528     VIXL_ASSERT((type == kVldr) || (type == kVstr));
1529     UnimplementedDelegate(type);
1530   }
Delegate(InstructionType type,InstructionCondDtSL,Condition,DataType,SRegister,Label *)1531   virtual void Delegate(InstructionType type,
1532                         InstructionCondDtSL /*instruction*/,
1533                         Condition /*cond*/,
1534                         DataType /*dt*/,
1535                         SRegister /*rd*/,
1536                         Label* /*label*/) {
1537     USE(type);
1538     VIXL_ASSERT((type == kVldr));
1539     UnimplementedDelegate(type);
1540   }
Delegate(InstructionType type,InstructionCondDtSMop,Condition,DataType,SRegister,const MemOperand &)1541   virtual void Delegate(InstructionType type,
1542                         InstructionCondDtSMop /*instruction*/,
1543                         Condition /*cond*/,
1544                         DataType /*dt*/,
1545                         SRegister /*rd*/,
1546                         const MemOperand& /*operand*/) {
1547     USE(type);
1548     VIXL_ASSERT((type == kVldr) || (type == kVstr));
1549     UnimplementedDelegate(type);
1550   }
Delegate(InstructionType type,InstructionDtDDD,DataType,DRegister,DRegister,DRegister)1551   virtual void Delegate(InstructionType type,
1552                         InstructionDtDDD /*instruction*/,
1553                         DataType /*dt*/,
1554                         DRegister /*rd*/,
1555                         DRegister /*rn*/,
1556                         DRegister /*rm*/) {
1557     USE(type);
1558     VIXL_ASSERT((type == kVmaxnm) || (type == kVminnm) || (type == kVseleq) ||
1559                 (type == kVselge) || (type == kVselgt) || (type == kVselvs));
1560     UnimplementedDelegate(type);
1561   }
Delegate(InstructionType type,InstructionDtSSS,DataType,SRegister,SRegister,SRegister)1562   virtual void Delegate(InstructionType type,
1563                         InstructionDtSSS /*instruction*/,
1564                         DataType /*dt*/,
1565                         SRegister /*rd*/,
1566                         SRegister /*rn*/,
1567                         SRegister /*rm*/) {
1568     USE(type);
1569     VIXL_ASSERT((type == kVmaxnm) || (type == kVminnm) || (type == kVseleq) ||
1570                 (type == kVselge) || (type == kVselgt) || (type == kVselvs));
1571     UnimplementedDelegate(type);
1572   }
Delegate(InstructionType type,InstructionCondDtDDDx,Condition,DataType,DRegister,DRegister,DRegisterLane)1573   virtual void Delegate(InstructionType type,
1574                         InstructionCondDtDDDx /*instruction*/,
1575                         Condition /*cond*/,
1576                         DataType /*dt*/,
1577                         DRegister /*rd*/,
1578                         DRegister /*rn*/,
1579                         DRegisterLane /*rm*/) {
1580     USE(type);
1581     VIXL_ASSERT((type == kVmla) || (type == kVmls) || (type == kVqdmulh) ||
1582                 (type == kVqrdmulh));
1583     UnimplementedDelegate(type);
1584   }
Delegate(InstructionType type,InstructionCondDtQQDx,Condition,DataType,QRegister,QRegister,DRegisterLane)1585   virtual void Delegate(InstructionType type,
1586                         InstructionCondDtQQDx /*instruction*/,
1587                         Condition /*cond*/,
1588                         DataType /*dt*/,
1589                         QRegister /*rd*/,
1590                         QRegister /*rn*/,
1591                         DRegisterLane /*rm*/) {
1592     USE(type);
1593     VIXL_ASSERT((type == kVmla) || (type == kVmls) || (type == kVqdmulh) ||
1594                 (type == kVqrdmulh));
1595     UnimplementedDelegate(type);
1596   }
Delegate(InstructionType type,InstructionCondDtQDDx,Condition,DataType,QRegister,DRegister,DRegisterLane)1597   virtual void Delegate(InstructionType type,
1598                         InstructionCondDtQDDx /*instruction*/,
1599                         Condition /*cond*/,
1600                         DataType /*dt*/,
1601                         QRegister /*rd*/,
1602                         DRegister /*rn*/,
1603                         DRegisterLane /*rm*/) {
1604     USE(type);
1605     VIXL_ASSERT((type == kVmlal) || (type == kVmlsl) || (type == kVqdmull));
1606     UnimplementedDelegate(type);
1607   }
Delegate(InstructionType type,InstructionCondRS,Condition,Register,SRegister)1608   virtual void Delegate(InstructionType type,
1609                         InstructionCondRS /*instruction*/,
1610                         Condition /*cond*/,
1611                         Register /*rt*/,
1612                         SRegister /*rn*/) {
1613     USE(type);
1614     VIXL_ASSERT((type == kVmov));
1615     UnimplementedDelegate(type);
1616   }
Delegate(InstructionType type,InstructionCondSR,Condition,SRegister,Register)1617   virtual void Delegate(InstructionType type,
1618                         InstructionCondSR /*instruction*/,
1619                         Condition /*cond*/,
1620                         SRegister /*rn*/,
1621                         Register /*rt*/) {
1622     USE(type);
1623     VIXL_ASSERT((type == kVmov));
1624     UnimplementedDelegate(type);
1625   }
Delegate(InstructionType type,InstructionCondRRD,Condition,Register,Register,DRegister)1626   virtual void Delegate(InstructionType type,
1627                         InstructionCondRRD /*instruction*/,
1628                         Condition /*cond*/,
1629                         Register /*rt*/,
1630                         Register /*rt2*/,
1631                         DRegister /*rm*/) {
1632     USE(type);
1633     VIXL_ASSERT((type == kVmov));
1634     UnimplementedDelegate(type);
1635   }
Delegate(InstructionType type,InstructionCondDRR,Condition,DRegister,Register,Register)1636   virtual void Delegate(InstructionType type,
1637                         InstructionCondDRR /*instruction*/,
1638                         Condition /*cond*/,
1639                         DRegister /*rm*/,
1640                         Register /*rt*/,
1641                         Register /*rt2*/) {
1642     USE(type);
1643     VIXL_ASSERT((type == kVmov));
1644     UnimplementedDelegate(type);
1645   }
Delegate(InstructionType type,InstructionCondRRSS,Condition,Register,Register,SRegister,SRegister)1646   virtual void Delegate(InstructionType type,
1647                         InstructionCondRRSS /*instruction*/,
1648                         Condition /*cond*/,
1649                         Register /*rt*/,
1650                         Register /*rt2*/,
1651                         SRegister /*rm*/,
1652                         SRegister /*rm1*/) {
1653     USE(type);
1654     VIXL_ASSERT((type == kVmov));
1655     UnimplementedDelegate(type);
1656   }
Delegate(InstructionType type,InstructionCondSSRR,Condition,SRegister,SRegister,Register,Register)1657   virtual void Delegate(InstructionType type,
1658                         InstructionCondSSRR /*instruction*/,
1659                         Condition /*cond*/,
1660                         SRegister /*rm*/,
1661                         SRegister /*rm1*/,
1662                         Register /*rt*/,
1663                         Register /*rt2*/) {
1664     USE(type);
1665     VIXL_ASSERT((type == kVmov));
1666     UnimplementedDelegate(type);
1667   }
Delegate(InstructionType type,InstructionCondDtDxR,Condition,DataType,DRegisterLane,Register)1668   virtual void Delegate(InstructionType type,
1669                         InstructionCondDtDxR /*instruction*/,
1670                         Condition /*cond*/,
1671                         DataType /*dt*/,
1672                         DRegisterLane /*rd*/,
1673                         Register /*rt*/) {
1674     USE(type);
1675     VIXL_ASSERT((type == kVmov));
1676     UnimplementedDelegate(type);
1677   }
Delegate(InstructionType type,InstructionCondDtDDop,Condition,DataType,DRegister,const DOperand &)1678   virtual void Delegate(InstructionType type,
1679                         InstructionCondDtDDop /*instruction*/,
1680                         Condition /*cond*/,
1681                         DataType /*dt*/,
1682                         DRegister /*rd*/,
1683                         const DOperand& /*operand*/) {
1684     USE(type);
1685     VIXL_ASSERT((type == kVmov) || (type == kVmvn));
1686     UnimplementedDelegate(type);
1687   }
Delegate(InstructionType type,InstructionCondDtQQop,Condition,DataType,QRegister,const QOperand &)1688   virtual void Delegate(InstructionType type,
1689                         InstructionCondDtQQop /*instruction*/,
1690                         Condition /*cond*/,
1691                         DataType /*dt*/,
1692                         QRegister /*rd*/,
1693                         const QOperand& /*operand*/) {
1694     USE(type);
1695     VIXL_ASSERT((type == kVmov) || (type == kVmvn));
1696     UnimplementedDelegate(type);
1697   }
Delegate(InstructionType type,InstructionCondDtSSop,Condition,DataType,SRegister,const SOperand &)1698   virtual void Delegate(InstructionType type,
1699                         InstructionCondDtSSop /*instruction*/,
1700                         Condition /*cond*/,
1701                         DataType /*dt*/,
1702                         SRegister /*rd*/,
1703                         const SOperand& /*operand*/) {
1704     USE(type);
1705     VIXL_ASSERT((type == kVmov));
1706     UnimplementedDelegate(type);
1707   }
Delegate(InstructionType type,InstructionCondDtRDx,Condition,DataType,Register,DRegisterLane)1708   virtual void Delegate(InstructionType type,
1709                         InstructionCondDtRDx /*instruction*/,
1710                         Condition /*cond*/,
1711                         DataType /*dt*/,
1712                         Register /*rt*/,
1713                         DRegisterLane /*rn*/) {
1714     USE(type);
1715     VIXL_ASSERT((type == kVmov));
1716     UnimplementedDelegate(type);
1717   }
Delegate(InstructionType type,InstructionCondDtQD,Condition,DataType,QRegister,DRegister)1718   virtual void Delegate(InstructionType type,
1719                         InstructionCondDtQD /*instruction*/,
1720                         Condition /*cond*/,
1721                         DataType /*dt*/,
1722                         QRegister /*rd*/,
1723                         DRegister /*rm*/) {
1724     USE(type);
1725     VIXL_ASSERT((type == kVmovl));
1726     UnimplementedDelegate(type);
1727   }
Delegate(InstructionType type,InstructionCondDtDQ,Condition,DataType,DRegister,QRegister)1728   virtual void Delegate(InstructionType type,
1729                         InstructionCondDtDQ /*instruction*/,
1730                         Condition /*cond*/,
1731                         DataType /*dt*/,
1732                         DRegister /*rd*/,
1733                         QRegister /*rm*/) {
1734     USE(type);
1735     VIXL_ASSERT((type == kVmovn) || (type == kVqmovn) || (type == kVqmovun));
1736     UnimplementedDelegate(type);
1737   }
Delegate(InstructionType type,InstructionCondRoaSfp,Condition,RegisterOrAPSR_nzcv,SpecialFPRegister)1738   virtual void Delegate(InstructionType type,
1739                         InstructionCondRoaSfp /*instruction*/,
1740                         Condition /*cond*/,
1741                         RegisterOrAPSR_nzcv /*rt*/,
1742                         SpecialFPRegister /*spec_reg*/) {
1743     USE(type);
1744     VIXL_ASSERT((type == kVmrs));
1745     UnimplementedDelegate(type);
1746   }
Delegate(InstructionType type,InstructionCondSfpR,Condition,SpecialFPRegister,Register)1747   virtual void Delegate(InstructionType type,
1748                         InstructionCondSfpR /*instruction*/,
1749                         Condition /*cond*/,
1750                         SpecialFPRegister /*spec_reg*/,
1751                         Register /*rt*/) {
1752     USE(type);
1753     VIXL_ASSERT((type == kVmsr));
1754     UnimplementedDelegate(type);
1755   }
Delegate(InstructionType type,InstructionCondDtDDIr,Condition,DataType,DRegister,DRegister,DRegister,unsigned)1756   virtual void Delegate(InstructionType type,
1757                         InstructionCondDtDDIr /*instruction*/,
1758                         Condition /*cond*/,
1759                         DataType /*dt*/,
1760                         DRegister /*rd*/,
1761                         DRegister /*rn*/,
1762                         DRegister /*dm*/,
1763                         unsigned /*index*/) {
1764     USE(type);
1765     VIXL_ASSERT((type == kVmul));
1766     UnimplementedDelegate(type);
1767   }
Delegate(InstructionType type,InstructionCondDtQQIr,Condition,DataType,QRegister,QRegister,DRegister,unsigned)1768   virtual void Delegate(InstructionType type,
1769                         InstructionCondDtQQIr /*instruction*/,
1770                         Condition /*cond*/,
1771                         DataType /*dt*/,
1772                         QRegister /*rd*/,
1773                         QRegister /*rn*/,
1774                         DRegister /*dm*/,
1775                         unsigned /*index*/) {
1776     USE(type);
1777     VIXL_ASSERT((type == kVmul));
1778     UnimplementedDelegate(type);
1779   }
Delegate(InstructionType type,InstructionCondDtQDIr,Condition,DataType,QRegister,DRegister,DRegister,unsigned)1780   virtual void Delegate(InstructionType type,
1781                         InstructionCondDtQDIr /*instruction*/,
1782                         Condition /*cond*/,
1783                         DataType /*dt*/,
1784                         QRegister /*rd*/,
1785                         DRegister /*rn*/,
1786                         DRegister /*dm*/,
1787                         unsigned /*index*/) {
1788     USE(type);
1789     VIXL_ASSERT((type == kVmull) || (type == kVqdmlal) || (type == kVqdmlsl));
1790     UnimplementedDelegate(type);
1791   }
Delegate(InstructionType type,InstructionCondDtDrl,Condition,DataType,DRegisterList)1792   virtual void Delegate(InstructionType type,
1793                         InstructionCondDtDrl /*instruction*/,
1794                         Condition /*cond*/,
1795                         DataType /*dt*/,
1796                         DRegisterList /*dreglist*/) {
1797     USE(type);
1798     VIXL_ASSERT((type == kVpop) || (type == kVpush));
1799     UnimplementedDelegate(type);
1800   }
Delegate(InstructionType type,InstructionCondDtSrl,Condition,DataType,SRegisterList)1801   virtual void Delegate(InstructionType type,
1802                         InstructionCondDtSrl /*instruction*/,
1803                         Condition /*cond*/,
1804                         DataType /*dt*/,
1805                         SRegisterList /*sreglist*/) {
1806     USE(type);
1807     VIXL_ASSERT((type == kVpop) || (type == kVpush));
1808     UnimplementedDelegate(type);
1809   }
Delegate(InstructionType type,InstructionCondDtDQQop,Condition,DataType,DRegister,QRegister,const QOperand &)1810   virtual void Delegate(InstructionType type,
1811                         InstructionCondDtDQQop /*instruction*/,
1812                         Condition /*cond*/,
1813                         DataType /*dt*/,
1814                         DRegister /*rd*/,
1815                         QRegister /*rm*/,
1816                         const QOperand& /*operand*/) {
1817     USE(type);
1818     VIXL_ASSERT((type == kVqrshrn) || (type == kVqrshrun) ||
1819                 (type == kVqshrn) || (type == kVqshrun) || (type == kVrshrn) ||
1820                 (type == kVshrn));
1821     UnimplementedDelegate(type);
1822   }
Delegate(InstructionType type,InstructionCondDtQDDop,Condition,DataType,QRegister,DRegister,const DOperand &)1823   virtual void Delegate(InstructionType type,
1824                         InstructionCondDtQDDop /*instruction*/,
1825                         Condition /*cond*/,
1826                         DataType /*dt*/,
1827                         QRegister /*rd*/,
1828                         DRegister /*rm*/,
1829                         const DOperand& /*operand*/) {
1830     USE(type);
1831     VIXL_ASSERT((type == kVshll));
1832     UnimplementedDelegate(type);
1833   }
Delegate(InstructionType type,InstructionCondDtDNrlD,Condition,DataType,DRegister,const NeonRegisterList &,DRegister)1834   virtual void Delegate(InstructionType type,
1835                         InstructionCondDtDNrlD /*instruction*/,
1836                         Condition /*cond*/,
1837                         DataType /*dt*/,
1838                         DRegister /*rd*/,
1839                         const NeonRegisterList& /*nreglist*/,
1840                         DRegister /*rm*/) {
1841     USE(type);
1842     VIXL_ASSERT((type == kVtbl) || (type == kVtbx));
1843     UnimplementedDelegate(type);
1844   }
1845 
1846   void adc(Condition cond,
1847            EncodingSize size,
1848            Register rd,
1849            Register rn,
1850            const Operand& operand);
adc(Register rd,Register rn,const Operand & operand)1851   void adc(Register rd, Register rn, const Operand& operand) {
1852     adc(al, Best, rd, rn, operand);
1853   }
adc(Condition cond,Register rd,Register rn,const Operand & operand)1854   void adc(Condition cond, Register rd, Register rn, const Operand& operand) {
1855     adc(cond, Best, rd, rn, operand);
1856   }
adc(EncodingSize size,Register rd,Register rn,const Operand & operand)1857   void adc(EncodingSize size,
1858            Register rd,
1859            Register rn,
1860            const Operand& operand) {
1861     adc(al, size, rd, rn, operand);
1862   }
1863 
1864   void adcs(Condition cond,
1865             EncodingSize size,
1866             Register rd,
1867             Register rn,
1868             const Operand& operand);
adcs(Register rd,Register rn,const Operand & operand)1869   void adcs(Register rd, Register rn, const Operand& operand) {
1870     adcs(al, Best, rd, rn, operand);
1871   }
adcs(Condition cond,Register rd,Register rn,const Operand & operand)1872   void adcs(Condition cond, Register rd, Register rn, const Operand& operand) {
1873     adcs(cond, Best, rd, rn, operand);
1874   }
adcs(EncodingSize size,Register rd,Register rn,const Operand & operand)1875   void adcs(EncodingSize size,
1876             Register rd,
1877             Register rn,
1878             const Operand& operand) {
1879     adcs(al, size, rd, rn, operand);
1880   }
1881 
1882   void add(Condition cond,
1883            EncodingSize size,
1884            Register rd,
1885            Register rn,
1886            const Operand& operand);
add(Register rd,Register rn,const Operand & operand)1887   void add(Register rd, Register rn, const Operand& operand) {
1888     add(al, Best, rd, rn, operand);
1889   }
add(Condition cond,Register rd,Register rn,const Operand & operand)1890   void add(Condition cond, Register rd, Register rn, const Operand& operand) {
1891     add(cond, Best, rd, rn, operand);
1892   }
add(EncodingSize size,Register rd,Register rn,const Operand & operand)1893   void add(EncodingSize size,
1894            Register rd,
1895            Register rn,
1896            const Operand& operand) {
1897     add(al, size, rd, rn, operand);
1898   }
1899 
1900   void add(Condition cond, Register rd, const Operand& operand);
add(Register rd,const Operand & operand)1901   void add(Register rd, const Operand& operand) { add(al, rd, operand); }
1902 
1903   void adds(Condition cond,
1904             EncodingSize size,
1905             Register rd,
1906             Register rn,
1907             const Operand& operand);
adds(Register rd,Register rn,const Operand & operand)1908   void adds(Register rd, Register rn, const Operand& operand) {
1909     adds(al, Best, rd, rn, operand);
1910   }
adds(Condition cond,Register rd,Register rn,const Operand & operand)1911   void adds(Condition cond, Register rd, Register rn, const Operand& operand) {
1912     adds(cond, Best, rd, rn, operand);
1913   }
adds(EncodingSize size,Register rd,Register rn,const Operand & operand)1914   void adds(EncodingSize size,
1915             Register rd,
1916             Register rn,
1917             const Operand& operand) {
1918     adds(al, size, rd, rn, operand);
1919   }
1920 
1921   void adds(Register rd, const Operand& operand);
1922 
1923   void addw(Condition cond, Register rd, Register rn, const Operand& operand);
addw(Register rd,Register rn,const Operand & operand)1924   void addw(Register rd, Register rn, const Operand& operand) {
1925     addw(al, rd, rn, operand);
1926   }
1927 
1928   void adr(Condition cond, EncodingSize size, Register rd, Label* label);
adr(Register rd,Label * label)1929   void adr(Register rd, Label* label) { adr(al, Best, rd, label); }
adr(Condition cond,Register rd,Label * label)1930   void adr(Condition cond, Register rd, Label* label) {
1931     adr(cond, Best, rd, label);
1932   }
adr(EncodingSize size,Register rd,Label * label)1933   void adr(EncodingSize size, Register rd, Label* label) {
1934     adr(al, size, rd, label);
1935   }
1936 
1937   void and_(Condition cond,
1938             EncodingSize size,
1939             Register rd,
1940             Register rn,
1941             const Operand& operand);
and_(Register rd,Register rn,const Operand & operand)1942   void and_(Register rd, Register rn, const Operand& operand) {
1943     and_(al, Best, rd, rn, operand);
1944   }
and_(Condition cond,Register rd,Register rn,const Operand & operand)1945   void and_(Condition cond, Register rd, Register rn, const Operand& operand) {
1946     and_(cond, Best, rd, rn, operand);
1947   }
and_(EncodingSize size,Register rd,Register rn,const Operand & operand)1948   void and_(EncodingSize size,
1949             Register rd,
1950             Register rn,
1951             const Operand& operand) {
1952     and_(al, size, rd, rn, operand);
1953   }
1954 
1955   void ands(Condition cond,
1956             EncodingSize size,
1957             Register rd,
1958             Register rn,
1959             const Operand& operand);
ands(Register rd,Register rn,const Operand & operand)1960   void ands(Register rd, Register rn, const Operand& operand) {
1961     ands(al, Best, rd, rn, operand);
1962   }
ands(Condition cond,Register rd,Register rn,const Operand & operand)1963   void ands(Condition cond, Register rd, Register rn, const Operand& operand) {
1964     ands(cond, Best, rd, rn, operand);
1965   }
ands(EncodingSize size,Register rd,Register rn,const Operand & operand)1966   void ands(EncodingSize size,
1967             Register rd,
1968             Register rn,
1969             const Operand& operand) {
1970     ands(al, size, rd, rn, operand);
1971   }
1972 
1973   void asr(Condition cond,
1974            EncodingSize size,
1975            Register rd,
1976            Register rm,
1977            const Operand& operand);
asr(Register rd,Register rm,const Operand & operand)1978   void asr(Register rd, Register rm, const Operand& operand) {
1979     asr(al, Best, rd, rm, operand);
1980   }
asr(Condition cond,Register rd,Register rm,const Operand & operand)1981   void asr(Condition cond, Register rd, Register rm, const Operand& operand) {
1982     asr(cond, Best, rd, rm, operand);
1983   }
asr(EncodingSize size,Register rd,Register rm,const Operand & operand)1984   void asr(EncodingSize size,
1985            Register rd,
1986            Register rm,
1987            const Operand& operand) {
1988     asr(al, size, rd, rm, operand);
1989   }
1990 
1991   void asrs(Condition cond,
1992             EncodingSize size,
1993             Register rd,
1994             Register rm,
1995             const Operand& operand);
asrs(Register rd,Register rm,const Operand & operand)1996   void asrs(Register rd, Register rm, const Operand& operand) {
1997     asrs(al, Best, rd, rm, operand);
1998   }
asrs(Condition cond,Register rd,Register rm,const Operand & operand)1999   void asrs(Condition cond, Register rd, Register rm, const Operand& operand) {
2000     asrs(cond, Best, rd, rm, operand);
2001   }
asrs(EncodingSize size,Register rd,Register rm,const Operand & operand)2002   void asrs(EncodingSize size,
2003             Register rd,
2004             Register rm,
2005             const Operand& operand) {
2006     asrs(al, size, rd, rm, operand);
2007   }
2008 
2009   void b(Condition cond, EncodingSize size, Label* label);
b(Label * label)2010   void b(Label* label) { b(al, Best, label); }
b(Condition cond,Label * label)2011   void b(Condition cond, Label* label) { b(cond, Best, label); }
b(EncodingSize size,Label * label)2012   void b(EncodingSize size, Label* label) { b(al, size, label); }
2013 
2014   void bfc(Condition cond, Register rd, uint32_t lsb, const Operand& operand);
bfc(Register rd,uint32_t lsb,const Operand & operand)2015   void bfc(Register rd, uint32_t lsb, const Operand& operand) {
2016     bfc(al, rd, lsb, operand);
2017   }
2018 
2019   void bfi(Condition cond,
2020            Register rd,
2021            Register rn,
2022            uint32_t lsb,
2023            const Operand& operand);
bfi(Register rd,Register rn,uint32_t lsb,const Operand & operand)2024   void bfi(Register rd, Register rn, uint32_t lsb, const Operand& operand) {
2025     bfi(al, rd, rn, lsb, operand);
2026   }
2027 
2028   void bic(Condition cond,
2029            EncodingSize size,
2030            Register rd,
2031            Register rn,
2032            const Operand& operand);
bic(Register rd,Register rn,const Operand & operand)2033   void bic(Register rd, Register rn, const Operand& operand) {
2034     bic(al, Best, rd, rn, operand);
2035   }
bic(Condition cond,Register rd,Register rn,const Operand & operand)2036   void bic(Condition cond, Register rd, Register rn, const Operand& operand) {
2037     bic(cond, Best, rd, rn, operand);
2038   }
bic(EncodingSize size,Register rd,Register rn,const Operand & operand)2039   void bic(EncodingSize size,
2040            Register rd,
2041            Register rn,
2042            const Operand& operand) {
2043     bic(al, size, rd, rn, operand);
2044   }
2045 
2046   void bics(Condition cond,
2047             EncodingSize size,
2048             Register rd,
2049             Register rn,
2050             const Operand& operand);
bics(Register rd,Register rn,const Operand & operand)2051   void bics(Register rd, Register rn, const Operand& operand) {
2052     bics(al, Best, rd, rn, operand);
2053   }
bics(Condition cond,Register rd,Register rn,const Operand & operand)2054   void bics(Condition cond, Register rd, Register rn, const Operand& operand) {
2055     bics(cond, Best, rd, rn, operand);
2056   }
bics(EncodingSize size,Register rd,Register rn,const Operand & operand)2057   void bics(EncodingSize size,
2058             Register rd,
2059             Register rn,
2060             const Operand& operand) {
2061     bics(al, size, rd, rn, operand);
2062   }
2063 
2064   void bkpt(Condition cond, uint32_t imm);
bkpt(uint32_t imm)2065   void bkpt(uint32_t imm) { bkpt(al, imm); }
2066 
2067   void bl(Condition cond, Label* label);
bl(Label * label)2068   void bl(Label* label) { bl(al, label); }
2069 
2070   void blx(Condition cond, Label* label);
blx(Label * label)2071   void blx(Label* label) { blx(al, label); }
2072 
2073   void blx(Condition cond, Register rm);
blx(Register rm)2074   void blx(Register rm) { blx(al, rm); }
2075 
2076   void bx(Condition cond, Register rm);
bx(Register rm)2077   void bx(Register rm) { bx(al, rm); }
2078 
2079   void bxj(Condition cond, Register rm);
bxj(Register rm)2080   void bxj(Register rm) { bxj(al, rm); }
2081 
2082   void cbnz(Register rn, Label* label);
2083 
2084   void cbz(Register rn, Label* label);
2085 
2086   void clrex(Condition cond);
clrex()2087   void clrex() { clrex(al); }
2088 
2089   void clz(Condition cond, Register rd, Register rm);
clz(Register rd,Register rm)2090   void clz(Register rd, Register rm) { clz(al, rd, rm); }
2091 
2092   void cmn(Condition cond,
2093            EncodingSize size,
2094            Register rn,
2095            const Operand& operand);
cmn(Register rn,const Operand & operand)2096   void cmn(Register rn, const Operand& operand) { cmn(al, Best, rn, operand); }
cmn(Condition cond,Register rn,const Operand & operand)2097   void cmn(Condition cond, Register rn, const Operand& operand) {
2098     cmn(cond, Best, rn, operand);
2099   }
cmn(EncodingSize size,Register rn,const Operand & operand)2100   void cmn(EncodingSize size, Register rn, const Operand& operand) {
2101     cmn(al, size, rn, operand);
2102   }
2103 
2104   void cmp(Condition cond,
2105            EncodingSize size,
2106            Register rn,
2107            const Operand& operand);
cmp(Register rn,const Operand & operand)2108   void cmp(Register rn, const Operand& operand) { cmp(al, Best, rn, operand); }
cmp(Condition cond,Register rn,const Operand & operand)2109   void cmp(Condition cond, Register rn, const Operand& operand) {
2110     cmp(cond, Best, rn, operand);
2111   }
cmp(EncodingSize size,Register rn,const Operand & operand)2112   void cmp(EncodingSize size, Register rn, const Operand& operand) {
2113     cmp(al, size, rn, operand);
2114   }
2115 
2116   void crc32b(Condition cond, Register rd, Register rn, Register rm);
crc32b(Register rd,Register rn,Register rm)2117   void crc32b(Register rd, Register rn, Register rm) { crc32b(al, rd, rn, rm); }
2118 
2119   void crc32cb(Condition cond, Register rd, Register rn, Register rm);
crc32cb(Register rd,Register rn,Register rm)2120   void crc32cb(Register rd, Register rn, Register rm) {
2121     crc32cb(al, rd, rn, rm);
2122   }
2123 
2124   void crc32ch(Condition cond, Register rd, Register rn, Register rm);
crc32ch(Register rd,Register rn,Register rm)2125   void crc32ch(Register rd, Register rn, Register rm) {
2126     crc32ch(al, rd, rn, rm);
2127   }
2128 
2129   void crc32cw(Condition cond, Register rd, Register rn, Register rm);
crc32cw(Register rd,Register rn,Register rm)2130   void crc32cw(Register rd, Register rn, Register rm) {
2131     crc32cw(al, rd, rn, rm);
2132   }
2133 
2134   void crc32h(Condition cond, Register rd, Register rn, Register rm);
crc32h(Register rd,Register rn,Register rm)2135   void crc32h(Register rd, Register rn, Register rm) { crc32h(al, rd, rn, rm); }
2136 
2137   void crc32w(Condition cond, Register rd, Register rn, Register rm);
crc32w(Register rd,Register rn,Register rm)2138   void crc32w(Register rd, Register rn, Register rm) { crc32w(al, rd, rn, rm); }
2139 
2140   void dmb(Condition cond, MemoryBarrier option);
dmb(MemoryBarrier option)2141   void dmb(MemoryBarrier option) { dmb(al, option); }
2142 
2143   void dsb(Condition cond, MemoryBarrier option);
dsb(MemoryBarrier option)2144   void dsb(MemoryBarrier option) { dsb(al, option); }
2145 
2146   void eor(Condition cond,
2147            EncodingSize size,
2148            Register rd,
2149            Register rn,
2150            const Operand& operand);
eor(Register rd,Register rn,const Operand & operand)2151   void eor(Register rd, Register rn, const Operand& operand) {
2152     eor(al, Best, rd, rn, operand);
2153   }
eor(Condition cond,Register rd,Register rn,const Operand & operand)2154   void eor(Condition cond, Register rd, Register rn, const Operand& operand) {
2155     eor(cond, Best, rd, rn, operand);
2156   }
eor(EncodingSize size,Register rd,Register rn,const Operand & operand)2157   void eor(EncodingSize size,
2158            Register rd,
2159            Register rn,
2160            const Operand& operand) {
2161     eor(al, size, rd, rn, operand);
2162   }
2163 
2164   void eors(Condition cond,
2165             EncodingSize size,
2166             Register rd,
2167             Register rn,
2168             const Operand& operand);
eors(Register rd,Register rn,const Operand & operand)2169   void eors(Register rd, Register rn, const Operand& operand) {
2170     eors(al, Best, rd, rn, operand);
2171   }
eors(Condition cond,Register rd,Register rn,const Operand & operand)2172   void eors(Condition cond, Register rd, Register rn, const Operand& operand) {
2173     eors(cond, Best, rd, rn, operand);
2174   }
eors(EncodingSize size,Register rd,Register rn,const Operand & operand)2175   void eors(EncodingSize size,
2176             Register rd,
2177             Register rn,
2178             const Operand& operand) {
2179     eors(al, size, rd, rn, operand);
2180   }
2181 
2182   void fldmdbx(Condition cond,
2183                Register rn,
2184                WriteBack write_back,
2185                DRegisterList dreglist);
fldmdbx(Register rn,WriteBack write_back,DRegisterList dreglist)2186   void fldmdbx(Register rn, WriteBack write_back, DRegisterList dreglist) {
2187     fldmdbx(al, rn, write_back, dreglist);
2188   }
2189 
2190   void fldmiax(Condition cond,
2191                Register rn,
2192                WriteBack write_back,
2193                DRegisterList dreglist);
fldmiax(Register rn,WriteBack write_back,DRegisterList dreglist)2194   void fldmiax(Register rn, WriteBack write_back, DRegisterList dreglist) {
2195     fldmiax(al, rn, write_back, dreglist);
2196   }
2197 
2198   void fstmdbx(Condition cond,
2199                Register rn,
2200                WriteBack write_back,
2201                DRegisterList dreglist);
fstmdbx(Register rn,WriteBack write_back,DRegisterList dreglist)2202   void fstmdbx(Register rn, WriteBack write_back, DRegisterList dreglist) {
2203     fstmdbx(al, rn, write_back, dreglist);
2204   }
2205 
2206   void fstmiax(Condition cond,
2207                Register rn,
2208                WriteBack write_back,
2209                DRegisterList dreglist);
fstmiax(Register rn,WriteBack write_back,DRegisterList dreglist)2210   void fstmiax(Register rn, WriteBack write_back, DRegisterList dreglist) {
2211     fstmiax(al, rn, write_back, dreglist);
2212   }
2213 
2214   void hlt(Condition cond, uint32_t imm);
hlt(uint32_t imm)2215   void hlt(uint32_t imm) { hlt(al, imm); }
2216 
2217   void hvc(Condition cond, uint32_t imm);
hvc(uint32_t imm)2218   void hvc(uint32_t imm) { hvc(al, imm); }
2219 
2220   void isb(Condition cond, MemoryBarrier option);
isb(MemoryBarrier option)2221   void isb(MemoryBarrier option) { isb(al, option); }
2222 
2223   void it(Condition cond, uint16_t mask);
2224 
2225   void lda(Condition cond, Register rt, const MemOperand& operand);
lda(Register rt,const MemOperand & operand)2226   void lda(Register rt, const MemOperand& operand) { lda(al, rt, operand); }
2227 
2228   void ldab(Condition cond, Register rt, const MemOperand& operand);
ldab(Register rt,const MemOperand & operand)2229   void ldab(Register rt, const MemOperand& operand) { ldab(al, rt, operand); }
2230 
2231   void ldaex(Condition cond, Register rt, const MemOperand& operand);
ldaex(Register rt,const MemOperand & operand)2232   void ldaex(Register rt, const MemOperand& operand) { ldaex(al, rt, operand); }
2233 
2234   void ldaexb(Condition cond, Register rt, const MemOperand& operand);
ldaexb(Register rt,const MemOperand & operand)2235   void ldaexb(Register rt, const MemOperand& operand) {
2236     ldaexb(al, rt, operand);
2237   }
2238 
2239   void ldaexd(Condition cond,
2240               Register rt,
2241               Register rt2,
2242               const MemOperand& operand);
ldaexd(Register rt,Register rt2,const MemOperand & operand)2243   void ldaexd(Register rt, Register rt2, const MemOperand& operand) {
2244     ldaexd(al, rt, rt2, operand);
2245   }
2246 
2247   void ldaexh(Condition cond, Register rt, const MemOperand& operand);
ldaexh(Register rt,const MemOperand & operand)2248   void ldaexh(Register rt, const MemOperand& operand) {
2249     ldaexh(al, rt, operand);
2250   }
2251 
2252   void ldah(Condition cond, Register rt, const MemOperand& operand);
ldah(Register rt,const MemOperand & operand)2253   void ldah(Register rt, const MemOperand& operand) { ldah(al, rt, operand); }
2254 
2255   void ldm(Condition cond,
2256            EncodingSize size,
2257            Register rn,
2258            WriteBack write_back,
2259            RegisterList registers);
ldm(Register rn,WriteBack write_back,RegisterList registers)2260   void ldm(Register rn, WriteBack write_back, RegisterList registers) {
2261     ldm(al, Best, rn, write_back, registers);
2262   }
ldm(Condition cond,Register rn,WriteBack write_back,RegisterList registers)2263   void ldm(Condition cond,
2264            Register rn,
2265            WriteBack write_back,
2266            RegisterList registers) {
2267     ldm(cond, Best, rn, write_back, registers);
2268   }
ldm(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)2269   void ldm(EncodingSize size,
2270            Register rn,
2271            WriteBack write_back,
2272            RegisterList registers) {
2273     ldm(al, size, rn, write_back, registers);
2274   }
2275 
2276   void ldmda(Condition cond,
2277              Register rn,
2278              WriteBack write_back,
2279              RegisterList registers);
ldmda(Register rn,WriteBack write_back,RegisterList registers)2280   void ldmda(Register rn, WriteBack write_back, RegisterList registers) {
2281     ldmda(al, rn, write_back, registers);
2282   }
2283 
2284   void ldmdb(Condition cond,
2285              Register rn,
2286              WriteBack write_back,
2287              RegisterList registers);
ldmdb(Register rn,WriteBack write_back,RegisterList registers)2288   void ldmdb(Register rn, WriteBack write_back, RegisterList registers) {
2289     ldmdb(al, rn, write_back, registers);
2290   }
2291 
2292   void ldmea(Condition cond,
2293              Register rn,
2294              WriteBack write_back,
2295              RegisterList registers);
ldmea(Register rn,WriteBack write_back,RegisterList registers)2296   void ldmea(Register rn, WriteBack write_back, RegisterList registers) {
2297     ldmea(al, rn, write_back, registers);
2298   }
2299 
2300   void ldmed(Condition cond,
2301              Register rn,
2302              WriteBack write_back,
2303              RegisterList registers);
ldmed(Register rn,WriteBack write_back,RegisterList registers)2304   void ldmed(Register rn, WriteBack write_back, RegisterList registers) {
2305     ldmed(al, rn, write_back, registers);
2306   }
2307 
2308   void ldmfa(Condition cond,
2309              Register rn,
2310              WriteBack write_back,
2311              RegisterList registers);
ldmfa(Register rn,WriteBack write_back,RegisterList registers)2312   void ldmfa(Register rn, WriteBack write_back, RegisterList registers) {
2313     ldmfa(al, rn, write_back, registers);
2314   }
2315 
2316   void ldmfd(Condition cond,
2317              EncodingSize size,
2318              Register rn,
2319              WriteBack write_back,
2320              RegisterList registers);
ldmfd(Register rn,WriteBack write_back,RegisterList registers)2321   void ldmfd(Register rn, WriteBack write_back, RegisterList registers) {
2322     ldmfd(al, Best, rn, write_back, registers);
2323   }
ldmfd(Condition cond,Register rn,WriteBack write_back,RegisterList registers)2324   void ldmfd(Condition cond,
2325              Register rn,
2326              WriteBack write_back,
2327              RegisterList registers) {
2328     ldmfd(cond, Best, rn, write_back, registers);
2329   }
ldmfd(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)2330   void ldmfd(EncodingSize size,
2331              Register rn,
2332              WriteBack write_back,
2333              RegisterList registers) {
2334     ldmfd(al, size, rn, write_back, registers);
2335   }
2336 
2337   void ldmib(Condition cond,
2338              Register rn,
2339              WriteBack write_back,
2340              RegisterList registers);
ldmib(Register rn,WriteBack write_back,RegisterList registers)2341   void ldmib(Register rn, WriteBack write_back, RegisterList registers) {
2342     ldmib(al, rn, write_back, registers);
2343   }
2344 
2345   void ldr(Condition cond,
2346            EncodingSize size,
2347            Register rt,
2348            const MemOperand& operand);
ldr(Register rt,const MemOperand & operand)2349   void ldr(Register rt, const MemOperand& operand) {
2350     ldr(al, Best, rt, operand);
2351   }
ldr(Condition cond,Register rt,const MemOperand & operand)2352   void ldr(Condition cond, Register rt, const MemOperand& operand) {
2353     ldr(cond, Best, rt, operand);
2354   }
ldr(EncodingSize size,Register rt,const MemOperand & operand)2355   void ldr(EncodingSize size, Register rt, const MemOperand& operand) {
2356     ldr(al, size, rt, operand);
2357   }
2358 
2359   void ldr(Condition cond, EncodingSize size, Register rt, Label* label);
ldr(Register rt,Label * label)2360   void ldr(Register rt, Label* label) { ldr(al, Best, rt, label); }
ldr(Condition cond,Register rt,Label * label)2361   void ldr(Condition cond, Register rt, Label* label) {
2362     ldr(cond, Best, rt, label);
2363   }
ldr(EncodingSize size,Register rt,Label * label)2364   void ldr(EncodingSize size, Register rt, Label* label) {
2365     ldr(al, size, rt, label);
2366   }
2367 
2368   void ldrb(Condition cond,
2369             EncodingSize size,
2370             Register rt,
2371             const MemOperand& operand);
ldrb(Register rt,const MemOperand & operand)2372   void ldrb(Register rt, const MemOperand& operand) {
2373     ldrb(al, Best, rt, operand);
2374   }
ldrb(Condition cond,Register rt,const MemOperand & operand)2375   void ldrb(Condition cond, Register rt, const MemOperand& operand) {
2376     ldrb(cond, Best, rt, operand);
2377   }
ldrb(EncodingSize size,Register rt,const MemOperand & operand)2378   void ldrb(EncodingSize size, Register rt, const MemOperand& operand) {
2379     ldrb(al, size, rt, operand);
2380   }
2381 
2382   void ldrb(Condition cond, Register rt, Label* label);
ldrb(Register rt,Label * label)2383   void ldrb(Register rt, Label* label) { ldrb(al, rt, label); }
2384 
2385   void ldrd(Condition cond,
2386             Register rt,
2387             Register rt2,
2388             const MemOperand& operand);
ldrd(Register rt,Register rt2,const MemOperand & operand)2389   void ldrd(Register rt, Register rt2, const MemOperand& operand) {
2390     ldrd(al, rt, rt2, operand);
2391   }
2392 
2393   void ldrd(Condition cond, Register rt, Register rt2, Label* label);
ldrd(Register rt,Register rt2,Label * label)2394   void ldrd(Register rt, Register rt2, Label* label) {
2395     ldrd(al, rt, rt2, label);
2396   }
2397 
2398   void ldrex(Condition cond, Register rt, const MemOperand& operand);
ldrex(Register rt,const MemOperand & operand)2399   void ldrex(Register rt, const MemOperand& operand) { ldrex(al, rt, operand); }
2400 
2401   void ldrexb(Condition cond, Register rt, const MemOperand& operand);
ldrexb(Register rt,const MemOperand & operand)2402   void ldrexb(Register rt, const MemOperand& operand) {
2403     ldrexb(al, rt, operand);
2404   }
2405 
2406   void ldrexd(Condition cond,
2407               Register rt,
2408               Register rt2,
2409               const MemOperand& operand);
ldrexd(Register rt,Register rt2,const MemOperand & operand)2410   void ldrexd(Register rt, Register rt2, const MemOperand& operand) {
2411     ldrexd(al, rt, rt2, operand);
2412   }
2413 
2414   void ldrexh(Condition cond, Register rt, const MemOperand& operand);
ldrexh(Register rt,const MemOperand & operand)2415   void ldrexh(Register rt, const MemOperand& operand) {
2416     ldrexh(al, rt, operand);
2417   }
2418 
2419   void ldrh(Condition cond,
2420             EncodingSize size,
2421             Register rt,
2422             const MemOperand& operand);
ldrh(Register rt,const MemOperand & operand)2423   void ldrh(Register rt, const MemOperand& operand) {
2424     ldrh(al, Best, rt, operand);
2425   }
ldrh(Condition cond,Register rt,const MemOperand & operand)2426   void ldrh(Condition cond, Register rt, const MemOperand& operand) {
2427     ldrh(cond, Best, rt, operand);
2428   }
ldrh(EncodingSize size,Register rt,const MemOperand & operand)2429   void ldrh(EncodingSize size, Register rt, const MemOperand& operand) {
2430     ldrh(al, size, rt, operand);
2431   }
2432 
2433   void ldrh(Condition cond, Register rt, Label* label);
ldrh(Register rt,Label * label)2434   void ldrh(Register rt, Label* label) { ldrh(al, rt, label); }
2435 
2436   void ldrsb(Condition cond,
2437              EncodingSize size,
2438              Register rt,
2439              const MemOperand& operand);
ldrsb(Register rt,const MemOperand & operand)2440   void ldrsb(Register rt, const MemOperand& operand) {
2441     ldrsb(al, Best, rt, operand);
2442   }
ldrsb(Condition cond,Register rt,const MemOperand & operand)2443   void ldrsb(Condition cond, Register rt, const MemOperand& operand) {
2444     ldrsb(cond, Best, rt, operand);
2445   }
ldrsb(EncodingSize size,Register rt,const MemOperand & operand)2446   void ldrsb(EncodingSize size, Register rt, const MemOperand& operand) {
2447     ldrsb(al, size, rt, operand);
2448   }
2449 
2450   void ldrsb(Condition cond, Register rt, Label* label);
ldrsb(Register rt,Label * label)2451   void ldrsb(Register rt, Label* label) { ldrsb(al, rt, label); }
2452 
2453   void ldrsh(Condition cond,
2454              EncodingSize size,
2455              Register rt,
2456              const MemOperand& operand);
ldrsh(Register rt,const MemOperand & operand)2457   void ldrsh(Register rt, const MemOperand& operand) {
2458     ldrsh(al, Best, rt, operand);
2459   }
ldrsh(Condition cond,Register rt,const MemOperand & operand)2460   void ldrsh(Condition cond, Register rt, const MemOperand& operand) {
2461     ldrsh(cond, Best, rt, operand);
2462   }
ldrsh(EncodingSize size,Register rt,const MemOperand & operand)2463   void ldrsh(EncodingSize size, Register rt, const MemOperand& operand) {
2464     ldrsh(al, size, rt, operand);
2465   }
2466 
2467   void ldrsh(Condition cond, Register rt, Label* label);
ldrsh(Register rt,Label * label)2468   void ldrsh(Register rt, Label* label) { ldrsh(al, rt, label); }
2469 
2470   void lsl(Condition cond,
2471            EncodingSize size,
2472            Register rd,
2473            Register rm,
2474            const Operand& operand);
lsl(Register rd,Register rm,const Operand & operand)2475   void lsl(Register rd, Register rm, const Operand& operand) {
2476     lsl(al, Best, rd, rm, operand);
2477   }
lsl(Condition cond,Register rd,Register rm,const Operand & operand)2478   void lsl(Condition cond, Register rd, Register rm, const Operand& operand) {
2479     lsl(cond, Best, rd, rm, operand);
2480   }
lsl(EncodingSize size,Register rd,Register rm,const Operand & operand)2481   void lsl(EncodingSize size,
2482            Register rd,
2483            Register rm,
2484            const Operand& operand) {
2485     lsl(al, size, rd, rm, operand);
2486   }
2487 
2488   void lsls(Condition cond,
2489             EncodingSize size,
2490             Register rd,
2491             Register rm,
2492             const Operand& operand);
lsls(Register rd,Register rm,const Operand & operand)2493   void lsls(Register rd, Register rm, const Operand& operand) {
2494     lsls(al, Best, rd, rm, operand);
2495   }
lsls(Condition cond,Register rd,Register rm,const Operand & operand)2496   void lsls(Condition cond, Register rd, Register rm, const Operand& operand) {
2497     lsls(cond, Best, rd, rm, operand);
2498   }
lsls(EncodingSize size,Register rd,Register rm,const Operand & operand)2499   void lsls(EncodingSize size,
2500             Register rd,
2501             Register rm,
2502             const Operand& operand) {
2503     lsls(al, size, rd, rm, operand);
2504   }
2505 
2506   void lsr(Condition cond,
2507            EncodingSize size,
2508            Register rd,
2509            Register rm,
2510            const Operand& operand);
lsr(Register rd,Register rm,const Operand & operand)2511   void lsr(Register rd, Register rm, const Operand& operand) {
2512     lsr(al, Best, rd, rm, operand);
2513   }
lsr(Condition cond,Register rd,Register rm,const Operand & operand)2514   void lsr(Condition cond, Register rd, Register rm, const Operand& operand) {
2515     lsr(cond, Best, rd, rm, operand);
2516   }
lsr(EncodingSize size,Register rd,Register rm,const Operand & operand)2517   void lsr(EncodingSize size,
2518            Register rd,
2519            Register rm,
2520            const Operand& operand) {
2521     lsr(al, size, rd, rm, operand);
2522   }
2523 
2524   void lsrs(Condition cond,
2525             EncodingSize size,
2526             Register rd,
2527             Register rm,
2528             const Operand& operand);
lsrs(Register rd,Register rm,const Operand & operand)2529   void lsrs(Register rd, Register rm, const Operand& operand) {
2530     lsrs(al, Best, rd, rm, operand);
2531   }
lsrs(Condition cond,Register rd,Register rm,const Operand & operand)2532   void lsrs(Condition cond, Register rd, Register rm, const Operand& operand) {
2533     lsrs(cond, Best, rd, rm, operand);
2534   }
lsrs(EncodingSize size,Register rd,Register rm,const Operand & operand)2535   void lsrs(EncodingSize size,
2536             Register rd,
2537             Register rm,
2538             const Operand& operand) {
2539     lsrs(al, size, rd, rm, operand);
2540   }
2541 
2542   void mla(Condition cond, Register rd, Register rn, Register rm, Register ra);
mla(Register rd,Register rn,Register rm,Register ra)2543   void mla(Register rd, Register rn, Register rm, Register ra) {
2544     mla(al, rd, rn, rm, ra);
2545   }
2546 
2547   void mlas(Condition cond, Register rd, Register rn, Register rm, Register ra);
mlas(Register rd,Register rn,Register rm,Register ra)2548   void mlas(Register rd, Register rn, Register rm, Register ra) {
2549     mlas(al, rd, rn, rm, ra);
2550   }
2551 
2552   void mls(Condition cond, Register rd, Register rn, Register rm, Register ra);
mls(Register rd,Register rn,Register rm,Register ra)2553   void mls(Register rd, Register rn, Register rm, Register ra) {
2554     mls(al, rd, rn, rm, ra);
2555   }
2556 
2557   void mov(Condition cond,
2558            EncodingSize size,
2559            Register rd,
2560            const Operand& operand);
mov(Register rd,const Operand & operand)2561   void mov(Register rd, const Operand& operand) { mov(al, Best, rd, operand); }
mov(Condition cond,Register rd,const Operand & operand)2562   void mov(Condition cond, Register rd, const Operand& operand) {
2563     mov(cond, Best, rd, operand);
2564   }
mov(EncodingSize size,Register rd,const Operand & operand)2565   void mov(EncodingSize size, Register rd, const Operand& operand) {
2566     mov(al, size, rd, operand);
2567   }
2568 
2569   void movs(Condition cond,
2570             EncodingSize size,
2571             Register rd,
2572             const Operand& operand);
movs(Register rd,const Operand & operand)2573   void movs(Register rd, const Operand& operand) {
2574     movs(al, Best, rd, operand);
2575   }
movs(Condition cond,Register rd,const Operand & operand)2576   void movs(Condition cond, Register rd, const Operand& operand) {
2577     movs(cond, Best, rd, operand);
2578   }
movs(EncodingSize size,Register rd,const Operand & operand)2579   void movs(EncodingSize size, Register rd, const Operand& operand) {
2580     movs(al, size, rd, operand);
2581   }
2582 
2583   void movt(Condition cond, Register rd, const Operand& operand);
movt(Register rd,const Operand & operand)2584   void movt(Register rd, const Operand& operand) { movt(al, rd, operand); }
2585 
2586   void movw(Condition cond, Register rd, const Operand& operand);
movw(Register rd,const Operand & operand)2587   void movw(Register rd, const Operand& operand) { movw(al, rd, operand); }
2588 
2589   void mrs(Condition cond, Register rd, SpecialRegister spec_reg);
mrs(Register rd,SpecialRegister spec_reg)2590   void mrs(Register rd, SpecialRegister spec_reg) { mrs(al, rd, spec_reg); }
2591 
2592   void msr(Condition cond,
2593            MaskedSpecialRegister spec_reg,
2594            const Operand& operand);
msr(MaskedSpecialRegister spec_reg,const Operand & operand)2595   void msr(MaskedSpecialRegister spec_reg, const Operand& operand) {
2596     msr(al, spec_reg, operand);
2597   }
2598 
2599   void mul(
2600       Condition cond, EncodingSize size, Register rd, Register rn, Register rm);
mul(Register rd,Register rn,Register rm)2601   void mul(Register rd, Register rn, Register rm) { mul(al, Best, rd, rn, rm); }
mul(Condition cond,Register rd,Register rn,Register rm)2602   void mul(Condition cond, Register rd, Register rn, Register rm) {
2603     mul(cond, Best, rd, rn, rm);
2604   }
mul(EncodingSize size,Register rd,Register rn,Register rm)2605   void mul(EncodingSize size, Register rd, Register rn, Register rm) {
2606     mul(al, size, rd, rn, rm);
2607   }
2608 
2609   void muls(Condition cond, Register rd, Register rn, Register rm);
muls(Register rd,Register rn,Register rm)2610   void muls(Register rd, Register rn, Register rm) { muls(al, rd, rn, rm); }
2611 
2612   void mvn(Condition cond,
2613            EncodingSize size,
2614            Register rd,
2615            const Operand& operand);
mvn(Register rd,const Operand & operand)2616   void mvn(Register rd, const Operand& operand) { mvn(al, Best, rd, operand); }
mvn(Condition cond,Register rd,const Operand & operand)2617   void mvn(Condition cond, Register rd, const Operand& operand) {
2618     mvn(cond, Best, rd, operand);
2619   }
mvn(EncodingSize size,Register rd,const Operand & operand)2620   void mvn(EncodingSize size, Register rd, const Operand& operand) {
2621     mvn(al, size, rd, operand);
2622   }
2623 
2624   void mvns(Condition cond,
2625             EncodingSize size,
2626             Register rd,
2627             const Operand& operand);
mvns(Register rd,const Operand & operand)2628   void mvns(Register rd, const Operand& operand) {
2629     mvns(al, Best, rd, operand);
2630   }
mvns(Condition cond,Register rd,const Operand & operand)2631   void mvns(Condition cond, Register rd, const Operand& operand) {
2632     mvns(cond, Best, rd, operand);
2633   }
mvns(EncodingSize size,Register rd,const Operand & operand)2634   void mvns(EncodingSize size, Register rd, const Operand& operand) {
2635     mvns(al, size, rd, operand);
2636   }
2637 
2638   void nop(Condition cond, EncodingSize size);
nop()2639   void nop() { nop(al, Best); }
nop(Condition cond)2640   void nop(Condition cond) { nop(cond, Best); }
nop(EncodingSize size)2641   void nop(EncodingSize size) { nop(al, size); }
2642 
2643   void orn(Condition cond, Register rd, Register rn, const Operand& operand);
orn(Register rd,Register rn,const Operand & operand)2644   void orn(Register rd, Register rn, const Operand& operand) {
2645     orn(al, rd, rn, operand);
2646   }
2647 
2648   void orns(Condition cond, Register rd, Register rn, const Operand& operand);
orns(Register rd,Register rn,const Operand & operand)2649   void orns(Register rd, Register rn, const Operand& operand) {
2650     orns(al, rd, rn, operand);
2651   }
2652 
2653   void orr(Condition cond,
2654            EncodingSize size,
2655            Register rd,
2656            Register rn,
2657            const Operand& operand);
orr(Register rd,Register rn,const Operand & operand)2658   void orr(Register rd, Register rn, const Operand& operand) {
2659     orr(al, Best, rd, rn, operand);
2660   }
orr(Condition cond,Register rd,Register rn,const Operand & operand)2661   void orr(Condition cond, Register rd, Register rn, const Operand& operand) {
2662     orr(cond, Best, rd, rn, operand);
2663   }
orr(EncodingSize size,Register rd,Register rn,const Operand & operand)2664   void orr(EncodingSize size,
2665            Register rd,
2666            Register rn,
2667            const Operand& operand) {
2668     orr(al, size, rd, rn, operand);
2669   }
2670 
2671   void orrs(Condition cond,
2672             EncodingSize size,
2673             Register rd,
2674             Register rn,
2675             const Operand& operand);
orrs(Register rd,Register rn,const Operand & operand)2676   void orrs(Register rd, Register rn, const Operand& operand) {
2677     orrs(al, Best, rd, rn, operand);
2678   }
orrs(Condition cond,Register rd,Register rn,const Operand & operand)2679   void orrs(Condition cond, Register rd, Register rn, const Operand& operand) {
2680     orrs(cond, Best, rd, rn, operand);
2681   }
orrs(EncodingSize size,Register rd,Register rn,const Operand & operand)2682   void orrs(EncodingSize size,
2683             Register rd,
2684             Register rn,
2685             const Operand& operand) {
2686     orrs(al, size, rd, rn, operand);
2687   }
2688 
2689   void pkhbt(Condition cond, Register rd, Register rn, const Operand& operand);
pkhbt(Register rd,Register rn,const Operand & operand)2690   void pkhbt(Register rd, Register rn, const Operand& operand) {
2691     pkhbt(al, rd, rn, operand);
2692   }
2693 
2694   void pkhtb(Condition cond, Register rd, Register rn, const Operand& operand);
pkhtb(Register rd,Register rn,const Operand & operand)2695   void pkhtb(Register rd, Register rn, const Operand& operand) {
2696     pkhtb(al, rd, rn, operand);
2697   }
2698 
2699   void pld(Condition cond, Label* label);
pld(Label * label)2700   void pld(Label* label) { pld(al, label); }
2701 
2702   void pld(Condition cond, const MemOperand& operand);
pld(const MemOperand & operand)2703   void pld(const MemOperand& operand) { pld(al, operand); }
2704 
2705   void pldw(Condition cond, const MemOperand& operand);
pldw(const MemOperand & operand)2706   void pldw(const MemOperand& operand) { pldw(al, operand); }
2707 
2708   void pli(Condition cond, const MemOperand& operand);
pli(const MemOperand & operand)2709   void pli(const MemOperand& operand) { pli(al, operand); }
2710 
2711   void pli(Condition cond, Label* label);
pli(Label * label)2712   void pli(Label* label) { pli(al, label); }
2713 
2714   void pop(Condition cond, EncodingSize size, RegisterList registers);
pop(RegisterList registers)2715   void pop(RegisterList registers) { pop(al, Best, registers); }
pop(Condition cond,RegisterList registers)2716   void pop(Condition cond, RegisterList registers) {
2717     pop(cond, Best, registers);
2718   }
pop(EncodingSize size,RegisterList registers)2719   void pop(EncodingSize size, RegisterList registers) {
2720     pop(al, size, registers);
2721   }
2722 
2723   void pop(Condition cond, EncodingSize size, Register rt);
pop(Register rt)2724   void pop(Register rt) { pop(al, Best, rt); }
pop(Condition cond,Register rt)2725   void pop(Condition cond, Register rt) { pop(cond, Best, rt); }
pop(EncodingSize size,Register rt)2726   void pop(EncodingSize size, Register rt) { pop(al, size, rt); }
2727 
2728   void push(Condition cond, EncodingSize size, RegisterList registers);
push(RegisterList registers)2729   void push(RegisterList registers) { push(al, Best, registers); }
push(Condition cond,RegisterList registers)2730   void push(Condition cond, RegisterList registers) {
2731     push(cond, Best, registers);
2732   }
push(EncodingSize size,RegisterList registers)2733   void push(EncodingSize size, RegisterList registers) {
2734     push(al, size, registers);
2735   }
2736 
2737   void push(Condition cond, EncodingSize size, Register rt);
push(Register rt)2738   void push(Register rt) { push(al, Best, rt); }
push(Condition cond,Register rt)2739   void push(Condition cond, Register rt) { push(cond, Best, rt); }
push(EncodingSize size,Register rt)2740   void push(EncodingSize size, Register rt) { push(al, size, rt); }
2741 
2742   void qadd(Condition cond, Register rd, Register rm, Register rn);
qadd(Register rd,Register rm,Register rn)2743   void qadd(Register rd, Register rm, Register rn) { qadd(al, rd, rm, rn); }
2744 
2745   void qadd16(Condition cond, Register rd, Register rn, Register rm);
qadd16(Register rd,Register rn,Register rm)2746   void qadd16(Register rd, Register rn, Register rm) { qadd16(al, rd, rn, rm); }
2747 
2748   void qadd8(Condition cond, Register rd, Register rn, Register rm);
qadd8(Register rd,Register rn,Register rm)2749   void qadd8(Register rd, Register rn, Register rm) { qadd8(al, rd, rn, rm); }
2750 
2751   void qasx(Condition cond, Register rd, Register rn, Register rm);
qasx(Register rd,Register rn,Register rm)2752   void qasx(Register rd, Register rn, Register rm) { qasx(al, rd, rn, rm); }
2753 
2754   void qdadd(Condition cond, Register rd, Register rm, Register rn);
qdadd(Register rd,Register rm,Register rn)2755   void qdadd(Register rd, Register rm, Register rn) { qdadd(al, rd, rm, rn); }
2756 
2757   void qdsub(Condition cond, Register rd, Register rm, Register rn);
qdsub(Register rd,Register rm,Register rn)2758   void qdsub(Register rd, Register rm, Register rn) { qdsub(al, rd, rm, rn); }
2759 
2760   void qsax(Condition cond, Register rd, Register rn, Register rm);
qsax(Register rd,Register rn,Register rm)2761   void qsax(Register rd, Register rn, Register rm) { qsax(al, rd, rn, rm); }
2762 
2763   void qsub(Condition cond, Register rd, Register rm, Register rn);
qsub(Register rd,Register rm,Register rn)2764   void qsub(Register rd, Register rm, Register rn) { qsub(al, rd, rm, rn); }
2765 
2766   void qsub16(Condition cond, Register rd, Register rn, Register rm);
qsub16(Register rd,Register rn,Register rm)2767   void qsub16(Register rd, Register rn, Register rm) { qsub16(al, rd, rn, rm); }
2768 
2769   void qsub8(Condition cond, Register rd, Register rn, Register rm);
qsub8(Register rd,Register rn,Register rm)2770   void qsub8(Register rd, Register rn, Register rm) { qsub8(al, rd, rn, rm); }
2771 
2772   void rbit(Condition cond, Register rd, Register rm);
rbit(Register rd,Register rm)2773   void rbit(Register rd, Register rm) { rbit(al, rd, rm); }
2774 
2775   void rev(Condition cond, EncodingSize size, Register rd, Register rm);
rev(Register rd,Register rm)2776   void rev(Register rd, Register rm) { rev(al, Best, rd, rm); }
rev(Condition cond,Register rd,Register rm)2777   void rev(Condition cond, Register rd, Register rm) {
2778     rev(cond, Best, rd, rm);
2779   }
rev(EncodingSize size,Register rd,Register rm)2780   void rev(EncodingSize size, Register rd, Register rm) {
2781     rev(al, size, rd, rm);
2782   }
2783 
2784   void rev16(Condition cond, EncodingSize size, Register rd, Register rm);
rev16(Register rd,Register rm)2785   void rev16(Register rd, Register rm) { rev16(al, Best, rd, rm); }
rev16(Condition cond,Register rd,Register rm)2786   void rev16(Condition cond, Register rd, Register rm) {
2787     rev16(cond, Best, rd, rm);
2788   }
rev16(EncodingSize size,Register rd,Register rm)2789   void rev16(EncodingSize size, Register rd, Register rm) {
2790     rev16(al, size, rd, rm);
2791   }
2792 
2793   void revsh(Condition cond, EncodingSize size, Register rd, Register rm);
revsh(Register rd,Register rm)2794   void revsh(Register rd, Register rm) { revsh(al, Best, rd, rm); }
revsh(Condition cond,Register rd,Register rm)2795   void revsh(Condition cond, Register rd, Register rm) {
2796     revsh(cond, Best, rd, rm);
2797   }
revsh(EncodingSize size,Register rd,Register rm)2798   void revsh(EncodingSize size, Register rd, Register rm) {
2799     revsh(al, size, rd, rm);
2800   }
2801 
2802   void ror(Condition cond,
2803            EncodingSize size,
2804            Register rd,
2805            Register rm,
2806            const Operand& operand);
ror(Register rd,Register rm,const Operand & operand)2807   void ror(Register rd, Register rm, const Operand& operand) {
2808     ror(al, Best, rd, rm, operand);
2809   }
ror(Condition cond,Register rd,Register rm,const Operand & operand)2810   void ror(Condition cond, Register rd, Register rm, const Operand& operand) {
2811     ror(cond, Best, rd, rm, operand);
2812   }
ror(EncodingSize size,Register rd,Register rm,const Operand & operand)2813   void ror(EncodingSize size,
2814            Register rd,
2815            Register rm,
2816            const Operand& operand) {
2817     ror(al, size, rd, rm, operand);
2818   }
2819 
2820   void rors(Condition cond,
2821             EncodingSize size,
2822             Register rd,
2823             Register rm,
2824             const Operand& operand);
rors(Register rd,Register rm,const Operand & operand)2825   void rors(Register rd, Register rm, const Operand& operand) {
2826     rors(al, Best, rd, rm, operand);
2827   }
rors(Condition cond,Register rd,Register rm,const Operand & operand)2828   void rors(Condition cond, Register rd, Register rm, const Operand& operand) {
2829     rors(cond, Best, rd, rm, operand);
2830   }
rors(EncodingSize size,Register rd,Register rm,const Operand & operand)2831   void rors(EncodingSize size,
2832             Register rd,
2833             Register rm,
2834             const Operand& operand) {
2835     rors(al, size, rd, rm, operand);
2836   }
2837 
2838   void rrx(Condition cond, Register rd, Register rm);
rrx(Register rd,Register rm)2839   void rrx(Register rd, Register rm) { rrx(al, rd, rm); }
2840 
2841   void rrxs(Condition cond, Register rd, Register rm);
rrxs(Register rd,Register rm)2842   void rrxs(Register rd, Register rm) { rrxs(al, rd, rm); }
2843 
2844   void rsb(Condition cond,
2845            EncodingSize size,
2846            Register rd,
2847            Register rn,
2848            const Operand& operand);
rsb(Register rd,Register rn,const Operand & operand)2849   void rsb(Register rd, Register rn, const Operand& operand) {
2850     rsb(al, Best, rd, rn, operand);
2851   }
rsb(Condition cond,Register rd,Register rn,const Operand & operand)2852   void rsb(Condition cond, Register rd, Register rn, const Operand& operand) {
2853     rsb(cond, Best, rd, rn, operand);
2854   }
rsb(EncodingSize size,Register rd,Register rn,const Operand & operand)2855   void rsb(EncodingSize size,
2856            Register rd,
2857            Register rn,
2858            const Operand& operand) {
2859     rsb(al, size, rd, rn, operand);
2860   }
2861 
2862   void rsbs(Condition cond,
2863             EncodingSize size,
2864             Register rd,
2865             Register rn,
2866             const Operand& operand);
rsbs(Register rd,Register rn,const Operand & operand)2867   void rsbs(Register rd, Register rn, const Operand& operand) {
2868     rsbs(al, Best, rd, rn, operand);
2869   }
rsbs(Condition cond,Register rd,Register rn,const Operand & operand)2870   void rsbs(Condition cond, Register rd, Register rn, const Operand& operand) {
2871     rsbs(cond, Best, rd, rn, operand);
2872   }
rsbs(EncodingSize size,Register rd,Register rn,const Operand & operand)2873   void rsbs(EncodingSize size,
2874             Register rd,
2875             Register rn,
2876             const Operand& operand) {
2877     rsbs(al, size, rd, rn, operand);
2878   }
2879 
2880   void rsc(Condition cond, Register rd, Register rn, const Operand& operand);
rsc(Register rd,Register rn,const Operand & operand)2881   void rsc(Register rd, Register rn, const Operand& operand) {
2882     rsc(al, rd, rn, operand);
2883   }
2884 
2885   void rscs(Condition cond, Register rd, Register rn, const Operand& operand);
rscs(Register rd,Register rn,const Operand & operand)2886   void rscs(Register rd, Register rn, const Operand& operand) {
2887     rscs(al, rd, rn, operand);
2888   }
2889 
2890   void sadd16(Condition cond, Register rd, Register rn, Register rm);
sadd16(Register rd,Register rn,Register rm)2891   void sadd16(Register rd, Register rn, Register rm) { sadd16(al, rd, rn, rm); }
2892 
2893   void sadd8(Condition cond, Register rd, Register rn, Register rm);
sadd8(Register rd,Register rn,Register rm)2894   void sadd8(Register rd, Register rn, Register rm) { sadd8(al, rd, rn, rm); }
2895 
2896   void sasx(Condition cond, Register rd, Register rn, Register rm);
sasx(Register rd,Register rn,Register rm)2897   void sasx(Register rd, Register rn, Register rm) { sasx(al, rd, rn, rm); }
2898 
2899   void sbc(Condition cond,
2900            EncodingSize size,
2901            Register rd,
2902            Register rn,
2903            const Operand& operand);
sbc(Register rd,Register rn,const Operand & operand)2904   void sbc(Register rd, Register rn, const Operand& operand) {
2905     sbc(al, Best, rd, rn, operand);
2906   }
sbc(Condition cond,Register rd,Register rn,const Operand & operand)2907   void sbc(Condition cond, Register rd, Register rn, const Operand& operand) {
2908     sbc(cond, Best, rd, rn, operand);
2909   }
sbc(EncodingSize size,Register rd,Register rn,const Operand & operand)2910   void sbc(EncodingSize size,
2911            Register rd,
2912            Register rn,
2913            const Operand& operand) {
2914     sbc(al, size, rd, rn, operand);
2915   }
2916 
2917   void sbcs(Condition cond,
2918             EncodingSize size,
2919             Register rd,
2920             Register rn,
2921             const Operand& operand);
sbcs(Register rd,Register rn,const Operand & operand)2922   void sbcs(Register rd, Register rn, const Operand& operand) {
2923     sbcs(al, Best, rd, rn, operand);
2924   }
sbcs(Condition cond,Register rd,Register rn,const Operand & operand)2925   void sbcs(Condition cond, Register rd, Register rn, const Operand& operand) {
2926     sbcs(cond, Best, rd, rn, operand);
2927   }
sbcs(EncodingSize size,Register rd,Register rn,const Operand & operand)2928   void sbcs(EncodingSize size,
2929             Register rd,
2930             Register rn,
2931             const Operand& operand) {
2932     sbcs(al, size, rd, rn, operand);
2933   }
2934 
2935   void sbfx(Condition cond,
2936             Register rd,
2937             Register rn,
2938             uint32_t lsb,
2939             const Operand& operand);
sbfx(Register rd,Register rn,uint32_t lsb,const Operand & operand)2940   void sbfx(Register rd, Register rn, uint32_t lsb, const Operand& operand) {
2941     sbfx(al, rd, rn, lsb, operand);
2942   }
2943 
2944   void sdiv(Condition cond, Register rd, Register rn, Register rm);
sdiv(Register rd,Register rn,Register rm)2945   void sdiv(Register rd, Register rn, Register rm) { sdiv(al, rd, rn, rm); }
2946 
2947   void sel(Condition cond, Register rd, Register rn, Register rm);
sel(Register rd,Register rn,Register rm)2948   void sel(Register rd, Register rn, Register rm) { sel(al, rd, rn, rm); }
2949 
2950   void shadd16(Condition cond, Register rd, Register rn, Register rm);
shadd16(Register rd,Register rn,Register rm)2951   void shadd16(Register rd, Register rn, Register rm) {
2952     shadd16(al, rd, rn, rm);
2953   }
2954 
2955   void shadd8(Condition cond, Register rd, Register rn, Register rm);
shadd8(Register rd,Register rn,Register rm)2956   void shadd8(Register rd, Register rn, Register rm) { shadd8(al, rd, rn, rm); }
2957 
2958   void shasx(Condition cond, Register rd, Register rn, Register rm);
shasx(Register rd,Register rn,Register rm)2959   void shasx(Register rd, Register rn, Register rm) { shasx(al, rd, rn, rm); }
2960 
2961   void shsax(Condition cond, Register rd, Register rn, Register rm);
shsax(Register rd,Register rn,Register rm)2962   void shsax(Register rd, Register rn, Register rm) { shsax(al, rd, rn, rm); }
2963 
2964   void shsub16(Condition cond, Register rd, Register rn, Register rm);
shsub16(Register rd,Register rn,Register rm)2965   void shsub16(Register rd, Register rn, Register rm) {
2966     shsub16(al, rd, rn, rm);
2967   }
2968 
2969   void shsub8(Condition cond, Register rd, Register rn, Register rm);
shsub8(Register rd,Register rn,Register rm)2970   void shsub8(Register rd, Register rn, Register rm) { shsub8(al, rd, rn, rm); }
2971 
2972   void smlabb(
2973       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlabb(Register rd,Register rn,Register rm,Register ra)2974   void smlabb(Register rd, Register rn, Register rm, Register ra) {
2975     smlabb(al, rd, rn, rm, ra);
2976   }
2977 
2978   void smlabt(
2979       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlabt(Register rd,Register rn,Register rm,Register ra)2980   void smlabt(Register rd, Register rn, Register rm, Register ra) {
2981     smlabt(al, rd, rn, rm, ra);
2982   }
2983 
2984   void smlad(
2985       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlad(Register rd,Register rn,Register rm,Register ra)2986   void smlad(Register rd, Register rn, Register rm, Register ra) {
2987     smlad(al, rd, rn, rm, ra);
2988   }
2989 
2990   void smladx(
2991       Condition cond, Register rd, Register rn, Register rm, Register ra);
smladx(Register rd,Register rn,Register rm,Register ra)2992   void smladx(Register rd, Register rn, Register rm, Register ra) {
2993     smladx(al, rd, rn, rm, ra);
2994   }
2995 
2996   void smlal(
2997       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlal(Register rdlo,Register rdhi,Register rn,Register rm)2998   void smlal(Register rdlo, Register rdhi, Register rn, Register rm) {
2999     smlal(al, rdlo, rdhi, rn, rm);
3000   }
3001 
3002   void smlalbb(
3003       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlalbb(Register rdlo,Register rdhi,Register rn,Register rm)3004   void smlalbb(Register rdlo, Register rdhi, Register rn, Register rm) {
3005     smlalbb(al, rdlo, rdhi, rn, rm);
3006   }
3007 
3008   void smlalbt(
3009       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlalbt(Register rdlo,Register rdhi,Register rn,Register rm)3010   void smlalbt(Register rdlo, Register rdhi, Register rn, Register rm) {
3011     smlalbt(al, rdlo, rdhi, rn, rm);
3012   }
3013 
3014   void smlald(
3015       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlald(Register rdlo,Register rdhi,Register rn,Register rm)3016   void smlald(Register rdlo, Register rdhi, Register rn, Register rm) {
3017     smlald(al, rdlo, rdhi, rn, rm);
3018   }
3019 
3020   void smlaldx(
3021       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlaldx(Register rdlo,Register rdhi,Register rn,Register rm)3022   void smlaldx(Register rdlo, Register rdhi, Register rn, Register rm) {
3023     smlaldx(al, rdlo, rdhi, rn, rm);
3024   }
3025 
3026   void smlals(
3027       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlals(Register rdlo,Register rdhi,Register rn,Register rm)3028   void smlals(Register rdlo, Register rdhi, Register rn, Register rm) {
3029     smlals(al, rdlo, rdhi, rn, rm);
3030   }
3031 
3032   void smlaltb(
3033       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlaltb(Register rdlo,Register rdhi,Register rn,Register rm)3034   void smlaltb(Register rdlo, Register rdhi, Register rn, Register rm) {
3035     smlaltb(al, rdlo, rdhi, rn, rm);
3036   }
3037 
3038   void smlaltt(
3039       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlaltt(Register rdlo,Register rdhi,Register rn,Register rm)3040   void smlaltt(Register rdlo, Register rdhi, Register rn, Register rm) {
3041     smlaltt(al, rdlo, rdhi, rn, rm);
3042   }
3043 
3044   void smlatb(
3045       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlatb(Register rd,Register rn,Register rm,Register ra)3046   void smlatb(Register rd, Register rn, Register rm, Register ra) {
3047     smlatb(al, rd, rn, rm, ra);
3048   }
3049 
3050   void smlatt(
3051       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlatt(Register rd,Register rn,Register rm,Register ra)3052   void smlatt(Register rd, Register rn, Register rm, Register ra) {
3053     smlatt(al, rd, rn, rm, ra);
3054   }
3055 
3056   void smlawb(
3057       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlawb(Register rd,Register rn,Register rm,Register ra)3058   void smlawb(Register rd, Register rn, Register rm, Register ra) {
3059     smlawb(al, rd, rn, rm, ra);
3060   }
3061 
3062   void smlawt(
3063       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlawt(Register rd,Register rn,Register rm,Register ra)3064   void smlawt(Register rd, Register rn, Register rm, Register ra) {
3065     smlawt(al, rd, rn, rm, ra);
3066   }
3067 
3068   void smlsd(
3069       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlsd(Register rd,Register rn,Register rm,Register ra)3070   void smlsd(Register rd, Register rn, Register rm, Register ra) {
3071     smlsd(al, rd, rn, rm, ra);
3072   }
3073 
3074   void smlsdx(
3075       Condition cond, Register rd, Register rn, Register rm, Register ra);
smlsdx(Register rd,Register rn,Register rm,Register ra)3076   void smlsdx(Register rd, Register rn, Register rm, Register ra) {
3077     smlsdx(al, rd, rn, rm, ra);
3078   }
3079 
3080   void smlsld(
3081       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlsld(Register rdlo,Register rdhi,Register rn,Register rm)3082   void smlsld(Register rdlo, Register rdhi, Register rn, Register rm) {
3083     smlsld(al, rdlo, rdhi, rn, rm);
3084   }
3085 
3086   void smlsldx(
3087       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smlsldx(Register rdlo,Register rdhi,Register rn,Register rm)3088   void smlsldx(Register rdlo, Register rdhi, Register rn, Register rm) {
3089     smlsldx(al, rdlo, rdhi, rn, rm);
3090   }
3091 
3092   void smmla(
3093       Condition cond, Register rd, Register rn, Register rm, Register ra);
smmla(Register rd,Register rn,Register rm,Register ra)3094   void smmla(Register rd, Register rn, Register rm, Register ra) {
3095     smmla(al, rd, rn, rm, ra);
3096   }
3097 
3098   void smmlar(
3099       Condition cond, Register rd, Register rn, Register rm, Register ra);
smmlar(Register rd,Register rn,Register rm,Register ra)3100   void smmlar(Register rd, Register rn, Register rm, Register ra) {
3101     smmlar(al, rd, rn, rm, ra);
3102   }
3103 
3104   void smmls(
3105       Condition cond, Register rd, Register rn, Register rm, Register ra);
smmls(Register rd,Register rn,Register rm,Register ra)3106   void smmls(Register rd, Register rn, Register rm, Register ra) {
3107     smmls(al, rd, rn, rm, ra);
3108   }
3109 
3110   void smmlsr(
3111       Condition cond, Register rd, Register rn, Register rm, Register ra);
smmlsr(Register rd,Register rn,Register rm,Register ra)3112   void smmlsr(Register rd, Register rn, Register rm, Register ra) {
3113     smmlsr(al, rd, rn, rm, ra);
3114   }
3115 
3116   void smmul(Condition cond, Register rd, Register rn, Register rm);
smmul(Register rd,Register rn,Register rm)3117   void smmul(Register rd, Register rn, Register rm) { smmul(al, rd, rn, rm); }
3118 
3119   void smmulr(Condition cond, Register rd, Register rn, Register rm);
smmulr(Register rd,Register rn,Register rm)3120   void smmulr(Register rd, Register rn, Register rm) { smmulr(al, rd, rn, rm); }
3121 
3122   void smuad(Condition cond, Register rd, Register rn, Register rm);
smuad(Register rd,Register rn,Register rm)3123   void smuad(Register rd, Register rn, Register rm) { smuad(al, rd, rn, rm); }
3124 
3125   void smuadx(Condition cond, Register rd, Register rn, Register rm);
smuadx(Register rd,Register rn,Register rm)3126   void smuadx(Register rd, Register rn, Register rm) { smuadx(al, rd, rn, rm); }
3127 
3128   void smulbb(Condition cond, Register rd, Register rn, Register rm);
smulbb(Register rd,Register rn,Register rm)3129   void smulbb(Register rd, Register rn, Register rm) { smulbb(al, rd, rn, rm); }
3130 
3131   void smulbt(Condition cond, Register rd, Register rn, Register rm);
smulbt(Register rd,Register rn,Register rm)3132   void smulbt(Register rd, Register rn, Register rm) { smulbt(al, rd, rn, rm); }
3133 
3134   void smull(
3135       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smull(Register rdlo,Register rdhi,Register rn,Register rm)3136   void smull(Register rdlo, Register rdhi, Register rn, Register rm) {
3137     smull(al, rdlo, rdhi, rn, rm);
3138   }
3139 
3140   void smulls(
3141       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
smulls(Register rdlo,Register rdhi,Register rn,Register rm)3142   void smulls(Register rdlo, Register rdhi, Register rn, Register rm) {
3143     smulls(al, rdlo, rdhi, rn, rm);
3144   }
3145 
3146   void smultb(Condition cond, Register rd, Register rn, Register rm);
smultb(Register rd,Register rn,Register rm)3147   void smultb(Register rd, Register rn, Register rm) { smultb(al, rd, rn, rm); }
3148 
3149   void smultt(Condition cond, Register rd, Register rn, Register rm);
smultt(Register rd,Register rn,Register rm)3150   void smultt(Register rd, Register rn, Register rm) { smultt(al, rd, rn, rm); }
3151 
3152   void smulwb(Condition cond, Register rd, Register rn, Register rm);
smulwb(Register rd,Register rn,Register rm)3153   void smulwb(Register rd, Register rn, Register rm) { smulwb(al, rd, rn, rm); }
3154 
3155   void smulwt(Condition cond, Register rd, Register rn, Register rm);
smulwt(Register rd,Register rn,Register rm)3156   void smulwt(Register rd, Register rn, Register rm) { smulwt(al, rd, rn, rm); }
3157 
3158   void smusd(Condition cond, Register rd, Register rn, Register rm);
smusd(Register rd,Register rn,Register rm)3159   void smusd(Register rd, Register rn, Register rm) { smusd(al, rd, rn, rm); }
3160 
3161   void smusdx(Condition cond, Register rd, Register rn, Register rm);
smusdx(Register rd,Register rn,Register rm)3162   void smusdx(Register rd, Register rn, Register rm) { smusdx(al, rd, rn, rm); }
3163 
3164   void ssat(Condition cond, Register rd, uint32_t imm, const Operand& operand);
ssat(Register rd,uint32_t imm,const Operand & operand)3165   void ssat(Register rd, uint32_t imm, const Operand& operand) {
3166     ssat(al, rd, imm, operand);
3167   }
3168 
3169   void ssat16(Condition cond, Register rd, uint32_t imm, Register rn);
ssat16(Register rd,uint32_t imm,Register rn)3170   void ssat16(Register rd, uint32_t imm, Register rn) {
3171     ssat16(al, rd, imm, rn);
3172   }
3173 
3174   void ssax(Condition cond, Register rd, Register rn, Register rm);
ssax(Register rd,Register rn,Register rm)3175   void ssax(Register rd, Register rn, Register rm) { ssax(al, rd, rn, rm); }
3176 
3177   void ssub16(Condition cond, Register rd, Register rn, Register rm);
ssub16(Register rd,Register rn,Register rm)3178   void ssub16(Register rd, Register rn, Register rm) { ssub16(al, rd, rn, rm); }
3179 
3180   void ssub8(Condition cond, Register rd, Register rn, Register rm);
ssub8(Register rd,Register rn,Register rm)3181   void ssub8(Register rd, Register rn, Register rm) { ssub8(al, rd, rn, rm); }
3182 
3183   void stl(Condition cond, Register rt, const MemOperand& operand);
stl(Register rt,const MemOperand & operand)3184   void stl(Register rt, const MemOperand& operand) { stl(al, rt, operand); }
3185 
3186   void stlb(Condition cond, Register rt, const MemOperand& operand);
stlb(Register rt,const MemOperand & operand)3187   void stlb(Register rt, const MemOperand& operand) { stlb(al, rt, operand); }
3188 
3189   void stlex(Condition cond,
3190              Register rd,
3191              Register rt,
3192              const MemOperand& operand);
stlex(Register rd,Register rt,const MemOperand & operand)3193   void stlex(Register rd, Register rt, const MemOperand& operand) {
3194     stlex(al, rd, rt, operand);
3195   }
3196 
3197   void stlexb(Condition cond,
3198               Register rd,
3199               Register rt,
3200               const MemOperand& operand);
stlexb(Register rd,Register rt,const MemOperand & operand)3201   void stlexb(Register rd, Register rt, const MemOperand& operand) {
3202     stlexb(al, rd, rt, operand);
3203   }
3204 
3205   void stlexd(Condition cond,
3206               Register rd,
3207               Register rt,
3208               Register rt2,
3209               const MemOperand& operand);
stlexd(Register rd,Register rt,Register rt2,const MemOperand & operand)3210   void stlexd(Register rd,
3211               Register rt,
3212               Register rt2,
3213               const MemOperand& operand) {
3214     stlexd(al, rd, rt, rt2, operand);
3215   }
3216 
3217   void stlexh(Condition cond,
3218               Register rd,
3219               Register rt,
3220               const MemOperand& operand);
stlexh(Register rd,Register rt,const MemOperand & operand)3221   void stlexh(Register rd, Register rt, const MemOperand& operand) {
3222     stlexh(al, rd, rt, operand);
3223   }
3224 
3225   void stlh(Condition cond, Register rt, const MemOperand& operand);
stlh(Register rt,const MemOperand & operand)3226   void stlh(Register rt, const MemOperand& operand) { stlh(al, rt, operand); }
3227 
3228   void stm(Condition cond,
3229            EncodingSize size,
3230            Register rn,
3231            WriteBack write_back,
3232            RegisterList registers);
stm(Register rn,WriteBack write_back,RegisterList registers)3233   void stm(Register rn, WriteBack write_back, RegisterList registers) {
3234     stm(al, Best, rn, write_back, registers);
3235   }
stm(Condition cond,Register rn,WriteBack write_back,RegisterList registers)3236   void stm(Condition cond,
3237            Register rn,
3238            WriteBack write_back,
3239            RegisterList registers) {
3240     stm(cond, Best, rn, write_back, registers);
3241   }
stm(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)3242   void stm(EncodingSize size,
3243            Register rn,
3244            WriteBack write_back,
3245            RegisterList registers) {
3246     stm(al, size, rn, write_back, registers);
3247   }
3248 
3249   void stmda(Condition cond,
3250              Register rn,
3251              WriteBack write_back,
3252              RegisterList registers);
stmda(Register rn,WriteBack write_back,RegisterList registers)3253   void stmda(Register rn, WriteBack write_back, RegisterList registers) {
3254     stmda(al, rn, write_back, registers);
3255   }
3256 
3257   void stmdb(Condition cond,
3258              EncodingSize size,
3259              Register rn,
3260              WriteBack write_back,
3261              RegisterList registers);
stmdb(Register rn,WriteBack write_back,RegisterList registers)3262   void stmdb(Register rn, WriteBack write_back, RegisterList registers) {
3263     stmdb(al, Best, rn, write_back, registers);
3264   }
stmdb(Condition cond,Register rn,WriteBack write_back,RegisterList registers)3265   void stmdb(Condition cond,
3266              Register rn,
3267              WriteBack write_back,
3268              RegisterList registers) {
3269     stmdb(cond, Best, rn, write_back, registers);
3270   }
stmdb(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)3271   void stmdb(EncodingSize size,
3272              Register rn,
3273              WriteBack write_back,
3274              RegisterList registers) {
3275     stmdb(al, size, rn, write_back, registers);
3276   }
3277 
3278   void stmea(Condition cond,
3279              EncodingSize size,
3280              Register rn,
3281              WriteBack write_back,
3282              RegisterList registers);
stmea(Register rn,WriteBack write_back,RegisterList registers)3283   void stmea(Register rn, WriteBack write_back, RegisterList registers) {
3284     stmea(al, Best, rn, write_back, registers);
3285   }
stmea(Condition cond,Register rn,WriteBack write_back,RegisterList registers)3286   void stmea(Condition cond,
3287              Register rn,
3288              WriteBack write_back,
3289              RegisterList registers) {
3290     stmea(cond, Best, rn, write_back, registers);
3291   }
stmea(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)3292   void stmea(EncodingSize size,
3293              Register rn,
3294              WriteBack write_back,
3295              RegisterList registers) {
3296     stmea(al, size, rn, write_back, registers);
3297   }
3298 
3299   void stmed(Condition cond,
3300              Register rn,
3301              WriteBack write_back,
3302              RegisterList registers);
stmed(Register rn,WriteBack write_back,RegisterList registers)3303   void stmed(Register rn, WriteBack write_back, RegisterList registers) {
3304     stmed(al, rn, write_back, registers);
3305   }
3306 
3307   void stmfa(Condition cond,
3308              Register rn,
3309              WriteBack write_back,
3310              RegisterList registers);
stmfa(Register rn,WriteBack write_back,RegisterList registers)3311   void stmfa(Register rn, WriteBack write_back, RegisterList registers) {
3312     stmfa(al, rn, write_back, registers);
3313   }
3314 
3315   void stmfd(Condition cond,
3316              Register rn,
3317              WriteBack write_back,
3318              RegisterList registers);
stmfd(Register rn,WriteBack write_back,RegisterList registers)3319   void stmfd(Register rn, WriteBack write_back, RegisterList registers) {
3320     stmfd(al, rn, write_back, registers);
3321   }
3322 
3323   void stmib(Condition cond,
3324              Register rn,
3325              WriteBack write_back,
3326              RegisterList registers);
stmib(Register rn,WriteBack write_back,RegisterList registers)3327   void stmib(Register rn, WriteBack write_back, RegisterList registers) {
3328     stmib(al, rn, write_back, registers);
3329   }
3330 
3331   void str(Condition cond,
3332            EncodingSize size,
3333            Register rt,
3334            const MemOperand& operand);
str(Register rt,const MemOperand & operand)3335   void str(Register rt, const MemOperand& operand) {
3336     str(al, Best, rt, operand);
3337   }
str(Condition cond,Register rt,const MemOperand & operand)3338   void str(Condition cond, Register rt, const MemOperand& operand) {
3339     str(cond, Best, rt, operand);
3340   }
str(EncodingSize size,Register rt,const MemOperand & operand)3341   void str(EncodingSize size, Register rt, const MemOperand& operand) {
3342     str(al, size, rt, operand);
3343   }
3344 
3345   void strb(Condition cond,
3346             EncodingSize size,
3347             Register rt,
3348             const MemOperand& operand);
strb(Register rt,const MemOperand & operand)3349   void strb(Register rt, const MemOperand& operand) {
3350     strb(al, Best, rt, operand);
3351   }
strb(Condition cond,Register rt,const MemOperand & operand)3352   void strb(Condition cond, Register rt, const MemOperand& operand) {
3353     strb(cond, Best, rt, operand);
3354   }
strb(EncodingSize size,Register rt,const MemOperand & operand)3355   void strb(EncodingSize size, Register rt, const MemOperand& operand) {
3356     strb(al, size, rt, operand);
3357   }
3358 
3359   void strd(Condition cond,
3360             Register rt,
3361             Register rt2,
3362             const MemOperand& operand);
strd(Register rt,Register rt2,const MemOperand & operand)3363   void strd(Register rt, Register rt2, const MemOperand& operand) {
3364     strd(al, rt, rt2, operand);
3365   }
3366 
3367   void strex(Condition cond,
3368              Register rd,
3369              Register rt,
3370              const MemOperand& operand);
strex(Register rd,Register rt,const MemOperand & operand)3371   void strex(Register rd, Register rt, const MemOperand& operand) {
3372     strex(al, rd, rt, operand);
3373   }
3374 
3375   void strexb(Condition cond,
3376               Register rd,
3377               Register rt,
3378               const MemOperand& operand);
strexb(Register rd,Register rt,const MemOperand & operand)3379   void strexb(Register rd, Register rt, const MemOperand& operand) {
3380     strexb(al, rd, rt, operand);
3381   }
3382 
3383   void strexd(Condition cond,
3384               Register rd,
3385               Register rt,
3386               Register rt2,
3387               const MemOperand& operand);
strexd(Register rd,Register rt,Register rt2,const MemOperand & operand)3388   void strexd(Register rd,
3389               Register rt,
3390               Register rt2,
3391               const MemOperand& operand) {
3392     strexd(al, rd, rt, rt2, operand);
3393   }
3394 
3395   void strexh(Condition cond,
3396               Register rd,
3397               Register rt,
3398               const MemOperand& operand);
strexh(Register rd,Register rt,const MemOperand & operand)3399   void strexh(Register rd, Register rt, const MemOperand& operand) {
3400     strexh(al, rd, rt, operand);
3401   }
3402 
3403   void strh(Condition cond,
3404             EncodingSize size,
3405             Register rt,
3406             const MemOperand& operand);
strh(Register rt,const MemOperand & operand)3407   void strh(Register rt, const MemOperand& operand) {
3408     strh(al, Best, rt, operand);
3409   }
strh(Condition cond,Register rt,const MemOperand & operand)3410   void strh(Condition cond, Register rt, const MemOperand& operand) {
3411     strh(cond, Best, rt, operand);
3412   }
strh(EncodingSize size,Register rt,const MemOperand & operand)3413   void strh(EncodingSize size, Register rt, const MemOperand& operand) {
3414     strh(al, size, rt, operand);
3415   }
3416 
3417   void sub(Condition cond,
3418            EncodingSize size,
3419            Register rd,
3420            Register rn,
3421            const Operand& operand);
sub(Register rd,Register rn,const Operand & operand)3422   void sub(Register rd, Register rn, const Operand& operand) {
3423     sub(al, Best, rd, rn, operand);
3424   }
sub(Condition cond,Register rd,Register rn,const Operand & operand)3425   void sub(Condition cond, Register rd, Register rn, const Operand& operand) {
3426     sub(cond, Best, rd, rn, operand);
3427   }
sub(EncodingSize size,Register rd,Register rn,const Operand & operand)3428   void sub(EncodingSize size,
3429            Register rd,
3430            Register rn,
3431            const Operand& operand) {
3432     sub(al, size, rd, rn, operand);
3433   }
3434 
3435   void sub(Condition cond, Register rd, const Operand& operand);
sub(Register rd,const Operand & operand)3436   void sub(Register rd, const Operand& operand) { sub(al, rd, operand); }
3437 
3438   void subs(Condition cond,
3439             EncodingSize size,
3440             Register rd,
3441             Register rn,
3442             const Operand& operand);
subs(Register rd,Register rn,const Operand & operand)3443   void subs(Register rd, Register rn, const Operand& operand) {
3444     subs(al, Best, rd, rn, operand);
3445   }
subs(Condition cond,Register rd,Register rn,const Operand & operand)3446   void subs(Condition cond, Register rd, Register rn, const Operand& operand) {
3447     subs(cond, Best, rd, rn, operand);
3448   }
subs(EncodingSize size,Register rd,Register rn,const Operand & operand)3449   void subs(EncodingSize size,
3450             Register rd,
3451             Register rn,
3452             const Operand& operand) {
3453     subs(al, size, rd, rn, operand);
3454   }
3455 
3456   void subs(Register rd, const Operand& operand);
3457 
3458   void subw(Condition cond, Register rd, Register rn, const Operand& operand);
subw(Register rd,Register rn,const Operand & operand)3459   void subw(Register rd, Register rn, const Operand& operand) {
3460     subw(al, rd, rn, operand);
3461   }
3462 
3463   void svc(Condition cond, uint32_t imm);
svc(uint32_t imm)3464   void svc(uint32_t imm) { svc(al, imm); }
3465 
3466   void sxtab(Condition cond, Register rd, Register rn, const Operand& operand);
sxtab(Register rd,Register rn,const Operand & operand)3467   void sxtab(Register rd, Register rn, const Operand& operand) {
3468     sxtab(al, rd, rn, operand);
3469   }
3470 
3471   void sxtab16(Condition cond,
3472                Register rd,
3473                Register rn,
3474                const Operand& operand);
sxtab16(Register rd,Register rn,const Operand & operand)3475   void sxtab16(Register rd, Register rn, const Operand& operand) {
3476     sxtab16(al, rd, rn, operand);
3477   }
3478 
3479   void sxtah(Condition cond, Register rd, Register rn, const Operand& operand);
sxtah(Register rd,Register rn,const Operand & operand)3480   void sxtah(Register rd, Register rn, const Operand& operand) {
3481     sxtah(al, rd, rn, operand);
3482   }
3483 
3484   void sxtb(Condition cond,
3485             EncodingSize size,
3486             Register rd,
3487             const Operand& operand);
sxtb(Register rd,const Operand & operand)3488   void sxtb(Register rd, const Operand& operand) {
3489     sxtb(al, Best, rd, operand);
3490   }
sxtb(Condition cond,Register rd,const Operand & operand)3491   void sxtb(Condition cond, Register rd, const Operand& operand) {
3492     sxtb(cond, Best, rd, operand);
3493   }
sxtb(EncodingSize size,Register rd,const Operand & operand)3494   void sxtb(EncodingSize size, Register rd, const Operand& operand) {
3495     sxtb(al, size, rd, operand);
3496   }
3497 
3498   void sxtb16(Condition cond, Register rd, const Operand& operand);
sxtb16(Register rd,const Operand & operand)3499   void sxtb16(Register rd, const Operand& operand) { sxtb16(al, rd, operand); }
3500 
3501   void sxth(Condition cond,
3502             EncodingSize size,
3503             Register rd,
3504             const Operand& operand);
sxth(Register rd,const Operand & operand)3505   void sxth(Register rd, const Operand& operand) {
3506     sxth(al, Best, rd, operand);
3507   }
sxth(Condition cond,Register rd,const Operand & operand)3508   void sxth(Condition cond, Register rd, const Operand& operand) {
3509     sxth(cond, Best, rd, operand);
3510   }
sxth(EncodingSize size,Register rd,const Operand & operand)3511   void sxth(EncodingSize size, Register rd, const Operand& operand) {
3512     sxth(al, size, rd, operand);
3513   }
3514 
3515   void tbb(Condition cond, Register rn, Register rm);
tbb(Register rn,Register rm)3516   void tbb(Register rn, Register rm) { tbb(al, rn, rm); }
3517 
3518   void tbh(Condition cond, Register rn, Register rm);
tbh(Register rn,Register rm)3519   void tbh(Register rn, Register rm) { tbh(al, rn, rm); }
3520 
3521   void teq(Condition cond, Register rn, const Operand& operand);
teq(Register rn,const Operand & operand)3522   void teq(Register rn, const Operand& operand) { teq(al, rn, operand); }
3523 
3524   void tst(Condition cond,
3525            EncodingSize size,
3526            Register rn,
3527            const Operand& operand);
tst(Register rn,const Operand & operand)3528   void tst(Register rn, const Operand& operand) { tst(al, Best, rn, operand); }
tst(Condition cond,Register rn,const Operand & operand)3529   void tst(Condition cond, Register rn, const Operand& operand) {
3530     tst(cond, Best, rn, operand);
3531   }
tst(EncodingSize size,Register rn,const Operand & operand)3532   void tst(EncodingSize size, Register rn, const Operand& operand) {
3533     tst(al, size, rn, operand);
3534   }
3535 
3536   void uadd16(Condition cond, Register rd, Register rn, Register rm);
uadd16(Register rd,Register rn,Register rm)3537   void uadd16(Register rd, Register rn, Register rm) { uadd16(al, rd, rn, rm); }
3538 
3539   void uadd8(Condition cond, Register rd, Register rn, Register rm);
uadd8(Register rd,Register rn,Register rm)3540   void uadd8(Register rd, Register rn, Register rm) { uadd8(al, rd, rn, rm); }
3541 
3542   void uasx(Condition cond, Register rd, Register rn, Register rm);
uasx(Register rd,Register rn,Register rm)3543   void uasx(Register rd, Register rn, Register rm) { uasx(al, rd, rn, rm); }
3544 
3545   void ubfx(Condition cond,
3546             Register rd,
3547             Register rn,
3548             uint32_t lsb,
3549             const Operand& operand);
ubfx(Register rd,Register rn,uint32_t lsb,const Operand & operand)3550   void ubfx(Register rd, Register rn, uint32_t lsb, const Operand& operand) {
3551     ubfx(al, rd, rn, lsb, operand);
3552   }
3553 
3554   void udf(Condition cond, EncodingSize size, uint32_t imm);
udf(uint32_t imm)3555   void udf(uint32_t imm) { udf(al, Best, imm); }
udf(Condition cond,uint32_t imm)3556   void udf(Condition cond, uint32_t imm) { udf(cond, Best, imm); }
udf(EncodingSize size,uint32_t imm)3557   void udf(EncodingSize size, uint32_t imm) { udf(al, size, imm); }
3558 
3559   void udiv(Condition cond, Register rd, Register rn, Register rm);
udiv(Register rd,Register rn,Register rm)3560   void udiv(Register rd, Register rn, Register rm) { udiv(al, rd, rn, rm); }
3561 
3562   void uhadd16(Condition cond, Register rd, Register rn, Register rm);
uhadd16(Register rd,Register rn,Register rm)3563   void uhadd16(Register rd, Register rn, Register rm) {
3564     uhadd16(al, rd, rn, rm);
3565   }
3566 
3567   void uhadd8(Condition cond, Register rd, Register rn, Register rm);
uhadd8(Register rd,Register rn,Register rm)3568   void uhadd8(Register rd, Register rn, Register rm) { uhadd8(al, rd, rn, rm); }
3569 
3570   void uhasx(Condition cond, Register rd, Register rn, Register rm);
uhasx(Register rd,Register rn,Register rm)3571   void uhasx(Register rd, Register rn, Register rm) { uhasx(al, rd, rn, rm); }
3572 
3573   void uhsax(Condition cond, Register rd, Register rn, Register rm);
uhsax(Register rd,Register rn,Register rm)3574   void uhsax(Register rd, Register rn, Register rm) { uhsax(al, rd, rn, rm); }
3575 
3576   void uhsub16(Condition cond, Register rd, Register rn, Register rm);
uhsub16(Register rd,Register rn,Register rm)3577   void uhsub16(Register rd, Register rn, Register rm) {
3578     uhsub16(al, rd, rn, rm);
3579   }
3580 
3581   void uhsub8(Condition cond, Register rd, Register rn, Register rm);
uhsub8(Register rd,Register rn,Register rm)3582   void uhsub8(Register rd, Register rn, Register rm) { uhsub8(al, rd, rn, rm); }
3583 
3584   void umaal(
3585       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
umaal(Register rdlo,Register rdhi,Register rn,Register rm)3586   void umaal(Register rdlo, Register rdhi, Register rn, Register rm) {
3587     umaal(al, rdlo, rdhi, rn, rm);
3588   }
3589 
3590   void umlal(
3591       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
umlal(Register rdlo,Register rdhi,Register rn,Register rm)3592   void umlal(Register rdlo, Register rdhi, Register rn, Register rm) {
3593     umlal(al, rdlo, rdhi, rn, rm);
3594   }
3595 
3596   void umlals(
3597       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
umlals(Register rdlo,Register rdhi,Register rn,Register rm)3598   void umlals(Register rdlo, Register rdhi, Register rn, Register rm) {
3599     umlals(al, rdlo, rdhi, rn, rm);
3600   }
3601 
3602   void umull(
3603       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
umull(Register rdlo,Register rdhi,Register rn,Register rm)3604   void umull(Register rdlo, Register rdhi, Register rn, Register rm) {
3605     umull(al, rdlo, rdhi, rn, rm);
3606   }
3607 
3608   void umulls(
3609       Condition cond, Register rdlo, Register rdhi, Register rn, Register rm);
umulls(Register rdlo,Register rdhi,Register rn,Register rm)3610   void umulls(Register rdlo, Register rdhi, Register rn, Register rm) {
3611     umulls(al, rdlo, rdhi, rn, rm);
3612   }
3613 
3614   void uqadd16(Condition cond, Register rd, Register rn, Register rm);
uqadd16(Register rd,Register rn,Register rm)3615   void uqadd16(Register rd, Register rn, Register rm) {
3616     uqadd16(al, rd, rn, rm);
3617   }
3618 
3619   void uqadd8(Condition cond, Register rd, Register rn, Register rm);
uqadd8(Register rd,Register rn,Register rm)3620   void uqadd8(Register rd, Register rn, Register rm) { uqadd8(al, rd, rn, rm); }
3621 
3622   void uqasx(Condition cond, Register rd, Register rn, Register rm);
uqasx(Register rd,Register rn,Register rm)3623   void uqasx(Register rd, Register rn, Register rm) { uqasx(al, rd, rn, rm); }
3624 
3625   void uqsax(Condition cond, Register rd, Register rn, Register rm);
uqsax(Register rd,Register rn,Register rm)3626   void uqsax(Register rd, Register rn, Register rm) { uqsax(al, rd, rn, rm); }
3627 
3628   void uqsub16(Condition cond, Register rd, Register rn, Register rm);
uqsub16(Register rd,Register rn,Register rm)3629   void uqsub16(Register rd, Register rn, Register rm) {
3630     uqsub16(al, rd, rn, rm);
3631   }
3632 
3633   void uqsub8(Condition cond, Register rd, Register rn, Register rm);
uqsub8(Register rd,Register rn,Register rm)3634   void uqsub8(Register rd, Register rn, Register rm) { uqsub8(al, rd, rn, rm); }
3635 
3636   void usad8(Condition cond, Register rd, Register rn, Register rm);
usad8(Register rd,Register rn,Register rm)3637   void usad8(Register rd, Register rn, Register rm) { usad8(al, rd, rn, rm); }
3638 
3639   void usada8(
3640       Condition cond, Register rd, Register rn, Register rm, Register ra);
usada8(Register rd,Register rn,Register rm,Register ra)3641   void usada8(Register rd, Register rn, Register rm, Register ra) {
3642     usada8(al, rd, rn, rm, ra);
3643   }
3644 
3645   void usat(Condition cond, Register rd, uint32_t imm, const Operand& operand);
usat(Register rd,uint32_t imm,const Operand & operand)3646   void usat(Register rd, uint32_t imm, const Operand& operand) {
3647     usat(al, rd, imm, operand);
3648   }
3649 
3650   void usat16(Condition cond, Register rd, uint32_t imm, Register rn);
usat16(Register rd,uint32_t imm,Register rn)3651   void usat16(Register rd, uint32_t imm, Register rn) {
3652     usat16(al, rd, imm, rn);
3653   }
3654 
3655   void usax(Condition cond, Register rd, Register rn, Register rm);
usax(Register rd,Register rn,Register rm)3656   void usax(Register rd, Register rn, Register rm) { usax(al, rd, rn, rm); }
3657 
3658   void usub16(Condition cond, Register rd, Register rn, Register rm);
usub16(Register rd,Register rn,Register rm)3659   void usub16(Register rd, Register rn, Register rm) { usub16(al, rd, rn, rm); }
3660 
3661   void usub8(Condition cond, Register rd, Register rn, Register rm);
usub8(Register rd,Register rn,Register rm)3662   void usub8(Register rd, Register rn, Register rm) { usub8(al, rd, rn, rm); }
3663 
3664   void uxtab(Condition cond, Register rd, Register rn, const Operand& operand);
uxtab(Register rd,Register rn,const Operand & operand)3665   void uxtab(Register rd, Register rn, const Operand& operand) {
3666     uxtab(al, rd, rn, operand);
3667   }
3668 
3669   void uxtab16(Condition cond,
3670                Register rd,
3671                Register rn,
3672                const Operand& operand);
uxtab16(Register rd,Register rn,const Operand & operand)3673   void uxtab16(Register rd, Register rn, const Operand& operand) {
3674     uxtab16(al, rd, rn, operand);
3675   }
3676 
3677   void uxtah(Condition cond, Register rd, Register rn, const Operand& operand);
uxtah(Register rd,Register rn,const Operand & operand)3678   void uxtah(Register rd, Register rn, const Operand& operand) {
3679     uxtah(al, rd, rn, operand);
3680   }
3681 
3682   void uxtb(Condition cond,
3683             EncodingSize size,
3684             Register rd,
3685             const Operand& operand);
uxtb(Register rd,const Operand & operand)3686   void uxtb(Register rd, const Operand& operand) {
3687     uxtb(al, Best, rd, operand);
3688   }
uxtb(Condition cond,Register rd,const Operand & operand)3689   void uxtb(Condition cond, Register rd, const Operand& operand) {
3690     uxtb(cond, Best, rd, operand);
3691   }
uxtb(EncodingSize size,Register rd,const Operand & operand)3692   void uxtb(EncodingSize size, Register rd, const Operand& operand) {
3693     uxtb(al, size, rd, operand);
3694   }
3695 
3696   void uxtb16(Condition cond, Register rd, const Operand& operand);
uxtb16(Register rd,const Operand & operand)3697   void uxtb16(Register rd, const Operand& operand) { uxtb16(al, rd, operand); }
3698 
3699   void uxth(Condition cond,
3700             EncodingSize size,
3701             Register rd,
3702             const Operand& operand);
uxth(Register rd,const Operand & operand)3703   void uxth(Register rd, const Operand& operand) {
3704     uxth(al, Best, rd, operand);
3705   }
uxth(Condition cond,Register rd,const Operand & operand)3706   void uxth(Condition cond, Register rd, const Operand& operand) {
3707     uxth(cond, Best, rd, operand);
3708   }
uxth(EncodingSize size,Register rd,const Operand & operand)3709   void uxth(EncodingSize size, Register rd, const Operand& operand) {
3710     uxth(al, size, rd, operand);
3711   }
3712 
3713   void vaba(
3714       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vaba(DataType dt,DRegister rd,DRegister rn,DRegister rm)3715   void vaba(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3716     vaba(al, dt, rd, rn, rm);
3717   }
3718 
3719   void vaba(
3720       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vaba(DataType dt,QRegister rd,QRegister rn,QRegister rm)3721   void vaba(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3722     vaba(al, dt, rd, rn, rm);
3723   }
3724 
3725   void vabal(
3726       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vabal(DataType dt,QRegister rd,DRegister rn,DRegister rm)3727   void vabal(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
3728     vabal(al, dt, rd, rn, rm);
3729   }
3730 
3731   void vabd(
3732       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vabd(DataType dt,DRegister rd,DRegister rn,DRegister rm)3733   void vabd(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3734     vabd(al, dt, rd, rn, rm);
3735   }
3736 
3737   void vabd(
3738       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vabd(DataType dt,QRegister rd,QRegister rn,QRegister rm)3739   void vabd(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3740     vabd(al, dt, rd, rn, rm);
3741   }
3742 
3743   void vabdl(
3744       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vabdl(DataType dt,QRegister rd,DRegister rn,DRegister rm)3745   void vabdl(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
3746     vabdl(al, dt, rd, rn, rm);
3747   }
3748 
3749   void vabs(Condition cond, DataType dt, DRegister rd, DRegister rm);
vabs(DataType dt,DRegister rd,DRegister rm)3750   void vabs(DataType dt, DRegister rd, DRegister rm) { vabs(al, dt, rd, rm); }
3751 
3752   void vabs(Condition cond, DataType dt, QRegister rd, QRegister rm);
vabs(DataType dt,QRegister rd,QRegister rm)3753   void vabs(DataType dt, QRegister rd, QRegister rm) { vabs(al, dt, rd, rm); }
3754 
3755   void vabs(Condition cond, DataType dt, SRegister rd, SRegister rm);
vabs(DataType dt,SRegister rd,SRegister rm)3756   void vabs(DataType dt, SRegister rd, SRegister rm) { vabs(al, dt, rd, rm); }
3757 
3758   void vacge(
3759       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vacge(DataType dt,DRegister rd,DRegister rn,DRegister rm)3760   void vacge(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3761     vacge(al, dt, rd, rn, rm);
3762   }
3763 
3764   void vacge(
3765       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vacge(DataType dt,QRegister rd,QRegister rn,QRegister rm)3766   void vacge(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3767     vacge(al, dt, rd, rn, rm);
3768   }
3769 
3770   void vacgt(
3771       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vacgt(DataType dt,DRegister rd,DRegister rn,DRegister rm)3772   void vacgt(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3773     vacgt(al, dt, rd, rn, rm);
3774   }
3775 
3776   void vacgt(
3777       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vacgt(DataType dt,QRegister rd,QRegister rn,QRegister rm)3778   void vacgt(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3779     vacgt(al, dt, rd, rn, rm);
3780   }
3781 
3782   void vacle(
3783       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vacle(DataType dt,DRegister rd,DRegister rn,DRegister rm)3784   void vacle(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3785     vacle(al, dt, rd, rn, rm);
3786   }
3787 
3788   void vacle(
3789       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vacle(DataType dt,QRegister rd,QRegister rn,QRegister rm)3790   void vacle(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3791     vacle(al, dt, rd, rn, rm);
3792   }
3793 
3794   void vaclt(
3795       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vaclt(DataType dt,DRegister rd,DRegister rn,DRegister rm)3796   void vaclt(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3797     vaclt(al, dt, rd, rn, rm);
3798   }
3799 
3800   void vaclt(
3801       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vaclt(DataType dt,QRegister rd,QRegister rn,QRegister rm)3802   void vaclt(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3803     vaclt(al, dt, rd, rn, rm);
3804   }
3805 
3806   void vadd(
3807       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vadd(DataType dt,DRegister rd,DRegister rn,DRegister rm)3808   void vadd(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3809     vadd(al, dt, rd, rn, rm);
3810   }
3811 
3812   void vadd(
3813       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vadd(DataType dt,QRegister rd,QRegister rn,QRegister rm)3814   void vadd(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3815     vadd(al, dt, rd, rn, rm);
3816   }
3817 
3818   void vadd(
3819       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vadd(DataType dt,SRegister rd,SRegister rn,SRegister rm)3820   void vadd(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
3821     vadd(al, dt, rd, rn, rm);
3822   }
3823 
3824   void vaddhn(
3825       Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm);
vaddhn(DataType dt,DRegister rd,QRegister rn,QRegister rm)3826   void vaddhn(DataType dt, DRegister rd, QRegister rn, QRegister rm) {
3827     vaddhn(al, dt, rd, rn, rm);
3828   }
3829 
3830   void vaddl(
3831       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vaddl(DataType dt,QRegister rd,DRegister rn,DRegister rm)3832   void vaddl(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
3833     vaddl(al, dt, rd, rn, rm);
3834   }
3835 
3836   void vaddw(
3837       Condition cond, DataType dt, QRegister rd, QRegister rn, DRegister rm);
vaddw(DataType dt,QRegister rd,QRegister rn,DRegister rm)3838   void vaddw(DataType dt, QRegister rd, QRegister rn, DRegister rm) {
3839     vaddw(al, dt, rd, rn, rm);
3840   }
3841 
3842   void vand(Condition cond,
3843             DataType dt,
3844             DRegister rd,
3845             DRegister rn,
3846             const DOperand& operand);
vand(DataType dt,DRegister rd,DRegister rn,const DOperand & operand)3847   void vand(DataType dt, DRegister rd, DRegister rn, const DOperand& operand) {
3848     vand(al, dt, rd, rn, operand);
3849   }
3850 
3851   void vand(Condition cond,
3852             DataType dt,
3853             QRegister rd,
3854             QRegister rn,
3855             const QOperand& operand);
vand(DataType dt,QRegister rd,QRegister rn,const QOperand & operand)3856   void vand(DataType dt, QRegister rd, QRegister rn, const QOperand& operand) {
3857     vand(al, dt, rd, rn, operand);
3858   }
3859 
3860   void vbic(Condition cond,
3861             DataType dt,
3862             DRegister rd,
3863             DRegister rn,
3864             const DOperand& operand);
vbic(DataType dt,DRegister rd,DRegister rn,const DOperand & operand)3865   void vbic(DataType dt, DRegister rd, DRegister rn, const DOperand& operand) {
3866     vbic(al, dt, rd, rn, operand);
3867   }
3868 
3869   void vbic(Condition cond,
3870             DataType dt,
3871             QRegister rd,
3872             QRegister rn,
3873             const QOperand& operand);
vbic(DataType dt,QRegister rd,QRegister rn,const QOperand & operand)3874   void vbic(DataType dt, QRegister rd, QRegister rn, const QOperand& operand) {
3875     vbic(al, dt, rd, rn, operand);
3876   }
3877 
3878   void vbif(
3879       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vbif(DataType dt,DRegister rd,DRegister rn,DRegister rm)3880   void vbif(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3881     vbif(al, dt, rd, rn, rm);
3882   }
vbif(DRegister rd,DRegister rn,DRegister rm)3883   void vbif(DRegister rd, DRegister rn, DRegister rm) {
3884     vbif(al, kDataTypeValueNone, rd, rn, rm);
3885   }
vbif(Condition cond,DRegister rd,DRegister rn,DRegister rm)3886   void vbif(Condition cond, DRegister rd, DRegister rn, DRegister rm) {
3887     vbif(cond, kDataTypeValueNone, rd, rn, rm);
3888   }
3889 
3890   void vbif(
3891       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vbif(DataType dt,QRegister rd,QRegister rn,QRegister rm)3892   void vbif(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3893     vbif(al, dt, rd, rn, rm);
3894   }
vbif(QRegister rd,QRegister rn,QRegister rm)3895   void vbif(QRegister rd, QRegister rn, QRegister rm) {
3896     vbif(al, kDataTypeValueNone, rd, rn, rm);
3897   }
vbif(Condition cond,QRegister rd,QRegister rn,QRegister rm)3898   void vbif(Condition cond, QRegister rd, QRegister rn, QRegister rm) {
3899     vbif(cond, kDataTypeValueNone, rd, rn, rm);
3900   }
3901 
3902   void vbit(
3903       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vbit(DataType dt,DRegister rd,DRegister rn,DRegister rm)3904   void vbit(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3905     vbit(al, dt, rd, rn, rm);
3906   }
vbit(DRegister rd,DRegister rn,DRegister rm)3907   void vbit(DRegister rd, DRegister rn, DRegister rm) {
3908     vbit(al, kDataTypeValueNone, rd, rn, rm);
3909   }
vbit(Condition cond,DRegister rd,DRegister rn,DRegister rm)3910   void vbit(Condition cond, DRegister rd, DRegister rn, DRegister rm) {
3911     vbit(cond, kDataTypeValueNone, rd, rn, rm);
3912   }
3913 
3914   void vbit(
3915       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vbit(DataType dt,QRegister rd,QRegister rn,QRegister rm)3916   void vbit(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3917     vbit(al, dt, rd, rn, rm);
3918   }
vbit(QRegister rd,QRegister rn,QRegister rm)3919   void vbit(QRegister rd, QRegister rn, QRegister rm) {
3920     vbit(al, kDataTypeValueNone, rd, rn, rm);
3921   }
vbit(Condition cond,QRegister rd,QRegister rn,QRegister rm)3922   void vbit(Condition cond, QRegister rd, QRegister rn, QRegister rm) {
3923     vbit(cond, kDataTypeValueNone, rd, rn, rm);
3924   }
3925 
3926   void vbsl(
3927       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vbsl(DataType dt,DRegister rd,DRegister rn,DRegister rm)3928   void vbsl(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3929     vbsl(al, dt, rd, rn, rm);
3930   }
vbsl(DRegister rd,DRegister rn,DRegister rm)3931   void vbsl(DRegister rd, DRegister rn, DRegister rm) {
3932     vbsl(al, kDataTypeValueNone, rd, rn, rm);
3933   }
vbsl(Condition cond,DRegister rd,DRegister rn,DRegister rm)3934   void vbsl(Condition cond, DRegister rd, DRegister rn, DRegister rm) {
3935     vbsl(cond, kDataTypeValueNone, rd, rn, rm);
3936   }
3937 
3938   void vbsl(
3939       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vbsl(DataType dt,QRegister rd,QRegister rn,QRegister rm)3940   void vbsl(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3941     vbsl(al, dt, rd, rn, rm);
3942   }
vbsl(QRegister rd,QRegister rn,QRegister rm)3943   void vbsl(QRegister rd, QRegister rn, QRegister rm) {
3944     vbsl(al, kDataTypeValueNone, rd, rn, rm);
3945   }
vbsl(Condition cond,QRegister rd,QRegister rn,QRegister rm)3946   void vbsl(Condition cond, QRegister rd, QRegister rn, QRegister rm) {
3947     vbsl(cond, kDataTypeValueNone, rd, rn, rm);
3948   }
3949 
3950   void vceq(Condition cond,
3951             DataType dt,
3952             DRegister rd,
3953             DRegister rm,
3954             const DOperand& operand);
vceq(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)3955   void vceq(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
3956     vceq(al, dt, rd, rm, operand);
3957   }
3958 
3959   void vceq(Condition cond,
3960             DataType dt,
3961             QRegister rd,
3962             QRegister rm,
3963             const QOperand& operand);
vceq(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)3964   void vceq(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
3965     vceq(al, dt, rd, rm, operand);
3966   }
3967 
3968   void vceq(
3969       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vceq(DataType dt,DRegister rd,DRegister rn,DRegister rm)3970   void vceq(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
3971     vceq(al, dt, rd, rn, rm);
3972   }
3973 
3974   void vceq(
3975       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vceq(DataType dt,QRegister rd,QRegister rn,QRegister rm)3976   void vceq(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
3977     vceq(al, dt, rd, rn, rm);
3978   }
3979 
3980   void vcge(Condition cond,
3981             DataType dt,
3982             DRegister rd,
3983             DRegister rm,
3984             const DOperand& operand);
vcge(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)3985   void vcge(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
3986     vcge(al, dt, rd, rm, operand);
3987   }
3988 
3989   void vcge(Condition cond,
3990             DataType dt,
3991             QRegister rd,
3992             QRegister rm,
3993             const QOperand& operand);
vcge(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)3994   void vcge(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
3995     vcge(al, dt, rd, rm, operand);
3996   }
3997 
3998   void vcge(
3999       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vcge(DataType dt,DRegister rd,DRegister rn,DRegister rm)4000   void vcge(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4001     vcge(al, dt, rd, rn, rm);
4002   }
4003 
4004   void vcge(
4005       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vcge(DataType dt,QRegister rd,QRegister rn,QRegister rm)4006   void vcge(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4007     vcge(al, dt, rd, rn, rm);
4008   }
4009 
4010   void vcgt(Condition cond,
4011             DataType dt,
4012             DRegister rd,
4013             DRegister rm,
4014             const DOperand& operand);
vcgt(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)4015   void vcgt(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
4016     vcgt(al, dt, rd, rm, operand);
4017   }
4018 
4019   void vcgt(Condition cond,
4020             DataType dt,
4021             QRegister rd,
4022             QRegister rm,
4023             const QOperand& operand);
vcgt(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)4024   void vcgt(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
4025     vcgt(al, dt, rd, rm, operand);
4026   }
4027 
4028   void vcgt(
4029       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vcgt(DataType dt,DRegister rd,DRegister rn,DRegister rm)4030   void vcgt(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4031     vcgt(al, dt, rd, rn, rm);
4032   }
4033 
4034   void vcgt(
4035       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vcgt(DataType dt,QRegister rd,QRegister rn,QRegister rm)4036   void vcgt(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4037     vcgt(al, dt, rd, rn, rm);
4038   }
4039 
4040   void vcle(Condition cond,
4041             DataType dt,
4042             DRegister rd,
4043             DRegister rm,
4044             const DOperand& operand);
vcle(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)4045   void vcle(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
4046     vcle(al, dt, rd, rm, operand);
4047   }
4048 
4049   void vcle(Condition cond,
4050             DataType dt,
4051             QRegister rd,
4052             QRegister rm,
4053             const QOperand& operand);
vcle(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)4054   void vcle(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
4055     vcle(al, dt, rd, rm, operand);
4056   }
4057 
4058   void vcle(
4059       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vcle(DataType dt,DRegister rd,DRegister rn,DRegister rm)4060   void vcle(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4061     vcle(al, dt, rd, rn, rm);
4062   }
4063 
4064   void vcle(
4065       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vcle(DataType dt,QRegister rd,QRegister rn,QRegister rm)4066   void vcle(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4067     vcle(al, dt, rd, rn, rm);
4068   }
4069 
4070   void vcls(Condition cond, DataType dt, DRegister rd, DRegister rm);
vcls(DataType dt,DRegister rd,DRegister rm)4071   void vcls(DataType dt, DRegister rd, DRegister rm) { vcls(al, dt, rd, rm); }
4072 
4073   void vcls(Condition cond, DataType dt, QRegister rd, QRegister rm);
vcls(DataType dt,QRegister rd,QRegister rm)4074   void vcls(DataType dt, QRegister rd, QRegister rm) { vcls(al, dt, rd, rm); }
4075 
4076   void vclt(Condition cond,
4077             DataType dt,
4078             DRegister rd,
4079             DRegister rm,
4080             const DOperand& operand);
vclt(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)4081   void vclt(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
4082     vclt(al, dt, rd, rm, operand);
4083   }
4084 
4085   void vclt(Condition cond,
4086             DataType dt,
4087             QRegister rd,
4088             QRegister rm,
4089             const QOperand& operand);
vclt(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)4090   void vclt(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
4091     vclt(al, dt, rd, rm, operand);
4092   }
4093 
4094   void vclt(
4095       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vclt(DataType dt,DRegister rd,DRegister rn,DRegister rm)4096   void vclt(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4097     vclt(al, dt, rd, rn, rm);
4098   }
4099 
4100   void vclt(
4101       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vclt(DataType dt,QRegister rd,QRegister rn,QRegister rm)4102   void vclt(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4103     vclt(al, dt, rd, rn, rm);
4104   }
4105 
4106   void vclz(Condition cond, DataType dt, DRegister rd, DRegister rm);
vclz(DataType dt,DRegister rd,DRegister rm)4107   void vclz(DataType dt, DRegister rd, DRegister rm) { vclz(al, dt, rd, rm); }
4108 
4109   void vclz(Condition cond, DataType dt, QRegister rd, QRegister rm);
vclz(DataType dt,QRegister rd,QRegister rm)4110   void vclz(DataType dt, QRegister rd, QRegister rm) { vclz(al, dt, rd, rm); }
4111 
4112   void vcmp(Condition cond, DataType dt, SRegister rd, SRegister rm);
vcmp(DataType dt,SRegister rd,SRegister rm)4113   void vcmp(DataType dt, SRegister rd, SRegister rm) { vcmp(al, dt, rd, rm); }
4114 
4115   void vcmp(Condition cond, DataType dt, DRegister rd, DRegister rm);
vcmp(DataType dt,DRegister rd,DRegister rm)4116   void vcmp(DataType dt, DRegister rd, DRegister rm) { vcmp(al, dt, rd, rm); }
4117 
4118   void vcmp(Condition cond, DataType dt, SRegister rd, double imm);
vcmp(DataType dt,SRegister rd,double imm)4119   void vcmp(DataType dt, SRegister rd, double imm) { vcmp(al, dt, rd, imm); }
4120 
4121   void vcmp(Condition cond, DataType dt, DRegister rd, double imm);
vcmp(DataType dt,DRegister rd,double imm)4122   void vcmp(DataType dt, DRegister rd, double imm) { vcmp(al, dt, rd, imm); }
4123 
4124   void vcmpe(Condition cond, DataType dt, SRegister rd, SRegister rm);
vcmpe(DataType dt,SRegister rd,SRegister rm)4125   void vcmpe(DataType dt, SRegister rd, SRegister rm) { vcmpe(al, dt, rd, rm); }
4126 
4127   void vcmpe(Condition cond, DataType dt, DRegister rd, DRegister rm);
vcmpe(DataType dt,DRegister rd,DRegister rm)4128   void vcmpe(DataType dt, DRegister rd, DRegister rm) { vcmpe(al, dt, rd, rm); }
4129 
4130   void vcmpe(Condition cond, DataType dt, SRegister rd, double imm);
vcmpe(DataType dt,SRegister rd,double imm)4131   void vcmpe(DataType dt, SRegister rd, double imm) { vcmpe(al, dt, rd, imm); }
4132 
4133   void vcmpe(Condition cond, DataType dt, DRegister rd, double imm);
vcmpe(DataType dt,DRegister rd,double imm)4134   void vcmpe(DataType dt, DRegister rd, double imm) { vcmpe(al, dt, rd, imm); }
4135 
4136   void vcnt(Condition cond, DataType dt, DRegister rd, DRegister rm);
vcnt(DataType dt,DRegister rd,DRegister rm)4137   void vcnt(DataType dt, DRegister rd, DRegister rm) { vcnt(al, dt, rd, rm); }
4138 
4139   void vcnt(Condition cond, DataType dt, QRegister rd, QRegister rm);
vcnt(DataType dt,QRegister rd,QRegister rm)4140   void vcnt(DataType dt, QRegister rd, QRegister rm) { vcnt(al, dt, rd, rm); }
4141 
4142   void vcvt(
4143       Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm);
vcvt(DataType dt1,DataType dt2,DRegister rd,SRegister rm)4144   void vcvt(DataType dt1, DataType dt2, DRegister rd, SRegister rm) {
4145     vcvt(al, dt1, dt2, rd, rm);
4146   }
4147 
4148   void vcvt(
4149       Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm);
vcvt(DataType dt1,DataType dt2,SRegister rd,DRegister rm)4150   void vcvt(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
4151     vcvt(al, dt1, dt2, rd, rm);
4152   }
4153 
4154   void vcvt(Condition cond,
4155             DataType dt1,
4156             DataType dt2,
4157             DRegister rd,
4158             DRegister rm,
4159             int32_t fbits);
vcvt(DataType dt1,DataType dt2,DRegister rd,DRegister rm,int32_t fbits)4160   void vcvt(
4161       DataType dt1, DataType dt2, DRegister rd, DRegister rm, int32_t fbits) {
4162     vcvt(al, dt1, dt2, rd, rm, fbits);
4163   }
4164 
4165   void vcvt(Condition cond,
4166             DataType dt1,
4167             DataType dt2,
4168             QRegister rd,
4169             QRegister rm,
4170             int32_t fbits);
vcvt(DataType dt1,DataType dt2,QRegister rd,QRegister rm,int32_t fbits)4171   void vcvt(
4172       DataType dt1, DataType dt2, QRegister rd, QRegister rm, int32_t fbits) {
4173     vcvt(al, dt1, dt2, rd, rm, fbits);
4174   }
4175 
4176   void vcvt(Condition cond,
4177             DataType dt1,
4178             DataType dt2,
4179             SRegister rd,
4180             SRegister rm,
4181             int32_t fbits);
vcvt(DataType dt1,DataType dt2,SRegister rd,SRegister rm,int32_t fbits)4182   void vcvt(
4183       DataType dt1, DataType dt2, SRegister rd, SRegister rm, int32_t fbits) {
4184     vcvt(al, dt1, dt2, rd, rm, fbits);
4185   }
4186 
4187   void vcvt(
4188       Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm);
vcvt(DataType dt1,DataType dt2,DRegister rd,DRegister rm)4189   void vcvt(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
4190     vcvt(al, dt1, dt2, rd, rm);
4191   }
4192 
4193   void vcvt(
4194       Condition cond, DataType dt1, DataType dt2, QRegister rd, QRegister rm);
vcvt(DataType dt1,DataType dt2,QRegister rd,QRegister rm)4195   void vcvt(DataType dt1, DataType dt2, QRegister rd, QRegister rm) {
4196     vcvt(al, dt1, dt2, rd, rm);
4197   }
4198 
4199   void vcvt(
4200       Condition cond, DataType dt1, DataType dt2, DRegister rd, QRegister rm);
vcvt(DataType dt1,DataType dt2,DRegister rd,QRegister rm)4201   void vcvt(DataType dt1, DataType dt2, DRegister rd, QRegister rm) {
4202     vcvt(al, dt1, dt2, rd, rm);
4203   }
4204 
4205   void vcvt(
4206       Condition cond, DataType dt1, DataType dt2, QRegister rd, DRegister rm);
vcvt(DataType dt1,DataType dt2,QRegister rd,DRegister rm)4207   void vcvt(DataType dt1, DataType dt2, QRegister rd, DRegister rm) {
4208     vcvt(al, dt1, dt2, rd, rm);
4209   }
4210 
4211   void vcvt(
4212       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vcvt(DataType dt1,DataType dt2,SRegister rd,SRegister rm)4213   void vcvt(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
4214     vcvt(al, dt1, dt2, rd, rm);
4215   }
4216 
4217   void vcvta(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
4218 
4219   void vcvta(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
4220 
4221   void vcvta(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
4222 
4223   void vcvta(DataType dt1, DataType dt2, SRegister rd, DRegister rm);
4224 
4225   void vcvtb(
4226       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vcvtb(DataType dt1,DataType dt2,SRegister rd,SRegister rm)4227   void vcvtb(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
4228     vcvtb(al, dt1, dt2, rd, rm);
4229   }
4230 
4231   void vcvtb(
4232       Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm);
vcvtb(DataType dt1,DataType dt2,DRegister rd,SRegister rm)4233   void vcvtb(DataType dt1, DataType dt2, DRegister rd, SRegister rm) {
4234     vcvtb(al, dt1, dt2, rd, rm);
4235   }
4236 
4237   void vcvtb(
4238       Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm);
vcvtb(DataType dt1,DataType dt2,SRegister rd,DRegister rm)4239   void vcvtb(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
4240     vcvtb(al, dt1, dt2, rd, rm);
4241   }
4242 
4243   void vcvtm(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
4244 
4245   void vcvtm(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
4246 
4247   void vcvtm(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
4248 
4249   void vcvtm(DataType dt1, DataType dt2, SRegister rd, DRegister rm);
4250 
4251   void vcvtn(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
4252 
4253   void vcvtn(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
4254 
4255   void vcvtn(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
4256 
4257   void vcvtn(DataType dt1, DataType dt2, SRegister rd, DRegister rm);
4258 
4259   void vcvtp(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
4260 
4261   void vcvtp(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
4262 
4263   void vcvtp(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
4264 
4265   void vcvtp(DataType dt1, DataType dt2, SRegister rd, DRegister rm);
4266 
4267   void vcvtr(
4268       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vcvtr(DataType dt1,DataType dt2,SRegister rd,SRegister rm)4269   void vcvtr(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
4270     vcvtr(al, dt1, dt2, rd, rm);
4271   }
4272 
4273   void vcvtr(
4274       Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm);
vcvtr(DataType dt1,DataType dt2,SRegister rd,DRegister rm)4275   void vcvtr(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
4276     vcvtr(al, dt1, dt2, rd, rm);
4277   }
4278 
4279   void vcvtt(
4280       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vcvtt(DataType dt1,DataType dt2,SRegister rd,SRegister rm)4281   void vcvtt(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
4282     vcvtt(al, dt1, dt2, rd, rm);
4283   }
4284 
4285   void vcvtt(
4286       Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm);
vcvtt(DataType dt1,DataType dt2,DRegister rd,SRegister rm)4287   void vcvtt(DataType dt1, DataType dt2, DRegister rd, SRegister rm) {
4288     vcvtt(al, dt1, dt2, rd, rm);
4289   }
4290 
4291   void vcvtt(
4292       Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm);
vcvtt(DataType dt1,DataType dt2,SRegister rd,DRegister rm)4293   void vcvtt(DataType dt1, DataType dt2, SRegister rd, DRegister rm) {
4294     vcvtt(al, dt1, dt2, rd, rm);
4295   }
4296 
4297   void vdiv(
4298       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vdiv(DataType dt,SRegister rd,SRegister rn,SRegister rm)4299   void vdiv(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4300     vdiv(al, dt, rd, rn, rm);
4301   }
4302 
4303   void vdiv(
4304       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vdiv(DataType dt,DRegister rd,DRegister rn,DRegister rm)4305   void vdiv(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4306     vdiv(al, dt, rd, rn, rm);
4307   }
4308 
4309   void vdup(Condition cond, DataType dt, QRegister rd, Register rt);
vdup(DataType dt,QRegister rd,Register rt)4310   void vdup(DataType dt, QRegister rd, Register rt) { vdup(al, dt, rd, rt); }
4311 
4312   void vdup(Condition cond, DataType dt, DRegister rd, Register rt);
vdup(DataType dt,DRegister rd,Register rt)4313   void vdup(DataType dt, DRegister rd, Register rt) { vdup(al, dt, rd, rt); }
4314 
4315   void vdup(Condition cond, DataType dt, DRegister rd, DRegisterLane rm);
vdup(DataType dt,DRegister rd,DRegisterLane rm)4316   void vdup(DataType dt, DRegister rd, DRegisterLane rm) {
4317     vdup(al, dt, rd, rm);
4318   }
4319 
4320   void vdup(Condition cond, DataType dt, QRegister rd, DRegisterLane rm);
vdup(DataType dt,QRegister rd,DRegisterLane rm)4321   void vdup(DataType dt, QRegister rd, DRegisterLane rm) {
4322     vdup(al, dt, rd, rm);
4323   }
4324 
4325   void veor(
4326       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
veor(DataType dt,DRegister rd,DRegister rn,DRegister rm)4327   void veor(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4328     veor(al, dt, rd, rn, rm);
4329   }
veor(DRegister rd,DRegister rn,DRegister rm)4330   void veor(DRegister rd, DRegister rn, DRegister rm) {
4331     veor(al, kDataTypeValueNone, rd, rn, rm);
4332   }
veor(Condition cond,DRegister rd,DRegister rn,DRegister rm)4333   void veor(Condition cond, DRegister rd, DRegister rn, DRegister rm) {
4334     veor(cond, kDataTypeValueNone, rd, rn, rm);
4335   }
4336 
4337   void veor(
4338       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
veor(DataType dt,QRegister rd,QRegister rn,QRegister rm)4339   void veor(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4340     veor(al, dt, rd, rn, rm);
4341   }
veor(QRegister rd,QRegister rn,QRegister rm)4342   void veor(QRegister rd, QRegister rn, QRegister rm) {
4343     veor(al, kDataTypeValueNone, rd, rn, rm);
4344   }
veor(Condition cond,QRegister rd,QRegister rn,QRegister rm)4345   void veor(Condition cond, QRegister rd, QRegister rn, QRegister rm) {
4346     veor(cond, kDataTypeValueNone, rd, rn, rm);
4347   }
4348 
4349   void vext(Condition cond,
4350             DataType dt,
4351             DRegister rd,
4352             DRegister rn,
4353             DRegister rm,
4354             const DOperand& operand);
vext(DataType dt,DRegister rd,DRegister rn,DRegister rm,const DOperand & operand)4355   void vext(DataType dt,
4356             DRegister rd,
4357             DRegister rn,
4358             DRegister rm,
4359             const DOperand& operand) {
4360     vext(al, dt, rd, rn, rm, operand);
4361   }
4362 
4363   void vext(Condition cond,
4364             DataType dt,
4365             QRegister rd,
4366             QRegister rn,
4367             QRegister rm,
4368             const QOperand& operand);
vext(DataType dt,QRegister rd,QRegister rn,QRegister rm,const QOperand & operand)4369   void vext(DataType dt,
4370             QRegister rd,
4371             QRegister rn,
4372             QRegister rm,
4373             const QOperand& operand) {
4374     vext(al, dt, rd, rn, rm, operand);
4375   }
4376 
4377   void vfma(
4378       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vfma(DataType dt,DRegister rd,DRegister rn,DRegister rm)4379   void vfma(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4380     vfma(al, dt, rd, rn, rm);
4381   }
4382 
4383   void vfma(
4384       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vfma(DataType dt,QRegister rd,QRegister rn,QRegister rm)4385   void vfma(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4386     vfma(al, dt, rd, rn, rm);
4387   }
4388 
4389   void vfma(
4390       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vfma(DataType dt,SRegister rd,SRegister rn,SRegister rm)4391   void vfma(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4392     vfma(al, dt, rd, rn, rm);
4393   }
4394 
4395   void vfms(
4396       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vfms(DataType dt,DRegister rd,DRegister rn,DRegister rm)4397   void vfms(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4398     vfms(al, dt, rd, rn, rm);
4399   }
4400 
4401   void vfms(
4402       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vfms(DataType dt,QRegister rd,QRegister rn,QRegister rm)4403   void vfms(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4404     vfms(al, dt, rd, rn, rm);
4405   }
4406 
4407   void vfms(
4408       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vfms(DataType dt,SRegister rd,SRegister rn,SRegister rm)4409   void vfms(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4410     vfms(al, dt, rd, rn, rm);
4411   }
4412 
4413   void vfnma(
4414       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vfnma(DataType dt,SRegister rd,SRegister rn,SRegister rm)4415   void vfnma(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4416     vfnma(al, dt, rd, rn, rm);
4417   }
4418 
4419   void vfnma(
4420       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vfnma(DataType dt,DRegister rd,DRegister rn,DRegister rm)4421   void vfnma(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4422     vfnma(al, dt, rd, rn, rm);
4423   }
4424 
4425   void vfnms(
4426       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vfnms(DataType dt,SRegister rd,SRegister rn,SRegister rm)4427   void vfnms(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4428     vfnms(al, dt, rd, rn, rm);
4429   }
4430 
4431   void vfnms(
4432       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vfnms(DataType dt,DRegister rd,DRegister rn,DRegister rm)4433   void vfnms(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4434     vfnms(al, dt, rd, rn, rm);
4435   }
4436 
4437   void vhadd(
4438       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vhadd(DataType dt,DRegister rd,DRegister rn,DRegister rm)4439   void vhadd(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4440     vhadd(al, dt, rd, rn, rm);
4441   }
4442 
4443   void vhadd(
4444       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vhadd(DataType dt,QRegister rd,QRegister rn,QRegister rm)4445   void vhadd(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4446     vhadd(al, dt, rd, rn, rm);
4447   }
4448 
4449   void vhsub(
4450       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vhsub(DataType dt,DRegister rd,DRegister rn,DRegister rm)4451   void vhsub(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4452     vhsub(al, dt, rd, rn, rm);
4453   }
4454 
4455   void vhsub(
4456       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vhsub(DataType dt,QRegister rd,QRegister rn,QRegister rm)4457   void vhsub(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4458     vhsub(al, dt, rd, rn, rm);
4459   }
4460 
4461   void vld1(Condition cond,
4462             DataType dt,
4463             const NeonRegisterList& nreglist,
4464             const AlignedMemOperand& operand);
vld1(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)4465   void vld1(DataType dt,
4466             const NeonRegisterList& nreglist,
4467             const AlignedMemOperand& operand) {
4468     vld1(al, dt, nreglist, operand);
4469   }
4470 
4471   void vld2(Condition cond,
4472             DataType dt,
4473             const NeonRegisterList& nreglist,
4474             const AlignedMemOperand& operand);
vld2(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)4475   void vld2(DataType dt,
4476             const NeonRegisterList& nreglist,
4477             const AlignedMemOperand& operand) {
4478     vld2(al, dt, nreglist, operand);
4479   }
4480 
4481   void vld3(Condition cond,
4482             DataType dt,
4483             const NeonRegisterList& nreglist,
4484             const AlignedMemOperand& operand);
vld3(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)4485   void vld3(DataType dt,
4486             const NeonRegisterList& nreglist,
4487             const AlignedMemOperand& operand) {
4488     vld3(al, dt, nreglist, operand);
4489   }
4490 
4491   void vld3(Condition cond,
4492             DataType dt,
4493             const NeonRegisterList& nreglist,
4494             const MemOperand& operand);
vld3(DataType dt,const NeonRegisterList & nreglist,const MemOperand & operand)4495   void vld3(DataType dt,
4496             const NeonRegisterList& nreglist,
4497             const MemOperand& operand) {
4498     vld3(al, dt, nreglist, operand);
4499   }
4500 
4501   void vld4(Condition cond,
4502             DataType dt,
4503             const NeonRegisterList& nreglist,
4504             const AlignedMemOperand& operand);
vld4(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)4505   void vld4(DataType dt,
4506             const NeonRegisterList& nreglist,
4507             const AlignedMemOperand& operand) {
4508     vld4(al, dt, nreglist, operand);
4509   }
4510 
4511   void vldm(Condition cond,
4512             DataType dt,
4513             Register rn,
4514             WriteBack write_back,
4515             DRegisterList dreglist);
vldm(DataType dt,Register rn,WriteBack write_back,DRegisterList dreglist)4516   void vldm(DataType dt,
4517             Register rn,
4518             WriteBack write_back,
4519             DRegisterList dreglist) {
4520     vldm(al, dt, rn, write_back, dreglist);
4521   }
vldm(Register rn,WriteBack write_back,DRegisterList dreglist)4522   void vldm(Register rn, WriteBack write_back, DRegisterList dreglist) {
4523     vldm(al, kDataTypeValueNone, rn, write_back, dreglist);
4524   }
vldm(Condition cond,Register rn,WriteBack write_back,DRegisterList dreglist)4525   void vldm(Condition cond,
4526             Register rn,
4527             WriteBack write_back,
4528             DRegisterList dreglist) {
4529     vldm(cond, kDataTypeValueNone, rn, write_back, dreglist);
4530   }
4531 
4532   void vldm(Condition cond,
4533             DataType dt,
4534             Register rn,
4535             WriteBack write_back,
4536             SRegisterList sreglist);
vldm(DataType dt,Register rn,WriteBack write_back,SRegisterList sreglist)4537   void vldm(DataType dt,
4538             Register rn,
4539             WriteBack write_back,
4540             SRegisterList sreglist) {
4541     vldm(al, dt, rn, write_back, sreglist);
4542   }
vldm(Register rn,WriteBack write_back,SRegisterList sreglist)4543   void vldm(Register rn, WriteBack write_back, SRegisterList sreglist) {
4544     vldm(al, kDataTypeValueNone, rn, write_back, sreglist);
4545   }
vldm(Condition cond,Register rn,WriteBack write_back,SRegisterList sreglist)4546   void vldm(Condition cond,
4547             Register rn,
4548             WriteBack write_back,
4549             SRegisterList sreglist) {
4550     vldm(cond, kDataTypeValueNone, rn, write_back, sreglist);
4551   }
4552 
4553   void vldmdb(Condition cond,
4554               DataType dt,
4555               Register rn,
4556               WriteBack write_back,
4557               DRegisterList dreglist);
vldmdb(DataType dt,Register rn,WriteBack write_back,DRegisterList dreglist)4558   void vldmdb(DataType dt,
4559               Register rn,
4560               WriteBack write_back,
4561               DRegisterList dreglist) {
4562     vldmdb(al, dt, rn, write_back, dreglist);
4563   }
vldmdb(Register rn,WriteBack write_back,DRegisterList dreglist)4564   void vldmdb(Register rn, WriteBack write_back, DRegisterList dreglist) {
4565     vldmdb(al, kDataTypeValueNone, rn, write_back, dreglist);
4566   }
vldmdb(Condition cond,Register rn,WriteBack write_back,DRegisterList dreglist)4567   void vldmdb(Condition cond,
4568               Register rn,
4569               WriteBack write_back,
4570               DRegisterList dreglist) {
4571     vldmdb(cond, kDataTypeValueNone, rn, write_back, dreglist);
4572   }
4573 
4574   void vldmdb(Condition cond,
4575               DataType dt,
4576               Register rn,
4577               WriteBack write_back,
4578               SRegisterList sreglist);
vldmdb(DataType dt,Register rn,WriteBack write_back,SRegisterList sreglist)4579   void vldmdb(DataType dt,
4580               Register rn,
4581               WriteBack write_back,
4582               SRegisterList sreglist) {
4583     vldmdb(al, dt, rn, write_back, sreglist);
4584   }
vldmdb(Register rn,WriteBack write_back,SRegisterList sreglist)4585   void vldmdb(Register rn, WriteBack write_back, SRegisterList sreglist) {
4586     vldmdb(al, kDataTypeValueNone, rn, write_back, sreglist);
4587   }
vldmdb(Condition cond,Register rn,WriteBack write_back,SRegisterList sreglist)4588   void vldmdb(Condition cond,
4589               Register rn,
4590               WriteBack write_back,
4591               SRegisterList sreglist) {
4592     vldmdb(cond, kDataTypeValueNone, rn, write_back, sreglist);
4593   }
4594 
4595   void vldmia(Condition cond,
4596               DataType dt,
4597               Register rn,
4598               WriteBack write_back,
4599               DRegisterList dreglist);
vldmia(DataType dt,Register rn,WriteBack write_back,DRegisterList dreglist)4600   void vldmia(DataType dt,
4601               Register rn,
4602               WriteBack write_back,
4603               DRegisterList dreglist) {
4604     vldmia(al, dt, rn, write_back, dreglist);
4605   }
vldmia(Register rn,WriteBack write_back,DRegisterList dreglist)4606   void vldmia(Register rn, WriteBack write_back, DRegisterList dreglist) {
4607     vldmia(al, kDataTypeValueNone, rn, write_back, dreglist);
4608   }
vldmia(Condition cond,Register rn,WriteBack write_back,DRegisterList dreglist)4609   void vldmia(Condition cond,
4610               Register rn,
4611               WriteBack write_back,
4612               DRegisterList dreglist) {
4613     vldmia(cond, kDataTypeValueNone, rn, write_back, dreglist);
4614   }
4615 
4616   void vldmia(Condition cond,
4617               DataType dt,
4618               Register rn,
4619               WriteBack write_back,
4620               SRegisterList sreglist);
vldmia(DataType dt,Register rn,WriteBack write_back,SRegisterList sreglist)4621   void vldmia(DataType dt,
4622               Register rn,
4623               WriteBack write_back,
4624               SRegisterList sreglist) {
4625     vldmia(al, dt, rn, write_back, sreglist);
4626   }
vldmia(Register rn,WriteBack write_back,SRegisterList sreglist)4627   void vldmia(Register rn, WriteBack write_back, SRegisterList sreglist) {
4628     vldmia(al, kDataTypeValueNone, rn, write_back, sreglist);
4629   }
vldmia(Condition cond,Register rn,WriteBack write_back,SRegisterList sreglist)4630   void vldmia(Condition cond,
4631               Register rn,
4632               WriteBack write_back,
4633               SRegisterList sreglist) {
4634     vldmia(cond, kDataTypeValueNone, rn, write_back, sreglist);
4635   }
4636 
4637   void vldr(Condition cond, DataType dt, DRegister rd, Label* label);
vldr(DataType dt,DRegister rd,Label * label)4638   void vldr(DataType dt, DRegister rd, Label* label) {
4639     vldr(al, dt, rd, label);
4640   }
vldr(DRegister rd,Label * label)4641   void vldr(DRegister rd, Label* label) { vldr(al, Untyped64, rd, label); }
vldr(Condition cond,DRegister rd,Label * label)4642   void vldr(Condition cond, DRegister rd, Label* label) {
4643     vldr(cond, Untyped64, rd, label);
4644   }
4645 
4646   void vldr(Condition cond,
4647             DataType dt,
4648             DRegister rd,
4649             const MemOperand& operand);
vldr(DataType dt,DRegister rd,const MemOperand & operand)4650   void vldr(DataType dt, DRegister rd, const MemOperand& operand) {
4651     vldr(al, dt, rd, operand);
4652   }
vldr(DRegister rd,const MemOperand & operand)4653   void vldr(DRegister rd, const MemOperand& operand) {
4654     vldr(al, Untyped64, rd, operand);
4655   }
vldr(Condition cond,DRegister rd,const MemOperand & operand)4656   void vldr(Condition cond, DRegister rd, const MemOperand& operand) {
4657     vldr(cond, Untyped64, rd, operand);
4658   }
4659 
4660   void vldr(Condition cond, DataType dt, SRegister rd, Label* label);
vldr(DataType dt,SRegister rd,Label * label)4661   void vldr(DataType dt, SRegister rd, Label* label) {
4662     vldr(al, dt, rd, label);
4663   }
vldr(SRegister rd,Label * label)4664   void vldr(SRegister rd, Label* label) { vldr(al, Untyped32, rd, label); }
vldr(Condition cond,SRegister rd,Label * label)4665   void vldr(Condition cond, SRegister rd, Label* label) {
4666     vldr(cond, Untyped32, rd, label);
4667   }
4668 
4669   void vldr(Condition cond,
4670             DataType dt,
4671             SRegister rd,
4672             const MemOperand& operand);
vldr(DataType dt,SRegister rd,const MemOperand & operand)4673   void vldr(DataType dt, SRegister rd, const MemOperand& operand) {
4674     vldr(al, dt, rd, operand);
4675   }
vldr(SRegister rd,const MemOperand & operand)4676   void vldr(SRegister rd, const MemOperand& operand) {
4677     vldr(al, Untyped32, rd, operand);
4678   }
vldr(Condition cond,SRegister rd,const MemOperand & operand)4679   void vldr(Condition cond, SRegister rd, const MemOperand& operand) {
4680     vldr(cond, Untyped32, rd, operand);
4681   }
4682 
4683   void vmax(
4684       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vmax(DataType dt,DRegister rd,DRegister rn,DRegister rm)4685   void vmax(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4686     vmax(al, dt, rd, rn, rm);
4687   }
4688 
4689   void vmax(
4690       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vmax(DataType dt,QRegister rd,QRegister rn,QRegister rm)4691   void vmax(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4692     vmax(al, dt, rd, rn, rm);
4693   }
4694 
4695   void vmaxnm(DataType dt, DRegister rd, DRegister rn, DRegister rm);
4696 
4697   void vmaxnm(DataType dt, QRegister rd, QRegister rn, QRegister rm);
4698 
4699   void vmaxnm(DataType dt, SRegister rd, SRegister rn, SRegister rm);
4700 
4701   void vmin(
4702       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vmin(DataType dt,DRegister rd,DRegister rn,DRegister rm)4703   void vmin(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4704     vmin(al, dt, rd, rn, rm);
4705   }
4706 
4707   void vmin(
4708       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vmin(DataType dt,QRegister rd,QRegister rn,QRegister rm)4709   void vmin(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4710     vmin(al, dt, rd, rn, rm);
4711   }
4712 
4713   void vminnm(DataType dt, DRegister rd, DRegister rn, DRegister rm);
4714 
4715   void vminnm(DataType dt, QRegister rd, QRegister rn, QRegister rm);
4716 
4717   void vminnm(DataType dt, SRegister rd, SRegister rn, SRegister rm);
4718 
4719   void vmla(Condition cond,
4720             DataType dt,
4721             DRegister rd,
4722             DRegister rn,
4723             DRegisterLane rm);
vmla(DataType dt,DRegister rd,DRegister rn,DRegisterLane rm)4724   void vmla(DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
4725     vmla(al, dt, rd, rn, rm);
4726   }
4727 
4728   void vmla(Condition cond,
4729             DataType dt,
4730             QRegister rd,
4731             QRegister rn,
4732             DRegisterLane rm);
vmla(DataType dt,QRegister rd,QRegister rn,DRegisterLane rm)4733   void vmla(DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
4734     vmla(al, dt, rd, rn, rm);
4735   }
4736 
4737   void vmla(
4738       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vmla(DataType dt,DRegister rd,DRegister rn,DRegister rm)4739   void vmla(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4740     vmla(al, dt, rd, rn, rm);
4741   }
4742 
4743   void vmla(
4744       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vmla(DataType dt,QRegister rd,QRegister rn,QRegister rm)4745   void vmla(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4746     vmla(al, dt, rd, rn, rm);
4747   }
4748 
4749   void vmla(
4750       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vmla(DataType dt,SRegister rd,SRegister rn,SRegister rm)4751   void vmla(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4752     vmla(al, dt, rd, rn, rm);
4753   }
4754 
4755   void vmlal(Condition cond,
4756              DataType dt,
4757              QRegister rd,
4758              DRegister rn,
4759              DRegisterLane rm);
vmlal(DataType dt,QRegister rd,DRegister rn,DRegisterLane rm)4760   void vmlal(DataType dt, QRegister rd, DRegister rn, DRegisterLane rm) {
4761     vmlal(al, dt, rd, rn, rm);
4762   }
4763 
4764   void vmlal(
4765       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vmlal(DataType dt,QRegister rd,DRegister rn,DRegister rm)4766   void vmlal(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
4767     vmlal(al, dt, rd, rn, rm);
4768   }
4769 
4770   void vmls(Condition cond,
4771             DataType dt,
4772             DRegister rd,
4773             DRegister rn,
4774             DRegisterLane rm);
vmls(DataType dt,DRegister rd,DRegister rn,DRegisterLane rm)4775   void vmls(DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
4776     vmls(al, dt, rd, rn, rm);
4777   }
4778 
4779   void vmls(Condition cond,
4780             DataType dt,
4781             QRegister rd,
4782             QRegister rn,
4783             DRegisterLane rm);
vmls(DataType dt,QRegister rd,QRegister rn,DRegisterLane rm)4784   void vmls(DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
4785     vmls(al, dt, rd, rn, rm);
4786   }
4787 
4788   void vmls(
4789       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vmls(DataType dt,DRegister rd,DRegister rn,DRegister rm)4790   void vmls(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4791     vmls(al, dt, rd, rn, rm);
4792   }
4793 
4794   void vmls(
4795       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vmls(DataType dt,QRegister rd,QRegister rn,QRegister rm)4796   void vmls(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4797     vmls(al, dt, rd, rn, rm);
4798   }
4799 
4800   void vmls(
4801       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vmls(DataType dt,SRegister rd,SRegister rn,SRegister rm)4802   void vmls(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4803     vmls(al, dt, rd, rn, rm);
4804   }
4805 
4806   void vmlsl(Condition cond,
4807              DataType dt,
4808              QRegister rd,
4809              DRegister rn,
4810              DRegisterLane rm);
vmlsl(DataType dt,QRegister rd,DRegister rn,DRegisterLane rm)4811   void vmlsl(DataType dt, QRegister rd, DRegister rn, DRegisterLane rm) {
4812     vmlsl(al, dt, rd, rn, rm);
4813   }
4814 
4815   void vmlsl(
4816       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vmlsl(DataType dt,QRegister rd,DRegister rn,DRegister rm)4817   void vmlsl(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
4818     vmlsl(al, dt, rd, rn, rm);
4819   }
4820 
4821   void vmov(Condition cond, Register rt, SRegister rn);
vmov(Register rt,SRegister rn)4822   void vmov(Register rt, SRegister rn) { vmov(al, rt, rn); }
4823 
4824   void vmov(Condition cond, SRegister rn, Register rt);
vmov(SRegister rn,Register rt)4825   void vmov(SRegister rn, Register rt) { vmov(al, rn, rt); }
4826 
4827   void vmov(Condition cond, Register rt, Register rt2, DRegister rm);
vmov(Register rt,Register rt2,DRegister rm)4828   void vmov(Register rt, Register rt2, DRegister rm) { vmov(al, rt, rt2, rm); }
4829 
4830   void vmov(Condition cond, DRegister rm, Register rt, Register rt2);
vmov(DRegister rm,Register rt,Register rt2)4831   void vmov(DRegister rm, Register rt, Register rt2) { vmov(al, rm, rt, rt2); }
4832 
4833   void vmov(
4834       Condition cond, Register rt, Register rt2, SRegister rm, SRegister rm1);
vmov(Register rt,Register rt2,SRegister rm,SRegister rm1)4835   void vmov(Register rt, Register rt2, SRegister rm, SRegister rm1) {
4836     vmov(al, rt, rt2, rm, rm1);
4837   }
4838 
4839   void vmov(
4840       Condition cond, SRegister rm, SRegister rm1, Register rt, Register rt2);
vmov(SRegister rm,SRegister rm1,Register rt,Register rt2)4841   void vmov(SRegister rm, SRegister rm1, Register rt, Register rt2) {
4842     vmov(al, rm, rm1, rt, rt2);
4843   }
4844 
4845   void vmov(Condition cond, DataType dt, DRegisterLane rd, Register rt);
vmov(DataType dt,DRegisterLane rd,Register rt)4846   void vmov(DataType dt, DRegisterLane rd, Register rt) {
4847     vmov(al, dt, rd, rt);
4848   }
vmov(DRegisterLane rd,Register rt)4849   void vmov(DRegisterLane rd, Register rt) {
4850     vmov(al, kDataTypeValueNone, rd, rt);
4851   }
vmov(Condition cond,DRegisterLane rd,Register rt)4852   void vmov(Condition cond, DRegisterLane rd, Register rt) {
4853     vmov(cond, kDataTypeValueNone, rd, rt);
4854   }
4855 
4856   void vmov(Condition cond, DataType dt, DRegister rd, const DOperand& operand);
vmov(DataType dt,DRegister rd,const DOperand & operand)4857   void vmov(DataType dt, DRegister rd, const DOperand& operand) {
4858     vmov(al, dt, rd, operand);
4859   }
4860 
4861   void vmov(Condition cond, DataType dt, QRegister rd, const QOperand& operand);
vmov(DataType dt,QRegister rd,const QOperand & operand)4862   void vmov(DataType dt, QRegister rd, const QOperand& operand) {
4863     vmov(al, dt, rd, operand);
4864   }
4865 
4866   void vmov(Condition cond, DataType dt, SRegister rd, const SOperand& operand);
vmov(DataType dt,SRegister rd,const SOperand & operand)4867   void vmov(DataType dt, SRegister rd, const SOperand& operand) {
4868     vmov(al, dt, rd, operand);
4869   }
4870 
4871   void vmov(Condition cond, DataType dt, Register rt, DRegisterLane rn);
vmov(DataType dt,Register rt,DRegisterLane rn)4872   void vmov(DataType dt, Register rt, DRegisterLane rn) {
4873     vmov(al, dt, rt, rn);
4874   }
vmov(Register rt,DRegisterLane rn)4875   void vmov(Register rt, DRegisterLane rn) {
4876     vmov(al, kDataTypeValueNone, rt, rn);
4877   }
vmov(Condition cond,Register rt,DRegisterLane rn)4878   void vmov(Condition cond, Register rt, DRegisterLane rn) {
4879     vmov(cond, kDataTypeValueNone, rt, rn);
4880   }
4881 
4882   void vmovl(Condition cond, DataType dt, QRegister rd, DRegister rm);
vmovl(DataType dt,QRegister rd,DRegister rm)4883   void vmovl(DataType dt, QRegister rd, DRegister rm) { vmovl(al, dt, rd, rm); }
4884 
4885   void vmovn(Condition cond, DataType dt, DRegister rd, QRegister rm);
vmovn(DataType dt,DRegister rd,QRegister rm)4886   void vmovn(DataType dt, DRegister rd, QRegister rm) { vmovn(al, dt, rd, rm); }
4887 
4888   void vmrs(Condition cond, RegisterOrAPSR_nzcv rt, SpecialFPRegister spec_reg);
vmrs(RegisterOrAPSR_nzcv rt,SpecialFPRegister spec_reg)4889   void vmrs(RegisterOrAPSR_nzcv rt, SpecialFPRegister spec_reg) {
4890     vmrs(al, rt, spec_reg);
4891   }
4892 
4893   void vmsr(Condition cond, SpecialFPRegister spec_reg, Register rt);
vmsr(SpecialFPRegister spec_reg,Register rt)4894   void vmsr(SpecialFPRegister spec_reg, Register rt) { vmsr(al, spec_reg, rt); }
4895 
4896   void vmul(Condition cond,
4897             DataType dt,
4898             DRegister rd,
4899             DRegister rn,
4900             DRegister dm,
4901             unsigned index);
vmul(DataType dt,DRegister rd,DRegister rn,DRegister dm,unsigned index)4902   void vmul(
4903       DataType dt, DRegister rd, DRegister rn, DRegister dm, unsigned index) {
4904     vmul(al, dt, rd, rn, dm, index);
4905   }
4906 
4907   void vmul(Condition cond,
4908             DataType dt,
4909             QRegister rd,
4910             QRegister rn,
4911             DRegister dm,
4912             unsigned index);
vmul(DataType dt,QRegister rd,QRegister rn,DRegister dm,unsigned index)4913   void vmul(
4914       DataType dt, QRegister rd, QRegister rn, DRegister dm, unsigned index) {
4915     vmul(al, dt, rd, rn, dm, index);
4916   }
4917 
4918   void vmul(
4919       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vmul(DataType dt,DRegister rd,DRegister rn,DRegister rm)4920   void vmul(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4921     vmul(al, dt, rd, rn, rm);
4922   }
4923 
4924   void vmul(
4925       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vmul(DataType dt,QRegister rd,QRegister rn,QRegister rm)4926   void vmul(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
4927     vmul(al, dt, rd, rn, rm);
4928   }
4929 
4930   void vmul(
4931       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vmul(DataType dt,SRegister rd,SRegister rn,SRegister rm)4932   void vmul(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4933     vmul(al, dt, rd, rn, rm);
4934   }
4935 
4936   void vmull(Condition cond,
4937              DataType dt,
4938              QRegister rd,
4939              DRegister rn,
4940              DRegister dm,
4941              unsigned index);
vmull(DataType dt,QRegister rd,DRegister rn,DRegister dm,unsigned index)4942   void vmull(
4943       DataType dt, QRegister rd, DRegister rn, DRegister dm, unsigned index) {
4944     vmull(al, dt, rd, rn, dm, index);
4945   }
4946 
4947   void vmull(
4948       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vmull(DataType dt,QRegister rd,DRegister rn,DRegister rm)4949   void vmull(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
4950     vmull(al, dt, rd, rn, rm);
4951   }
4952 
4953   void vmvn(Condition cond, DataType dt, DRegister rd, const DOperand& operand);
vmvn(DataType dt,DRegister rd,const DOperand & operand)4954   void vmvn(DataType dt, DRegister rd, const DOperand& operand) {
4955     vmvn(al, dt, rd, operand);
4956   }
4957 
4958   void vmvn(Condition cond, DataType dt, QRegister rd, const QOperand& operand);
vmvn(DataType dt,QRegister rd,const QOperand & operand)4959   void vmvn(DataType dt, QRegister rd, const QOperand& operand) {
4960     vmvn(al, dt, rd, operand);
4961   }
4962 
4963   void vneg(Condition cond, DataType dt, DRegister rd, DRegister rm);
vneg(DataType dt,DRegister rd,DRegister rm)4964   void vneg(DataType dt, DRegister rd, DRegister rm) { vneg(al, dt, rd, rm); }
4965 
4966   void vneg(Condition cond, DataType dt, QRegister rd, QRegister rm);
vneg(DataType dt,QRegister rd,QRegister rm)4967   void vneg(DataType dt, QRegister rd, QRegister rm) { vneg(al, dt, rd, rm); }
4968 
4969   void vneg(Condition cond, DataType dt, SRegister rd, SRegister rm);
vneg(DataType dt,SRegister rd,SRegister rm)4970   void vneg(DataType dt, SRegister rd, SRegister rm) { vneg(al, dt, rd, rm); }
4971 
4972   void vnmla(
4973       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vnmla(DataType dt,SRegister rd,SRegister rn,SRegister rm)4974   void vnmla(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4975     vnmla(al, dt, rd, rn, rm);
4976   }
4977 
4978   void vnmla(
4979       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vnmla(DataType dt,DRegister rd,DRegister rn,DRegister rm)4980   void vnmla(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4981     vnmla(al, dt, rd, rn, rm);
4982   }
4983 
4984   void vnmls(
4985       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vnmls(DataType dt,SRegister rd,SRegister rn,SRegister rm)4986   void vnmls(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4987     vnmls(al, dt, rd, rn, rm);
4988   }
4989 
4990   void vnmls(
4991       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vnmls(DataType dt,DRegister rd,DRegister rn,DRegister rm)4992   void vnmls(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
4993     vnmls(al, dt, rd, rn, rm);
4994   }
4995 
4996   void vnmul(
4997       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vnmul(DataType dt,SRegister rd,SRegister rn,SRegister rm)4998   void vnmul(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
4999     vnmul(al, dt, rd, rn, rm);
5000   }
5001 
5002   void vnmul(
5003       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vnmul(DataType dt,DRegister rd,DRegister rn,DRegister rm)5004   void vnmul(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5005     vnmul(al, dt, rd, rn, rm);
5006   }
5007 
5008   void vorn(Condition cond,
5009             DataType dt,
5010             DRegister rd,
5011             DRegister rn,
5012             const DOperand& operand);
vorn(DataType dt,DRegister rd,DRegister rn,const DOperand & operand)5013   void vorn(DataType dt, DRegister rd, DRegister rn, const DOperand& operand) {
5014     vorn(al, dt, rd, rn, operand);
5015   }
5016 
5017   void vorn(Condition cond,
5018             DataType dt,
5019             QRegister rd,
5020             QRegister rn,
5021             const QOperand& operand);
vorn(DataType dt,QRegister rd,QRegister rn,const QOperand & operand)5022   void vorn(DataType dt, QRegister rd, QRegister rn, const QOperand& operand) {
5023     vorn(al, dt, rd, rn, operand);
5024   }
5025 
5026   void vorr(Condition cond,
5027             DataType dt,
5028             DRegister rd,
5029             DRegister rn,
5030             const DOperand& operand);
vorr(DataType dt,DRegister rd,DRegister rn,const DOperand & operand)5031   void vorr(DataType dt, DRegister rd, DRegister rn, const DOperand& operand) {
5032     vorr(al, dt, rd, rn, operand);
5033   }
vorr(DRegister rd,DRegister rn,const DOperand & operand)5034   void vorr(DRegister rd, DRegister rn, const DOperand& operand) {
5035     vorr(al, kDataTypeValueNone, rd, rn, operand);
5036   }
vorr(Condition cond,DRegister rd,DRegister rn,const DOperand & operand)5037   void vorr(Condition cond,
5038             DRegister rd,
5039             DRegister rn,
5040             const DOperand& operand) {
5041     vorr(cond, kDataTypeValueNone, rd, rn, operand);
5042   }
5043 
5044   void vorr(Condition cond,
5045             DataType dt,
5046             QRegister rd,
5047             QRegister rn,
5048             const QOperand& operand);
vorr(DataType dt,QRegister rd,QRegister rn,const QOperand & operand)5049   void vorr(DataType dt, QRegister rd, QRegister rn, const QOperand& operand) {
5050     vorr(al, dt, rd, rn, operand);
5051   }
vorr(QRegister rd,QRegister rn,const QOperand & operand)5052   void vorr(QRegister rd, QRegister rn, const QOperand& operand) {
5053     vorr(al, kDataTypeValueNone, rd, rn, operand);
5054   }
vorr(Condition cond,QRegister rd,QRegister rn,const QOperand & operand)5055   void vorr(Condition cond,
5056             QRegister rd,
5057             QRegister rn,
5058             const QOperand& operand) {
5059     vorr(cond, kDataTypeValueNone, rd, rn, operand);
5060   }
5061 
5062   void vpadal(Condition cond, DataType dt, DRegister rd, DRegister rm);
vpadal(DataType dt,DRegister rd,DRegister rm)5063   void vpadal(DataType dt, DRegister rd, DRegister rm) {
5064     vpadal(al, dt, rd, rm);
5065   }
5066 
5067   void vpadal(Condition cond, DataType dt, QRegister rd, QRegister rm);
vpadal(DataType dt,QRegister rd,QRegister rm)5068   void vpadal(DataType dt, QRegister rd, QRegister rm) {
5069     vpadal(al, dt, rd, rm);
5070   }
5071 
5072   void vpadd(
5073       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vpadd(DataType dt,DRegister rd,DRegister rn,DRegister rm)5074   void vpadd(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5075     vpadd(al, dt, rd, rn, rm);
5076   }
5077 
5078   void vpaddl(Condition cond, DataType dt, DRegister rd, DRegister rm);
vpaddl(DataType dt,DRegister rd,DRegister rm)5079   void vpaddl(DataType dt, DRegister rd, DRegister rm) {
5080     vpaddl(al, dt, rd, rm);
5081   }
5082 
5083   void vpaddl(Condition cond, DataType dt, QRegister rd, QRegister rm);
vpaddl(DataType dt,QRegister rd,QRegister rm)5084   void vpaddl(DataType dt, QRegister rd, QRegister rm) {
5085     vpaddl(al, dt, rd, rm);
5086   }
5087 
5088   void vpmax(
5089       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vpmax(DataType dt,DRegister rd,DRegister rn,DRegister rm)5090   void vpmax(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5091     vpmax(al, dt, rd, rn, rm);
5092   }
5093 
5094   void vpmin(
5095       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vpmin(DataType dt,DRegister rd,DRegister rn,DRegister rm)5096   void vpmin(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5097     vpmin(al, dt, rd, rn, rm);
5098   }
5099 
5100   void vpop(Condition cond, DataType dt, DRegisterList dreglist);
vpop(DataType dt,DRegisterList dreglist)5101   void vpop(DataType dt, DRegisterList dreglist) { vpop(al, dt, dreglist); }
vpop(DRegisterList dreglist)5102   void vpop(DRegisterList dreglist) { vpop(al, kDataTypeValueNone, dreglist); }
vpop(Condition cond,DRegisterList dreglist)5103   void vpop(Condition cond, DRegisterList dreglist) {
5104     vpop(cond, kDataTypeValueNone, dreglist);
5105   }
5106 
5107   void vpop(Condition cond, DataType dt, SRegisterList sreglist);
vpop(DataType dt,SRegisterList sreglist)5108   void vpop(DataType dt, SRegisterList sreglist) { vpop(al, dt, sreglist); }
vpop(SRegisterList sreglist)5109   void vpop(SRegisterList sreglist) { vpop(al, kDataTypeValueNone, sreglist); }
vpop(Condition cond,SRegisterList sreglist)5110   void vpop(Condition cond, SRegisterList sreglist) {
5111     vpop(cond, kDataTypeValueNone, sreglist);
5112   }
5113 
5114   void vpush(Condition cond, DataType dt, DRegisterList dreglist);
vpush(DataType dt,DRegisterList dreglist)5115   void vpush(DataType dt, DRegisterList dreglist) { vpush(al, dt, dreglist); }
vpush(DRegisterList dreglist)5116   void vpush(DRegisterList dreglist) {
5117     vpush(al, kDataTypeValueNone, dreglist);
5118   }
vpush(Condition cond,DRegisterList dreglist)5119   void vpush(Condition cond, DRegisterList dreglist) {
5120     vpush(cond, kDataTypeValueNone, dreglist);
5121   }
5122 
5123   void vpush(Condition cond, DataType dt, SRegisterList sreglist);
vpush(DataType dt,SRegisterList sreglist)5124   void vpush(DataType dt, SRegisterList sreglist) { vpush(al, dt, sreglist); }
vpush(SRegisterList sreglist)5125   void vpush(SRegisterList sreglist) {
5126     vpush(al, kDataTypeValueNone, sreglist);
5127   }
vpush(Condition cond,SRegisterList sreglist)5128   void vpush(Condition cond, SRegisterList sreglist) {
5129     vpush(cond, kDataTypeValueNone, sreglist);
5130   }
5131 
5132   void vqabs(Condition cond, DataType dt, DRegister rd, DRegister rm);
vqabs(DataType dt,DRegister rd,DRegister rm)5133   void vqabs(DataType dt, DRegister rd, DRegister rm) { vqabs(al, dt, rd, rm); }
5134 
5135   void vqabs(Condition cond, DataType dt, QRegister rd, QRegister rm);
vqabs(DataType dt,QRegister rd,QRegister rm)5136   void vqabs(DataType dt, QRegister rd, QRegister rm) { vqabs(al, dt, rd, rm); }
5137 
5138   void vqadd(
5139       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vqadd(DataType dt,DRegister rd,DRegister rn,DRegister rm)5140   void vqadd(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5141     vqadd(al, dt, rd, rn, rm);
5142   }
5143 
5144   void vqadd(
5145       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vqadd(DataType dt,QRegister rd,QRegister rn,QRegister rm)5146   void vqadd(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5147     vqadd(al, dt, rd, rn, rm);
5148   }
5149 
5150   void vqdmlal(
5151       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vqdmlal(DataType dt,QRegister rd,DRegister rn,DRegister rm)5152   void vqdmlal(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
5153     vqdmlal(al, dt, rd, rn, rm);
5154   }
5155 
5156   void vqdmlal(Condition cond,
5157                DataType dt,
5158                QRegister rd,
5159                DRegister rn,
5160                DRegister dm,
5161                unsigned index);
vqdmlal(DataType dt,QRegister rd,DRegister rn,DRegister dm,unsigned index)5162   void vqdmlal(
5163       DataType dt, QRegister rd, DRegister rn, DRegister dm, unsigned index) {
5164     vqdmlal(al, dt, rd, rn, dm, index);
5165   }
5166 
5167   void vqdmlsl(
5168       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vqdmlsl(DataType dt,QRegister rd,DRegister rn,DRegister rm)5169   void vqdmlsl(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
5170     vqdmlsl(al, dt, rd, rn, rm);
5171   }
5172 
5173   void vqdmlsl(Condition cond,
5174                DataType dt,
5175                QRegister rd,
5176                DRegister rn,
5177                DRegister dm,
5178                unsigned index);
vqdmlsl(DataType dt,QRegister rd,DRegister rn,DRegister dm,unsigned index)5179   void vqdmlsl(
5180       DataType dt, QRegister rd, DRegister rn, DRegister dm, unsigned index) {
5181     vqdmlsl(al, dt, rd, rn, dm, index);
5182   }
5183 
5184   void vqdmulh(
5185       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vqdmulh(DataType dt,DRegister rd,DRegister rn,DRegister rm)5186   void vqdmulh(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5187     vqdmulh(al, dt, rd, rn, rm);
5188   }
5189 
5190   void vqdmulh(
5191       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vqdmulh(DataType dt,QRegister rd,QRegister rn,QRegister rm)5192   void vqdmulh(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5193     vqdmulh(al, dt, rd, rn, rm);
5194   }
5195 
5196   void vqdmulh(Condition cond,
5197                DataType dt,
5198                DRegister rd,
5199                DRegister rn,
5200                DRegisterLane rm);
vqdmulh(DataType dt,DRegister rd,DRegister rn,DRegisterLane rm)5201   void vqdmulh(DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
5202     vqdmulh(al, dt, rd, rn, rm);
5203   }
5204 
5205   void vqdmulh(Condition cond,
5206                DataType dt,
5207                QRegister rd,
5208                QRegister rn,
5209                DRegisterLane rm);
vqdmulh(DataType dt,QRegister rd,QRegister rn,DRegisterLane rm)5210   void vqdmulh(DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
5211     vqdmulh(al, dt, rd, rn, rm);
5212   }
5213 
5214   void vqdmull(
5215       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vqdmull(DataType dt,QRegister rd,DRegister rn,DRegister rm)5216   void vqdmull(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
5217     vqdmull(al, dt, rd, rn, rm);
5218   }
5219 
5220   void vqdmull(Condition cond,
5221                DataType dt,
5222                QRegister rd,
5223                DRegister rn,
5224                DRegisterLane rm);
vqdmull(DataType dt,QRegister rd,DRegister rn,DRegisterLane rm)5225   void vqdmull(DataType dt, QRegister rd, DRegister rn, DRegisterLane rm) {
5226     vqdmull(al, dt, rd, rn, rm);
5227   }
5228 
5229   void vqmovn(Condition cond, DataType dt, DRegister rd, QRegister rm);
vqmovn(DataType dt,DRegister rd,QRegister rm)5230   void vqmovn(DataType dt, DRegister rd, QRegister rm) {
5231     vqmovn(al, dt, rd, rm);
5232   }
5233 
5234   void vqmovun(Condition cond, DataType dt, DRegister rd, QRegister rm);
vqmovun(DataType dt,DRegister rd,QRegister rm)5235   void vqmovun(DataType dt, DRegister rd, QRegister rm) {
5236     vqmovun(al, dt, rd, rm);
5237   }
5238 
5239   void vqneg(Condition cond, DataType dt, DRegister rd, DRegister rm);
vqneg(DataType dt,DRegister rd,DRegister rm)5240   void vqneg(DataType dt, DRegister rd, DRegister rm) { vqneg(al, dt, rd, rm); }
5241 
5242   void vqneg(Condition cond, DataType dt, QRegister rd, QRegister rm);
vqneg(DataType dt,QRegister rd,QRegister rm)5243   void vqneg(DataType dt, QRegister rd, QRegister rm) { vqneg(al, dt, rd, rm); }
5244 
5245   void vqrdmulh(
5246       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vqrdmulh(DataType dt,DRegister rd,DRegister rn,DRegister rm)5247   void vqrdmulh(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5248     vqrdmulh(al, dt, rd, rn, rm);
5249   }
5250 
5251   void vqrdmulh(
5252       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vqrdmulh(DataType dt,QRegister rd,QRegister rn,QRegister rm)5253   void vqrdmulh(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5254     vqrdmulh(al, dt, rd, rn, rm);
5255   }
5256 
5257   void vqrdmulh(Condition cond,
5258                 DataType dt,
5259                 DRegister rd,
5260                 DRegister rn,
5261                 DRegisterLane rm);
vqrdmulh(DataType dt,DRegister rd,DRegister rn,DRegisterLane rm)5262   void vqrdmulh(DataType dt, DRegister rd, DRegister rn, DRegisterLane rm) {
5263     vqrdmulh(al, dt, rd, rn, rm);
5264   }
5265 
5266   void vqrdmulh(Condition cond,
5267                 DataType dt,
5268                 QRegister rd,
5269                 QRegister rn,
5270                 DRegisterLane rm);
vqrdmulh(DataType dt,QRegister rd,QRegister rn,DRegisterLane rm)5271   void vqrdmulh(DataType dt, QRegister rd, QRegister rn, DRegisterLane rm) {
5272     vqrdmulh(al, dt, rd, rn, rm);
5273   }
5274 
5275   void vqrshl(
5276       Condition cond, DataType dt, DRegister rd, DRegister rm, DRegister rn);
vqrshl(DataType dt,DRegister rd,DRegister rm,DRegister rn)5277   void vqrshl(DataType dt, DRegister rd, DRegister rm, DRegister rn) {
5278     vqrshl(al, dt, rd, rm, rn);
5279   }
5280 
5281   void vqrshl(
5282       Condition cond, DataType dt, QRegister rd, QRegister rm, QRegister rn);
vqrshl(DataType dt,QRegister rd,QRegister rm,QRegister rn)5283   void vqrshl(DataType dt, QRegister rd, QRegister rm, QRegister rn) {
5284     vqrshl(al, dt, rd, rm, rn);
5285   }
5286 
5287   void vqrshrn(Condition cond,
5288                DataType dt,
5289                DRegister rd,
5290                QRegister rm,
5291                const QOperand& operand);
vqrshrn(DataType dt,DRegister rd,QRegister rm,const QOperand & operand)5292   void vqrshrn(DataType dt,
5293                DRegister rd,
5294                QRegister rm,
5295                const QOperand& operand) {
5296     vqrshrn(al, dt, rd, rm, operand);
5297   }
5298 
5299   void vqrshrun(Condition cond,
5300                 DataType dt,
5301                 DRegister rd,
5302                 QRegister rm,
5303                 const QOperand& operand);
vqrshrun(DataType dt,DRegister rd,QRegister rm,const QOperand & operand)5304   void vqrshrun(DataType dt,
5305                 DRegister rd,
5306                 QRegister rm,
5307                 const QOperand& operand) {
5308     vqrshrun(al, dt, rd, rm, operand);
5309   }
5310 
5311   void vqshl(Condition cond,
5312              DataType dt,
5313              DRegister rd,
5314              DRegister rm,
5315              const DOperand& operand);
vqshl(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5316   void vqshl(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5317     vqshl(al, dt, rd, rm, operand);
5318   }
5319 
5320   void vqshl(Condition cond,
5321              DataType dt,
5322              QRegister rd,
5323              QRegister rm,
5324              const QOperand& operand);
vqshl(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5325   void vqshl(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5326     vqshl(al, dt, rd, rm, operand);
5327   }
5328 
5329   void vqshlu(Condition cond,
5330               DataType dt,
5331               DRegister rd,
5332               DRegister rm,
5333               const DOperand& operand);
vqshlu(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5334   void vqshlu(DataType dt,
5335               DRegister rd,
5336               DRegister rm,
5337               const DOperand& operand) {
5338     vqshlu(al, dt, rd, rm, operand);
5339   }
5340 
5341   void vqshlu(Condition cond,
5342               DataType dt,
5343               QRegister rd,
5344               QRegister rm,
5345               const QOperand& operand);
vqshlu(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5346   void vqshlu(DataType dt,
5347               QRegister rd,
5348               QRegister rm,
5349               const QOperand& operand) {
5350     vqshlu(al, dt, rd, rm, operand);
5351   }
5352 
5353   void vqshrn(Condition cond,
5354               DataType dt,
5355               DRegister rd,
5356               QRegister rm,
5357               const QOperand& operand);
vqshrn(DataType dt,DRegister rd,QRegister rm,const QOperand & operand)5358   void vqshrn(DataType dt,
5359               DRegister rd,
5360               QRegister rm,
5361               const QOperand& operand) {
5362     vqshrn(al, dt, rd, rm, operand);
5363   }
5364 
5365   void vqshrun(Condition cond,
5366                DataType dt,
5367                DRegister rd,
5368                QRegister rm,
5369                const QOperand& operand);
vqshrun(DataType dt,DRegister rd,QRegister rm,const QOperand & operand)5370   void vqshrun(DataType dt,
5371                DRegister rd,
5372                QRegister rm,
5373                const QOperand& operand) {
5374     vqshrun(al, dt, rd, rm, operand);
5375   }
5376 
5377   void vqsub(
5378       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vqsub(DataType dt,DRegister rd,DRegister rn,DRegister rm)5379   void vqsub(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5380     vqsub(al, dt, rd, rn, rm);
5381   }
5382 
5383   void vqsub(
5384       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vqsub(DataType dt,QRegister rd,QRegister rn,QRegister rm)5385   void vqsub(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5386     vqsub(al, dt, rd, rn, rm);
5387   }
5388 
5389   void vraddhn(
5390       Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm);
vraddhn(DataType dt,DRegister rd,QRegister rn,QRegister rm)5391   void vraddhn(DataType dt, DRegister rd, QRegister rn, QRegister rm) {
5392     vraddhn(al, dt, rd, rn, rm);
5393   }
5394 
5395   void vrecpe(Condition cond, DataType dt, DRegister rd, DRegister rm);
vrecpe(DataType dt,DRegister rd,DRegister rm)5396   void vrecpe(DataType dt, DRegister rd, DRegister rm) {
5397     vrecpe(al, dt, rd, rm);
5398   }
5399 
5400   void vrecpe(Condition cond, DataType dt, QRegister rd, QRegister rm);
vrecpe(DataType dt,QRegister rd,QRegister rm)5401   void vrecpe(DataType dt, QRegister rd, QRegister rm) {
5402     vrecpe(al, dt, rd, rm);
5403   }
5404 
5405   void vrecps(
5406       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vrecps(DataType dt,DRegister rd,DRegister rn,DRegister rm)5407   void vrecps(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5408     vrecps(al, dt, rd, rn, rm);
5409   }
5410 
5411   void vrecps(
5412       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vrecps(DataType dt,QRegister rd,QRegister rn,QRegister rm)5413   void vrecps(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5414     vrecps(al, dt, rd, rn, rm);
5415   }
5416 
5417   void vrev16(Condition cond, DataType dt, DRegister rd, DRegister rm);
vrev16(DataType dt,DRegister rd,DRegister rm)5418   void vrev16(DataType dt, DRegister rd, DRegister rm) {
5419     vrev16(al, dt, rd, rm);
5420   }
5421 
5422   void vrev16(Condition cond, DataType dt, QRegister rd, QRegister rm);
vrev16(DataType dt,QRegister rd,QRegister rm)5423   void vrev16(DataType dt, QRegister rd, QRegister rm) {
5424     vrev16(al, dt, rd, rm);
5425   }
5426 
5427   void vrev32(Condition cond, DataType dt, DRegister rd, DRegister rm);
vrev32(DataType dt,DRegister rd,DRegister rm)5428   void vrev32(DataType dt, DRegister rd, DRegister rm) {
5429     vrev32(al, dt, rd, rm);
5430   }
5431 
5432   void vrev32(Condition cond, DataType dt, QRegister rd, QRegister rm);
vrev32(DataType dt,QRegister rd,QRegister rm)5433   void vrev32(DataType dt, QRegister rd, QRegister rm) {
5434     vrev32(al, dt, rd, rm);
5435   }
5436 
5437   void vrev64(Condition cond, DataType dt, DRegister rd, DRegister rm);
vrev64(DataType dt,DRegister rd,DRegister rm)5438   void vrev64(DataType dt, DRegister rd, DRegister rm) {
5439     vrev64(al, dt, rd, rm);
5440   }
5441 
5442   void vrev64(Condition cond, DataType dt, QRegister rd, QRegister rm);
vrev64(DataType dt,QRegister rd,QRegister rm)5443   void vrev64(DataType dt, QRegister rd, QRegister rm) {
5444     vrev64(al, dt, rd, rm);
5445   }
5446 
5447   void vrhadd(
5448       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vrhadd(DataType dt,DRegister rd,DRegister rn,DRegister rm)5449   void vrhadd(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5450     vrhadd(al, dt, rd, rn, rm);
5451   }
5452 
5453   void vrhadd(
5454       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vrhadd(DataType dt,QRegister rd,QRegister rn,QRegister rm)5455   void vrhadd(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5456     vrhadd(al, dt, rd, rn, rm);
5457   }
5458 
5459   void vrinta(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
5460 
5461   void vrinta(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
5462 
5463   void vrinta(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
5464 
5465   void vrintm(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
5466 
5467   void vrintm(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
5468 
5469   void vrintm(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
5470 
5471   void vrintn(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
5472 
5473   void vrintn(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
5474 
5475   void vrintn(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
5476 
5477   void vrintp(DataType dt1, DataType dt2, DRegister rd, DRegister rm);
5478 
5479   void vrintp(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
5480 
5481   void vrintp(DataType dt1, DataType dt2, SRegister rd, SRegister rm);
5482 
5483   void vrintr(
5484       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vrintr(DataType dt1,DataType dt2,SRegister rd,SRegister rm)5485   void vrintr(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
5486     vrintr(al, dt1, dt2, rd, rm);
5487   }
5488 
5489   void vrintr(
5490       Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm);
vrintr(DataType dt1,DataType dt2,DRegister rd,DRegister rm)5491   void vrintr(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
5492     vrintr(al, dt1, dt2, rd, rm);
5493   }
5494 
5495   void vrintx(
5496       Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm);
vrintx(DataType dt1,DataType dt2,DRegister rd,DRegister rm)5497   void vrintx(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
5498     vrintx(al, dt1, dt2, rd, rm);
5499   }
5500 
5501   void vrintx(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
5502 
5503   void vrintx(
5504       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vrintx(DataType dt1,DataType dt2,SRegister rd,SRegister rm)5505   void vrintx(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
5506     vrintx(al, dt1, dt2, rd, rm);
5507   }
5508 
5509   void vrintz(
5510       Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm);
vrintz(DataType dt1,DataType dt2,DRegister rd,DRegister rm)5511   void vrintz(DataType dt1, DataType dt2, DRegister rd, DRegister rm) {
5512     vrintz(al, dt1, dt2, rd, rm);
5513   }
5514 
5515   void vrintz(DataType dt1, DataType dt2, QRegister rd, QRegister rm);
5516 
5517   void vrintz(
5518       Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm);
vrintz(DataType dt1,DataType dt2,SRegister rd,SRegister rm)5519   void vrintz(DataType dt1, DataType dt2, SRegister rd, SRegister rm) {
5520     vrintz(al, dt1, dt2, rd, rm);
5521   }
5522 
5523   void vrshl(
5524       Condition cond, DataType dt, DRegister rd, DRegister rm, DRegister rn);
vrshl(DataType dt,DRegister rd,DRegister rm,DRegister rn)5525   void vrshl(DataType dt, DRegister rd, DRegister rm, DRegister rn) {
5526     vrshl(al, dt, rd, rm, rn);
5527   }
5528 
5529   void vrshl(
5530       Condition cond, DataType dt, QRegister rd, QRegister rm, QRegister rn);
vrshl(DataType dt,QRegister rd,QRegister rm,QRegister rn)5531   void vrshl(DataType dt, QRegister rd, QRegister rm, QRegister rn) {
5532     vrshl(al, dt, rd, rm, rn);
5533   }
5534 
5535   void vrshr(Condition cond,
5536              DataType dt,
5537              DRegister rd,
5538              DRegister rm,
5539              const DOperand& operand);
vrshr(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5540   void vrshr(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5541     vrshr(al, dt, rd, rm, operand);
5542   }
5543 
5544   void vrshr(Condition cond,
5545              DataType dt,
5546              QRegister rd,
5547              QRegister rm,
5548              const QOperand& operand);
vrshr(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5549   void vrshr(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5550     vrshr(al, dt, rd, rm, operand);
5551   }
5552 
5553   void vrshrn(Condition cond,
5554               DataType dt,
5555               DRegister rd,
5556               QRegister rm,
5557               const QOperand& operand);
vrshrn(DataType dt,DRegister rd,QRegister rm,const QOperand & operand)5558   void vrshrn(DataType dt,
5559               DRegister rd,
5560               QRegister rm,
5561               const QOperand& operand) {
5562     vrshrn(al, dt, rd, rm, operand);
5563   }
5564 
5565   void vrsqrte(Condition cond, DataType dt, DRegister rd, DRegister rm);
vrsqrte(DataType dt,DRegister rd,DRegister rm)5566   void vrsqrte(DataType dt, DRegister rd, DRegister rm) {
5567     vrsqrte(al, dt, rd, rm);
5568   }
5569 
5570   void vrsqrte(Condition cond, DataType dt, QRegister rd, QRegister rm);
vrsqrte(DataType dt,QRegister rd,QRegister rm)5571   void vrsqrte(DataType dt, QRegister rd, QRegister rm) {
5572     vrsqrte(al, dt, rd, rm);
5573   }
5574 
5575   void vrsqrts(
5576       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vrsqrts(DataType dt,DRegister rd,DRegister rn,DRegister rm)5577   void vrsqrts(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5578     vrsqrts(al, dt, rd, rn, rm);
5579   }
5580 
5581   void vrsqrts(
5582       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vrsqrts(DataType dt,QRegister rd,QRegister rn,QRegister rm)5583   void vrsqrts(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5584     vrsqrts(al, dt, rd, rn, rm);
5585   }
5586 
5587   void vrsra(Condition cond,
5588              DataType dt,
5589              DRegister rd,
5590              DRegister rm,
5591              const DOperand& operand);
vrsra(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5592   void vrsra(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5593     vrsra(al, dt, rd, rm, operand);
5594   }
5595 
5596   void vrsra(Condition cond,
5597              DataType dt,
5598              QRegister rd,
5599              QRegister rm,
5600              const QOperand& operand);
vrsra(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5601   void vrsra(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5602     vrsra(al, dt, rd, rm, operand);
5603   }
5604 
5605   void vrsubhn(
5606       Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm);
vrsubhn(DataType dt,DRegister rd,QRegister rn,QRegister rm)5607   void vrsubhn(DataType dt, DRegister rd, QRegister rn, QRegister rm) {
5608     vrsubhn(al, dt, rd, rn, rm);
5609   }
5610 
5611   void vseleq(DataType dt, DRegister rd, DRegister rn, DRegister rm);
5612 
5613   void vseleq(DataType dt, SRegister rd, SRegister rn, SRegister rm);
5614 
5615   void vselge(DataType dt, DRegister rd, DRegister rn, DRegister rm);
5616 
5617   void vselge(DataType dt, SRegister rd, SRegister rn, SRegister rm);
5618 
5619   void vselgt(DataType dt, DRegister rd, DRegister rn, DRegister rm);
5620 
5621   void vselgt(DataType dt, SRegister rd, SRegister rn, SRegister rm);
5622 
5623   void vselvs(DataType dt, DRegister rd, DRegister rn, DRegister rm);
5624 
5625   void vselvs(DataType dt, SRegister rd, SRegister rn, SRegister rm);
5626 
5627   void vshl(Condition cond,
5628             DataType dt,
5629             DRegister rd,
5630             DRegister rm,
5631             const DOperand& operand);
vshl(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5632   void vshl(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5633     vshl(al, dt, rd, rm, operand);
5634   }
5635 
5636   void vshl(Condition cond,
5637             DataType dt,
5638             QRegister rd,
5639             QRegister rm,
5640             const QOperand& operand);
vshl(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5641   void vshl(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5642     vshl(al, dt, rd, rm, operand);
5643   }
5644 
5645   void vshll(Condition cond,
5646              DataType dt,
5647              QRegister rd,
5648              DRegister rm,
5649              const DOperand& operand);
vshll(DataType dt,QRegister rd,DRegister rm,const DOperand & operand)5650   void vshll(DataType dt, QRegister rd, DRegister rm, const DOperand& operand) {
5651     vshll(al, dt, rd, rm, operand);
5652   }
5653 
5654   void vshr(Condition cond,
5655             DataType dt,
5656             DRegister rd,
5657             DRegister rm,
5658             const DOperand& operand);
vshr(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5659   void vshr(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5660     vshr(al, dt, rd, rm, operand);
5661   }
5662 
5663   void vshr(Condition cond,
5664             DataType dt,
5665             QRegister rd,
5666             QRegister rm,
5667             const QOperand& operand);
vshr(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5668   void vshr(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5669     vshr(al, dt, rd, rm, operand);
5670   }
5671 
5672   void vshrn(Condition cond,
5673              DataType dt,
5674              DRegister rd,
5675              QRegister rm,
5676              const QOperand& operand);
vshrn(DataType dt,DRegister rd,QRegister rm,const QOperand & operand)5677   void vshrn(DataType dt, DRegister rd, QRegister rm, const QOperand& operand) {
5678     vshrn(al, dt, rd, rm, operand);
5679   }
5680 
5681   void vsli(Condition cond,
5682             DataType dt,
5683             DRegister rd,
5684             DRegister rm,
5685             const DOperand& operand);
vsli(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5686   void vsli(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5687     vsli(al, dt, rd, rm, operand);
5688   }
5689 
5690   void vsli(Condition cond,
5691             DataType dt,
5692             QRegister rd,
5693             QRegister rm,
5694             const QOperand& operand);
vsli(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5695   void vsli(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5696     vsli(al, dt, rd, rm, operand);
5697   }
5698 
5699   void vsqrt(Condition cond, DataType dt, SRegister rd, SRegister rm);
vsqrt(DataType dt,SRegister rd,SRegister rm)5700   void vsqrt(DataType dt, SRegister rd, SRegister rm) { vsqrt(al, dt, rd, rm); }
5701 
5702   void vsqrt(Condition cond, DataType dt, DRegister rd, DRegister rm);
vsqrt(DataType dt,DRegister rd,DRegister rm)5703   void vsqrt(DataType dt, DRegister rd, DRegister rm) { vsqrt(al, dt, rd, rm); }
5704 
5705   void vsra(Condition cond,
5706             DataType dt,
5707             DRegister rd,
5708             DRegister rm,
5709             const DOperand& operand);
vsra(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5710   void vsra(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5711     vsra(al, dt, rd, rm, operand);
5712   }
5713 
5714   void vsra(Condition cond,
5715             DataType dt,
5716             QRegister rd,
5717             QRegister rm,
5718             const QOperand& operand);
vsra(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5719   void vsra(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5720     vsra(al, dt, rd, rm, operand);
5721   }
5722 
5723   void vsri(Condition cond,
5724             DataType dt,
5725             DRegister rd,
5726             DRegister rm,
5727             const DOperand& operand);
vsri(DataType dt,DRegister rd,DRegister rm,const DOperand & operand)5728   void vsri(DataType dt, DRegister rd, DRegister rm, const DOperand& operand) {
5729     vsri(al, dt, rd, rm, operand);
5730   }
5731 
5732   void vsri(Condition cond,
5733             DataType dt,
5734             QRegister rd,
5735             QRegister rm,
5736             const QOperand& operand);
vsri(DataType dt,QRegister rd,QRegister rm,const QOperand & operand)5737   void vsri(DataType dt, QRegister rd, QRegister rm, const QOperand& operand) {
5738     vsri(al, dt, rd, rm, operand);
5739   }
5740 
5741   void vst1(Condition cond,
5742             DataType dt,
5743             const NeonRegisterList& nreglist,
5744             const AlignedMemOperand& operand);
vst1(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)5745   void vst1(DataType dt,
5746             const NeonRegisterList& nreglist,
5747             const AlignedMemOperand& operand) {
5748     vst1(al, dt, nreglist, operand);
5749   }
5750 
5751   void vst2(Condition cond,
5752             DataType dt,
5753             const NeonRegisterList& nreglist,
5754             const AlignedMemOperand& operand);
vst2(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)5755   void vst2(DataType dt,
5756             const NeonRegisterList& nreglist,
5757             const AlignedMemOperand& operand) {
5758     vst2(al, dt, nreglist, operand);
5759   }
5760 
5761   void vst3(Condition cond,
5762             DataType dt,
5763             const NeonRegisterList& nreglist,
5764             const AlignedMemOperand& operand);
vst3(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)5765   void vst3(DataType dt,
5766             const NeonRegisterList& nreglist,
5767             const AlignedMemOperand& operand) {
5768     vst3(al, dt, nreglist, operand);
5769   }
5770 
5771   void vst3(Condition cond,
5772             DataType dt,
5773             const NeonRegisterList& nreglist,
5774             const MemOperand& operand);
vst3(DataType dt,const NeonRegisterList & nreglist,const MemOperand & operand)5775   void vst3(DataType dt,
5776             const NeonRegisterList& nreglist,
5777             const MemOperand& operand) {
5778     vst3(al, dt, nreglist, operand);
5779   }
5780 
5781   void vst4(Condition cond,
5782             DataType dt,
5783             const NeonRegisterList& nreglist,
5784             const AlignedMemOperand& operand);
vst4(DataType dt,const NeonRegisterList & nreglist,const AlignedMemOperand & operand)5785   void vst4(DataType dt,
5786             const NeonRegisterList& nreglist,
5787             const AlignedMemOperand& operand) {
5788     vst4(al, dt, nreglist, operand);
5789   }
5790 
5791   void vstm(Condition cond,
5792             DataType dt,
5793             Register rn,
5794             WriteBack write_back,
5795             DRegisterList dreglist);
vstm(DataType dt,Register rn,WriteBack write_back,DRegisterList dreglist)5796   void vstm(DataType dt,
5797             Register rn,
5798             WriteBack write_back,
5799             DRegisterList dreglist) {
5800     vstm(al, dt, rn, write_back, dreglist);
5801   }
vstm(Register rn,WriteBack write_back,DRegisterList dreglist)5802   void vstm(Register rn, WriteBack write_back, DRegisterList dreglist) {
5803     vstm(al, kDataTypeValueNone, rn, write_back, dreglist);
5804   }
vstm(Condition cond,Register rn,WriteBack write_back,DRegisterList dreglist)5805   void vstm(Condition cond,
5806             Register rn,
5807             WriteBack write_back,
5808             DRegisterList dreglist) {
5809     vstm(cond, kDataTypeValueNone, rn, write_back, dreglist);
5810   }
5811 
5812   void vstm(Condition cond,
5813             DataType dt,
5814             Register rn,
5815             WriteBack write_back,
5816             SRegisterList sreglist);
vstm(DataType dt,Register rn,WriteBack write_back,SRegisterList sreglist)5817   void vstm(DataType dt,
5818             Register rn,
5819             WriteBack write_back,
5820             SRegisterList sreglist) {
5821     vstm(al, dt, rn, write_back, sreglist);
5822   }
vstm(Register rn,WriteBack write_back,SRegisterList sreglist)5823   void vstm(Register rn, WriteBack write_back, SRegisterList sreglist) {
5824     vstm(al, kDataTypeValueNone, rn, write_back, sreglist);
5825   }
vstm(Condition cond,Register rn,WriteBack write_back,SRegisterList sreglist)5826   void vstm(Condition cond,
5827             Register rn,
5828             WriteBack write_back,
5829             SRegisterList sreglist) {
5830     vstm(cond, kDataTypeValueNone, rn, write_back, sreglist);
5831   }
5832 
5833   void vstmdb(Condition cond,
5834               DataType dt,
5835               Register rn,
5836               WriteBack write_back,
5837               DRegisterList dreglist);
vstmdb(DataType dt,Register rn,WriteBack write_back,DRegisterList dreglist)5838   void vstmdb(DataType dt,
5839               Register rn,
5840               WriteBack write_back,
5841               DRegisterList dreglist) {
5842     vstmdb(al, dt, rn, write_back, dreglist);
5843   }
vstmdb(Register rn,WriteBack write_back,DRegisterList dreglist)5844   void vstmdb(Register rn, WriteBack write_back, DRegisterList dreglist) {
5845     vstmdb(al, kDataTypeValueNone, rn, write_back, dreglist);
5846   }
vstmdb(Condition cond,Register rn,WriteBack write_back,DRegisterList dreglist)5847   void vstmdb(Condition cond,
5848               Register rn,
5849               WriteBack write_back,
5850               DRegisterList dreglist) {
5851     vstmdb(cond, kDataTypeValueNone, rn, write_back, dreglist);
5852   }
5853 
5854   void vstmdb(Condition cond,
5855               DataType dt,
5856               Register rn,
5857               WriteBack write_back,
5858               SRegisterList sreglist);
vstmdb(DataType dt,Register rn,WriteBack write_back,SRegisterList sreglist)5859   void vstmdb(DataType dt,
5860               Register rn,
5861               WriteBack write_back,
5862               SRegisterList sreglist) {
5863     vstmdb(al, dt, rn, write_back, sreglist);
5864   }
vstmdb(Register rn,WriteBack write_back,SRegisterList sreglist)5865   void vstmdb(Register rn, WriteBack write_back, SRegisterList sreglist) {
5866     vstmdb(al, kDataTypeValueNone, rn, write_back, sreglist);
5867   }
vstmdb(Condition cond,Register rn,WriteBack write_back,SRegisterList sreglist)5868   void vstmdb(Condition cond,
5869               Register rn,
5870               WriteBack write_back,
5871               SRegisterList sreglist) {
5872     vstmdb(cond, kDataTypeValueNone, rn, write_back, sreglist);
5873   }
5874 
5875   void vstmia(Condition cond,
5876               DataType dt,
5877               Register rn,
5878               WriteBack write_back,
5879               DRegisterList dreglist);
vstmia(DataType dt,Register rn,WriteBack write_back,DRegisterList dreglist)5880   void vstmia(DataType dt,
5881               Register rn,
5882               WriteBack write_back,
5883               DRegisterList dreglist) {
5884     vstmia(al, dt, rn, write_back, dreglist);
5885   }
vstmia(Register rn,WriteBack write_back,DRegisterList dreglist)5886   void vstmia(Register rn, WriteBack write_back, DRegisterList dreglist) {
5887     vstmia(al, kDataTypeValueNone, rn, write_back, dreglist);
5888   }
vstmia(Condition cond,Register rn,WriteBack write_back,DRegisterList dreglist)5889   void vstmia(Condition cond,
5890               Register rn,
5891               WriteBack write_back,
5892               DRegisterList dreglist) {
5893     vstmia(cond, kDataTypeValueNone, rn, write_back, dreglist);
5894   }
5895 
5896   void vstmia(Condition cond,
5897               DataType dt,
5898               Register rn,
5899               WriteBack write_back,
5900               SRegisterList sreglist);
vstmia(DataType dt,Register rn,WriteBack write_back,SRegisterList sreglist)5901   void vstmia(DataType dt,
5902               Register rn,
5903               WriteBack write_back,
5904               SRegisterList sreglist) {
5905     vstmia(al, dt, rn, write_back, sreglist);
5906   }
vstmia(Register rn,WriteBack write_back,SRegisterList sreglist)5907   void vstmia(Register rn, WriteBack write_back, SRegisterList sreglist) {
5908     vstmia(al, kDataTypeValueNone, rn, write_back, sreglist);
5909   }
vstmia(Condition cond,Register rn,WriteBack write_back,SRegisterList sreglist)5910   void vstmia(Condition cond,
5911               Register rn,
5912               WriteBack write_back,
5913               SRegisterList sreglist) {
5914     vstmia(cond, kDataTypeValueNone, rn, write_back, sreglist);
5915   }
5916 
5917   void vstr(Condition cond,
5918             DataType dt,
5919             DRegister rd,
5920             const MemOperand& operand);
vstr(DataType dt,DRegister rd,const MemOperand & operand)5921   void vstr(DataType dt, DRegister rd, const MemOperand& operand) {
5922     vstr(al, dt, rd, operand);
5923   }
vstr(DRegister rd,const MemOperand & operand)5924   void vstr(DRegister rd, const MemOperand& operand) {
5925     vstr(al, Untyped64, rd, operand);
5926   }
vstr(Condition cond,DRegister rd,const MemOperand & operand)5927   void vstr(Condition cond, DRegister rd, const MemOperand& operand) {
5928     vstr(cond, Untyped64, rd, operand);
5929   }
5930 
5931   void vstr(Condition cond,
5932             DataType dt,
5933             SRegister rd,
5934             const MemOperand& operand);
vstr(DataType dt,SRegister rd,const MemOperand & operand)5935   void vstr(DataType dt, SRegister rd, const MemOperand& operand) {
5936     vstr(al, dt, rd, operand);
5937   }
vstr(SRegister rd,const MemOperand & operand)5938   void vstr(SRegister rd, const MemOperand& operand) {
5939     vstr(al, Untyped32, rd, operand);
5940   }
vstr(Condition cond,SRegister rd,const MemOperand & operand)5941   void vstr(Condition cond, SRegister rd, const MemOperand& operand) {
5942     vstr(cond, Untyped32, rd, operand);
5943   }
5944 
5945   void vsub(
5946       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vsub(DataType dt,DRegister rd,DRegister rn,DRegister rm)5947   void vsub(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
5948     vsub(al, dt, rd, rn, rm);
5949   }
5950 
5951   void vsub(
5952       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vsub(DataType dt,QRegister rd,QRegister rn,QRegister rm)5953   void vsub(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
5954     vsub(al, dt, rd, rn, rm);
5955   }
5956 
5957   void vsub(
5958       Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm);
vsub(DataType dt,SRegister rd,SRegister rn,SRegister rm)5959   void vsub(DataType dt, SRegister rd, SRegister rn, SRegister rm) {
5960     vsub(al, dt, rd, rn, rm);
5961   }
5962 
5963   void vsubhn(
5964       Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm);
vsubhn(DataType dt,DRegister rd,QRegister rn,QRegister rm)5965   void vsubhn(DataType dt, DRegister rd, QRegister rn, QRegister rm) {
5966     vsubhn(al, dt, rd, rn, rm);
5967   }
5968 
5969   void vsubl(
5970       Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm);
vsubl(DataType dt,QRegister rd,DRegister rn,DRegister rm)5971   void vsubl(DataType dt, QRegister rd, DRegister rn, DRegister rm) {
5972     vsubl(al, dt, rd, rn, rm);
5973   }
5974 
5975   void vsubw(
5976       Condition cond, DataType dt, QRegister rd, QRegister rn, DRegister rm);
vsubw(DataType dt,QRegister rd,QRegister rn,DRegister rm)5977   void vsubw(DataType dt, QRegister rd, QRegister rn, DRegister rm) {
5978     vsubw(al, dt, rd, rn, rm);
5979   }
5980 
5981   void vswp(Condition cond, DataType dt, DRegister rd, DRegister rm);
vswp(DataType dt,DRegister rd,DRegister rm)5982   void vswp(DataType dt, DRegister rd, DRegister rm) { vswp(al, dt, rd, rm); }
vswp(DRegister rd,DRegister rm)5983   void vswp(DRegister rd, DRegister rm) {
5984     vswp(al, kDataTypeValueNone, rd, rm);
5985   }
vswp(Condition cond,DRegister rd,DRegister rm)5986   void vswp(Condition cond, DRegister rd, DRegister rm) {
5987     vswp(cond, kDataTypeValueNone, rd, rm);
5988   }
5989 
5990   void vswp(Condition cond, DataType dt, QRegister rd, QRegister rm);
vswp(DataType dt,QRegister rd,QRegister rm)5991   void vswp(DataType dt, QRegister rd, QRegister rm) { vswp(al, dt, rd, rm); }
vswp(QRegister rd,QRegister rm)5992   void vswp(QRegister rd, QRegister rm) {
5993     vswp(al, kDataTypeValueNone, rd, rm);
5994   }
vswp(Condition cond,QRegister rd,QRegister rm)5995   void vswp(Condition cond, QRegister rd, QRegister rm) {
5996     vswp(cond, kDataTypeValueNone, rd, rm);
5997   }
5998 
5999   void vtbl(Condition cond,
6000             DataType dt,
6001             DRegister rd,
6002             const NeonRegisterList& nreglist,
6003             DRegister rm);
vtbl(DataType dt,DRegister rd,const NeonRegisterList & nreglist,DRegister rm)6004   void vtbl(DataType dt,
6005             DRegister rd,
6006             const NeonRegisterList& nreglist,
6007             DRegister rm) {
6008     vtbl(al, dt, rd, nreglist, rm);
6009   }
6010 
6011   void vtbx(Condition cond,
6012             DataType dt,
6013             DRegister rd,
6014             const NeonRegisterList& nreglist,
6015             DRegister rm);
vtbx(DataType dt,DRegister rd,const NeonRegisterList & nreglist,DRegister rm)6016   void vtbx(DataType dt,
6017             DRegister rd,
6018             const NeonRegisterList& nreglist,
6019             DRegister rm) {
6020     vtbx(al, dt, rd, nreglist, rm);
6021   }
6022 
6023   void vtrn(Condition cond, DataType dt, DRegister rd, DRegister rm);
vtrn(DataType dt,DRegister rd,DRegister rm)6024   void vtrn(DataType dt, DRegister rd, DRegister rm) { vtrn(al, dt, rd, rm); }
6025 
6026   void vtrn(Condition cond, DataType dt, QRegister rd, QRegister rm);
vtrn(DataType dt,QRegister rd,QRegister rm)6027   void vtrn(DataType dt, QRegister rd, QRegister rm) { vtrn(al, dt, rd, rm); }
6028 
6029   void vtst(
6030       Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm);
vtst(DataType dt,DRegister rd,DRegister rn,DRegister rm)6031   void vtst(DataType dt, DRegister rd, DRegister rn, DRegister rm) {
6032     vtst(al, dt, rd, rn, rm);
6033   }
6034 
6035   void vtst(
6036       Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm);
vtst(DataType dt,QRegister rd,QRegister rn,QRegister rm)6037   void vtst(DataType dt, QRegister rd, QRegister rn, QRegister rm) {
6038     vtst(al, dt, rd, rn, rm);
6039   }
6040 
6041   void vuzp(Condition cond, DataType dt, DRegister rd, DRegister rm);
vuzp(DataType dt,DRegister rd,DRegister rm)6042   void vuzp(DataType dt, DRegister rd, DRegister rm) { vuzp(al, dt, rd, rm); }
6043 
6044   void vuzp(Condition cond, DataType dt, QRegister rd, QRegister rm);
vuzp(DataType dt,QRegister rd,QRegister rm)6045   void vuzp(DataType dt, QRegister rd, QRegister rm) { vuzp(al, dt, rd, rm); }
6046 
6047   void vzip(Condition cond, DataType dt, DRegister rd, DRegister rm);
vzip(DataType dt,DRegister rd,DRegister rm)6048   void vzip(DataType dt, DRegister rd, DRegister rm) { vzip(al, dt, rd, rm); }
6049 
6050   void vzip(Condition cond, DataType dt, QRegister rd, QRegister rm);
vzip(DataType dt,QRegister rd,QRegister rm)6051   void vzip(DataType dt, QRegister rd, QRegister rm) { vzip(al, dt, rd, rm); }
6052 
6053   void yield(Condition cond, EncodingSize size);
yield()6054   void yield() { yield(al, Best); }
yield(Condition cond)6055   void yield(Condition cond) { yield(cond, Best); }
yield(EncodingSize size)6056   void yield(EncodingSize size) { yield(al, size); }
6057   // End of generated code.
UnimplementedDelegate(InstructionType type)6058   virtual void UnimplementedDelegate(InstructionType type) {
6059     std::string error_message(std::string("Ill-formed '") +
6060                               std::string(ToCString(type)) +
6061                               std::string("' instruction.\n"));
6062     VIXL_ABORT_WITH_MSG(error_message.c_str());
6063   }
AllowUnpredictable()6064   virtual bool AllowUnpredictable() { return allow_unpredictable_; }
AllowStronglyDiscouraged()6065   virtual bool AllowStronglyDiscouraged() {
6066     return allow_strongly_discouraged_;
6067   }
6068 };
6069 
6070 }  // namespace aarch32
6071 }  // namespace vixl
6072 
6073 #endif  // VIXL_AARCH32_ASSEMBLER_AARCH32_H_
6074