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