1*f5c631daSSadaf Ebrahimi // Copyright 2017, VIXL authors 2*f5c631daSSadaf Ebrahimi // All rights reserved. 3*f5c631daSSadaf Ebrahimi // 4*f5c631daSSadaf Ebrahimi // Redistribution and use in source and binary forms, with or without 5*f5c631daSSadaf Ebrahimi // modification, are permitted provided that the following conditions are met: 6*f5c631daSSadaf Ebrahimi // 7*f5c631daSSadaf Ebrahimi // * Redistributions of source code must retain the above copyright notice, 8*f5c631daSSadaf Ebrahimi // this list of conditions and the following disclaimer. 9*f5c631daSSadaf Ebrahimi // * Redistributions in binary form must reproduce the above copyright notice, 10*f5c631daSSadaf Ebrahimi // this list of conditions and the following disclaimer in the documentation 11*f5c631daSSadaf Ebrahimi // and/or other materials provided with the distribution. 12*f5c631daSSadaf Ebrahimi // * Neither the name of ARM Limited nor the names of its contributors may be 13*f5c631daSSadaf Ebrahimi // used to endorse or promote products derived from this software without 14*f5c631daSSadaf Ebrahimi // specific prior written permission. 15*f5c631daSSadaf Ebrahimi // 16*f5c631daSSadaf Ebrahimi // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND 17*f5c631daSSadaf Ebrahimi // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18*f5c631daSSadaf Ebrahimi // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19*f5c631daSSadaf Ebrahimi // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 20*f5c631daSSadaf Ebrahimi // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*f5c631daSSadaf Ebrahimi // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22*f5c631daSSadaf Ebrahimi // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23*f5c631daSSadaf Ebrahimi // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24*f5c631daSSadaf Ebrahimi // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25*f5c631daSSadaf Ebrahimi // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26*f5c631daSSadaf Ebrahimi 27*f5c631daSSadaf Ebrahimi #ifndef VIXL_AARCH32_ASSEMBLER_AARCH32_H_ 28*f5c631daSSadaf Ebrahimi #define VIXL_AARCH32_ASSEMBLER_AARCH32_H_ 29*f5c631daSSadaf Ebrahimi 30*f5c631daSSadaf Ebrahimi #include "assembler-base-vixl.h" 31*f5c631daSSadaf Ebrahimi 32*f5c631daSSadaf Ebrahimi #include "aarch32/instructions-aarch32.h" 33*f5c631daSSadaf Ebrahimi #include "aarch32/location-aarch32.h" 34*f5c631daSSadaf Ebrahimi 35*f5c631daSSadaf Ebrahimi namespace vixl { 36*f5c631daSSadaf Ebrahimi namespace aarch32 { 37*f5c631daSSadaf Ebrahimi 38*f5c631daSSadaf Ebrahimi class Assembler : public internal::AssemblerBase { 39*f5c631daSSadaf Ebrahimi InstructionSet isa_; 40*f5c631daSSadaf Ebrahimi Condition first_condition_; 41*f5c631daSSadaf Ebrahimi uint16_t it_mask_; 42*f5c631daSSadaf Ebrahimi bool has_32_dregs_; 43*f5c631daSSadaf Ebrahimi bool allow_unpredictable_; 44*f5c631daSSadaf Ebrahimi bool allow_strongly_discouraged_; 45*f5c631daSSadaf Ebrahimi 46*f5c631daSSadaf Ebrahimi protected: 47*f5c631daSSadaf Ebrahimi void EmitT32_16(uint16_t instr); 48*f5c631daSSadaf Ebrahimi void EmitT32_32(uint32_t instr); 49*f5c631daSSadaf Ebrahimi void EmitA32(uint32_t instr); 50*f5c631daSSadaf Ebrahimi // Check that the condition of the current instruction is consistent with the 51*f5c631daSSadaf Ebrahimi // IT state. CheckIT(Condition condition)52*f5c631daSSadaf Ebrahimi void CheckIT(Condition condition) { 53*f5c631daSSadaf Ebrahimi #ifdef VIXL_DEBUG 54*f5c631daSSadaf Ebrahimi PerformCheckIT(condition); 55*f5c631daSSadaf Ebrahimi #else 56*f5c631daSSadaf Ebrahimi USE(condition); 57*f5c631daSSadaf Ebrahimi #endif 58*f5c631daSSadaf Ebrahimi } 59*f5c631daSSadaf Ebrahimi #ifdef VIXL_DEBUG 60*f5c631daSSadaf Ebrahimi void PerformCheckIT(Condition condition); 61*f5c631daSSadaf Ebrahimi #endif AdvanceIT()62*f5c631daSSadaf Ebrahimi void AdvanceIT() { 63*f5c631daSSadaf Ebrahimi first_condition_ = 64*f5c631daSSadaf Ebrahimi Condition((first_condition_.GetCondition() & 0xe) | (it_mask_ >> 3)); 65*f5c631daSSadaf Ebrahimi it_mask_ = (it_mask_ << 1) & 0xf; 66*f5c631daSSadaf Ebrahimi } 67*f5c631daSSadaf Ebrahimi // Virtual, in order to be overridden by the MacroAssembler, which needs to 68*f5c631daSSadaf Ebrahimi // notify the pool manager. 69*f5c631daSSadaf Ebrahimi virtual void BindHelper(Label* label); 70*f5c631daSSadaf Ebrahimi 71*f5c631daSSadaf Ebrahimi uint32_t Link(uint32_t instr, 72*f5c631daSSadaf Ebrahimi Location* location, 73*f5c631daSSadaf Ebrahimi const Location::EmitOperator& op, 74*f5c631daSSadaf Ebrahimi const ReferenceInfo* info); 75*f5c631daSSadaf Ebrahimi 76*f5c631daSSadaf Ebrahimi public: 77*f5c631daSSadaf Ebrahimi class AllowUnpredictableScope { 78*f5c631daSSadaf Ebrahimi Assembler* assembler_; 79*f5c631daSSadaf Ebrahimi bool old_; 80*f5c631daSSadaf Ebrahimi 81*f5c631daSSadaf Ebrahimi public: AllowUnpredictableScope(Assembler * assembler)82*f5c631daSSadaf Ebrahimi explicit AllowUnpredictableScope(Assembler* assembler) 83*f5c631daSSadaf Ebrahimi : assembler_(assembler), old_(assembler->allow_unpredictable_) { 84*f5c631daSSadaf Ebrahimi assembler_->allow_unpredictable_ = true; 85*f5c631daSSadaf Ebrahimi } ~AllowUnpredictableScope()86*f5c631daSSadaf Ebrahimi ~AllowUnpredictableScope() { assembler_->allow_unpredictable_ = old_; } 87*f5c631daSSadaf Ebrahimi }; 88*f5c631daSSadaf Ebrahimi class AllowStronglyDiscouragedScope { 89*f5c631daSSadaf Ebrahimi Assembler* assembler_; 90*f5c631daSSadaf Ebrahimi bool old_; 91*f5c631daSSadaf Ebrahimi 92*f5c631daSSadaf Ebrahimi public: AllowStronglyDiscouragedScope(Assembler * assembler)93*f5c631daSSadaf Ebrahimi explicit AllowStronglyDiscouragedScope(Assembler* assembler) 94*f5c631daSSadaf Ebrahimi : assembler_(assembler), old_(assembler->allow_strongly_discouraged_) { 95*f5c631daSSadaf Ebrahimi assembler_->allow_strongly_discouraged_ = true; 96*f5c631daSSadaf Ebrahimi } ~AllowStronglyDiscouragedScope()97*f5c631daSSadaf Ebrahimi ~AllowStronglyDiscouragedScope() { 98*f5c631daSSadaf Ebrahimi assembler_->allow_strongly_discouraged_ = old_; 99*f5c631daSSadaf Ebrahimi } 100*f5c631daSSadaf Ebrahimi }; 101*f5c631daSSadaf Ebrahimi 102*f5c631daSSadaf Ebrahimi explicit Assembler(InstructionSet isa = kDefaultISA) isa_(isa)103*f5c631daSSadaf Ebrahimi : isa_(isa), 104*f5c631daSSadaf Ebrahimi first_condition_(al), 105*f5c631daSSadaf Ebrahimi it_mask_(0), 106*f5c631daSSadaf Ebrahimi has_32_dregs_(true), 107*f5c631daSSadaf Ebrahimi allow_unpredictable_(false), 108*f5c631daSSadaf Ebrahimi allow_strongly_discouraged_(false) { 109*f5c631daSSadaf Ebrahimi #if defined(VIXL_INCLUDE_TARGET_A32_ONLY) 110*f5c631daSSadaf Ebrahimi // Avoid compiler warning. 111*f5c631daSSadaf Ebrahimi USE(isa_); 112*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == A32); 113*f5c631daSSadaf Ebrahimi #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY) 114*f5c631daSSadaf Ebrahimi USE(isa_); 115*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == T32); 116*f5c631daSSadaf Ebrahimi #endif 117*f5c631daSSadaf Ebrahimi } 118*f5c631daSSadaf Ebrahimi explicit Assembler(size_t capacity, InstructionSet isa = kDefaultISA) AssemblerBase(capacity)119*f5c631daSSadaf Ebrahimi : AssemblerBase(capacity), 120*f5c631daSSadaf Ebrahimi isa_(isa), 121*f5c631daSSadaf Ebrahimi first_condition_(al), 122*f5c631daSSadaf Ebrahimi it_mask_(0), 123*f5c631daSSadaf Ebrahimi has_32_dregs_(true), 124*f5c631daSSadaf Ebrahimi allow_unpredictable_(false), 125*f5c631daSSadaf Ebrahimi allow_strongly_discouraged_(false) { 126*f5c631daSSadaf Ebrahimi #if defined(VIXL_INCLUDE_TARGET_A32_ONLY) 127*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == A32); 128*f5c631daSSadaf Ebrahimi #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY) 129*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == T32); 130*f5c631daSSadaf Ebrahimi #endif 131*f5c631daSSadaf Ebrahimi } 132*f5c631daSSadaf Ebrahimi Assembler(byte* buffer, size_t capacity, InstructionSet isa = kDefaultISA) AssemblerBase(buffer,capacity)133*f5c631daSSadaf Ebrahimi : AssemblerBase(buffer, capacity), 134*f5c631daSSadaf Ebrahimi isa_(isa), 135*f5c631daSSadaf Ebrahimi first_condition_(al), 136*f5c631daSSadaf Ebrahimi it_mask_(0), 137*f5c631daSSadaf Ebrahimi has_32_dregs_(true), 138*f5c631daSSadaf Ebrahimi allow_unpredictable_(false), 139*f5c631daSSadaf Ebrahimi allow_strongly_discouraged_(false) { 140*f5c631daSSadaf Ebrahimi #if defined(VIXL_INCLUDE_TARGET_A32_ONLY) 141*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == A32); 142*f5c631daSSadaf Ebrahimi #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY) 143*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == T32); 144*f5c631daSSadaf Ebrahimi #endif 145*f5c631daSSadaf Ebrahimi } ~Assembler()146*f5c631daSSadaf Ebrahimi virtual ~Assembler() {} 147*f5c631daSSadaf Ebrahimi UseInstructionSet(InstructionSet isa)148*f5c631daSSadaf Ebrahimi void UseInstructionSet(InstructionSet isa) { 149*f5c631daSSadaf Ebrahimi #if defined(VIXL_INCLUDE_TARGET_A32_ONLY) 150*f5c631daSSadaf Ebrahimi USE(isa); 151*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == A32); 152*f5c631daSSadaf Ebrahimi #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY) 153*f5c631daSSadaf Ebrahimi USE(isa); 154*f5c631daSSadaf Ebrahimi VIXL_ASSERT(isa == T32); 155*f5c631daSSadaf Ebrahimi #else 156*f5c631daSSadaf Ebrahimi VIXL_ASSERT((isa_ == isa) || (GetCursorOffset() == 0)); 157*f5c631daSSadaf Ebrahimi isa_ = isa; 158*f5c631daSSadaf Ebrahimi #endif 159*f5c631daSSadaf Ebrahimi } 160*f5c631daSSadaf Ebrahimi 161*f5c631daSSadaf Ebrahimi #if defined(VIXL_INCLUDE_TARGET_A32_ONLY) GetInstructionSetInUse()162*f5c631daSSadaf Ebrahimi InstructionSet GetInstructionSetInUse() const { return A32; } 163*f5c631daSSadaf Ebrahimi #elif defined(VIXL_INCLUDE_TARGET_T32_ONLY) GetInstructionSetInUse()164*f5c631daSSadaf Ebrahimi InstructionSet GetInstructionSetInUse() const { return T32; } 165*f5c631daSSadaf Ebrahimi #else GetInstructionSetInUse()166*f5c631daSSadaf Ebrahimi InstructionSet GetInstructionSetInUse() const { return isa_; } 167*f5c631daSSadaf Ebrahimi #endif 168*f5c631daSSadaf Ebrahimi UseT32()169*f5c631daSSadaf Ebrahimi void UseT32() { UseInstructionSet(T32); } UseA32()170*f5c631daSSadaf Ebrahimi void UseA32() { UseInstructionSet(A32); } IsUsingT32()171*f5c631daSSadaf Ebrahimi bool IsUsingT32() const { return GetInstructionSetInUse() == T32; } IsUsingA32()172*f5c631daSSadaf Ebrahimi bool IsUsingA32() const { return GetInstructionSetInUse() == A32; } 173*f5c631daSSadaf Ebrahimi SetIT(Condition first_condition,uint16_t it_mask)174*f5c631daSSadaf Ebrahimi void SetIT(Condition first_condition, uint16_t it_mask) { 175*f5c631daSSadaf Ebrahimi VIXL_ASSERT(it_mask_ == 0); 176*f5c631daSSadaf Ebrahimi first_condition_ = first_condition; 177*f5c631daSSadaf Ebrahimi it_mask_ = it_mask; 178*f5c631daSSadaf Ebrahimi } InITBlock()179*f5c631daSSadaf Ebrahimi bool InITBlock() { return it_mask_ != 0; } OutsideITBlock()180*f5c631daSSadaf Ebrahimi bool OutsideITBlock() { return it_mask_ == 0; } OutsideITBlockOrLast()181*f5c631daSSadaf Ebrahimi bool OutsideITBlockOrLast() { return (it_mask_ == 0) || (it_mask_ == 0x8); } OutsideITBlockAndAlOrLast(Condition cond)182*f5c631daSSadaf Ebrahimi bool OutsideITBlockAndAlOrLast(Condition cond) { 183*f5c631daSSadaf Ebrahimi return ((it_mask_ == 0) && cond.Is(al)) || (it_mask_ == 0x8); 184*f5c631daSSadaf Ebrahimi } CheckNotIT()185*f5c631daSSadaf Ebrahimi void CheckNotIT() { VIXL_ASSERT(it_mask_ == 0); } Has32DRegs()186*f5c631daSSadaf Ebrahimi bool Has32DRegs() const { return has_32_dregs_; } SetHas32DRegs(bool has_32_dregs)187*f5c631daSSadaf Ebrahimi void SetHas32DRegs(bool has_32_dregs) { has_32_dregs_ = has_32_dregs; } 188*f5c631daSSadaf Ebrahimi GetCursorOffset()189*f5c631daSSadaf Ebrahimi int32_t GetCursorOffset() const { 190*f5c631daSSadaf Ebrahimi ptrdiff_t offset = buffer_.GetCursorOffset(); 191*f5c631daSSadaf Ebrahimi VIXL_ASSERT(IsInt32(offset)); 192*f5c631daSSadaf Ebrahimi return static_cast<int32_t>(offset); 193*f5c631daSSadaf Ebrahimi } 194*f5c631daSSadaf Ebrahimi GetArchitectureStatePCOffset()195*f5c631daSSadaf Ebrahimi uint32_t GetArchitectureStatePCOffset() const { return IsUsingT32() ? 4 : 8; } 196*f5c631daSSadaf Ebrahimi 197*f5c631daSSadaf Ebrahimi // Bind a raw Location that will never be tracked by the pool manager. bind(Location * location)198*f5c631daSSadaf Ebrahimi void bind(Location* location) { 199*f5c631daSSadaf Ebrahimi VIXL_ASSERT(AllowAssembler()); 200*f5c631daSSadaf Ebrahimi VIXL_ASSERT(!location->IsBound()); 201*f5c631daSSadaf Ebrahimi location->SetLocation(this, GetCursorOffset()); 202*f5c631daSSadaf Ebrahimi location->MarkBound(); 203*f5c631daSSadaf Ebrahimi } 204*f5c631daSSadaf Ebrahimi 205*f5c631daSSadaf Ebrahimi // Bind a Label, which may be tracked by the pool manager in the presence of a 206*f5c631daSSadaf Ebrahimi // MacroAssembler. bind(Label * label)207*f5c631daSSadaf Ebrahimi void bind(Label* label) { 208*f5c631daSSadaf Ebrahimi VIXL_ASSERT(AllowAssembler()); 209*f5c631daSSadaf Ebrahimi BindHelper(label); 210*f5c631daSSadaf Ebrahimi } 211*f5c631daSSadaf Ebrahimi place(RawLiteral * literal)212*f5c631daSSadaf Ebrahimi void place(RawLiteral* literal) { 213*f5c631daSSadaf Ebrahimi VIXL_ASSERT(AllowAssembler()); 214*f5c631daSSadaf Ebrahimi VIXL_ASSERT(literal->IsManuallyPlaced()); 215*f5c631daSSadaf Ebrahimi literal->SetLocation(this, GetCursorOffset()); 216*f5c631daSSadaf Ebrahimi literal->MarkBound(); 217*f5c631daSSadaf Ebrahimi GetBuffer()->EnsureSpaceFor(literal->GetSize()); 218*f5c631daSSadaf Ebrahimi GetBuffer()->EmitData(literal->GetDataAddress(), literal->GetSize()); 219*f5c631daSSadaf Ebrahimi } 220*f5c631daSSadaf Ebrahimi GetSizeOfCodeGeneratedSince(Label * label)221*f5c631daSSadaf Ebrahimi size_t GetSizeOfCodeGeneratedSince(Label* label) const { 222*f5c631daSSadaf Ebrahimi VIXL_ASSERT(label->IsBound()); 223*f5c631daSSadaf Ebrahimi return buffer_.GetOffsetFrom(label->GetLocation()); 224*f5c631daSSadaf Ebrahimi } 225*f5c631daSSadaf Ebrahimi 226*f5c631daSSadaf Ebrahimi // Helpers for it instruction. it(Condition cond)227*f5c631daSSadaf Ebrahimi void it(Condition cond) { it(cond, 0x8); } itt(Condition cond)228*f5c631daSSadaf Ebrahimi void itt(Condition cond) { it(cond, 0x4); } ite(Condition cond)229*f5c631daSSadaf Ebrahimi void ite(Condition cond) { it(cond, 0xc); } ittt(Condition cond)230*f5c631daSSadaf Ebrahimi void ittt(Condition cond) { it(cond, 0x2); } itet(Condition cond)231*f5c631daSSadaf Ebrahimi void itet(Condition cond) { it(cond, 0xa); } itte(Condition cond)232*f5c631daSSadaf Ebrahimi void itte(Condition cond) { it(cond, 0x6); } itee(Condition cond)233*f5c631daSSadaf Ebrahimi void itee(Condition cond) { it(cond, 0xe); } itttt(Condition cond)234*f5c631daSSadaf Ebrahimi void itttt(Condition cond) { it(cond, 0x1); } itett(Condition cond)235*f5c631daSSadaf Ebrahimi void itett(Condition cond) { it(cond, 0x9); } ittet(Condition cond)236*f5c631daSSadaf Ebrahimi void ittet(Condition cond) { it(cond, 0x5); } iteet(Condition cond)237*f5c631daSSadaf Ebrahimi void iteet(Condition cond) { it(cond, 0xd); } ittte(Condition cond)238*f5c631daSSadaf Ebrahimi void ittte(Condition cond) { it(cond, 0x3); } itete(Condition cond)239*f5c631daSSadaf Ebrahimi void itete(Condition cond) { it(cond, 0xb); } ittee(Condition cond)240*f5c631daSSadaf Ebrahimi void ittee(Condition cond) { it(cond, 0x7); } iteee(Condition cond)241*f5c631daSSadaf Ebrahimi void iteee(Condition cond) { it(cond, 0xf); } 242*f5c631daSSadaf Ebrahimi 243*f5c631daSSadaf Ebrahimi // Start of generated code. 244*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRROp)(Condition cond, 245*f5c631daSSadaf Ebrahimi EncodingSize size, 246*f5c631daSSadaf Ebrahimi Register rd, 247*f5c631daSSadaf Ebrahimi Register rn, 248*f5c631daSSadaf Ebrahimi const Operand& operand); 249*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondROp)(Condition cond, 250*f5c631daSSadaf Ebrahimi Register rd, 251*f5c631daSSadaf Ebrahimi const Operand& operand); 252*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionROp)(Register rd, 253*f5c631daSSadaf Ebrahimi const Operand& operand); 254*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRROp)(Condition cond, 255*f5c631daSSadaf Ebrahimi Register rd, 256*f5c631daSSadaf Ebrahimi Register rn, 257*f5c631daSSadaf Ebrahimi const Operand& operand); 258*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRL)(Condition cond, 259*f5c631daSSadaf Ebrahimi EncodingSize size, 260*f5c631daSSadaf Ebrahimi Register rd, 261*f5c631daSSadaf Ebrahimi Location* location); 262*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtQQ)(DataType dt, 263*f5c631daSSadaf Ebrahimi QRegister rd, 264*f5c631daSSadaf Ebrahimi QRegister rm); 265*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeL)(Condition cond, 266*f5c631daSSadaf Ebrahimi EncodingSize size, 267*f5c631daSSadaf Ebrahimi Location* location); 268*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRII)(Condition cond, 269*f5c631daSSadaf Ebrahimi Register rd, 270*f5c631daSSadaf Ebrahimi uint32_t lsb, 271*f5c631daSSadaf Ebrahimi uint32_t width); 272*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRII)( 273*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, uint32_t lsb, uint32_t width); 274*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondI)(Condition cond, uint32_t imm); 275*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondL)(Condition cond, 276*f5c631daSSadaf Ebrahimi Location* location); 277*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondR)(Condition cond, Register rm); 278*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionRL)(Register rn, Location* location); 279*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCond)(Condition cond); 280*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRR)(Condition cond, 281*f5c631daSSadaf Ebrahimi Register rd, 282*f5c631daSSadaf Ebrahimi Register rm); 283*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeROp)(Condition cond, 284*f5c631daSSadaf Ebrahimi EncodingSize size, 285*f5c631daSSadaf Ebrahimi Register rn, 286*f5c631daSSadaf Ebrahimi const Operand& operand); 287*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRR)(Condition cond, 288*f5c631daSSadaf Ebrahimi Register rd, 289*f5c631daSSadaf Ebrahimi Register rn, 290*f5c631daSSadaf Ebrahimi Register rm); 291*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondBa)(Condition cond, 292*f5c631daSSadaf Ebrahimi MemoryBarrier option); 293*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRwbDrl)(Condition cond, 294*f5c631daSSadaf Ebrahimi Register rn, 295*f5c631daSSadaf Ebrahimi WriteBack write_back, 296*f5c631daSSadaf Ebrahimi DRegisterList dreglist); 297*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRMop)(Condition cond, 298*f5c631daSSadaf Ebrahimi Register rt, 299*f5c631daSSadaf Ebrahimi const MemOperand& operand); 300*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRMop)(Condition cond, 301*f5c631daSSadaf Ebrahimi Register rt, 302*f5c631daSSadaf Ebrahimi Register rt2, 303*f5c631daSSadaf Ebrahimi const MemOperand& operand); 304*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRwbRl)(Condition cond, 305*f5c631daSSadaf Ebrahimi EncodingSize size, 306*f5c631daSSadaf Ebrahimi Register rn, 307*f5c631daSSadaf Ebrahimi WriteBack write_back, 308*f5c631daSSadaf Ebrahimi RegisterList registers); 309*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRwbRl)(Condition cond, 310*f5c631daSSadaf Ebrahimi Register rn, 311*f5c631daSSadaf Ebrahimi WriteBack write_back, 312*f5c631daSSadaf Ebrahimi RegisterList registers); 313*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRMop)(Condition cond, 314*f5c631daSSadaf Ebrahimi EncodingSize size, 315*f5c631daSSadaf Ebrahimi Register rt, 316*f5c631daSSadaf Ebrahimi const MemOperand& operand); 317*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRL)(Condition cond, 318*f5c631daSSadaf Ebrahimi Register rt, 319*f5c631daSSadaf Ebrahimi Location* location); 320*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRL)(Condition cond, 321*f5c631daSSadaf Ebrahimi Register rt, 322*f5c631daSSadaf Ebrahimi Register rt2, 323*f5c631daSSadaf Ebrahimi Location* location); 324*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRRR)( 325*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); 326*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRSr)(Condition cond, 327*f5c631daSSadaf Ebrahimi Register rd, 328*f5c631daSSadaf Ebrahimi SpecialRegister spec_reg); 329*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondMsrOp)( 330*f5c631daSSadaf Ebrahimi Condition cond, MaskedSpecialRegister spec_reg, const Operand& operand); 331*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRRR)( 332*f5c631daSSadaf Ebrahimi Condition cond, EncodingSize size, Register rd, Register rn, Register rm); 333*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSize)(Condition cond, 334*f5c631daSSadaf Ebrahimi EncodingSize size); 335*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondMop)(Condition cond, 336*f5c631daSSadaf Ebrahimi const MemOperand& operand); 337*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRl)(Condition cond, 338*f5c631daSSadaf Ebrahimi EncodingSize size, 339*f5c631daSSadaf Ebrahimi RegisterList registers); 340*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeOrl)(Condition cond, 341*f5c631daSSadaf Ebrahimi EncodingSize size, 342*f5c631daSSadaf Ebrahimi Register rt); 343*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeRR)(Condition cond, 344*f5c631daSSadaf Ebrahimi EncodingSize size, 345*f5c631daSSadaf Ebrahimi Register rd, 346*f5c631daSSadaf Ebrahimi Register rm); 347*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtQQQ)(DataType dt, 348*f5c631daSSadaf Ebrahimi QRegister rd, 349*f5c631daSSadaf Ebrahimi QRegister rn, 350*f5c631daSSadaf Ebrahimi QRegister rm); 351*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRIOp)(Condition cond, 352*f5c631daSSadaf Ebrahimi Register rd, 353*f5c631daSSadaf Ebrahimi uint32_t imm, 354*f5c631daSSadaf Ebrahimi const Operand& operand); 355*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRIR)(Condition cond, 356*f5c631daSSadaf Ebrahimi Register rd, 357*f5c631daSSadaf Ebrahimi uint32_t imm, 358*f5c631daSSadaf Ebrahimi Register rn); 359*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRRMop)(Condition cond, 360*f5c631daSSadaf Ebrahimi Register rd, 361*f5c631daSSadaf Ebrahimi Register rt, 362*f5c631daSSadaf Ebrahimi Register rt2, 363*f5c631daSSadaf Ebrahimi const MemOperand& operand); 364*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSizeI)(Condition cond, 365*f5c631daSSadaf Ebrahimi EncodingSize size, 366*f5c631daSSadaf Ebrahimi uint32_t imm); 367*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDD)( 368*f5c631daSSadaf Ebrahimi Condition cond, DataType dt, DRegister rd, DRegister rn, DRegister rm); 369*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQQ)( 370*f5c631daSSadaf Ebrahimi Condition cond, DataType dt, QRegister rd, QRegister rn, QRegister rm); 371*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQDD)( 372*f5c631daSSadaf Ebrahimi Condition cond, DataType dt, QRegister rd, DRegister rn, DRegister rm); 373*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDD)(Condition cond, 374*f5c631daSSadaf Ebrahimi DataType dt, 375*f5c631daSSadaf Ebrahimi DRegister rd, 376*f5c631daSSadaf Ebrahimi DRegister rm); 377*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQ)(Condition cond, 378*f5c631daSSadaf Ebrahimi DataType dt, 379*f5c631daSSadaf Ebrahimi QRegister rd, 380*f5c631daSSadaf Ebrahimi QRegister rm); 381*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtSS)(Condition cond, 382*f5c631daSSadaf Ebrahimi DataType dt, 383*f5c631daSSadaf Ebrahimi SRegister rd, 384*f5c631daSSadaf Ebrahimi SRegister rm); 385*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtSSS)( 386*f5c631daSSadaf Ebrahimi Condition cond, DataType dt, SRegister rd, SRegister rn, SRegister rm); 387*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDQQ)( 388*f5c631daSSadaf Ebrahimi Condition cond, DataType dt, DRegister rd, QRegister rn, QRegister rm); 389*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQD)( 390*f5c631daSSadaf Ebrahimi Condition cond, DataType dt, QRegister rd, QRegister rn, DRegister rm); 391*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDDop)(Condition cond, 392*f5c631daSSadaf Ebrahimi DataType dt, 393*f5c631daSSadaf Ebrahimi DRegister rd, 394*f5c631daSSadaf Ebrahimi DRegister rn, 395*f5c631daSSadaf Ebrahimi const DOperand& operand); 396*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQQop)(Condition cond, 397*f5c631daSSadaf Ebrahimi DataType dt, 398*f5c631daSSadaf Ebrahimi QRegister rd, 399*f5c631daSSadaf Ebrahimi QRegister rn, 400*f5c631daSSadaf Ebrahimi const QOperand& operand); 401*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtSSop)(Condition cond, 402*f5c631daSSadaf Ebrahimi DataType dt, 403*f5c631daSSadaf Ebrahimi SRegister rd, 404*f5c631daSSadaf Ebrahimi const SOperand& operand); 405*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDop)(Condition cond, 406*f5c631daSSadaf Ebrahimi DataType dt, 407*f5c631daSSadaf Ebrahimi DRegister rd, 408*f5c631daSSadaf Ebrahimi const DOperand& operand); 409*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtDS)( 410*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, DRegister rd, SRegister rm); 411*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtSD)( 412*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, SRegister rd, DRegister rm); 413*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtDDSi)(Condition cond, 414*f5c631daSSadaf Ebrahimi DataType dt1, 415*f5c631daSSadaf Ebrahimi DataType dt2, 416*f5c631daSSadaf Ebrahimi DRegister rd, 417*f5c631daSSadaf Ebrahimi DRegister rm, 418*f5c631daSSadaf Ebrahimi int32_t fbits); 419*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtQQSi)(Condition cond, 420*f5c631daSSadaf Ebrahimi DataType dt1, 421*f5c631daSSadaf Ebrahimi DataType dt2, 422*f5c631daSSadaf Ebrahimi QRegister rd, 423*f5c631daSSadaf Ebrahimi QRegister rm, 424*f5c631daSSadaf Ebrahimi int32_t fbits); 425*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtSSSi)(Condition cond, 426*f5c631daSSadaf Ebrahimi DataType dt1, 427*f5c631daSSadaf Ebrahimi DataType dt2, 428*f5c631daSSadaf Ebrahimi SRegister rd, 429*f5c631daSSadaf Ebrahimi SRegister rm, 430*f5c631daSSadaf Ebrahimi int32_t fbits); 431*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtDD)( 432*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, DRegister rd, DRegister rm); 433*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtQQ)( 434*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, QRegister rd, QRegister rm); 435*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtDQ)( 436*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, DRegister rd, QRegister rm); 437*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtQD)( 438*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, QRegister rd, DRegister rm); 439*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDtSS)( 440*f5c631daSSadaf Ebrahimi Condition cond, DataType dt1, DataType dt2, SRegister rd, SRegister rm); 441*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtDtDD)(DataType dt1, 442*f5c631daSSadaf Ebrahimi DataType dt2, 443*f5c631daSSadaf Ebrahimi DRegister rd, 444*f5c631daSSadaf Ebrahimi DRegister rm); 445*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtDtQQ)(DataType dt1, 446*f5c631daSSadaf Ebrahimi DataType dt2, 447*f5c631daSSadaf Ebrahimi QRegister rd, 448*f5c631daSSadaf Ebrahimi QRegister rm); 449*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtDtSS)(DataType dt1, 450*f5c631daSSadaf Ebrahimi DataType dt2, 451*f5c631daSSadaf Ebrahimi SRegister rd, 452*f5c631daSSadaf Ebrahimi SRegister rm); 453*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtDtSD)(DataType dt1, 454*f5c631daSSadaf Ebrahimi DataType dt2, 455*f5c631daSSadaf Ebrahimi SRegister rd, 456*f5c631daSSadaf Ebrahimi DRegister rm); 457*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQR)(Condition cond, 458*f5c631daSSadaf Ebrahimi DataType dt, 459*f5c631daSSadaf Ebrahimi QRegister rd, 460*f5c631daSSadaf Ebrahimi Register rt); 461*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDR)(Condition cond, 462*f5c631daSSadaf Ebrahimi DataType dt, 463*f5c631daSSadaf Ebrahimi DRegister rd, 464*f5c631daSSadaf Ebrahimi Register rt); 465*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDx)(Condition cond, 466*f5c631daSSadaf Ebrahimi DataType dt, 467*f5c631daSSadaf Ebrahimi DRegister rd, 468*f5c631daSSadaf Ebrahimi DRegisterLane rm); 469*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQDx)(Condition cond, 470*f5c631daSSadaf Ebrahimi DataType dt, 471*f5c631daSSadaf Ebrahimi QRegister rd, 472*f5c631daSSadaf Ebrahimi DRegisterLane rm); 473*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDDDop)(Condition cond, 474*f5c631daSSadaf Ebrahimi DataType dt, 475*f5c631daSSadaf Ebrahimi DRegister rd, 476*f5c631daSSadaf Ebrahimi DRegister rn, 477*f5c631daSSadaf Ebrahimi DRegister rm, 478*f5c631daSSadaf Ebrahimi const DOperand& operand); 479*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQQQop)(Condition cond, 480*f5c631daSSadaf Ebrahimi DataType dt, 481*f5c631daSSadaf Ebrahimi QRegister rd, 482*f5c631daSSadaf Ebrahimi QRegister rn, 483*f5c631daSSadaf Ebrahimi QRegister rm, 484*f5c631daSSadaf Ebrahimi const QOperand& operand); 485*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtNrlAmop)( 486*f5c631daSSadaf Ebrahimi Condition cond, 487*f5c631daSSadaf Ebrahimi DataType dt, 488*f5c631daSSadaf Ebrahimi const NeonRegisterList& nreglist, 489*f5c631daSSadaf Ebrahimi const AlignedMemOperand& operand); 490*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtNrlMop)( 491*f5c631daSSadaf Ebrahimi Condition cond, 492*f5c631daSSadaf Ebrahimi DataType dt, 493*f5c631daSSadaf Ebrahimi const NeonRegisterList& nreglist, 494*f5c631daSSadaf Ebrahimi const MemOperand& operand); 495*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtRwbDrl)(Condition cond, 496*f5c631daSSadaf Ebrahimi DataType dt, 497*f5c631daSSadaf Ebrahimi Register rn, 498*f5c631daSSadaf Ebrahimi WriteBack write_back, 499*f5c631daSSadaf Ebrahimi DRegisterList dreglist); 500*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtRwbSrl)(Condition cond, 501*f5c631daSSadaf Ebrahimi DataType dt, 502*f5c631daSSadaf Ebrahimi Register rn, 503*f5c631daSSadaf Ebrahimi WriteBack write_back, 504*f5c631daSSadaf Ebrahimi SRegisterList sreglist); 505*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDL)(Condition cond, 506*f5c631daSSadaf Ebrahimi DataType dt, 507*f5c631daSSadaf Ebrahimi DRegister rd, 508*f5c631daSSadaf Ebrahimi Location* location); 509*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDMop)(Condition cond, 510*f5c631daSSadaf Ebrahimi DataType dt, 511*f5c631daSSadaf Ebrahimi DRegister rd, 512*f5c631daSSadaf Ebrahimi const MemOperand& operand); 513*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtSL)(Condition cond, 514*f5c631daSSadaf Ebrahimi DataType dt, 515*f5c631daSSadaf Ebrahimi SRegister rd, 516*f5c631daSSadaf Ebrahimi Location* location); 517*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtSMop)(Condition cond, 518*f5c631daSSadaf Ebrahimi DataType dt, 519*f5c631daSSadaf Ebrahimi SRegister rd, 520*f5c631daSSadaf Ebrahimi const MemOperand& operand); 521*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtDDD)(DataType dt, 522*f5c631daSSadaf Ebrahimi DRegister rd, 523*f5c631daSSadaf Ebrahimi DRegister rn, 524*f5c631daSSadaf Ebrahimi DRegister rm); 525*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtSSS)(DataType dt, 526*f5c631daSSadaf Ebrahimi SRegister rd, 527*f5c631daSSadaf Ebrahimi SRegister rn, 528*f5c631daSSadaf Ebrahimi SRegister rm); 529*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDDx)(Condition cond, 530*f5c631daSSadaf Ebrahimi DataType dt, 531*f5c631daSSadaf Ebrahimi DRegister rd, 532*f5c631daSSadaf Ebrahimi DRegister rn, 533*f5c631daSSadaf Ebrahimi DRegisterLane rm); 534*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQDx)(Condition cond, 535*f5c631daSSadaf Ebrahimi DataType dt, 536*f5c631daSSadaf Ebrahimi QRegister rd, 537*f5c631daSSadaf Ebrahimi QRegister rn, 538*f5c631daSSadaf Ebrahimi DRegisterLane rm); 539*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQDDx)(Condition cond, 540*f5c631daSSadaf Ebrahimi DataType dt, 541*f5c631daSSadaf Ebrahimi QRegister rd, 542*f5c631daSSadaf Ebrahimi DRegister rn, 543*f5c631daSSadaf Ebrahimi DRegisterLane rm); 544*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRS)(Condition cond, 545*f5c631daSSadaf Ebrahimi Register rt, 546*f5c631daSSadaf Ebrahimi SRegister rn); 547*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSR)(Condition cond, 548*f5c631daSSadaf Ebrahimi SRegister rn, 549*f5c631daSSadaf Ebrahimi Register rt); 550*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRD)(Condition cond, 551*f5c631daSSadaf Ebrahimi Register rt, 552*f5c631daSSadaf Ebrahimi Register rt2, 553*f5c631daSSadaf Ebrahimi DRegister rm); 554*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDRR)(Condition cond, 555*f5c631daSSadaf Ebrahimi DRegister rm, 556*f5c631daSSadaf Ebrahimi Register rt, 557*f5c631daSSadaf Ebrahimi Register rt2); 558*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRRSS)( 559*f5c631daSSadaf Ebrahimi Condition cond, Register rt, Register rt2, SRegister rm, SRegister rm1); 560*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSSRR)( 561*f5c631daSSadaf Ebrahimi Condition cond, SRegister rm, SRegister rm1, Register rt, Register rt2); 562*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDxR)(Condition cond, 563*f5c631daSSadaf Ebrahimi DataType dt, 564*f5c631daSSadaf Ebrahimi DRegisterLane rd, 565*f5c631daSSadaf Ebrahimi Register rt); 566*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQop)(Condition cond, 567*f5c631daSSadaf Ebrahimi DataType dt, 568*f5c631daSSadaf Ebrahimi QRegister rd, 569*f5c631daSSadaf Ebrahimi const QOperand& operand); 570*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtRDx)(Condition cond, 571*f5c631daSSadaf Ebrahimi DataType dt, 572*f5c631daSSadaf Ebrahimi Register rt, 573*f5c631daSSadaf Ebrahimi DRegisterLane rn); 574*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQD)(Condition cond, 575*f5c631daSSadaf Ebrahimi DataType dt, 576*f5c631daSSadaf Ebrahimi QRegister rd, 577*f5c631daSSadaf Ebrahimi DRegister rm); 578*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDQ)(Condition cond, 579*f5c631daSSadaf Ebrahimi DataType dt, 580*f5c631daSSadaf Ebrahimi DRegister rd, 581*f5c631daSSadaf Ebrahimi QRegister rm); 582*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondRoaSfp)(Condition cond, 583*f5c631daSSadaf Ebrahimi RegisterOrAPSR_nzcv rt, 584*f5c631daSSadaf Ebrahimi SpecialFPRegister spec_reg); 585*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondSfpR)(Condition cond, 586*f5c631daSSadaf Ebrahimi SpecialFPRegister spec_reg, 587*f5c631daSSadaf Ebrahimi Register rt); 588*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDDIr)(Condition cond, 589*f5c631daSSadaf Ebrahimi DataType dt, 590*f5c631daSSadaf Ebrahimi DRegister rd, 591*f5c631daSSadaf Ebrahimi DRegister rn, 592*f5c631daSSadaf Ebrahimi DRegister dm, 593*f5c631daSSadaf Ebrahimi unsigned index); 594*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQQIr)(Condition cond, 595*f5c631daSSadaf Ebrahimi DataType dt, 596*f5c631daSSadaf Ebrahimi QRegister rd, 597*f5c631daSSadaf Ebrahimi QRegister rn, 598*f5c631daSSadaf Ebrahimi DRegister dm, 599*f5c631daSSadaf Ebrahimi unsigned index); 600*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQDIr)(Condition cond, 601*f5c631daSSadaf Ebrahimi DataType dt, 602*f5c631daSSadaf Ebrahimi QRegister rd, 603*f5c631daSSadaf Ebrahimi DRegister rn, 604*f5c631daSSadaf Ebrahimi DRegister dm, 605*f5c631daSSadaf Ebrahimi unsigned index); 606*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDrl)(Condition cond, 607*f5c631daSSadaf Ebrahimi DataType dt, 608*f5c631daSSadaf Ebrahimi DRegisterList dreglist); 609*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtSrl)(Condition cond, 610*f5c631daSSadaf Ebrahimi DataType dt, 611*f5c631daSSadaf Ebrahimi SRegisterList sreglist); 612*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDQQop)(Condition cond, 613*f5c631daSSadaf Ebrahimi DataType dt, 614*f5c631daSSadaf Ebrahimi DRegister rd, 615*f5c631daSSadaf Ebrahimi QRegister rm, 616*f5c631daSSadaf Ebrahimi const QOperand& operand); 617*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtDD)(DataType dt, 618*f5c631daSSadaf Ebrahimi DRegister rd, 619*f5c631daSSadaf Ebrahimi DRegister rm); 620*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionDtSS)(DataType dt, 621*f5c631daSSadaf Ebrahimi SRegister rd, 622*f5c631daSSadaf Ebrahimi SRegister rm); 623*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtQDDop)(Condition cond, 624*f5c631daSSadaf Ebrahimi DataType dt, 625*f5c631daSSadaf Ebrahimi QRegister rd, 626*f5c631daSSadaf Ebrahimi DRegister rm, 627*f5c631daSSadaf Ebrahimi const DOperand& operand); 628*f5c631daSSadaf Ebrahimi typedef void (Assembler::*InstructionCondDtDNrlD)( 629*f5c631daSSadaf Ebrahimi Condition cond, 630*f5c631daSSadaf Ebrahimi DataType dt, 631*f5c631daSSadaf Ebrahimi DRegister rd, 632*f5c631daSSadaf Ebrahimi const NeonRegisterList& nreglist, 633*f5c631daSSadaf Ebrahimi DRegister rm); Delegate(InstructionType type,InstructionCondSizeRROp,Condition,EncodingSize,Register,Register,const Operand &)634*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 635*f5c631daSSadaf Ebrahimi InstructionCondSizeRROp /*instruction*/, 636*f5c631daSSadaf Ebrahimi Condition /*cond*/, 637*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 638*f5c631daSSadaf Ebrahimi Register /*rd*/, 639*f5c631daSSadaf Ebrahimi Register /*rn*/, 640*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 641*f5c631daSSadaf Ebrahimi USE(type); 642*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kAdc) || (type == kAdcs) || (type == kAdd) || 643*f5c631daSSadaf Ebrahimi (type == kAdds) || (type == kAnd) || (type == kAnds) || 644*f5c631daSSadaf Ebrahimi (type == kAsr) || (type == kAsrs) || (type == kBic) || 645*f5c631daSSadaf Ebrahimi (type == kBics) || (type == kEor) || (type == kEors) || 646*f5c631daSSadaf Ebrahimi (type == kLsl) || (type == kLsls) || (type == kLsr) || 647*f5c631daSSadaf Ebrahimi (type == kLsrs) || (type == kOrr) || (type == kOrrs) || 648*f5c631daSSadaf Ebrahimi (type == kRor) || (type == kRors) || (type == kRsb) || 649*f5c631daSSadaf Ebrahimi (type == kRsbs) || (type == kSbc) || (type == kSbcs) || 650*f5c631daSSadaf Ebrahimi (type == kSub) || (type == kSubs)); 651*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 652*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondROp,Condition,Register,const Operand &)653*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 654*f5c631daSSadaf Ebrahimi InstructionCondROp /*instruction*/, 655*f5c631daSSadaf Ebrahimi Condition /*cond*/, 656*f5c631daSSadaf Ebrahimi Register /*rd*/, 657*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 658*f5c631daSSadaf Ebrahimi USE(type); 659*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kAdd) || (type == kMovt) || (type == kMovw) || 660*f5c631daSSadaf Ebrahimi (type == kSub) || (type == kSxtb16) || (type == kTeq) || 661*f5c631daSSadaf Ebrahimi (type == kUxtb16)); 662*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 663*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionROp,Register,const Operand &)664*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 665*f5c631daSSadaf Ebrahimi InstructionROp /*instruction*/, 666*f5c631daSSadaf Ebrahimi Register /*rd*/, 667*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 668*f5c631daSSadaf Ebrahimi USE(type); 669*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kAdds) || (type == kSubs)); 670*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 671*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRROp,Condition,Register,Register,const Operand &)672*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 673*f5c631daSSadaf Ebrahimi InstructionCondRROp /*instruction*/, 674*f5c631daSSadaf Ebrahimi Condition /*cond*/, 675*f5c631daSSadaf Ebrahimi Register /*rd*/, 676*f5c631daSSadaf Ebrahimi Register /*rn*/, 677*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 678*f5c631daSSadaf Ebrahimi USE(type); 679*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kAddw) || (type == kOrn) || (type == kOrns) || 680*f5c631daSSadaf Ebrahimi (type == kPkhbt) || (type == kPkhtb) || (type == kRsc) || 681*f5c631daSSadaf Ebrahimi (type == kRscs) || (type == kSubw) || (type == kSxtab) || 682*f5c631daSSadaf Ebrahimi (type == kSxtab16) || (type == kSxtah) || (type == kUxtab) || 683*f5c631daSSadaf Ebrahimi (type == kUxtab16) || (type == kUxtah)); 684*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 685*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeRL,Condition,EncodingSize,Register,Location *)686*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 687*f5c631daSSadaf Ebrahimi InstructionCondSizeRL /*instruction*/, 688*f5c631daSSadaf Ebrahimi Condition /*cond*/, 689*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 690*f5c631daSSadaf Ebrahimi Register /*rd*/, 691*f5c631daSSadaf Ebrahimi Location* /*location*/) { 692*f5c631daSSadaf Ebrahimi USE(type); 693*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kAdr) || (type == kLdr)); 694*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 695*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtQQ,DataType,QRegister,QRegister)696*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 697*f5c631daSSadaf Ebrahimi InstructionDtQQ /*instruction*/, 698*f5c631daSSadaf Ebrahimi DataType /*dt*/, 699*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 700*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 701*f5c631daSSadaf Ebrahimi USE(type); 702*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVrinta) || (type == kVrintm) || (type == kVrintn) || 703*f5c631daSSadaf Ebrahimi (type == kVrintp) || (type == kVrintx) || (type == kVrintz)); 704*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 705*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeL,Condition,EncodingSize,Location *)706*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 707*f5c631daSSadaf Ebrahimi InstructionCondSizeL /*instruction*/, 708*f5c631daSSadaf Ebrahimi Condition /*cond*/, 709*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 710*f5c631daSSadaf Ebrahimi Location* /*location*/) { 711*f5c631daSSadaf Ebrahimi USE(type); 712*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kB)); 713*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 714*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRII,Condition,Register,uint32_t,uint32_t)715*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 716*f5c631daSSadaf Ebrahimi InstructionCondRII /*instruction*/, 717*f5c631daSSadaf Ebrahimi Condition /*cond*/, 718*f5c631daSSadaf Ebrahimi Register /*rd*/, 719*f5c631daSSadaf Ebrahimi uint32_t /*lsb*/, 720*f5c631daSSadaf Ebrahimi uint32_t /*width*/) { 721*f5c631daSSadaf Ebrahimi USE(type); 722*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kBfc)); 723*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 724*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRII,Condition,Register,Register,uint32_t,uint32_t)725*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 726*f5c631daSSadaf Ebrahimi InstructionCondRRII /*instruction*/, 727*f5c631daSSadaf Ebrahimi Condition /*cond*/, 728*f5c631daSSadaf Ebrahimi Register /*rd*/, 729*f5c631daSSadaf Ebrahimi Register /*rn*/, 730*f5c631daSSadaf Ebrahimi uint32_t /*lsb*/, 731*f5c631daSSadaf Ebrahimi uint32_t /*width*/) { 732*f5c631daSSadaf Ebrahimi USE(type); 733*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kBfi) || (type == kSbfx) || (type == kUbfx)); 734*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 735*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondI,Condition,uint32_t)736*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 737*f5c631daSSadaf Ebrahimi InstructionCondI /*instruction*/, 738*f5c631daSSadaf Ebrahimi Condition /*cond*/, 739*f5c631daSSadaf Ebrahimi uint32_t /*imm*/) { 740*f5c631daSSadaf Ebrahimi USE(type); 741*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kBkpt) || (type == kHlt) || (type == kHvc) || 742*f5c631daSSadaf Ebrahimi (type == kSvc)); 743*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 744*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondL,Condition,Location *)745*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 746*f5c631daSSadaf Ebrahimi InstructionCondL /*instruction*/, 747*f5c631daSSadaf Ebrahimi Condition /*cond*/, 748*f5c631daSSadaf Ebrahimi Location* /*location*/) { 749*f5c631daSSadaf Ebrahimi USE(type); 750*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kBl) || (type == kBlx) || (type == kPld) || 751*f5c631daSSadaf Ebrahimi (type == kPli)); 752*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 753*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondR,Condition,Register)754*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 755*f5c631daSSadaf Ebrahimi InstructionCondR /*instruction*/, 756*f5c631daSSadaf Ebrahimi Condition /*cond*/, 757*f5c631daSSadaf Ebrahimi Register /*rm*/) { 758*f5c631daSSadaf Ebrahimi USE(type); 759*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kBlx) || (type == kBx) || (type == kBxj)); 760*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 761*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionRL,Register,Location *)762*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 763*f5c631daSSadaf Ebrahimi InstructionRL /*instruction*/, 764*f5c631daSSadaf Ebrahimi Register /*rn*/, 765*f5c631daSSadaf Ebrahimi Location* /*location*/) { 766*f5c631daSSadaf Ebrahimi USE(type); 767*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kCbnz) || (type == kCbz)); 768*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 769*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCond,Condition)770*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 771*f5c631daSSadaf Ebrahimi InstructionCond /*instruction*/, 772*f5c631daSSadaf Ebrahimi Condition /*cond*/) { 773*f5c631daSSadaf Ebrahimi USE(type); 774*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kClrex)); 775*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 776*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRR,Condition,Register,Register)777*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 778*f5c631daSSadaf Ebrahimi InstructionCondRR /*instruction*/, 779*f5c631daSSadaf Ebrahimi Condition /*cond*/, 780*f5c631daSSadaf Ebrahimi Register /*rd*/, 781*f5c631daSSadaf Ebrahimi Register /*rm*/) { 782*f5c631daSSadaf Ebrahimi USE(type); 783*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kClz) || (type == kRbit) || (type == kRrx) || 784*f5c631daSSadaf Ebrahimi (type == kRrxs)); 785*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 786*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeROp,Condition,EncodingSize,Register,const Operand &)787*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 788*f5c631daSSadaf Ebrahimi InstructionCondSizeROp /*instruction*/, 789*f5c631daSSadaf Ebrahimi Condition /*cond*/, 790*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 791*f5c631daSSadaf Ebrahimi Register /*rn*/, 792*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 793*f5c631daSSadaf Ebrahimi USE(type); 794*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kCmn) || (type == kCmp) || (type == kMov) || 795*f5c631daSSadaf Ebrahimi (type == kMovs) || (type == kMvn) || (type == kMvns) || 796*f5c631daSSadaf Ebrahimi (type == kSxtb) || (type == kSxth) || (type == kTst) || 797*f5c631daSSadaf Ebrahimi (type == kUxtb) || (type == kUxth)); 798*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 799*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRR,Condition,Register,Register,Register)800*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 801*f5c631daSSadaf Ebrahimi InstructionCondRRR /*instruction*/, 802*f5c631daSSadaf Ebrahimi Condition /*cond*/, 803*f5c631daSSadaf Ebrahimi Register /*rd*/, 804*f5c631daSSadaf Ebrahimi Register /*rn*/, 805*f5c631daSSadaf Ebrahimi Register /*rm*/) { 806*f5c631daSSadaf Ebrahimi USE(type); 807*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kCrc32b) || (type == kCrc32cb) || (type == kCrc32ch) || 808*f5c631daSSadaf Ebrahimi (type == kCrc32cw) || (type == kCrc32h) || (type == kCrc32w) || 809*f5c631daSSadaf Ebrahimi (type == kMuls) || (type == kQadd) || (type == kQadd16) || 810*f5c631daSSadaf Ebrahimi (type == kQadd8) || (type == kQasx) || (type == kQdadd) || 811*f5c631daSSadaf Ebrahimi (type == kQdsub) || (type == kQsax) || (type == kQsub) || 812*f5c631daSSadaf Ebrahimi (type == kQsub16) || (type == kQsub8) || (type == kSadd16) || 813*f5c631daSSadaf Ebrahimi (type == kSadd8) || (type == kSasx) || (type == kSdiv) || 814*f5c631daSSadaf Ebrahimi (type == kSel) || (type == kShadd16) || (type == kShadd8) || 815*f5c631daSSadaf Ebrahimi (type == kShasx) || (type == kShsax) || (type == kShsub16) || 816*f5c631daSSadaf Ebrahimi (type == kShsub8) || (type == kSmmul) || (type == kSmmulr) || 817*f5c631daSSadaf Ebrahimi (type == kSmuad) || (type == kSmuadx) || (type == kSmulbb) || 818*f5c631daSSadaf Ebrahimi (type == kSmulbt) || (type == kSmultb) || (type == kSmultt) || 819*f5c631daSSadaf Ebrahimi (type == kSmulwb) || (type == kSmulwt) || (type == kSmusd) || 820*f5c631daSSadaf Ebrahimi (type == kSmusdx) || (type == kSsax) || (type == kSsub16) || 821*f5c631daSSadaf Ebrahimi (type == kSsub8) || (type == kUadd16) || (type == kUadd8) || 822*f5c631daSSadaf Ebrahimi (type == kUasx) || (type == kUdiv) || (type == kUhadd16) || 823*f5c631daSSadaf Ebrahimi (type == kUhadd8) || (type == kUhasx) || (type == kUhsax) || 824*f5c631daSSadaf Ebrahimi (type == kUhsub16) || (type == kUhsub8) || (type == kUqadd16) || 825*f5c631daSSadaf Ebrahimi (type == kUqadd8) || (type == kUqasx) || (type == kUqsax) || 826*f5c631daSSadaf Ebrahimi (type == kUqsub16) || (type == kUqsub8) || (type == kUsad8) || 827*f5c631daSSadaf Ebrahimi (type == kUsax) || (type == kUsub16) || (type == kUsub8)); 828*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 829*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondBa,Condition,MemoryBarrier)830*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 831*f5c631daSSadaf Ebrahimi InstructionCondBa /*instruction*/, 832*f5c631daSSadaf Ebrahimi Condition /*cond*/, 833*f5c631daSSadaf Ebrahimi MemoryBarrier /*option*/) { 834*f5c631daSSadaf Ebrahimi USE(type); 835*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kDmb) || (type == kDsb) || (type == kIsb)); 836*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 837*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRwbDrl,Condition,Register,WriteBack,DRegisterList)838*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 839*f5c631daSSadaf Ebrahimi InstructionCondRwbDrl /*instruction*/, 840*f5c631daSSadaf Ebrahimi Condition /*cond*/, 841*f5c631daSSadaf Ebrahimi Register /*rn*/, 842*f5c631daSSadaf Ebrahimi WriteBack /*write_back*/, 843*f5c631daSSadaf Ebrahimi DRegisterList /*dreglist*/) { 844*f5c631daSSadaf Ebrahimi USE(type); 845*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kFldmdbx) || (type == kFldmiax) || 846*f5c631daSSadaf Ebrahimi (type == kFstmdbx) || (type == kFstmiax)); 847*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 848*f5c631daSSadaf Ebrahimi } DelegateIt(Condition,uint16_t)849*f5c631daSSadaf Ebrahimi virtual void DelegateIt(Condition /*cond*/, uint16_t /*mask*/) { 850*f5c631daSSadaf Ebrahimi UnimplementedDelegate(kIt); 851*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRMop,Condition,Register,const MemOperand &)852*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 853*f5c631daSSadaf Ebrahimi InstructionCondRMop /*instruction*/, 854*f5c631daSSadaf Ebrahimi Condition /*cond*/, 855*f5c631daSSadaf Ebrahimi Register /*rt*/, 856*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 857*f5c631daSSadaf Ebrahimi USE(type); 858*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLda) || (type == kLdab) || (type == kLdaex) || 859*f5c631daSSadaf Ebrahimi (type == kLdaexb) || (type == kLdaexh) || (type == kLdah) || 860*f5c631daSSadaf Ebrahimi (type == kLdrex) || (type == kLdrexb) || (type == kLdrexh) || 861*f5c631daSSadaf Ebrahimi (type == kStl) || (type == kStlb) || (type == kStlh)); 862*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 863*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRMop,Condition,Register,Register,const MemOperand &)864*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 865*f5c631daSSadaf Ebrahimi InstructionCondRRMop /*instruction*/, 866*f5c631daSSadaf Ebrahimi Condition /*cond*/, 867*f5c631daSSadaf Ebrahimi Register /*rt*/, 868*f5c631daSSadaf Ebrahimi Register /*rt2*/, 869*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 870*f5c631daSSadaf Ebrahimi USE(type); 871*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLdaexd) || (type == kLdrd) || (type == kLdrexd) || 872*f5c631daSSadaf Ebrahimi (type == kStlex) || (type == kStlexb) || (type == kStlexh) || 873*f5c631daSSadaf Ebrahimi (type == kStrd) || (type == kStrex) || (type == kStrexb) || 874*f5c631daSSadaf Ebrahimi (type == kStrexh)); 875*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 876*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeRwbRl,Condition,EncodingSize,Register,WriteBack,RegisterList)877*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 878*f5c631daSSadaf Ebrahimi InstructionCondSizeRwbRl /*instruction*/, 879*f5c631daSSadaf Ebrahimi Condition /*cond*/, 880*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 881*f5c631daSSadaf Ebrahimi Register /*rn*/, 882*f5c631daSSadaf Ebrahimi WriteBack /*write_back*/, 883*f5c631daSSadaf Ebrahimi RegisterList /*registers*/) { 884*f5c631daSSadaf Ebrahimi USE(type); 885*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLdm) || (type == kLdmfd) || (type == kStm) || 886*f5c631daSSadaf Ebrahimi (type == kStmdb) || (type == kStmea)); 887*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 888*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRwbRl,Condition,Register,WriteBack,RegisterList)889*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 890*f5c631daSSadaf Ebrahimi InstructionCondRwbRl /*instruction*/, 891*f5c631daSSadaf Ebrahimi Condition /*cond*/, 892*f5c631daSSadaf Ebrahimi Register /*rn*/, 893*f5c631daSSadaf Ebrahimi WriteBack /*write_back*/, 894*f5c631daSSadaf Ebrahimi RegisterList /*registers*/) { 895*f5c631daSSadaf Ebrahimi USE(type); 896*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLdmda) || (type == kLdmdb) || (type == kLdmea) || 897*f5c631daSSadaf Ebrahimi (type == kLdmed) || (type == kLdmfa) || (type == kLdmib) || 898*f5c631daSSadaf Ebrahimi (type == kStmda) || (type == kStmed) || (type == kStmfa) || 899*f5c631daSSadaf Ebrahimi (type == kStmfd) || (type == kStmib)); 900*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 901*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeRMop,Condition,EncodingSize,Register,const MemOperand &)902*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 903*f5c631daSSadaf Ebrahimi InstructionCondSizeRMop /*instruction*/, 904*f5c631daSSadaf Ebrahimi Condition /*cond*/, 905*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 906*f5c631daSSadaf Ebrahimi Register /*rt*/, 907*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 908*f5c631daSSadaf Ebrahimi USE(type); 909*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLdr) || (type == kLdrb) || (type == kLdrh) || 910*f5c631daSSadaf Ebrahimi (type == kLdrsb) || (type == kLdrsh) || (type == kStr) || 911*f5c631daSSadaf Ebrahimi (type == kStrb) || (type == kStrh)); 912*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 913*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRL,Condition,Register,Location *)914*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 915*f5c631daSSadaf Ebrahimi InstructionCondRL /*instruction*/, 916*f5c631daSSadaf Ebrahimi Condition /*cond*/, 917*f5c631daSSadaf Ebrahimi Register /*rt*/, 918*f5c631daSSadaf Ebrahimi Location* /*location*/) { 919*f5c631daSSadaf Ebrahimi USE(type); 920*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLdrb) || (type == kLdrh) || (type == kLdrsb) || 921*f5c631daSSadaf Ebrahimi (type == kLdrsh)); 922*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 923*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRL,Condition,Register,Register,Location *)924*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 925*f5c631daSSadaf Ebrahimi InstructionCondRRL /*instruction*/, 926*f5c631daSSadaf Ebrahimi Condition /*cond*/, 927*f5c631daSSadaf Ebrahimi Register /*rt*/, 928*f5c631daSSadaf Ebrahimi Register /*rt2*/, 929*f5c631daSSadaf Ebrahimi Location* /*location*/) { 930*f5c631daSSadaf Ebrahimi USE(type); 931*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kLdrd)); 932*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 933*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRRR,Condition,Register,Register,Register,Register)934*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 935*f5c631daSSadaf Ebrahimi InstructionCondRRRR /*instruction*/, 936*f5c631daSSadaf Ebrahimi Condition /*cond*/, 937*f5c631daSSadaf Ebrahimi Register /*rd*/, 938*f5c631daSSadaf Ebrahimi Register /*rn*/, 939*f5c631daSSadaf Ebrahimi Register /*rm*/, 940*f5c631daSSadaf Ebrahimi Register /*ra*/) { 941*f5c631daSSadaf Ebrahimi USE(type); 942*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kMla) || (type == kMlas) || (type == kMls) || 943*f5c631daSSadaf Ebrahimi (type == kSmlabb) || (type == kSmlabt) || (type == kSmlad) || 944*f5c631daSSadaf Ebrahimi (type == kSmladx) || (type == kSmlal) || (type == kSmlalbb) || 945*f5c631daSSadaf Ebrahimi (type == kSmlalbt) || (type == kSmlald) || (type == kSmlaldx) || 946*f5c631daSSadaf Ebrahimi (type == kSmlals) || (type == kSmlaltb) || (type == kSmlaltt) || 947*f5c631daSSadaf Ebrahimi (type == kSmlatb) || (type == kSmlatt) || (type == kSmlawb) || 948*f5c631daSSadaf Ebrahimi (type == kSmlawt) || (type == kSmlsd) || (type == kSmlsdx) || 949*f5c631daSSadaf Ebrahimi (type == kSmlsld) || (type == kSmlsldx) || (type == kSmmla) || 950*f5c631daSSadaf Ebrahimi (type == kSmmlar) || (type == kSmmls) || (type == kSmmlsr) || 951*f5c631daSSadaf Ebrahimi (type == kSmull) || (type == kSmulls) || (type == kUmaal) || 952*f5c631daSSadaf Ebrahimi (type == kUmlal) || (type == kUmlals) || (type == kUmull) || 953*f5c631daSSadaf Ebrahimi (type == kUmulls) || (type == kUsada8)); 954*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 955*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRSr,Condition,Register,SpecialRegister)956*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 957*f5c631daSSadaf Ebrahimi InstructionCondRSr /*instruction*/, 958*f5c631daSSadaf Ebrahimi Condition /*cond*/, 959*f5c631daSSadaf Ebrahimi Register /*rd*/, 960*f5c631daSSadaf Ebrahimi SpecialRegister /*spec_reg*/) { 961*f5c631daSSadaf Ebrahimi USE(type); 962*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kMrs)); 963*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 964*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondMsrOp,Condition,MaskedSpecialRegister,const Operand &)965*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 966*f5c631daSSadaf Ebrahimi InstructionCondMsrOp /*instruction*/, 967*f5c631daSSadaf Ebrahimi Condition /*cond*/, 968*f5c631daSSadaf Ebrahimi MaskedSpecialRegister /*spec_reg*/, 969*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 970*f5c631daSSadaf Ebrahimi USE(type); 971*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kMsr)); 972*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 973*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeRRR,Condition,EncodingSize,Register,Register,Register)974*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 975*f5c631daSSadaf Ebrahimi InstructionCondSizeRRR /*instruction*/, 976*f5c631daSSadaf Ebrahimi Condition /*cond*/, 977*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 978*f5c631daSSadaf Ebrahimi Register /*rd*/, 979*f5c631daSSadaf Ebrahimi Register /*rn*/, 980*f5c631daSSadaf Ebrahimi Register /*rm*/) { 981*f5c631daSSadaf Ebrahimi USE(type); 982*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kMul)); 983*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 984*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSize,Condition,EncodingSize)985*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 986*f5c631daSSadaf Ebrahimi InstructionCondSize /*instruction*/, 987*f5c631daSSadaf Ebrahimi Condition /*cond*/, 988*f5c631daSSadaf Ebrahimi EncodingSize /*size*/) { 989*f5c631daSSadaf Ebrahimi USE(type); 990*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kNop) || (type == kYield)); 991*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 992*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondMop,Condition,const MemOperand &)993*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 994*f5c631daSSadaf Ebrahimi InstructionCondMop /*instruction*/, 995*f5c631daSSadaf Ebrahimi Condition /*cond*/, 996*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 997*f5c631daSSadaf Ebrahimi USE(type); 998*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kPld) || (type == kPldw) || (type == kPli)); 999*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1000*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeRl,Condition,EncodingSize,RegisterList)1001*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1002*f5c631daSSadaf Ebrahimi InstructionCondSizeRl /*instruction*/, 1003*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1004*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 1005*f5c631daSSadaf Ebrahimi RegisterList /*registers*/) { 1006*f5c631daSSadaf Ebrahimi USE(type); 1007*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kPop) || (type == kPush)); 1008*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1009*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeOrl,Condition,EncodingSize,Register)1010*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1011*f5c631daSSadaf Ebrahimi InstructionCondSizeOrl /*instruction*/, 1012*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1013*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 1014*f5c631daSSadaf Ebrahimi Register /*rt*/) { 1015*f5c631daSSadaf Ebrahimi USE(type); 1016*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kPop) || (type == kPush)); 1017*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1018*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeRR,Condition,EncodingSize,Register,Register)1019*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1020*f5c631daSSadaf Ebrahimi InstructionCondSizeRR /*instruction*/, 1021*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1022*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 1023*f5c631daSSadaf Ebrahimi Register /*rd*/, 1024*f5c631daSSadaf Ebrahimi Register /*rm*/) { 1025*f5c631daSSadaf Ebrahimi USE(type); 1026*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kRev) || (type == kRev16) || (type == kRevsh)); 1027*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1028*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtQQQ,DataType,QRegister,QRegister,QRegister)1029*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1030*f5c631daSSadaf Ebrahimi InstructionDtQQQ /*instruction*/, 1031*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1032*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1033*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1034*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1035*f5c631daSSadaf Ebrahimi USE(type); 1036*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmaxnm) || (type == kVminnm)); 1037*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1038*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRIOp,Condition,Register,uint32_t,const Operand &)1039*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1040*f5c631daSSadaf Ebrahimi InstructionCondRIOp /*instruction*/, 1041*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1042*f5c631daSSadaf Ebrahimi Register /*rd*/, 1043*f5c631daSSadaf Ebrahimi uint32_t /*imm*/, 1044*f5c631daSSadaf Ebrahimi const Operand& /*operand*/) { 1045*f5c631daSSadaf Ebrahimi USE(type); 1046*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kSsat) || (type == kUsat)); 1047*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1048*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRIR,Condition,Register,uint32_t,Register)1049*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1050*f5c631daSSadaf Ebrahimi InstructionCondRIR /*instruction*/, 1051*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1052*f5c631daSSadaf Ebrahimi Register /*rd*/, 1053*f5c631daSSadaf Ebrahimi uint32_t /*imm*/, 1054*f5c631daSSadaf Ebrahimi Register /*rn*/) { 1055*f5c631daSSadaf Ebrahimi USE(type); 1056*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kSsat16) || (type == kUsat16)); 1057*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1058*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRRMop,Condition,Register,Register,Register,const MemOperand &)1059*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1060*f5c631daSSadaf Ebrahimi InstructionCondRRRMop /*instruction*/, 1061*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1062*f5c631daSSadaf Ebrahimi Register /*rd*/, 1063*f5c631daSSadaf Ebrahimi Register /*rt*/, 1064*f5c631daSSadaf Ebrahimi Register /*rt2*/, 1065*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 1066*f5c631daSSadaf Ebrahimi USE(type); 1067*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kStlexd) || (type == kStrexd)); 1068*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1069*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSizeI,Condition,EncodingSize,uint32_t)1070*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1071*f5c631daSSadaf Ebrahimi InstructionCondSizeI /*instruction*/, 1072*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1073*f5c631daSSadaf Ebrahimi EncodingSize /*size*/, 1074*f5c631daSSadaf Ebrahimi uint32_t /*imm*/) { 1075*f5c631daSSadaf Ebrahimi USE(type); 1076*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kUdf)); 1077*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1078*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDD,Condition,DataType,DRegister,DRegister,DRegister)1079*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1080*f5c631daSSadaf Ebrahimi InstructionCondDtDDD /*instruction*/, 1081*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1082*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1083*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1084*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1085*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1086*f5c631daSSadaf Ebrahimi USE(type); 1087*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVaba) || (type == kVabd) || (type == kVacge) || 1088*f5c631daSSadaf Ebrahimi (type == kVacgt) || (type == kVacle) || (type == kVaclt) || 1089*f5c631daSSadaf Ebrahimi (type == kVadd) || (type == kVbif) || (type == kVbit) || 1090*f5c631daSSadaf Ebrahimi (type == kVbsl) || (type == kVceq) || (type == kVcge) || 1091*f5c631daSSadaf Ebrahimi (type == kVcgt) || (type == kVcle) || (type == kVclt) || 1092*f5c631daSSadaf Ebrahimi (type == kVdiv) || (type == kVeor) || (type == kVfma) || 1093*f5c631daSSadaf Ebrahimi (type == kVfms) || (type == kVfnma) || (type == kVfnms) || 1094*f5c631daSSadaf Ebrahimi (type == kVhadd) || (type == kVhsub) || (type == kVmax) || 1095*f5c631daSSadaf Ebrahimi (type == kVmin) || (type == kVmla) || (type == kVmls) || 1096*f5c631daSSadaf Ebrahimi (type == kVmul) || (type == kVnmla) || (type == kVnmls) || 1097*f5c631daSSadaf Ebrahimi (type == kVnmul) || (type == kVpadd) || (type == kVpmax) || 1098*f5c631daSSadaf Ebrahimi (type == kVpmin) || (type == kVqadd) || (type == kVqdmulh) || 1099*f5c631daSSadaf Ebrahimi (type == kVqrdmulh) || (type == kVqrshl) || (type == kVqsub) || 1100*f5c631daSSadaf Ebrahimi (type == kVrecps) || (type == kVrhadd) || (type == kVrshl) || 1101*f5c631daSSadaf Ebrahimi (type == kVrsqrts) || (type == kVsub) || (type == kVtst)); 1102*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1103*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQQ,Condition,DataType,QRegister,QRegister,QRegister)1104*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1105*f5c631daSSadaf Ebrahimi InstructionCondDtQQQ /*instruction*/, 1106*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1107*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1108*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1109*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1110*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1111*f5c631daSSadaf Ebrahimi USE(type); 1112*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVaba) || (type == kVabd) || (type == kVacge) || 1113*f5c631daSSadaf Ebrahimi (type == kVacgt) || (type == kVacle) || (type == kVaclt) || 1114*f5c631daSSadaf Ebrahimi (type == kVadd) || (type == kVbif) || (type == kVbit) || 1115*f5c631daSSadaf Ebrahimi (type == kVbsl) || (type == kVceq) || (type == kVcge) || 1116*f5c631daSSadaf Ebrahimi (type == kVcgt) || (type == kVcle) || (type == kVclt) || 1117*f5c631daSSadaf Ebrahimi (type == kVeor) || (type == kVfma) || (type == kVfms) || 1118*f5c631daSSadaf Ebrahimi (type == kVhadd) || (type == kVhsub) || (type == kVmax) || 1119*f5c631daSSadaf Ebrahimi (type == kVmin) || (type == kVmla) || (type == kVmls) || 1120*f5c631daSSadaf Ebrahimi (type == kVmul) || (type == kVqadd) || (type == kVqdmulh) || 1121*f5c631daSSadaf Ebrahimi (type == kVqrdmulh) || (type == kVqrshl) || (type == kVqsub) || 1122*f5c631daSSadaf Ebrahimi (type == kVrecps) || (type == kVrhadd) || (type == kVrshl) || 1123*f5c631daSSadaf Ebrahimi (type == kVrsqrts) || (type == kVsub) || (type == kVtst)); 1124*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1125*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQDD,Condition,DataType,QRegister,DRegister,DRegister)1126*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1127*f5c631daSSadaf Ebrahimi InstructionCondDtQDD /*instruction*/, 1128*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1129*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1130*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1131*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1132*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1133*f5c631daSSadaf Ebrahimi USE(type); 1134*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVabal) || (type == kVabdl) || (type == kVaddl) || 1135*f5c631daSSadaf Ebrahimi (type == kVmlal) || (type == kVmlsl) || (type == kVmull) || 1136*f5c631daSSadaf Ebrahimi (type == kVqdmlal) || (type == kVqdmlsl) || 1137*f5c631daSSadaf Ebrahimi (type == kVqdmull) || (type == kVsubl)); 1138*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1139*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDD,Condition,DataType,DRegister,DRegister)1140*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1141*f5c631daSSadaf Ebrahimi InstructionCondDtDD /*instruction*/, 1142*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1143*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1144*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1145*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1146*f5c631daSSadaf Ebrahimi USE(type); 1147*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVabs) || (type == kVcls) || (type == kVclz) || 1148*f5c631daSSadaf Ebrahimi (type == kVcnt) || (type == kVneg) || (type == kVpadal) || 1149*f5c631daSSadaf Ebrahimi (type == kVpaddl) || (type == kVqabs) || (type == kVqneg) || 1150*f5c631daSSadaf Ebrahimi (type == kVrecpe) || (type == kVrev16) || (type == kVrev32) || 1151*f5c631daSSadaf Ebrahimi (type == kVrev64) || (type == kVrintr) || (type == kVrintx) || 1152*f5c631daSSadaf Ebrahimi (type == kVrintz) || (type == kVrsqrte) || (type == kVsqrt) || 1153*f5c631daSSadaf Ebrahimi (type == kVswp) || (type == kVtrn) || (type == kVuzp) || 1154*f5c631daSSadaf Ebrahimi (type == kVzip)); 1155*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1156*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQ,Condition,DataType,QRegister,QRegister)1157*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1158*f5c631daSSadaf Ebrahimi InstructionCondDtQQ /*instruction*/, 1159*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1160*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1161*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1162*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1163*f5c631daSSadaf Ebrahimi USE(type); 1164*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVabs) || (type == kVcls) || (type == kVclz) || 1165*f5c631daSSadaf Ebrahimi (type == kVcnt) || (type == kVneg) || (type == kVpadal) || 1166*f5c631daSSadaf Ebrahimi (type == kVpaddl) || (type == kVqabs) || (type == kVqneg) || 1167*f5c631daSSadaf Ebrahimi (type == kVrecpe) || (type == kVrev16) || (type == kVrev32) || 1168*f5c631daSSadaf Ebrahimi (type == kVrev64) || (type == kVrsqrte) || (type == kVswp) || 1169*f5c631daSSadaf Ebrahimi (type == kVtrn) || (type == kVuzp) || (type == kVzip)); 1170*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1171*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtSS,Condition,DataType,SRegister,SRegister)1172*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1173*f5c631daSSadaf Ebrahimi InstructionCondDtSS /*instruction*/, 1174*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1175*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1176*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1177*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1178*f5c631daSSadaf Ebrahimi USE(type); 1179*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVabs) || (type == kVneg) || (type == kVrintr) || 1180*f5c631daSSadaf Ebrahimi (type == kVrintx) || (type == kVrintz) || (type == kVsqrt)); 1181*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1182*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtSSS,Condition,DataType,SRegister,SRegister,SRegister)1183*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1184*f5c631daSSadaf Ebrahimi InstructionCondDtSSS /*instruction*/, 1185*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1186*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1187*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1188*f5c631daSSadaf Ebrahimi SRegister /*rn*/, 1189*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1190*f5c631daSSadaf Ebrahimi USE(type); 1191*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVadd) || (type == kVdiv) || (type == kVfma) || 1192*f5c631daSSadaf Ebrahimi (type == kVfms) || (type == kVfnma) || (type == kVfnms) || 1193*f5c631daSSadaf Ebrahimi (type == kVmla) || (type == kVmls) || (type == kVmul) || 1194*f5c631daSSadaf Ebrahimi (type == kVnmla) || (type == kVnmls) || (type == kVnmul) || 1195*f5c631daSSadaf Ebrahimi (type == kVsub)); 1196*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1197*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDQQ,Condition,DataType,DRegister,QRegister,QRegister)1198*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1199*f5c631daSSadaf Ebrahimi InstructionCondDtDQQ /*instruction*/, 1200*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1201*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1202*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1203*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1204*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1205*f5c631daSSadaf Ebrahimi USE(type); 1206*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVaddhn) || (type == kVraddhn) || (type == kVrsubhn) || 1207*f5c631daSSadaf Ebrahimi (type == kVsubhn)); 1208*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1209*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQD,Condition,DataType,QRegister,QRegister,DRegister)1210*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1211*f5c631daSSadaf Ebrahimi InstructionCondDtQQD /*instruction*/, 1212*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1213*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1214*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1215*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1216*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1217*f5c631daSSadaf Ebrahimi USE(type); 1218*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVaddw) || (type == kVsubw)); 1219*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1220*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDDop,Condition,DataType,DRegister,DRegister,const DOperand &)1221*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1222*f5c631daSSadaf Ebrahimi InstructionCondDtDDDop /*instruction*/, 1223*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1224*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1225*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1226*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1227*f5c631daSSadaf Ebrahimi const DOperand& /*operand*/) { 1228*f5c631daSSadaf Ebrahimi USE(type); 1229*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVand) || (type == kVbic) || (type == kVceq) || 1230*f5c631daSSadaf Ebrahimi (type == kVcge) || (type == kVcgt) || (type == kVcle) || 1231*f5c631daSSadaf Ebrahimi (type == kVclt) || (type == kVorn) || (type == kVorr) || 1232*f5c631daSSadaf Ebrahimi (type == kVqshl) || (type == kVqshlu) || (type == kVrshr) || 1233*f5c631daSSadaf Ebrahimi (type == kVrsra) || (type == kVshl) || (type == kVshr) || 1234*f5c631daSSadaf Ebrahimi (type == kVsli) || (type == kVsra) || (type == kVsri)); 1235*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1236*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQQop,Condition,DataType,QRegister,QRegister,const QOperand &)1237*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1238*f5c631daSSadaf Ebrahimi InstructionCondDtQQQop /*instruction*/, 1239*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1240*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1241*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1242*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1243*f5c631daSSadaf Ebrahimi const QOperand& /*operand*/) { 1244*f5c631daSSadaf Ebrahimi USE(type); 1245*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVand) || (type == kVbic) || (type == kVceq) || 1246*f5c631daSSadaf Ebrahimi (type == kVcge) || (type == kVcgt) || (type == kVcle) || 1247*f5c631daSSadaf Ebrahimi (type == kVclt) || (type == kVorn) || (type == kVorr) || 1248*f5c631daSSadaf Ebrahimi (type == kVqshl) || (type == kVqshlu) || (type == kVrshr) || 1249*f5c631daSSadaf Ebrahimi (type == kVrsra) || (type == kVshl) || (type == kVshr) || 1250*f5c631daSSadaf Ebrahimi (type == kVsli) || (type == kVsra) || (type == kVsri)); 1251*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1252*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtSSop,Condition,DataType,SRegister,const SOperand &)1253*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1254*f5c631daSSadaf Ebrahimi InstructionCondDtSSop /*instruction*/, 1255*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1256*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1257*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1258*f5c631daSSadaf Ebrahimi const SOperand& /*operand*/) { 1259*f5c631daSSadaf Ebrahimi USE(type); 1260*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcmp) || (type == kVcmpe) || (type == kVmov)); 1261*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1262*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDop,Condition,DataType,DRegister,const DOperand &)1263*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1264*f5c631daSSadaf Ebrahimi InstructionCondDtDDop /*instruction*/, 1265*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1266*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1267*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1268*f5c631daSSadaf Ebrahimi const DOperand& /*operand*/) { 1269*f5c631daSSadaf Ebrahimi USE(type); 1270*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcmp) || (type == kVcmpe) || (type == kVmov) || 1271*f5c631daSSadaf Ebrahimi (type == kVmvn)); 1272*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1273*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtDS,Condition,DataType,DataType,DRegister,SRegister)1274*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1275*f5c631daSSadaf Ebrahimi InstructionCondDtDtDS /*instruction*/, 1276*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1277*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1278*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1279*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1280*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1281*f5c631daSSadaf Ebrahimi USE(type); 1282*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt) || (type == kVcvtb) || (type == kVcvtt)); 1283*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1284*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtSD,Condition,DataType,DataType,SRegister,DRegister)1285*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1286*f5c631daSSadaf Ebrahimi InstructionCondDtDtSD /*instruction*/, 1287*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1288*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1289*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1290*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1291*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1292*f5c631daSSadaf Ebrahimi USE(type); 1293*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt) || (type == kVcvtb) || (type == kVcvtr) || 1294*f5c631daSSadaf Ebrahimi (type == kVcvtt)); 1295*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1296*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtDDSi,Condition,DataType,DataType,DRegister,DRegister,int32_t)1297*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1298*f5c631daSSadaf Ebrahimi InstructionCondDtDtDDSi /*instruction*/, 1299*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1300*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1301*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1302*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1303*f5c631daSSadaf Ebrahimi DRegister /*rm*/, 1304*f5c631daSSadaf Ebrahimi int32_t /*fbits*/) { 1305*f5c631daSSadaf Ebrahimi USE(type); 1306*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1307*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1308*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtQQSi,Condition,DataType,DataType,QRegister,QRegister,int32_t)1309*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1310*f5c631daSSadaf Ebrahimi InstructionCondDtDtQQSi /*instruction*/, 1311*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1312*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1313*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1314*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1315*f5c631daSSadaf Ebrahimi QRegister /*rm*/, 1316*f5c631daSSadaf Ebrahimi int32_t /*fbits*/) { 1317*f5c631daSSadaf Ebrahimi USE(type); 1318*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1319*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1320*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtSSSi,Condition,DataType,DataType,SRegister,SRegister,int32_t)1321*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1322*f5c631daSSadaf Ebrahimi InstructionCondDtDtSSSi /*instruction*/, 1323*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1324*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1325*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1326*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1327*f5c631daSSadaf Ebrahimi SRegister /*rm*/, 1328*f5c631daSSadaf Ebrahimi int32_t /*fbits*/) { 1329*f5c631daSSadaf Ebrahimi USE(type); 1330*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1331*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1332*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtDD,Condition,DataType,DataType,DRegister,DRegister)1333*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1334*f5c631daSSadaf Ebrahimi InstructionCondDtDtDD /*instruction*/, 1335*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1336*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1337*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1338*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1339*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1340*f5c631daSSadaf Ebrahimi USE(type); 1341*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1342*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1343*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtQQ,Condition,DataType,DataType,QRegister,QRegister)1344*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1345*f5c631daSSadaf Ebrahimi InstructionCondDtDtQQ /*instruction*/, 1346*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1347*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1348*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1349*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1350*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1351*f5c631daSSadaf Ebrahimi USE(type); 1352*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1353*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1354*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtDQ,Condition,DataType,DataType,DRegister,QRegister)1355*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1356*f5c631daSSadaf Ebrahimi InstructionCondDtDtDQ /*instruction*/, 1357*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1358*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1359*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1360*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1361*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1362*f5c631daSSadaf Ebrahimi USE(type); 1363*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1364*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1365*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtQD,Condition,DataType,DataType,QRegister,DRegister)1366*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1367*f5c631daSSadaf Ebrahimi InstructionCondDtDtQD /*instruction*/, 1368*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1369*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1370*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1371*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1372*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1373*f5c631daSSadaf Ebrahimi USE(type); 1374*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt)); 1375*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1376*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDtSS,Condition,DataType,DataType,SRegister,SRegister)1377*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1378*f5c631daSSadaf Ebrahimi InstructionCondDtDtSS /*instruction*/, 1379*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1380*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1381*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1382*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1383*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1384*f5c631daSSadaf Ebrahimi USE(type); 1385*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvt) || (type == kVcvtb) || (type == kVcvtr) || 1386*f5c631daSSadaf Ebrahimi (type == kVcvtt)); 1387*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1388*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtDtDD,DataType,DataType,DRegister,DRegister)1389*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1390*f5c631daSSadaf Ebrahimi InstructionDtDtDD /*instruction*/, 1391*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1392*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1393*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1394*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1395*f5c631daSSadaf Ebrahimi USE(type); 1396*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) || 1397*f5c631daSSadaf Ebrahimi (type == kVcvtp)); 1398*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1399*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtDtQQ,DataType,DataType,QRegister,QRegister)1400*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1401*f5c631daSSadaf Ebrahimi InstructionDtDtQQ /*instruction*/, 1402*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1403*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1404*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1405*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1406*f5c631daSSadaf Ebrahimi USE(type); 1407*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) || 1408*f5c631daSSadaf Ebrahimi (type == kVcvtp)); 1409*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1410*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtDtSS,DataType,DataType,SRegister,SRegister)1411*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1412*f5c631daSSadaf Ebrahimi InstructionDtDtSS /*instruction*/, 1413*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1414*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1415*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1416*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1417*f5c631daSSadaf Ebrahimi USE(type); 1418*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) || 1419*f5c631daSSadaf Ebrahimi (type == kVcvtp)); 1420*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1421*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtDtSD,DataType,DataType,SRegister,DRegister)1422*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1423*f5c631daSSadaf Ebrahimi InstructionDtDtSD /*instruction*/, 1424*f5c631daSSadaf Ebrahimi DataType /*dt1*/, 1425*f5c631daSSadaf Ebrahimi DataType /*dt2*/, 1426*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1427*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1428*f5c631daSSadaf Ebrahimi USE(type); 1429*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVcvta) || (type == kVcvtm) || (type == kVcvtn) || 1430*f5c631daSSadaf Ebrahimi (type == kVcvtp)); 1431*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1432*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQR,Condition,DataType,QRegister,Register)1433*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1434*f5c631daSSadaf Ebrahimi InstructionCondDtQR /*instruction*/, 1435*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1436*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1437*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1438*f5c631daSSadaf Ebrahimi Register /*rt*/) { 1439*f5c631daSSadaf Ebrahimi USE(type); 1440*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVdup)); 1441*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1442*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDR,Condition,DataType,DRegister,Register)1443*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1444*f5c631daSSadaf Ebrahimi InstructionCondDtDR /*instruction*/, 1445*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1446*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1447*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1448*f5c631daSSadaf Ebrahimi Register /*rt*/) { 1449*f5c631daSSadaf Ebrahimi USE(type); 1450*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVdup)); 1451*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1452*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDx,Condition,DataType,DRegister,DRegisterLane)1453*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1454*f5c631daSSadaf Ebrahimi InstructionCondDtDDx /*instruction*/, 1455*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1456*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1457*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1458*f5c631daSSadaf Ebrahimi DRegisterLane /*rm*/) { 1459*f5c631daSSadaf Ebrahimi USE(type); 1460*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVdup)); 1461*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1462*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQDx,Condition,DataType,QRegister,DRegisterLane)1463*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1464*f5c631daSSadaf Ebrahimi InstructionCondDtQDx /*instruction*/, 1465*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1466*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1467*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1468*f5c631daSSadaf Ebrahimi DRegisterLane /*rm*/) { 1469*f5c631daSSadaf Ebrahimi USE(type); 1470*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVdup)); 1471*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1472*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDDDop,Condition,DataType,DRegister,DRegister,DRegister,const DOperand &)1473*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1474*f5c631daSSadaf Ebrahimi InstructionCondDtDDDDop /*instruction*/, 1475*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1476*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1477*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1478*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1479*f5c631daSSadaf Ebrahimi DRegister /*rm*/, 1480*f5c631daSSadaf Ebrahimi const DOperand& /*operand*/) { 1481*f5c631daSSadaf Ebrahimi USE(type); 1482*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVext)); 1483*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1484*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQQQop,Condition,DataType,QRegister,QRegister,QRegister,const QOperand &)1485*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1486*f5c631daSSadaf Ebrahimi InstructionCondDtQQQQop /*instruction*/, 1487*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1488*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1489*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1490*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1491*f5c631daSSadaf Ebrahimi QRegister /*rm*/, 1492*f5c631daSSadaf Ebrahimi const QOperand& /*operand*/) { 1493*f5c631daSSadaf Ebrahimi USE(type); 1494*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVext)); 1495*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1496*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtNrlAmop,Condition,DataType,const NeonRegisterList &,const AlignedMemOperand &)1497*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1498*f5c631daSSadaf Ebrahimi InstructionCondDtNrlAmop /*instruction*/, 1499*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1500*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1501*f5c631daSSadaf Ebrahimi const NeonRegisterList& /*nreglist*/, 1502*f5c631daSSadaf Ebrahimi const AlignedMemOperand& /*operand*/) { 1503*f5c631daSSadaf Ebrahimi USE(type); 1504*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVld1) || (type == kVld2) || (type == kVld3) || 1505*f5c631daSSadaf Ebrahimi (type == kVld4) || (type == kVst1) || (type == kVst2) || 1506*f5c631daSSadaf Ebrahimi (type == kVst3) || (type == kVst4)); 1507*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1508*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtNrlMop,Condition,DataType,const NeonRegisterList &,const MemOperand &)1509*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1510*f5c631daSSadaf Ebrahimi InstructionCondDtNrlMop /*instruction*/, 1511*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1512*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1513*f5c631daSSadaf Ebrahimi const NeonRegisterList& /*nreglist*/, 1514*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 1515*f5c631daSSadaf Ebrahimi USE(type); 1516*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVld3) || (type == kVst3)); 1517*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1518*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtRwbDrl,Condition,DataType,Register,WriteBack,DRegisterList)1519*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1520*f5c631daSSadaf Ebrahimi InstructionCondDtRwbDrl /*instruction*/, 1521*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1522*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1523*f5c631daSSadaf Ebrahimi Register /*rn*/, 1524*f5c631daSSadaf Ebrahimi WriteBack /*write_back*/, 1525*f5c631daSSadaf Ebrahimi DRegisterList /*dreglist*/) { 1526*f5c631daSSadaf Ebrahimi USE(type); 1527*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVldm) || (type == kVldmdb) || (type == kVldmia) || 1528*f5c631daSSadaf Ebrahimi (type == kVstm) || (type == kVstmdb) || (type == kVstmia)); 1529*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1530*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtRwbSrl,Condition,DataType,Register,WriteBack,SRegisterList)1531*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1532*f5c631daSSadaf Ebrahimi InstructionCondDtRwbSrl /*instruction*/, 1533*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1534*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1535*f5c631daSSadaf Ebrahimi Register /*rn*/, 1536*f5c631daSSadaf Ebrahimi WriteBack /*write_back*/, 1537*f5c631daSSadaf Ebrahimi SRegisterList /*sreglist*/) { 1538*f5c631daSSadaf Ebrahimi USE(type); 1539*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVldm) || (type == kVldmdb) || (type == kVldmia) || 1540*f5c631daSSadaf Ebrahimi (type == kVstm) || (type == kVstmdb) || (type == kVstmia)); 1541*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1542*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDL,Condition,DataType,DRegister,Location *)1543*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1544*f5c631daSSadaf Ebrahimi InstructionCondDtDL /*instruction*/, 1545*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1546*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1547*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1548*f5c631daSSadaf Ebrahimi Location* /*location*/) { 1549*f5c631daSSadaf Ebrahimi USE(type); 1550*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVldr)); 1551*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1552*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDMop,Condition,DataType,DRegister,const MemOperand &)1553*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1554*f5c631daSSadaf Ebrahimi InstructionCondDtDMop /*instruction*/, 1555*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1556*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1557*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1558*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 1559*f5c631daSSadaf Ebrahimi USE(type); 1560*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVldr) || (type == kVstr)); 1561*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1562*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtSL,Condition,DataType,SRegister,Location *)1563*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1564*f5c631daSSadaf Ebrahimi InstructionCondDtSL /*instruction*/, 1565*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1566*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1567*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1568*f5c631daSSadaf Ebrahimi Location* /*location*/) { 1569*f5c631daSSadaf Ebrahimi USE(type); 1570*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVldr)); 1571*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1572*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtSMop,Condition,DataType,SRegister,const MemOperand &)1573*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1574*f5c631daSSadaf Ebrahimi InstructionCondDtSMop /*instruction*/, 1575*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1576*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1577*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1578*f5c631daSSadaf Ebrahimi const MemOperand& /*operand*/) { 1579*f5c631daSSadaf Ebrahimi USE(type); 1580*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVldr) || (type == kVstr)); 1581*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1582*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtDDD,DataType,DRegister,DRegister,DRegister)1583*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1584*f5c631daSSadaf Ebrahimi InstructionDtDDD /*instruction*/, 1585*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1586*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1587*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1588*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1589*f5c631daSSadaf Ebrahimi USE(type); 1590*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmaxnm) || (type == kVminnm) || (type == kVseleq) || 1591*f5c631daSSadaf Ebrahimi (type == kVselge) || (type == kVselgt) || (type == kVselvs)); 1592*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1593*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtSSS,DataType,SRegister,SRegister,SRegister)1594*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1595*f5c631daSSadaf Ebrahimi InstructionDtSSS /*instruction*/, 1596*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1597*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1598*f5c631daSSadaf Ebrahimi SRegister /*rn*/, 1599*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1600*f5c631daSSadaf Ebrahimi USE(type); 1601*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmaxnm) || (type == kVminnm) || (type == kVseleq) || 1602*f5c631daSSadaf Ebrahimi (type == kVselge) || (type == kVselgt) || (type == kVselvs)); 1603*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1604*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDDx,Condition,DataType,DRegister,DRegister,DRegisterLane)1605*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1606*f5c631daSSadaf Ebrahimi InstructionCondDtDDDx /*instruction*/, 1607*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1608*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1609*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1610*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1611*f5c631daSSadaf Ebrahimi DRegisterLane /*rm*/) { 1612*f5c631daSSadaf Ebrahimi USE(type); 1613*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmla) || (type == kVmls) || (type == kVqdmulh) || 1614*f5c631daSSadaf Ebrahimi (type == kVqrdmulh)); 1615*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1616*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQDx,Condition,DataType,QRegister,QRegister,DRegisterLane)1617*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1618*f5c631daSSadaf Ebrahimi InstructionCondDtQQDx /*instruction*/, 1619*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1620*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1621*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1622*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1623*f5c631daSSadaf Ebrahimi DRegisterLane /*rm*/) { 1624*f5c631daSSadaf Ebrahimi USE(type); 1625*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmla) || (type == kVmls) || (type == kVqdmulh) || 1626*f5c631daSSadaf Ebrahimi (type == kVqrdmulh)); 1627*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1628*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQDDx,Condition,DataType,QRegister,DRegister,DRegisterLane)1629*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1630*f5c631daSSadaf Ebrahimi InstructionCondDtQDDx /*instruction*/, 1631*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1632*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1633*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1634*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1635*f5c631daSSadaf Ebrahimi DRegisterLane /*rm*/) { 1636*f5c631daSSadaf Ebrahimi USE(type); 1637*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmlal) || (type == kVmlsl) || (type == kVqdmull)); 1638*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1639*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRS,Condition,Register,SRegister)1640*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1641*f5c631daSSadaf Ebrahimi InstructionCondRS /*instruction*/, 1642*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1643*f5c631daSSadaf Ebrahimi Register /*rt*/, 1644*f5c631daSSadaf Ebrahimi SRegister /*rn*/) { 1645*f5c631daSSadaf Ebrahimi USE(type); 1646*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1647*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1648*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSR,Condition,SRegister,Register)1649*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1650*f5c631daSSadaf Ebrahimi InstructionCondSR /*instruction*/, 1651*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1652*f5c631daSSadaf Ebrahimi SRegister /*rn*/, 1653*f5c631daSSadaf Ebrahimi Register /*rt*/) { 1654*f5c631daSSadaf Ebrahimi USE(type); 1655*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1656*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1657*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRD,Condition,Register,Register,DRegister)1658*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1659*f5c631daSSadaf Ebrahimi InstructionCondRRD /*instruction*/, 1660*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1661*f5c631daSSadaf Ebrahimi Register /*rt*/, 1662*f5c631daSSadaf Ebrahimi Register /*rt2*/, 1663*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1664*f5c631daSSadaf Ebrahimi USE(type); 1665*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1666*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1667*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDRR,Condition,DRegister,Register,Register)1668*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1669*f5c631daSSadaf Ebrahimi InstructionCondDRR /*instruction*/, 1670*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1671*f5c631daSSadaf Ebrahimi DRegister /*rm*/, 1672*f5c631daSSadaf Ebrahimi Register /*rt*/, 1673*f5c631daSSadaf Ebrahimi Register /*rt2*/) { 1674*f5c631daSSadaf Ebrahimi USE(type); 1675*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1676*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1677*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRRSS,Condition,Register,Register,SRegister,SRegister)1678*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1679*f5c631daSSadaf Ebrahimi InstructionCondRRSS /*instruction*/, 1680*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1681*f5c631daSSadaf Ebrahimi Register /*rt*/, 1682*f5c631daSSadaf Ebrahimi Register /*rt2*/, 1683*f5c631daSSadaf Ebrahimi SRegister /*rm*/, 1684*f5c631daSSadaf Ebrahimi SRegister /*rm1*/) { 1685*f5c631daSSadaf Ebrahimi USE(type); 1686*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1687*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1688*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSSRR,Condition,SRegister,SRegister,Register,Register)1689*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1690*f5c631daSSadaf Ebrahimi InstructionCondSSRR /*instruction*/, 1691*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1692*f5c631daSSadaf Ebrahimi SRegister /*rm*/, 1693*f5c631daSSadaf Ebrahimi SRegister /*rm1*/, 1694*f5c631daSSadaf Ebrahimi Register /*rt*/, 1695*f5c631daSSadaf Ebrahimi Register /*rt2*/) { 1696*f5c631daSSadaf Ebrahimi USE(type); 1697*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1698*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1699*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDxR,Condition,DataType,DRegisterLane,Register)1700*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1701*f5c631daSSadaf Ebrahimi InstructionCondDtDxR /*instruction*/, 1702*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1703*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1704*f5c631daSSadaf Ebrahimi DRegisterLane /*rd*/, 1705*f5c631daSSadaf Ebrahimi Register /*rt*/) { 1706*f5c631daSSadaf Ebrahimi USE(type); 1707*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1708*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1709*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQop,Condition,DataType,QRegister,const QOperand &)1710*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1711*f5c631daSSadaf Ebrahimi InstructionCondDtQQop /*instruction*/, 1712*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1713*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1714*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1715*f5c631daSSadaf Ebrahimi const QOperand& /*operand*/) { 1716*f5c631daSSadaf Ebrahimi USE(type); 1717*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov) || (type == kVmvn)); 1718*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1719*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtRDx,Condition,DataType,Register,DRegisterLane)1720*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1721*f5c631daSSadaf Ebrahimi InstructionCondDtRDx /*instruction*/, 1722*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1723*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1724*f5c631daSSadaf Ebrahimi Register /*rt*/, 1725*f5c631daSSadaf Ebrahimi DRegisterLane /*rn*/) { 1726*f5c631daSSadaf Ebrahimi USE(type); 1727*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmov)); 1728*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1729*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQD,Condition,DataType,QRegister,DRegister)1730*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1731*f5c631daSSadaf Ebrahimi InstructionCondDtQD /*instruction*/, 1732*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1733*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1734*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1735*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1736*f5c631daSSadaf Ebrahimi USE(type); 1737*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmovl)); 1738*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1739*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDQ,Condition,DataType,DRegister,QRegister)1740*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1741*f5c631daSSadaf Ebrahimi InstructionCondDtDQ /*instruction*/, 1742*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1743*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1744*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1745*f5c631daSSadaf Ebrahimi QRegister /*rm*/) { 1746*f5c631daSSadaf Ebrahimi USE(type); 1747*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmovn) || (type == kVqmovn) || (type == kVqmovun)); 1748*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1749*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondRoaSfp,Condition,RegisterOrAPSR_nzcv,SpecialFPRegister)1750*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1751*f5c631daSSadaf Ebrahimi InstructionCondRoaSfp /*instruction*/, 1752*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1753*f5c631daSSadaf Ebrahimi RegisterOrAPSR_nzcv /*rt*/, 1754*f5c631daSSadaf Ebrahimi SpecialFPRegister /*spec_reg*/) { 1755*f5c631daSSadaf Ebrahimi USE(type); 1756*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmrs)); 1757*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1758*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondSfpR,Condition,SpecialFPRegister,Register)1759*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1760*f5c631daSSadaf Ebrahimi InstructionCondSfpR /*instruction*/, 1761*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1762*f5c631daSSadaf Ebrahimi SpecialFPRegister /*spec_reg*/, 1763*f5c631daSSadaf Ebrahimi Register /*rt*/) { 1764*f5c631daSSadaf Ebrahimi USE(type); 1765*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmsr)); 1766*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1767*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDDIr,Condition,DataType,DRegister,DRegister,DRegister,unsigned)1768*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1769*f5c631daSSadaf Ebrahimi InstructionCondDtDDIr /*instruction*/, 1770*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1771*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1772*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1773*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1774*f5c631daSSadaf Ebrahimi DRegister /*dm*/, 1775*f5c631daSSadaf Ebrahimi unsigned /*index*/) { 1776*f5c631daSSadaf Ebrahimi USE(type); 1777*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmul)); 1778*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1779*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQQIr,Condition,DataType,QRegister,QRegister,DRegister,unsigned)1780*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1781*f5c631daSSadaf Ebrahimi InstructionCondDtQQIr /*instruction*/, 1782*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1783*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1784*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1785*f5c631daSSadaf Ebrahimi QRegister /*rn*/, 1786*f5c631daSSadaf Ebrahimi DRegister /*dm*/, 1787*f5c631daSSadaf Ebrahimi unsigned /*index*/) { 1788*f5c631daSSadaf Ebrahimi USE(type); 1789*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmul)); 1790*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1791*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQDIr,Condition,DataType,QRegister,DRegister,DRegister,unsigned)1792*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1793*f5c631daSSadaf Ebrahimi InstructionCondDtQDIr /*instruction*/, 1794*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1795*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1796*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1797*f5c631daSSadaf Ebrahimi DRegister /*rn*/, 1798*f5c631daSSadaf Ebrahimi DRegister /*dm*/, 1799*f5c631daSSadaf Ebrahimi unsigned /*index*/) { 1800*f5c631daSSadaf Ebrahimi USE(type); 1801*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVmull) || (type == kVqdmlal) || (type == kVqdmlsl)); 1802*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1803*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDrl,Condition,DataType,DRegisterList)1804*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1805*f5c631daSSadaf Ebrahimi InstructionCondDtDrl /*instruction*/, 1806*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1807*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1808*f5c631daSSadaf Ebrahimi DRegisterList /*dreglist*/) { 1809*f5c631daSSadaf Ebrahimi USE(type); 1810*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVpop) || (type == kVpush)); 1811*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1812*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtSrl,Condition,DataType,SRegisterList)1813*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1814*f5c631daSSadaf Ebrahimi InstructionCondDtSrl /*instruction*/, 1815*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1816*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1817*f5c631daSSadaf Ebrahimi SRegisterList /*sreglist*/) { 1818*f5c631daSSadaf Ebrahimi USE(type); 1819*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVpop) || (type == kVpush)); 1820*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1821*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDQQop,Condition,DataType,DRegister,QRegister,const QOperand &)1822*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1823*f5c631daSSadaf Ebrahimi InstructionCondDtDQQop /*instruction*/, 1824*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1825*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1826*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1827*f5c631daSSadaf Ebrahimi QRegister /*rm*/, 1828*f5c631daSSadaf Ebrahimi const QOperand& /*operand*/) { 1829*f5c631daSSadaf Ebrahimi USE(type); 1830*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVqrshrn) || (type == kVqrshrun) || 1831*f5c631daSSadaf Ebrahimi (type == kVqshrn) || (type == kVqshrun) || (type == kVrshrn) || 1832*f5c631daSSadaf Ebrahimi (type == kVshrn)); 1833*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1834*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtDD,DataType,DRegister,DRegister)1835*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1836*f5c631daSSadaf Ebrahimi InstructionDtDD /*instruction*/, 1837*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1838*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1839*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1840*f5c631daSSadaf Ebrahimi USE(type); 1841*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVrinta) || (type == kVrintm) || (type == kVrintn) || 1842*f5c631daSSadaf Ebrahimi (type == kVrintp)); 1843*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1844*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionDtSS,DataType,SRegister,SRegister)1845*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1846*f5c631daSSadaf Ebrahimi InstructionDtSS /*instruction*/, 1847*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1848*f5c631daSSadaf Ebrahimi SRegister /*rd*/, 1849*f5c631daSSadaf Ebrahimi SRegister /*rm*/) { 1850*f5c631daSSadaf Ebrahimi USE(type); 1851*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVrinta) || (type == kVrintm) || (type == kVrintn) || 1852*f5c631daSSadaf Ebrahimi (type == kVrintp)); 1853*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1854*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtQDDop,Condition,DataType,QRegister,DRegister,const DOperand &)1855*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1856*f5c631daSSadaf Ebrahimi InstructionCondDtQDDop /*instruction*/, 1857*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1858*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1859*f5c631daSSadaf Ebrahimi QRegister /*rd*/, 1860*f5c631daSSadaf Ebrahimi DRegister /*rm*/, 1861*f5c631daSSadaf Ebrahimi const DOperand& /*operand*/) { 1862*f5c631daSSadaf Ebrahimi USE(type); 1863*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVshll)); 1864*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1865*f5c631daSSadaf Ebrahimi } Delegate(InstructionType type,InstructionCondDtDNrlD,Condition,DataType,DRegister,const NeonRegisterList &,DRegister)1866*f5c631daSSadaf Ebrahimi virtual void Delegate(InstructionType type, 1867*f5c631daSSadaf Ebrahimi InstructionCondDtDNrlD /*instruction*/, 1868*f5c631daSSadaf Ebrahimi Condition /*cond*/, 1869*f5c631daSSadaf Ebrahimi DataType /*dt*/, 1870*f5c631daSSadaf Ebrahimi DRegister /*rd*/, 1871*f5c631daSSadaf Ebrahimi const NeonRegisterList& /*nreglist*/, 1872*f5c631daSSadaf Ebrahimi DRegister /*rm*/) { 1873*f5c631daSSadaf Ebrahimi USE(type); 1874*f5c631daSSadaf Ebrahimi VIXL_ASSERT((type == kVtbl) || (type == kVtbx)); 1875*f5c631daSSadaf Ebrahimi UnimplementedDelegate(type); 1876*f5c631daSSadaf Ebrahimi } 1877*f5c631daSSadaf Ebrahimi 1878*f5c631daSSadaf Ebrahimi void adc(Condition cond, 1879*f5c631daSSadaf Ebrahimi EncodingSize size, 1880*f5c631daSSadaf Ebrahimi Register rd, 1881*f5c631daSSadaf Ebrahimi Register rn, 1882*f5c631daSSadaf Ebrahimi const Operand& operand); adc(Register rd,Register rn,const Operand & operand)1883*f5c631daSSadaf Ebrahimi void adc(Register rd, Register rn, const Operand& operand) { 1884*f5c631daSSadaf Ebrahimi adc(al, Best, rd, rn, operand); 1885*f5c631daSSadaf Ebrahimi } adc(Condition cond,Register rd,Register rn,const Operand & operand)1886*f5c631daSSadaf Ebrahimi void adc(Condition cond, Register rd, Register rn, const Operand& operand) { 1887*f5c631daSSadaf Ebrahimi adc(cond, Best, rd, rn, operand); 1888*f5c631daSSadaf Ebrahimi } adc(EncodingSize size,Register rd,Register rn,const Operand & operand)1889*f5c631daSSadaf Ebrahimi void adc(EncodingSize size, 1890*f5c631daSSadaf Ebrahimi Register rd, 1891*f5c631daSSadaf Ebrahimi Register rn, 1892*f5c631daSSadaf Ebrahimi const Operand& operand) { 1893*f5c631daSSadaf Ebrahimi adc(al, size, rd, rn, operand); 1894*f5c631daSSadaf Ebrahimi } 1895*f5c631daSSadaf Ebrahimi 1896*f5c631daSSadaf Ebrahimi void adcs(Condition cond, 1897*f5c631daSSadaf Ebrahimi EncodingSize size, 1898*f5c631daSSadaf Ebrahimi Register rd, 1899*f5c631daSSadaf Ebrahimi Register rn, 1900*f5c631daSSadaf Ebrahimi const Operand& operand); adcs(Register rd,Register rn,const Operand & operand)1901*f5c631daSSadaf Ebrahimi void adcs(Register rd, Register rn, const Operand& operand) { 1902*f5c631daSSadaf Ebrahimi adcs(al, Best, rd, rn, operand); 1903*f5c631daSSadaf Ebrahimi } adcs(Condition cond,Register rd,Register rn,const Operand & operand)1904*f5c631daSSadaf Ebrahimi void adcs(Condition cond, Register rd, Register rn, const Operand& operand) { 1905*f5c631daSSadaf Ebrahimi adcs(cond, Best, rd, rn, operand); 1906*f5c631daSSadaf Ebrahimi } adcs(EncodingSize size,Register rd,Register rn,const Operand & operand)1907*f5c631daSSadaf Ebrahimi void adcs(EncodingSize size, 1908*f5c631daSSadaf Ebrahimi Register rd, 1909*f5c631daSSadaf Ebrahimi Register rn, 1910*f5c631daSSadaf Ebrahimi const Operand& operand) { 1911*f5c631daSSadaf Ebrahimi adcs(al, size, rd, rn, operand); 1912*f5c631daSSadaf Ebrahimi } 1913*f5c631daSSadaf Ebrahimi 1914*f5c631daSSadaf Ebrahimi void add(Condition cond, 1915*f5c631daSSadaf Ebrahimi EncodingSize size, 1916*f5c631daSSadaf Ebrahimi Register rd, 1917*f5c631daSSadaf Ebrahimi Register rn, 1918*f5c631daSSadaf Ebrahimi const Operand& operand); add(Register rd,Register rn,const Operand & operand)1919*f5c631daSSadaf Ebrahimi void add(Register rd, Register rn, const Operand& operand) { 1920*f5c631daSSadaf Ebrahimi add(al, Best, rd, rn, operand); 1921*f5c631daSSadaf Ebrahimi } add(Condition cond,Register rd,Register rn,const Operand & operand)1922*f5c631daSSadaf Ebrahimi void add(Condition cond, Register rd, Register rn, const Operand& operand) { 1923*f5c631daSSadaf Ebrahimi add(cond, Best, rd, rn, operand); 1924*f5c631daSSadaf Ebrahimi } add(EncodingSize size,Register rd,Register rn,const Operand & operand)1925*f5c631daSSadaf Ebrahimi void add(EncodingSize size, 1926*f5c631daSSadaf Ebrahimi Register rd, 1927*f5c631daSSadaf Ebrahimi Register rn, 1928*f5c631daSSadaf Ebrahimi const Operand& operand) { 1929*f5c631daSSadaf Ebrahimi add(al, size, rd, rn, operand); 1930*f5c631daSSadaf Ebrahimi } 1931*f5c631daSSadaf Ebrahimi 1932*f5c631daSSadaf Ebrahimi void add(Condition cond, Register rd, const Operand& operand); add(Register rd,const Operand & operand)1933*f5c631daSSadaf Ebrahimi void add(Register rd, const Operand& operand) { add(al, rd, operand); } 1934*f5c631daSSadaf Ebrahimi 1935*f5c631daSSadaf Ebrahimi void adds(Condition cond, 1936*f5c631daSSadaf Ebrahimi EncodingSize size, 1937*f5c631daSSadaf Ebrahimi Register rd, 1938*f5c631daSSadaf Ebrahimi Register rn, 1939*f5c631daSSadaf Ebrahimi const Operand& operand); adds(Register rd,Register rn,const Operand & operand)1940*f5c631daSSadaf Ebrahimi void adds(Register rd, Register rn, const Operand& operand) { 1941*f5c631daSSadaf Ebrahimi adds(al, Best, rd, rn, operand); 1942*f5c631daSSadaf Ebrahimi } adds(Condition cond,Register rd,Register rn,const Operand & operand)1943*f5c631daSSadaf Ebrahimi void adds(Condition cond, Register rd, Register rn, const Operand& operand) { 1944*f5c631daSSadaf Ebrahimi adds(cond, Best, rd, rn, operand); 1945*f5c631daSSadaf Ebrahimi } adds(EncodingSize size,Register rd,Register rn,const Operand & operand)1946*f5c631daSSadaf Ebrahimi void adds(EncodingSize size, 1947*f5c631daSSadaf Ebrahimi Register rd, 1948*f5c631daSSadaf Ebrahimi Register rn, 1949*f5c631daSSadaf Ebrahimi const Operand& operand) { 1950*f5c631daSSadaf Ebrahimi adds(al, size, rd, rn, operand); 1951*f5c631daSSadaf Ebrahimi } 1952*f5c631daSSadaf Ebrahimi 1953*f5c631daSSadaf Ebrahimi void adds(Register rd, const Operand& operand); 1954*f5c631daSSadaf Ebrahimi 1955*f5c631daSSadaf Ebrahimi void addw(Condition cond, Register rd, Register rn, const Operand& operand); addw(Register rd,Register rn,const Operand & operand)1956*f5c631daSSadaf Ebrahimi void addw(Register rd, Register rn, const Operand& operand) { 1957*f5c631daSSadaf Ebrahimi addw(al, rd, rn, operand); 1958*f5c631daSSadaf Ebrahimi } 1959*f5c631daSSadaf Ebrahimi 1960*f5c631daSSadaf Ebrahimi void adr(Condition cond, EncodingSize size, Register rd, Location* location); 1961*f5c631daSSadaf Ebrahimi bool adr_info(Condition cond, 1962*f5c631daSSadaf Ebrahimi EncodingSize size, 1963*f5c631daSSadaf Ebrahimi Register rd, 1964*f5c631daSSadaf Ebrahimi Location* location, 1965*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); adr(Register rd,Location * location)1966*f5c631daSSadaf Ebrahimi void adr(Register rd, Location* location) { adr(al, Best, rd, location); } adr(Condition cond,Register rd,Location * location)1967*f5c631daSSadaf Ebrahimi void adr(Condition cond, Register rd, Location* location) { 1968*f5c631daSSadaf Ebrahimi adr(cond, Best, rd, location); 1969*f5c631daSSadaf Ebrahimi } adr(EncodingSize size,Register rd,Location * location)1970*f5c631daSSadaf Ebrahimi void adr(EncodingSize size, Register rd, Location* location) { 1971*f5c631daSSadaf Ebrahimi adr(al, size, rd, location); 1972*f5c631daSSadaf Ebrahimi } 1973*f5c631daSSadaf Ebrahimi 1974*f5c631daSSadaf Ebrahimi void and_(Condition cond, 1975*f5c631daSSadaf Ebrahimi EncodingSize size, 1976*f5c631daSSadaf Ebrahimi Register rd, 1977*f5c631daSSadaf Ebrahimi Register rn, 1978*f5c631daSSadaf Ebrahimi const Operand& operand); and_(Register rd,Register rn,const Operand & operand)1979*f5c631daSSadaf Ebrahimi void and_(Register rd, Register rn, const Operand& operand) { 1980*f5c631daSSadaf Ebrahimi and_(al, Best, rd, rn, operand); 1981*f5c631daSSadaf Ebrahimi } and_(Condition cond,Register rd,Register rn,const Operand & operand)1982*f5c631daSSadaf Ebrahimi void and_(Condition cond, Register rd, Register rn, const Operand& operand) { 1983*f5c631daSSadaf Ebrahimi and_(cond, Best, rd, rn, operand); 1984*f5c631daSSadaf Ebrahimi } and_(EncodingSize size,Register rd,Register rn,const Operand & operand)1985*f5c631daSSadaf Ebrahimi void and_(EncodingSize size, 1986*f5c631daSSadaf Ebrahimi Register rd, 1987*f5c631daSSadaf Ebrahimi Register rn, 1988*f5c631daSSadaf Ebrahimi const Operand& operand) { 1989*f5c631daSSadaf Ebrahimi and_(al, size, rd, rn, operand); 1990*f5c631daSSadaf Ebrahimi } 1991*f5c631daSSadaf Ebrahimi 1992*f5c631daSSadaf Ebrahimi void ands(Condition cond, 1993*f5c631daSSadaf Ebrahimi EncodingSize size, 1994*f5c631daSSadaf Ebrahimi Register rd, 1995*f5c631daSSadaf Ebrahimi Register rn, 1996*f5c631daSSadaf Ebrahimi const Operand& operand); ands(Register rd,Register rn,const Operand & operand)1997*f5c631daSSadaf Ebrahimi void ands(Register rd, Register rn, const Operand& operand) { 1998*f5c631daSSadaf Ebrahimi ands(al, Best, rd, rn, operand); 1999*f5c631daSSadaf Ebrahimi } ands(Condition cond,Register rd,Register rn,const Operand & operand)2000*f5c631daSSadaf Ebrahimi void ands(Condition cond, Register rd, Register rn, const Operand& operand) { 2001*f5c631daSSadaf Ebrahimi ands(cond, Best, rd, rn, operand); 2002*f5c631daSSadaf Ebrahimi } ands(EncodingSize size,Register rd,Register rn,const Operand & operand)2003*f5c631daSSadaf Ebrahimi void ands(EncodingSize size, 2004*f5c631daSSadaf Ebrahimi Register rd, 2005*f5c631daSSadaf Ebrahimi Register rn, 2006*f5c631daSSadaf Ebrahimi const Operand& operand) { 2007*f5c631daSSadaf Ebrahimi ands(al, size, rd, rn, operand); 2008*f5c631daSSadaf Ebrahimi } 2009*f5c631daSSadaf Ebrahimi 2010*f5c631daSSadaf Ebrahimi void asr(Condition cond, 2011*f5c631daSSadaf Ebrahimi EncodingSize size, 2012*f5c631daSSadaf Ebrahimi Register rd, 2013*f5c631daSSadaf Ebrahimi Register rm, 2014*f5c631daSSadaf Ebrahimi const Operand& operand); asr(Register rd,Register rm,const Operand & operand)2015*f5c631daSSadaf Ebrahimi void asr(Register rd, Register rm, const Operand& operand) { 2016*f5c631daSSadaf Ebrahimi asr(al, Best, rd, rm, operand); 2017*f5c631daSSadaf Ebrahimi } asr(Condition cond,Register rd,Register rm,const Operand & operand)2018*f5c631daSSadaf Ebrahimi void asr(Condition cond, Register rd, Register rm, const Operand& operand) { 2019*f5c631daSSadaf Ebrahimi asr(cond, Best, rd, rm, operand); 2020*f5c631daSSadaf Ebrahimi } asr(EncodingSize size,Register rd,Register rm,const Operand & operand)2021*f5c631daSSadaf Ebrahimi void asr(EncodingSize size, 2022*f5c631daSSadaf Ebrahimi Register rd, 2023*f5c631daSSadaf Ebrahimi Register rm, 2024*f5c631daSSadaf Ebrahimi const Operand& operand) { 2025*f5c631daSSadaf Ebrahimi asr(al, size, rd, rm, operand); 2026*f5c631daSSadaf Ebrahimi } 2027*f5c631daSSadaf Ebrahimi 2028*f5c631daSSadaf Ebrahimi void asrs(Condition cond, 2029*f5c631daSSadaf Ebrahimi EncodingSize size, 2030*f5c631daSSadaf Ebrahimi Register rd, 2031*f5c631daSSadaf Ebrahimi Register rm, 2032*f5c631daSSadaf Ebrahimi const Operand& operand); asrs(Register rd,Register rm,const Operand & operand)2033*f5c631daSSadaf Ebrahimi void asrs(Register rd, Register rm, const Operand& operand) { 2034*f5c631daSSadaf Ebrahimi asrs(al, Best, rd, rm, operand); 2035*f5c631daSSadaf Ebrahimi } asrs(Condition cond,Register rd,Register rm,const Operand & operand)2036*f5c631daSSadaf Ebrahimi void asrs(Condition cond, Register rd, Register rm, const Operand& operand) { 2037*f5c631daSSadaf Ebrahimi asrs(cond, Best, rd, rm, operand); 2038*f5c631daSSadaf Ebrahimi } asrs(EncodingSize size,Register rd,Register rm,const Operand & operand)2039*f5c631daSSadaf Ebrahimi void asrs(EncodingSize size, 2040*f5c631daSSadaf Ebrahimi Register rd, 2041*f5c631daSSadaf Ebrahimi Register rm, 2042*f5c631daSSadaf Ebrahimi const Operand& operand) { 2043*f5c631daSSadaf Ebrahimi asrs(al, size, rd, rm, operand); 2044*f5c631daSSadaf Ebrahimi } 2045*f5c631daSSadaf Ebrahimi 2046*f5c631daSSadaf Ebrahimi void b(Condition cond, EncodingSize size, Location* location); 2047*f5c631daSSadaf Ebrahimi bool b_info(Condition cond, 2048*f5c631daSSadaf Ebrahimi EncodingSize size, 2049*f5c631daSSadaf Ebrahimi Location* location, 2050*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); b(Location * location)2051*f5c631daSSadaf Ebrahimi void b(Location* location) { b(al, Best, location); } b(Condition cond,Location * location)2052*f5c631daSSadaf Ebrahimi void b(Condition cond, Location* location) { b(cond, Best, location); } b(EncodingSize size,Location * location)2053*f5c631daSSadaf Ebrahimi void b(EncodingSize size, Location* location) { b(al, size, location); } 2054*f5c631daSSadaf Ebrahimi 2055*f5c631daSSadaf Ebrahimi void bfc(Condition cond, Register rd, uint32_t lsb, uint32_t width); bfc(Register rd,uint32_t lsb,uint32_t width)2056*f5c631daSSadaf Ebrahimi void bfc(Register rd, uint32_t lsb, uint32_t width) { 2057*f5c631daSSadaf Ebrahimi bfc(al, rd, lsb, width); 2058*f5c631daSSadaf Ebrahimi } 2059*f5c631daSSadaf Ebrahimi 2060*f5c631daSSadaf Ebrahimi void bfi( 2061*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, uint32_t lsb, uint32_t width); bfi(Register rd,Register rn,uint32_t lsb,uint32_t width)2062*f5c631daSSadaf Ebrahimi void bfi(Register rd, Register rn, uint32_t lsb, uint32_t width) { 2063*f5c631daSSadaf Ebrahimi bfi(al, rd, rn, lsb, width); 2064*f5c631daSSadaf Ebrahimi } 2065*f5c631daSSadaf Ebrahimi 2066*f5c631daSSadaf Ebrahimi void bic(Condition cond, 2067*f5c631daSSadaf Ebrahimi EncodingSize size, 2068*f5c631daSSadaf Ebrahimi Register rd, 2069*f5c631daSSadaf Ebrahimi Register rn, 2070*f5c631daSSadaf Ebrahimi const Operand& operand); bic(Register rd,Register rn,const Operand & operand)2071*f5c631daSSadaf Ebrahimi void bic(Register rd, Register rn, const Operand& operand) { 2072*f5c631daSSadaf Ebrahimi bic(al, Best, rd, rn, operand); 2073*f5c631daSSadaf Ebrahimi } bic(Condition cond,Register rd,Register rn,const Operand & operand)2074*f5c631daSSadaf Ebrahimi void bic(Condition cond, Register rd, Register rn, const Operand& operand) { 2075*f5c631daSSadaf Ebrahimi bic(cond, Best, rd, rn, operand); 2076*f5c631daSSadaf Ebrahimi } bic(EncodingSize size,Register rd,Register rn,const Operand & operand)2077*f5c631daSSadaf Ebrahimi void bic(EncodingSize size, 2078*f5c631daSSadaf Ebrahimi Register rd, 2079*f5c631daSSadaf Ebrahimi Register rn, 2080*f5c631daSSadaf Ebrahimi const Operand& operand) { 2081*f5c631daSSadaf Ebrahimi bic(al, size, rd, rn, operand); 2082*f5c631daSSadaf Ebrahimi } 2083*f5c631daSSadaf Ebrahimi 2084*f5c631daSSadaf Ebrahimi void bics(Condition cond, 2085*f5c631daSSadaf Ebrahimi EncodingSize size, 2086*f5c631daSSadaf Ebrahimi Register rd, 2087*f5c631daSSadaf Ebrahimi Register rn, 2088*f5c631daSSadaf Ebrahimi const Operand& operand); bics(Register rd,Register rn,const Operand & operand)2089*f5c631daSSadaf Ebrahimi void bics(Register rd, Register rn, const Operand& operand) { 2090*f5c631daSSadaf Ebrahimi bics(al, Best, rd, rn, operand); 2091*f5c631daSSadaf Ebrahimi } bics(Condition cond,Register rd,Register rn,const Operand & operand)2092*f5c631daSSadaf Ebrahimi void bics(Condition cond, Register rd, Register rn, const Operand& operand) { 2093*f5c631daSSadaf Ebrahimi bics(cond, Best, rd, rn, operand); 2094*f5c631daSSadaf Ebrahimi } bics(EncodingSize size,Register rd,Register rn,const Operand & operand)2095*f5c631daSSadaf Ebrahimi void bics(EncodingSize size, 2096*f5c631daSSadaf Ebrahimi Register rd, 2097*f5c631daSSadaf Ebrahimi Register rn, 2098*f5c631daSSadaf Ebrahimi const Operand& operand) { 2099*f5c631daSSadaf Ebrahimi bics(al, size, rd, rn, operand); 2100*f5c631daSSadaf Ebrahimi } 2101*f5c631daSSadaf Ebrahimi 2102*f5c631daSSadaf Ebrahimi void bkpt(Condition cond, uint32_t imm); bkpt(uint32_t imm)2103*f5c631daSSadaf Ebrahimi void bkpt(uint32_t imm) { bkpt(al, imm); } 2104*f5c631daSSadaf Ebrahimi 2105*f5c631daSSadaf Ebrahimi void bl(Condition cond, Location* location); 2106*f5c631daSSadaf Ebrahimi bool bl_info(Condition cond, 2107*f5c631daSSadaf Ebrahimi Location* location, 2108*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); bl(Location * location)2109*f5c631daSSadaf Ebrahimi void bl(Location* location) { bl(al, location); } 2110*f5c631daSSadaf Ebrahimi 2111*f5c631daSSadaf Ebrahimi void blx(Condition cond, Location* location); 2112*f5c631daSSadaf Ebrahimi bool blx_info(Condition cond, 2113*f5c631daSSadaf Ebrahimi Location* location, 2114*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); blx(Location * location)2115*f5c631daSSadaf Ebrahimi void blx(Location* location) { blx(al, location); } 2116*f5c631daSSadaf Ebrahimi 2117*f5c631daSSadaf Ebrahimi void blx(Condition cond, Register rm); blx(Register rm)2118*f5c631daSSadaf Ebrahimi void blx(Register rm) { blx(al, rm); } 2119*f5c631daSSadaf Ebrahimi 2120*f5c631daSSadaf Ebrahimi void bx(Condition cond, Register rm); bx(Register rm)2121*f5c631daSSadaf Ebrahimi void bx(Register rm) { bx(al, rm); } 2122*f5c631daSSadaf Ebrahimi 2123*f5c631daSSadaf Ebrahimi void bxj(Condition cond, Register rm); bxj(Register rm)2124*f5c631daSSadaf Ebrahimi void bxj(Register rm) { bxj(al, rm); } 2125*f5c631daSSadaf Ebrahimi 2126*f5c631daSSadaf Ebrahimi void cbnz(Register rn, Location* location); 2127*f5c631daSSadaf Ebrahimi bool cbnz_info(Register rn, 2128*f5c631daSSadaf Ebrahimi Location* location, 2129*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); 2130*f5c631daSSadaf Ebrahimi 2131*f5c631daSSadaf Ebrahimi void cbz(Register rn, Location* location); 2132*f5c631daSSadaf Ebrahimi bool cbz_info(Register rn, 2133*f5c631daSSadaf Ebrahimi Location* location, 2134*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); 2135*f5c631daSSadaf Ebrahimi 2136*f5c631daSSadaf Ebrahimi void clrex(Condition cond); clrex()2137*f5c631daSSadaf Ebrahimi void clrex() { clrex(al); } 2138*f5c631daSSadaf Ebrahimi 2139*f5c631daSSadaf Ebrahimi void clz(Condition cond, Register rd, Register rm); clz(Register rd,Register rm)2140*f5c631daSSadaf Ebrahimi void clz(Register rd, Register rm) { clz(al, rd, rm); } 2141*f5c631daSSadaf Ebrahimi 2142*f5c631daSSadaf Ebrahimi void cmn(Condition cond, 2143*f5c631daSSadaf Ebrahimi EncodingSize size, 2144*f5c631daSSadaf Ebrahimi Register rn, 2145*f5c631daSSadaf Ebrahimi const Operand& operand); cmn(Register rn,const Operand & operand)2146*f5c631daSSadaf Ebrahimi void cmn(Register rn, const Operand& operand) { cmn(al, Best, rn, operand); } cmn(Condition cond,Register rn,const Operand & operand)2147*f5c631daSSadaf Ebrahimi void cmn(Condition cond, Register rn, const Operand& operand) { 2148*f5c631daSSadaf Ebrahimi cmn(cond, Best, rn, operand); 2149*f5c631daSSadaf Ebrahimi } cmn(EncodingSize size,Register rn,const Operand & operand)2150*f5c631daSSadaf Ebrahimi void cmn(EncodingSize size, Register rn, const Operand& operand) { 2151*f5c631daSSadaf Ebrahimi cmn(al, size, rn, operand); 2152*f5c631daSSadaf Ebrahimi } 2153*f5c631daSSadaf Ebrahimi 2154*f5c631daSSadaf Ebrahimi void cmp(Condition cond, 2155*f5c631daSSadaf Ebrahimi EncodingSize size, 2156*f5c631daSSadaf Ebrahimi Register rn, 2157*f5c631daSSadaf Ebrahimi const Operand& operand); cmp(Register rn,const Operand & operand)2158*f5c631daSSadaf Ebrahimi void cmp(Register rn, const Operand& operand) { cmp(al, Best, rn, operand); } cmp(Condition cond,Register rn,const Operand & operand)2159*f5c631daSSadaf Ebrahimi void cmp(Condition cond, Register rn, const Operand& operand) { 2160*f5c631daSSadaf Ebrahimi cmp(cond, Best, rn, operand); 2161*f5c631daSSadaf Ebrahimi } cmp(EncodingSize size,Register rn,const Operand & operand)2162*f5c631daSSadaf Ebrahimi void cmp(EncodingSize size, Register rn, const Operand& operand) { 2163*f5c631daSSadaf Ebrahimi cmp(al, size, rn, operand); 2164*f5c631daSSadaf Ebrahimi } 2165*f5c631daSSadaf Ebrahimi 2166*f5c631daSSadaf Ebrahimi void crc32b(Condition cond, Register rd, Register rn, Register rm); crc32b(Register rd,Register rn,Register rm)2167*f5c631daSSadaf Ebrahimi void crc32b(Register rd, Register rn, Register rm) { crc32b(al, rd, rn, rm); } 2168*f5c631daSSadaf Ebrahimi 2169*f5c631daSSadaf Ebrahimi void crc32cb(Condition cond, Register rd, Register rn, Register rm); crc32cb(Register rd,Register rn,Register rm)2170*f5c631daSSadaf Ebrahimi void crc32cb(Register rd, Register rn, Register rm) { 2171*f5c631daSSadaf Ebrahimi crc32cb(al, rd, rn, rm); 2172*f5c631daSSadaf Ebrahimi } 2173*f5c631daSSadaf Ebrahimi 2174*f5c631daSSadaf Ebrahimi void crc32ch(Condition cond, Register rd, Register rn, Register rm); crc32ch(Register rd,Register rn,Register rm)2175*f5c631daSSadaf Ebrahimi void crc32ch(Register rd, Register rn, Register rm) { 2176*f5c631daSSadaf Ebrahimi crc32ch(al, rd, rn, rm); 2177*f5c631daSSadaf Ebrahimi } 2178*f5c631daSSadaf Ebrahimi 2179*f5c631daSSadaf Ebrahimi void crc32cw(Condition cond, Register rd, Register rn, Register rm); crc32cw(Register rd,Register rn,Register rm)2180*f5c631daSSadaf Ebrahimi void crc32cw(Register rd, Register rn, Register rm) { 2181*f5c631daSSadaf Ebrahimi crc32cw(al, rd, rn, rm); 2182*f5c631daSSadaf Ebrahimi } 2183*f5c631daSSadaf Ebrahimi 2184*f5c631daSSadaf Ebrahimi void crc32h(Condition cond, Register rd, Register rn, Register rm); crc32h(Register rd,Register rn,Register rm)2185*f5c631daSSadaf Ebrahimi void crc32h(Register rd, Register rn, Register rm) { crc32h(al, rd, rn, rm); } 2186*f5c631daSSadaf Ebrahimi 2187*f5c631daSSadaf Ebrahimi void crc32w(Condition cond, Register rd, Register rn, Register rm); crc32w(Register rd,Register rn,Register rm)2188*f5c631daSSadaf Ebrahimi void crc32w(Register rd, Register rn, Register rm) { crc32w(al, rd, rn, rm); } 2189*f5c631daSSadaf Ebrahimi 2190*f5c631daSSadaf Ebrahimi void dmb(Condition cond, MemoryBarrier option); dmb(MemoryBarrier option)2191*f5c631daSSadaf Ebrahimi void dmb(MemoryBarrier option) { dmb(al, option); } 2192*f5c631daSSadaf Ebrahimi 2193*f5c631daSSadaf Ebrahimi void dsb(Condition cond, MemoryBarrier option); dsb(MemoryBarrier option)2194*f5c631daSSadaf Ebrahimi void dsb(MemoryBarrier option) { dsb(al, option); } 2195*f5c631daSSadaf Ebrahimi 2196*f5c631daSSadaf Ebrahimi void eor(Condition cond, 2197*f5c631daSSadaf Ebrahimi EncodingSize size, 2198*f5c631daSSadaf Ebrahimi Register rd, 2199*f5c631daSSadaf Ebrahimi Register rn, 2200*f5c631daSSadaf Ebrahimi const Operand& operand); eor(Register rd,Register rn,const Operand & operand)2201*f5c631daSSadaf Ebrahimi void eor(Register rd, Register rn, const Operand& operand) { 2202*f5c631daSSadaf Ebrahimi eor(al, Best, rd, rn, operand); 2203*f5c631daSSadaf Ebrahimi } eor(Condition cond,Register rd,Register rn,const Operand & operand)2204*f5c631daSSadaf Ebrahimi void eor(Condition cond, Register rd, Register rn, const Operand& operand) { 2205*f5c631daSSadaf Ebrahimi eor(cond, Best, rd, rn, operand); 2206*f5c631daSSadaf Ebrahimi } eor(EncodingSize size,Register rd,Register rn,const Operand & operand)2207*f5c631daSSadaf Ebrahimi void eor(EncodingSize size, 2208*f5c631daSSadaf Ebrahimi Register rd, 2209*f5c631daSSadaf Ebrahimi Register rn, 2210*f5c631daSSadaf Ebrahimi const Operand& operand) { 2211*f5c631daSSadaf Ebrahimi eor(al, size, rd, rn, operand); 2212*f5c631daSSadaf Ebrahimi } 2213*f5c631daSSadaf Ebrahimi 2214*f5c631daSSadaf Ebrahimi void eors(Condition cond, 2215*f5c631daSSadaf Ebrahimi EncodingSize size, 2216*f5c631daSSadaf Ebrahimi Register rd, 2217*f5c631daSSadaf Ebrahimi Register rn, 2218*f5c631daSSadaf Ebrahimi const Operand& operand); eors(Register rd,Register rn,const Operand & operand)2219*f5c631daSSadaf Ebrahimi void eors(Register rd, Register rn, const Operand& operand) { 2220*f5c631daSSadaf Ebrahimi eors(al, Best, rd, rn, operand); 2221*f5c631daSSadaf Ebrahimi } eors(Condition cond,Register rd,Register rn,const Operand & operand)2222*f5c631daSSadaf Ebrahimi void eors(Condition cond, Register rd, Register rn, const Operand& operand) { 2223*f5c631daSSadaf Ebrahimi eors(cond, Best, rd, rn, operand); 2224*f5c631daSSadaf Ebrahimi } eors(EncodingSize size,Register rd,Register rn,const Operand & operand)2225*f5c631daSSadaf Ebrahimi void eors(EncodingSize size, 2226*f5c631daSSadaf Ebrahimi Register rd, 2227*f5c631daSSadaf Ebrahimi Register rn, 2228*f5c631daSSadaf Ebrahimi const Operand& operand) { 2229*f5c631daSSadaf Ebrahimi eors(al, size, rd, rn, operand); 2230*f5c631daSSadaf Ebrahimi } 2231*f5c631daSSadaf Ebrahimi 2232*f5c631daSSadaf Ebrahimi void fldmdbx(Condition cond, 2233*f5c631daSSadaf Ebrahimi Register rn, 2234*f5c631daSSadaf Ebrahimi WriteBack write_back, 2235*f5c631daSSadaf Ebrahimi DRegisterList dreglist); fldmdbx(Register rn,WriteBack write_back,DRegisterList dreglist)2236*f5c631daSSadaf Ebrahimi void fldmdbx(Register rn, WriteBack write_back, DRegisterList dreglist) { 2237*f5c631daSSadaf Ebrahimi fldmdbx(al, rn, write_back, dreglist); 2238*f5c631daSSadaf Ebrahimi } 2239*f5c631daSSadaf Ebrahimi 2240*f5c631daSSadaf Ebrahimi void fldmiax(Condition cond, 2241*f5c631daSSadaf Ebrahimi Register rn, 2242*f5c631daSSadaf Ebrahimi WriteBack write_back, 2243*f5c631daSSadaf Ebrahimi DRegisterList dreglist); fldmiax(Register rn,WriteBack write_back,DRegisterList dreglist)2244*f5c631daSSadaf Ebrahimi void fldmiax(Register rn, WriteBack write_back, DRegisterList dreglist) { 2245*f5c631daSSadaf Ebrahimi fldmiax(al, rn, write_back, dreglist); 2246*f5c631daSSadaf Ebrahimi } 2247*f5c631daSSadaf Ebrahimi 2248*f5c631daSSadaf Ebrahimi void fstmdbx(Condition cond, 2249*f5c631daSSadaf Ebrahimi Register rn, 2250*f5c631daSSadaf Ebrahimi WriteBack write_back, 2251*f5c631daSSadaf Ebrahimi DRegisterList dreglist); fstmdbx(Register rn,WriteBack write_back,DRegisterList dreglist)2252*f5c631daSSadaf Ebrahimi void fstmdbx(Register rn, WriteBack write_back, DRegisterList dreglist) { 2253*f5c631daSSadaf Ebrahimi fstmdbx(al, rn, write_back, dreglist); 2254*f5c631daSSadaf Ebrahimi } 2255*f5c631daSSadaf Ebrahimi 2256*f5c631daSSadaf Ebrahimi void fstmiax(Condition cond, 2257*f5c631daSSadaf Ebrahimi Register rn, 2258*f5c631daSSadaf Ebrahimi WriteBack write_back, 2259*f5c631daSSadaf Ebrahimi DRegisterList dreglist); fstmiax(Register rn,WriteBack write_back,DRegisterList dreglist)2260*f5c631daSSadaf Ebrahimi void fstmiax(Register rn, WriteBack write_back, DRegisterList dreglist) { 2261*f5c631daSSadaf Ebrahimi fstmiax(al, rn, write_back, dreglist); 2262*f5c631daSSadaf Ebrahimi } 2263*f5c631daSSadaf Ebrahimi 2264*f5c631daSSadaf Ebrahimi void hlt(Condition cond, uint32_t imm); hlt(uint32_t imm)2265*f5c631daSSadaf Ebrahimi void hlt(uint32_t imm) { hlt(al, imm); } 2266*f5c631daSSadaf Ebrahimi 2267*f5c631daSSadaf Ebrahimi void hvc(Condition cond, uint32_t imm); hvc(uint32_t imm)2268*f5c631daSSadaf Ebrahimi void hvc(uint32_t imm) { hvc(al, imm); } 2269*f5c631daSSadaf Ebrahimi 2270*f5c631daSSadaf Ebrahimi void isb(Condition cond, MemoryBarrier option); isb(MemoryBarrier option)2271*f5c631daSSadaf Ebrahimi void isb(MemoryBarrier option) { isb(al, option); } 2272*f5c631daSSadaf Ebrahimi 2273*f5c631daSSadaf Ebrahimi void it(Condition cond, uint16_t mask); 2274*f5c631daSSadaf Ebrahimi 2275*f5c631daSSadaf Ebrahimi void lda(Condition cond, Register rt, const MemOperand& operand); lda(Register rt,const MemOperand & operand)2276*f5c631daSSadaf Ebrahimi void lda(Register rt, const MemOperand& operand) { lda(al, rt, operand); } 2277*f5c631daSSadaf Ebrahimi 2278*f5c631daSSadaf Ebrahimi void ldab(Condition cond, Register rt, const MemOperand& operand); ldab(Register rt,const MemOperand & operand)2279*f5c631daSSadaf Ebrahimi void ldab(Register rt, const MemOperand& operand) { ldab(al, rt, operand); } 2280*f5c631daSSadaf Ebrahimi 2281*f5c631daSSadaf Ebrahimi void ldaex(Condition cond, Register rt, const MemOperand& operand); ldaex(Register rt,const MemOperand & operand)2282*f5c631daSSadaf Ebrahimi void ldaex(Register rt, const MemOperand& operand) { ldaex(al, rt, operand); } 2283*f5c631daSSadaf Ebrahimi 2284*f5c631daSSadaf Ebrahimi void ldaexb(Condition cond, Register rt, const MemOperand& operand); ldaexb(Register rt,const MemOperand & operand)2285*f5c631daSSadaf Ebrahimi void ldaexb(Register rt, const MemOperand& operand) { 2286*f5c631daSSadaf Ebrahimi ldaexb(al, rt, operand); 2287*f5c631daSSadaf Ebrahimi } 2288*f5c631daSSadaf Ebrahimi 2289*f5c631daSSadaf Ebrahimi void ldaexd(Condition cond, 2290*f5c631daSSadaf Ebrahimi Register rt, 2291*f5c631daSSadaf Ebrahimi Register rt2, 2292*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldaexd(Register rt,Register rt2,const MemOperand & operand)2293*f5c631daSSadaf Ebrahimi void ldaexd(Register rt, Register rt2, const MemOperand& operand) { 2294*f5c631daSSadaf Ebrahimi ldaexd(al, rt, rt2, operand); 2295*f5c631daSSadaf Ebrahimi } 2296*f5c631daSSadaf Ebrahimi 2297*f5c631daSSadaf Ebrahimi void ldaexh(Condition cond, Register rt, const MemOperand& operand); ldaexh(Register rt,const MemOperand & operand)2298*f5c631daSSadaf Ebrahimi void ldaexh(Register rt, const MemOperand& operand) { 2299*f5c631daSSadaf Ebrahimi ldaexh(al, rt, operand); 2300*f5c631daSSadaf Ebrahimi } 2301*f5c631daSSadaf Ebrahimi 2302*f5c631daSSadaf Ebrahimi void ldah(Condition cond, Register rt, const MemOperand& operand); ldah(Register rt,const MemOperand & operand)2303*f5c631daSSadaf Ebrahimi void ldah(Register rt, const MemOperand& operand) { ldah(al, rt, operand); } 2304*f5c631daSSadaf Ebrahimi 2305*f5c631daSSadaf Ebrahimi void ldm(Condition cond, 2306*f5c631daSSadaf Ebrahimi EncodingSize size, 2307*f5c631daSSadaf Ebrahimi Register rn, 2308*f5c631daSSadaf Ebrahimi WriteBack write_back, 2309*f5c631daSSadaf Ebrahimi RegisterList registers); ldm(Register rn,WriteBack write_back,RegisterList registers)2310*f5c631daSSadaf Ebrahimi void ldm(Register rn, WriteBack write_back, RegisterList registers) { 2311*f5c631daSSadaf Ebrahimi ldm(al, Best, rn, write_back, registers); 2312*f5c631daSSadaf Ebrahimi } ldm(Condition cond,Register rn,WriteBack write_back,RegisterList registers)2313*f5c631daSSadaf Ebrahimi void ldm(Condition cond, 2314*f5c631daSSadaf Ebrahimi Register rn, 2315*f5c631daSSadaf Ebrahimi WriteBack write_back, 2316*f5c631daSSadaf Ebrahimi RegisterList registers) { 2317*f5c631daSSadaf Ebrahimi ldm(cond, Best, rn, write_back, registers); 2318*f5c631daSSadaf Ebrahimi } ldm(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)2319*f5c631daSSadaf Ebrahimi void ldm(EncodingSize size, 2320*f5c631daSSadaf Ebrahimi Register rn, 2321*f5c631daSSadaf Ebrahimi WriteBack write_back, 2322*f5c631daSSadaf Ebrahimi RegisterList registers) { 2323*f5c631daSSadaf Ebrahimi ldm(al, size, rn, write_back, registers); 2324*f5c631daSSadaf Ebrahimi } 2325*f5c631daSSadaf Ebrahimi 2326*f5c631daSSadaf Ebrahimi void ldmda(Condition cond, 2327*f5c631daSSadaf Ebrahimi Register rn, 2328*f5c631daSSadaf Ebrahimi WriteBack write_back, 2329*f5c631daSSadaf Ebrahimi RegisterList registers); ldmda(Register rn,WriteBack write_back,RegisterList registers)2330*f5c631daSSadaf Ebrahimi void ldmda(Register rn, WriteBack write_back, RegisterList registers) { 2331*f5c631daSSadaf Ebrahimi ldmda(al, rn, write_back, registers); 2332*f5c631daSSadaf Ebrahimi } 2333*f5c631daSSadaf Ebrahimi 2334*f5c631daSSadaf Ebrahimi void ldmdb(Condition cond, 2335*f5c631daSSadaf Ebrahimi Register rn, 2336*f5c631daSSadaf Ebrahimi WriteBack write_back, 2337*f5c631daSSadaf Ebrahimi RegisterList registers); ldmdb(Register rn,WriteBack write_back,RegisterList registers)2338*f5c631daSSadaf Ebrahimi void ldmdb(Register rn, WriteBack write_back, RegisterList registers) { 2339*f5c631daSSadaf Ebrahimi ldmdb(al, rn, write_back, registers); 2340*f5c631daSSadaf Ebrahimi } 2341*f5c631daSSadaf Ebrahimi 2342*f5c631daSSadaf Ebrahimi void ldmea(Condition cond, 2343*f5c631daSSadaf Ebrahimi Register rn, 2344*f5c631daSSadaf Ebrahimi WriteBack write_back, 2345*f5c631daSSadaf Ebrahimi RegisterList registers); ldmea(Register rn,WriteBack write_back,RegisterList registers)2346*f5c631daSSadaf Ebrahimi void ldmea(Register rn, WriteBack write_back, RegisterList registers) { 2347*f5c631daSSadaf Ebrahimi ldmea(al, rn, write_back, registers); 2348*f5c631daSSadaf Ebrahimi } 2349*f5c631daSSadaf Ebrahimi 2350*f5c631daSSadaf Ebrahimi void ldmed(Condition cond, 2351*f5c631daSSadaf Ebrahimi Register rn, 2352*f5c631daSSadaf Ebrahimi WriteBack write_back, 2353*f5c631daSSadaf Ebrahimi RegisterList registers); ldmed(Register rn,WriteBack write_back,RegisterList registers)2354*f5c631daSSadaf Ebrahimi void ldmed(Register rn, WriteBack write_back, RegisterList registers) { 2355*f5c631daSSadaf Ebrahimi ldmed(al, rn, write_back, registers); 2356*f5c631daSSadaf Ebrahimi } 2357*f5c631daSSadaf Ebrahimi 2358*f5c631daSSadaf Ebrahimi void ldmfa(Condition cond, 2359*f5c631daSSadaf Ebrahimi Register rn, 2360*f5c631daSSadaf Ebrahimi WriteBack write_back, 2361*f5c631daSSadaf Ebrahimi RegisterList registers); ldmfa(Register rn,WriteBack write_back,RegisterList registers)2362*f5c631daSSadaf Ebrahimi void ldmfa(Register rn, WriteBack write_back, RegisterList registers) { 2363*f5c631daSSadaf Ebrahimi ldmfa(al, rn, write_back, registers); 2364*f5c631daSSadaf Ebrahimi } 2365*f5c631daSSadaf Ebrahimi 2366*f5c631daSSadaf Ebrahimi void ldmfd(Condition cond, 2367*f5c631daSSadaf Ebrahimi EncodingSize size, 2368*f5c631daSSadaf Ebrahimi Register rn, 2369*f5c631daSSadaf Ebrahimi WriteBack write_back, 2370*f5c631daSSadaf Ebrahimi RegisterList registers); ldmfd(Register rn,WriteBack write_back,RegisterList registers)2371*f5c631daSSadaf Ebrahimi void ldmfd(Register rn, WriteBack write_back, RegisterList registers) { 2372*f5c631daSSadaf Ebrahimi ldmfd(al, Best, rn, write_back, registers); 2373*f5c631daSSadaf Ebrahimi } ldmfd(Condition cond,Register rn,WriteBack write_back,RegisterList registers)2374*f5c631daSSadaf Ebrahimi void ldmfd(Condition cond, 2375*f5c631daSSadaf Ebrahimi Register rn, 2376*f5c631daSSadaf Ebrahimi WriteBack write_back, 2377*f5c631daSSadaf Ebrahimi RegisterList registers) { 2378*f5c631daSSadaf Ebrahimi ldmfd(cond, Best, rn, write_back, registers); 2379*f5c631daSSadaf Ebrahimi } ldmfd(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)2380*f5c631daSSadaf Ebrahimi void ldmfd(EncodingSize size, 2381*f5c631daSSadaf Ebrahimi Register rn, 2382*f5c631daSSadaf Ebrahimi WriteBack write_back, 2383*f5c631daSSadaf Ebrahimi RegisterList registers) { 2384*f5c631daSSadaf Ebrahimi ldmfd(al, size, rn, write_back, registers); 2385*f5c631daSSadaf Ebrahimi } 2386*f5c631daSSadaf Ebrahimi 2387*f5c631daSSadaf Ebrahimi void ldmib(Condition cond, 2388*f5c631daSSadaf Ebrahimi Register rn, 2389*f5c631daSSadaf Ebrahimi WriteBack write_back, 2390*f5c631daSSadaf Ebrahimi RegisterList registers); ldmib(Register rn,WriteBack write_back,RegisterList registers)2391*f5c631daSSadaf Ebrahimi void ldmib(Register rn, WriteBack write_back, RegisterList registers) { 2392*f5c631daSSadaf Ebrahimi ldmib(al, rn, write_back, registers); 2393*f5c631daSSadaf Ebrahimi } 2394*f5c631daSSadaf Ebrahimi 2395*f5c631daSSadaf Ebrahimi void ldr(Condition cond, 2396*f5c631daSSadaf Ebrahimi EncodingSize size, 2397*f5c631daSSadaf Ebrahimi Register rt, 2398*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldr(Register rt,const MemOperand & operand)2399*f5c631daSSadaf Ebrahimi void ldr(Register rt, const MemOperand& operand) { 2400*f5c631daSSadaf Ebrahimi ldr(al, Best, rt, operand); 2401*f5c631daSSadaf Ebrahimi } ldr(Condition cond,Register rt,const MemOperand & operand)2402*f5c631daSSadaf Ebrahimi void ldr(Condition cond, Register rt, const MemOperand& operand) { 2403*f5c631daSSadaf Ebrahimi ldr(cond, Best, rt, operand); 2404*f5c631daSSadaf Ebrahimi } ldr(EncodingSize size,Register rt,const MemOperand & operand)2405*f5c631daSSadaf Ebrahimi void ldr(EncodingSize size, Register rt, const MemOperand& operand) { 2406*f5c631daSSadaf Ebrahimi ldr(al, size, rt, operand); 2407*f5c631daSSadaf Ebrahimi } 2408*f5c631daSSadaf Ebrahimi 2409*f5c631daSSadaf Ebrahimi void ldr(Condition cond, EncodingSize size, Register rt, Location* location); 2410*f5c631daSSadaf Ebrahimi bool ldr_info(Condition cond, 2411*f5c631daSSadaf Ebrahimi EncodingSize size, 2412*f5c631daSSadaf Ebrahimi Register rt, 2413*f5c631daSSadaf Ebrahimi Location* location, 2414*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); ldr(Register rt,Location * location)2415*f5c631daSSadaf Ebrahimi void ldr(Register rt, Location* location) { ldr(al, Best, rt, location); } ldr(Condition cond,Register rt,Location * location)2416*f5c631daSSadaf Ebrahimi void ldr(Condition cond, Register rt, Location* location) { 2417*f5c631daSSadaf Ebrahimi ldr(cond, Best, rt, location); 2418*f5c631daSSadaf Ebrahimi } ldr(EncodingSize size,Register rt,Location * location)2419*f5c631daSSadaf Ebrahimi void ldr(EncodingSize size, Register rt, Location* location) { 2420*f5c631daSSadaf Ebrahimi ldr(al, size, rt, location); 2421*f5c631daSSadaf Ebrahimi } 2422*f5c631daSSadaf Ebrahimi 2423*f5c631daSSadaf Ebrahimi void ldrb(Condition cond, 2424*f5c631daSSadaf Ebrahimi EncodingSize size, 2425*f5c631daSSadaf Ebrahimi Register rt, 2426*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldrb(Register rt,const MemOperand & operand)2427*f5c631daSSadaf Ebrahimi void ldrb(Register rt, const MemOperand& operand) { 2428*f5c631daSSadaf Ebrahimi ldrb(al, Best, rt, operand); 2429*f5c631daSSadaf Ebrahimi } ldrb(Condition cond,Register rt,const MemOperand & operand)2430*f5c631daSSadaf Ebrahimi void ldrb(Condition cond, Register rt, const MemOperand& operand) { 2431*f5c631daSSadaf Ebrahimi ldrb(cond, Best, rt, operand); 2432*f5c631daSSadaf Ebrahimi } ldrb(EncodingSize size,Register rt,const MemOperand & operand)2433*f5c631daSSadaf Ebrahimi void ldrb(EncodingSize size, Register rt, const MemOperand& operand) { 2434*f5c631daSSadaf Ebrahimi ldrb(al, size, rt, operand); 2435*f5c631daSSadaf Ebrahimi } 2436*f5c631daSSadaf Ebrahimi 2437*f5c631daSSadaf Ebrahimi void ldrb(Condition cond, Register rt, Location* location); 2438*f5c631daSSadaf Ebrahimi bool ldrb_info(Condition cond, 2439*f5c631daSSadaf Ebrahimi Register rt, 2440*f5c631daSSadaf Ebrahimi Location* location, 2441*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); ldrb(Register rt,Location * location)2442*f5c631daSSadaf Ebrahimi void ldrb(Register rt, Location* location) { ldrb(al, rt, location); } 2443*f5c631daSSadaf Ebrahimi 2444*f5c631daSSadaf Ebrahimi void ldrd(Condition cond, 2445*f5c631daSSadaf Ebrahimi Register rt, 2446*f5c631daSSadaf Ebrahimi Register rt2, 2447*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldrd(Register rt,Register rt2,const MemOperand & operand)2448*f5c631daSSadaf Ebrahimi void ldrd(Register rt, Register rt2, const MemOperand& operand) { 2449*f5c631daSSadaf Ebrahimi ldrd(al, rt, rt2, operand); 2450*f5c631daSSadaf Ebrahimi } 2451*f5c631daSSadaf Ebrahimi 2452*f5c631daSSadaf Ebrahimi void ldrd(Condition cond, Register rt, Register rt2, Location* location); 2453*f5c631daSSadaf Ebrahimi bool ldrd_info(Condition cond, 2454*f5c631daSSadaf Ebrahimi Register rt, 2455*f5c631daSSadaf Ebrahimi Register rt2, 2456*f5c631daSSadaf Ebrahimi Location* location, 2457*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); ldrd(Register rt,Register rt2,Location * location)2458*f5c631daSSadaf Ebrahimi void ldrd(Register rt, Register rt2, Location* location) { 2459*f5c631daSSadaf Ebrahimi ldrd(al, rt, rt2, location); 2460*f5c631daSSadaf Ebrahimi } 2461*f5c631daSSadaf Ebrahimi 2462*f5c631daSSadaf Ebrahimi void ldrex(Condition cond, Register rt, const MemOperand& operand); ldrex(Register rt,const MemOperand & operand)2463*f5c631daSSadaf Ebrahimi void ldrex(Register rt, const MemOperand& operand) { ldrex(al, rt, operand); } 2464*f5c631daSSadaf Ebrahimi 2465*f5c631daSSadaf Ebrahimi void ldrexb(Condition cond, Register rt, const MemOperand& operand); ldrexb(Register rt,const MemOperand & operand)2466*f5c631daSSadaf Ebrahimi void ldrexb(Register rt, const MemOperand& operand) { 2467*f5c631daSSadaf Ebrahimi ldrexb(al, rt, operand); 2468*f5c631daSSadaf Ebrahimi } 2469*f5c631daSSadaf Ebrahimi 2470*f5c631daSSadaf Ebrahimi void ldrexd(Condition cond, 2471*f5c631daSSadaf Ebrahimi Register rt, 2472*f5c631daSSadaf Ebrahimi Register rt2, 2473*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldrexd(Register rt,Register rt2,const MemOperand & operand)2474*f5c631daSSadaf Ebrahimi void ldrexd(Register rt, Register rt2, const MemOperand& operand) { 2475*f5c631daSSadaf Ebrahimi ldrexd(al, rt, rt2, operand); 2476*f5c631daSSadaf Ebrahimi } 2477*f5c631daSSadaf Ebrahimi 2478*f5c631daSSadaf Ebrahimi void ldrexh(Condition cond, Register rt, const MemOperand& operand); ldrexh(Register rt,const MemOperand & operand)2479*f5c631daSSadaf Ebrahimi void ldrexh(Register rt, const MemOperand& operand) { 2480*f5c631daSSadaf Ebrahimi ldrexh(al, rt, operand); 2481*f5c631daSSadaf Ebrahimi } 2482*f5c631daSSadaf Ebrahimi 2483*f5c631daSSadaf Ebrahimi void ldrh(Condition cond, 2484*f5c631daSSadaf Ebrahimi EncodingSize size, 2485*f5c631daSSadaf Ebrahimi Register rt, 2486*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldrh(Register rt,const MemOperand & operand)2487*f5c631daSSadaf Ebrahimi void ldrh(Register rt, const MemOperand& operand) { 2488*f5c631daSSadaf Ebrahimi ldrh(al, Best, rt, operand); 2489*f5c631daSSadaf Ebrahimi } ldrh(Condition cond,Register rt,const MemOperand & operand)2490*f5c631daSSadaf Ebrahimi void ldrh(Condition cond, Register rt, const MemOperand& operand) { 2491*f5c631daSSadaf Ebrahimi ldrh(cond, Best, rt, operand); 2492*f5c631daSSadaf Ebrahimi } ldrh(EncodingSize size,Register rt,const MemOperand & operand)2493*f5c631daSSadaf Ebrahimi void ldrh(EncodingSize size, Register rt, const MemOperand& operand) { 2494*f5c631daSSadaf Ebrahimi ldrh(al, size, rt, operand); 2495*f5c631daSSadaf Ebrahimi } 2496*f5c631daSSadaf Ebrahimi 2497*f5c631daSSadaf Ebrahimi void ldrh(Condition cond, Register rt, Location* location); 2498*f5c631daSSadaf Ebrahimi bool ldrh_info(Condition cond, 2499*f5c631daSSadaf Ebrahimi Register rt, 2500*f5c631daSSadaf Ebrahimi Location* location, 2501*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); ldrh(Register rt,Location * location)2502*f5c631daSSadaf Ebrahimi void ldrh(Register rt, Location* location) { ldrh(al, rt, location); } 2503*f5c631daSSadaf Ebrahimi 2504*f5c631daSSadaf Ebrahimi void ldrsb(Condition cond, 2505*f5c631daSSadaf Ebrahimi EncodingSize size, 2506*f5c631daSSadaf Ebrahimi Register rt, 2507*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldrsb(Register rt,const MemOperand & operand)2508*f5c631daSSadaf Ebrahimi void ldrsb(Register rt, const MemOperand& operand) { 2509*f5c631daSSadaf Ebrahimi ldrsb(al, Best, rt, operand); 2510*f5c631daSSadaf Ebrahimi } ldrsb(Condition cond,Register rt,const MemOperand & operand)2511*f5c631daSSadaf Ebrahimi void ldrsb(Condition cond, Register rt, const MemOperand& operand) { 2512*f5c631daSSadaf Ebrahimi ldrsb(cond, Best, rt, operand); 2513*f5c631daSSadaf Ebrahimi } ldrsb(EncodingSize size,Register rt,const MemOperand & operand)2514*f5c631daSSadaf Ebrahimi void ldrsb(EncodingSize size, Register rt, const MemOperand& operand) { 2515*f5c631daSSadaf Ebrahimi ldrsb(al, size, rt, operand); 2516*f5c631daSSadaf Ebrahimi } 2517*f5c631daSSadaf Ebrahimi 2518*f5c631daSSadaf Ebrahimi void ldrsb(Condition cond, Register rt, Location* location); 2519*f5c631daSSadaf Ebrahimi bool ldrsb_info(Condition cond, 2520*f5c631daSSadaf Ebrahimi Register rt, 2521*f5c631daSSadaf Ebrahimi Location* location, 2522*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); ldrsb(Register rt,Location * location)2523*f5c631daSSadaf Ebrahimi void ldrsb(Register rt, Location* location) { ldrsb(al, rt, location); } 2524*f5c631daSSadaf Ebrahimi 2525*f5c631daSSadaf Ebrahimi void ldrsh(Condition cond, 2526*f5c631daSSadaf Ebrahimi EncodingSize size, 2527*f5c631daSSadaf Ebrahimi Register rt, 2528*f5c631daSSadaf Ebrahimi const MemOperand& operand); ldrsh(Register rt,const MemOperand & operand)2529*f5c631daSSadaf Ebrahimi void ldrsh(Register rt, const MemOperand& operand) { 2530*f5c631daSSadaf Ebrahimi ldrsh(al, Best, rt, operand); 2531*f5c631daSSadaf Ebrahimi } ldrsh(Condition cond,Register rt,const MemOperand & operand)2532*f5c631daSSadaf Ebrahimi void ldrsh(Condition cond, Register rt, const MemOperand& operand) { 2533*f5c631daSSadaf Ebrahimi ldrsh(cond, Best, rt, operand); 2534*f5c631daSSadaf Ebrahimi } ldrsh(EncodingSize size,Register rt,const MemOperand & operand)2535*f5c631daSSadaf Ebrahimi void ldrsh(EncodingSize size, Register rt, const MemOperand& operand) { 2536*f5c631daSSadaf Ebrahimi ldrsh(al, size, rt, operand); 2537*f5c631daSSadaf Ebrahimi } 2538*f5c631daSSadaf Ebrahimi 2539*f5c631daSSadaf Ebrahimi void ldrsh(Condition cond, Register rt, Location* location); 2540*f5c631daSSadaf Ebrahimi bool ldrsh_info(Condition cond, 2541*f5c631daSSadaf Ebrahimi Register rt, 2542*f5c631daSSadaf Ebrahimi Location* location, 2543*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); ldrsh(Register rt,Location * location)2544*f5c631daSSadaf Ebrahimi void ldrsh(Register rt, Location* location) { ldrsh(al, rt, location); } 2545*f5c631daSSadaf Ebrahimi 2546*f5c631daSSadaf Ebrahimi void lsl(Condition cond, 2547*f5c631daSSadaf Ebrahimi EncodingSize size, 2548*f5c631daSSadaf Ebrahimi Register rd, 2549*f5c631daSSadaf Ebrahimi Register rm, 2550*f5c631daSSadaf Ebrahimi const Operand& operand); lsl(Register rd,Register rm,const Operand & operand)2551*f5c631daSSadaf Ebrahimi void lsl(Register rd, Register rm, const Operand& operand) { 2552*f5c631daSSadaf Ebrahimi lsl(al, Best, rd, rm, operand); 2553*f5c631daSSadaf Ebrahimi } lsl(Condition cond,Register rd,Register rm,const Operand & operand)2554*f5c631daSSadaf Ebrahimi void lsl(Condition cond, Register rd, Register rm, const Operand& operand) { 2555*f5c631daSSadaf Ebrahimi lsl(cond, Best, rd, rm, operand); 2556*f5c631daSSadaf Ebrahimi } lsl(EncodingSize size,Register rd,Register rm,const Operand & operand)2557*f5c631daSSadaf Ebrahimi void lsl(EncodingSize size, 2558*f5c631daSSadaf Ebrahimi Register rd, 2559*f5c631daSSadaf Ebrahimi Register rm, 2560*f5c631daSSadaf Ebrahimi const Operand& operand) { 2561*f5c631daSSadaf Ebrahimi lsl(al, size, rd, rm, operand); 2562*f5c631daSSadaf Ebrahimi } 2563*f5c631daSSadaf Ebrahimi 2564*f5c631daSSadaf Ebrahimi void lsls(Condition cond, 2565*f5c631daSSadaf Ebrahimi EncodingSize size, 2566*f5c631daSSadaf Ebrahimi Register rd, 2567*f5c631daSSadaf Ebrahimi Register rm, 2568*f5c631daSSadaf Ebrahimi const Operand& operand); lsls(Register rd,Register rm,const Operand & operand)2569*f5c631daSSadaf Ebrahimi void lsls(Register rd, Register rm, const Operand& operand) { 2570*f5c631daSSadaf Ebrahimi lsls(al, Best, rd, rm, operand); 2571*f5c631daSSadaf Ebrahimi } lsls(Condition cond,Register rd,Register rm,const Operand & operand)2572*f5c631daSSadaf Ebrahimi void lsls(Condition cond, Register rd, Register rm, const Operand& operand) { 2573*f5c631daSSadaf Ebrahimi lsls(cond, Best, rd, rm, operand); 2574*f5c631daSSadaf Ebrahimi } lsls(EncodingSize size,Register rd,Register rm,const Operand & operand)2575*f5c631daSSadaf Ebrahimi void lsls(EncodingSize size, 2576*f5c631daSSadaf Ebrahimi Register rd, 2577*f5c631daSSadaf Ebrahimi Register rm, 2578*f5c631daSSadaf Ebrahimi const Operand& operand) { 2579*f5c631daSSadaf Ebrahimi lsls(al, size, rd, rm, operand); 2580*f5c631daSSadaf Ebrahimi } 2581*f5c631daSSadaf Ebrahimi 2582*f5c631daSSadaf Ebrahimi void lsr(Condition cond, 2583*f5c631daSSadaf Ebrahimi EncodingSize size, 2584*f5c631daSSadaf Ebrahimi Register rd, 2585*f5c631daSSadaf Ebrahimi Register rm, 2586*f5c631daSSadaf Ebrahimi const Operand& operand); lsr(Register rd,Register rm,const Operand & operand)2587*f5c631daSSadaf Ebrahimi void lsr(Register rd, Register rm, const Operand& operand) { 2588*f5c631daSSadaf Ebrahimi lsr(al, Best, rd, rm, operand); 2589*f5c631daSSadaf Ebrahimi } lsr(Condition cond,Register rd,Register rm,const Operand & operand)2590*f5c631daSSadaf Ebrahimi void lsr(Condition cond, Register rd, Register rm, const Operand& operand) { 2591*f5c631daSSadaf Ebrahimi lsr(cond, Best, rd, rm, operand); 2592*f5c631daSSadaf Ebrahimi } lsr(EncodingSize size,Register rd,Register rm,const Operand & operand)2593*f5c631daSSadaf Ebrahimi void lsr(EncodingSize size, 2594*f5c631daSSadaf Ebrahimi Register rd, 2595*f5c631daSSadaf Ebrahimi Register rm, 2596*f5c631daSSadaf Ebrahimi const Operand& operand) { 2597*f5c631daSSadaf Ebrahimi lsr(al, size, rd, rm, operand); 2598*f5c631daSSadaf Ebrahimi } 2599*f5c631daSSadaf Ebrahimi 2600*f5c631daSSadaf Ebrahimi void lsrs(Condition cond, 2601*f5c631daSSadaf Ebrahimi EncodingSize size, 2602*f5c631daSSadaf Ebrahimi Register rd, 2603*f5c631daSSadaf Ebrahimi Register rm, 2604*f5c631daSSadaf Ebrahimi const Operand& operand); lsrs(Register rd,Register rm,const Operand & operand)2605*f5c631daSSadaf Ebrahimi void lsrs(Register rd, Register rm, const Operand& operand) { 2606*f5c631daSSadaf Ebrahimi lsrs(al, Best, rd, rm, operand); 2607*f5c631daSSadaf Ebrahimi } lsrs(Condition cond,Register rd,Register rm,const Operand & operand)2608*f5c631daSSadaf Ebrahimi void lsrs(Condition cond, Register rd, Register rm, const Operand& operand) { 2609*f5c631daSSadaf Ebrahimi lsrs(cond, Best, rd, rm, operand); 2610*f5c631daSSadaf Ebrahimi } lsrs(EncodingSize size,Register rd,Register rm,const Operand & operand)2611*f5c631daSSadaf Ebrahimi void lsrs(EncodingSize size, 2612*f5c631daSSadaf Ebrahimi Register rd, 2613*f5c631daSSadaf Ebrahimi Register rm, 2614*f5c631daSSadaf Ebrahimi const Operand& operand) { 2615*f5c631daSSadaf Ebrahimi lsrs(al, size, rd, rm, operand); 2616*f5c631daSSadaf Ebrahimi } 2617*f5c631daSSadaf Ebrahimi 2618*f5c631daSSadaf Ebrahimi void mla(Condition cond, Register rd, Register rn, Register rm, Register ra); mla(Register rd,Register rn,Register rm,Register ra)2619*f5c631daSSadaf Ebrahimi void mla(Register rd, Register rn, Register rm, Register ra) { 2620*f5c631daSSadaf Ebrahimi mla(al, rd, rn, rm, ra); 2621*f5c631daSSadaf Ebrahimi } 2622*f5c631daSSadaf Ebrahimi 2623*f5c631daSSadaf Ebrahimi void mlas(Condition cond, Register rd, Register rn, Register rm, Register ra); mlas(Register rd,Register rn,Register rm,Register ra)2624*f5c631daSSadaf Ebrahimi void mlas(Register rd, Register rn, Register rm, Register ra) { 2625*f5c631daSSadaf Ebrahimi mlas(al, rd, rn, rm, ra); 2626*f5c631daSSadaf Ebrahimi } 2627*f5c631daSSadaf Ebrahimi 2628*f5c631daSSadaf Ebrahimi void mls(Condition cond, Register rd, Register rn, Register rm, Register ra); mls(Register rd,Register rn,Register rm,Register ra)2629*f5c631daSSadaf Ebrahimi void mls(Register rd, Register rn, Register rm, Register ra) { 2630*f5c631daSSadaf Ebrahimi mls(al, rd, rn, rm, ra); 2631*f5c631daSSadaf Ebrahimi } 2632*f5c631daSSadaf Ebrahimi 2633*f5c631daSSadaf Ebrahimi void mov(Condition cond, 2634*f5c631daSSadaf Ebrahimi EncodingSize size, 2635*f5c631daSSadaf Ebrahimi Register rd, 2636*f5c631daSSadaf Ebrahimi const Operand& operand); mov(Register rd,const Operand & operand)2637*f5c631daSSadaf Ebrahimi void mov(Register rd, const Operand& operand) { mov(al, Best, rd, operand); } mov(Condition cond,Register rd,const Operand & operand)2638*f5c631daSSadaf Ebrahimi void mov(Condition cond, Register rd, const Operand& operand) { 2639*f5c631daSSadaf Ebrahimi mov(cond, Best, rd, operand); 2640*f5c631daSSadaf Ebrahimi } mov(EncodingSize size,Register rd,const Operand & operand)2641*f5c631daSSadaf Ebrahimi void mov(EncodingSize size, Register rd, const Operand& operand) { 2642*f5c631daSSadaf Ebrahimi mov(al, size, rd, operand); 2643*f5c631daSSadaf Ebrahimi } 2644*f5c631daSSadaf Ebrahimi 2645*f5c631daSSadaf Ebrahimi void movs(Condition cond, 2646*f5c631daSSadaf Ebrahimi EncodingSize size, 2647*f5c631daSSadaf Ebrahimi Register rd, 2648*f5c631daSSadaf Ebrahimi const Operand& operand); movs(Register rd,const Operand & operand)2649*f5c631daSSadaf Ebrahimi void movs(Register rd, const Operand& operand) { 2650*f5c631daSSadaf Ebrahimi movs(al, Best, rd, operand); 2651*f5c631daSSadaf Ebrahimi } movs(Condition cond,Register rd,const Operand & operand)2652*f5c631daSSadaf Ebrahimi void movs(Condition cond, Register rd, const Operand& operand) { 2653*f5c631daSSadaf Ebrahimi movs(cond, Best, rd, operand); 2654*f5c631daSSadaf Ebrahimi } movs(EncodingSize size,Register rd,const Operand & operand)2655*f5c631daSSadaf Ebrahimi void movs(EncodingSize size, Register rd, const Operand& operand) { 2656*f5c631daSSadaf Ebrahimi movs(al, size, rd, operand); 2657*f5c631daSSadaf Ebrahimi } 2658*f5c631daSSadaf Ebrahimi 2659*f5c631daSSadaf Ebrahimi void movt(Condition cond, Register rd, const Operand& operand); movt(Register rd,const Operand & operand)2660*f5c631daSSadaf Ebrahimi void movt(Register rd, const Operand& operand) { movt(al, rd, operand); } 2661*f5c631daSSadaf Ebrahimi 2662*f5c631daSSadaf Ebrahimi void movw(Condition cond, Register rd, const Operand& operand); movw(Register rd,const Operand & operand)2663*f5c631daSSadaf Ebrahimi void movw(Register rd, const Operand& operand) { movw(al, rd, operand); } 2664*f5c631daSSadaf Ebrahimi 2665*f5c631daSSadaf Ebrahimi void mrs(Condition cond, Register rd, SpecialRegister spec_reg); mrs(Register rd,SpecialRegister spec_reg)2666*f5c631daSSadaf Ebrahimi void mrs(Register rd, SpecialRegister spec_reg) { mrs(al, rd, spec_reg); } 2667*f5c631daSSadaf Ebrahimi 2668*f5c631daSSadaf Ebrahimi void msr(Condition cond, 2669*f5c631daSSadaf Ebrahimi MaskedSpecialRegister spec_reg, 2670*f5c631daSSadaf Ebrahimi const Operand& operand); msr(MaskedSpecialRegister spec_reg,const Operand & operand)2671*f5c631daSSadaf Ebrahimi void msr(MaskedSpecialRegister spec_reg, const Operand& operand) { 2672*f5c631daSSadaf Ebrahimi msr(al, spec_reg, operand); 2673*f5c631daSSadaf Ebrahimi } 2674*f5c631daSSadaf Ebrahimi 2675*f5c631daSSadaf Ebrahimi void mul( 2676*f5c631daSSadaf Ebrahimi Condition cond, EncodingSize size, Register rd, Register rn, Register rm); mul(Register rd,Register rn,Register rm)2677*f5c631daSSadaf Ebrahimi void mul(Register rd, Register rn, Register rm) { mul(al, Best, rd, rn, rm); } mul(Condition cond,Register rd,Register rn,Register rm)2678*f5c631daSSadaf Ebrahimi void mul(Condition cond, Register rd, Register rn, Register rm) { 2679*f5c631daSSadaf Ebrahimi mul(cond, Best, rd, rn, rm); 2680*f5c631daSSadaf Ebrahimi } mul(EncodingSize size,Register rd,Register rn,Register rm)2681*f5c631daSSadaf Ebrahimi void mul(EncodingSize size, Register rd, Register rn, Register rm) { 2682*f5c631daSSadaf Ebrahimi mul(al, size, rd, rn, rm); 2683*f5c631daSSadaf Ebrahimi } 2684*f5c631daSSadaf Ebrahimi 2685*f5c631daSSadaf Ebrahimi void muls(Condition cond, Register rd, Register rn, Register rm); muls(Register rd,Register rn,Register rm)2686*f5c631daSSadaf Ebrahimi void muls(Register rd, Register rn, Register rm) { muls(al, rd, rn, rm); } 2687*f5c631daSSadaf Ebrahimi 2688*f5c631daSSadaf Ebrahimi void mvn(Condition cond, 2689*f5c631daSSadaf Ebrahimi EncodingSize size, 2690*f5c631daSSadaf Ebrahimi Register rd, 2691*f5c631daSSadaf Ebrahimi const Operand& operand); mvn(Register rd,const Operand & operand)2692*f5c631daSSadaf Ebrahimi void mvn(Register rd, const Operand& operand) { mvn(al, Best, rd, operand); } mvn(Condition cond,Register rd,const Operand & operand)2693*f5c631daSSadaf Ebrahimi void mvn(Condition cond, Register rd, const Operand& operand) { 2694*f5c631daSSadaf Ebrahimi mvn(cond, Best, rd, operand); 2695*f5c631daSSadaf Ebrahimi } mvn(EncodingSize size,Register rd,const Operand & operand)2696*f5c631daSSadaf Ebrahimi void mvn(EncodingSize size, Register rd, const Operand& operand) { 2697*f5c631daSSadaf Ebrahimi mvn(al, size, rd, operand); 2698*f5c631daSSadaf Ebrahimi } 2699*f5c631daSSadaf Ebrahimi 2700*f5c631daSSadaf Ebrahimi void mvns(Condition cond, 2701*f5c631daSSadaf Ebrahimi EncodingSize size, 2702*f5c631daSSadaf Ebrahimi Register rd, 2703*f5c631daSSadaf Ebrahimi const Operand& operand); mvns(Register rd,const Operand & operand)2704*f5c631daSSadaf Ebrahimi void mvns(Register rd, const Operand& operand) { 2705*f5c631daSSadaf Ebrahimi mvns(al, Best, rd, operand); 2706*f5c631daSSadaf Ebrahimi } mvns(Condition cond,Register rd,const Operand & operand)2707*f5c631daSSadaf Ebrahimi void mvns(Condition cond, Register rd, const Operand& operand) { 2708*f5c631daSSadaf Ebrahimi mvns(cond, Best, rd, operand); 2709*f5c631daSSadaf Ebrahimi } mvns(EncodingSize size,Register rd,const Operand & operand)2710*f5c631daSSadaf Ebrahimi void mvns(EncodingSize size, Register rd, const Operand& operand) { 2711*f5c631daSSadaf Ebrahimi mvns(al, size, rd, operand); 2712*f5c631daSSadaf Ebrahimi } 2713*f5c631daSSadaf Ebrahimi 2714*f5c631daSSadaf Ebrahimi void nop(Condition cond, EncodingSize size); nop()2715*f5c631daSSadaf Ebrahimi void nop() { nop(al, Best); } nop(Condition cond)2716*f5c631daSSadaf Ebrahimi void nop(Condition cond) { nop(cond, Best); } nop(EncodingSize size)2717*f5c631daSSadaf Ebrahimi void nop(EncodingSize size) { nop(al, size); } 2718*f5c631daSSadaf Ebrahimi 2719*f5c631daSSadaf Ebrahimi void orn(Condition cond, Register rd, Register rn, const Operand& operand); orn(Register rd,Register rn,const Operand & operand)2720*f5c631daSSadaf Ebrahimi void orn(Register rd, Register rn, const Operand& operand) { 2721*f5c631daSSadaf Ebrahimi orn(al, rd, rn, operand); 2722*f5c631daSSadaf Ebrahimi } 2723*f5c631daSSadaf Ebrahimi 2724*f5c631daSSadaf Ebrahimi void orns(Condition cond, Register rd, Register rn, const Operand& operand); orns(Register rd,Register rn,const Operand & operand)2725*f5c631daSSadaf Ebrahimi void orns(Register rd, Register rn, const Operand& operand) { 2726*f5c631daSSadaf Ebrahimi orns(al, rd, rn, operand); 2727*f5c631daSSadaf Ebrahimi } 2728*f5c631daSSadaf Ebrahimi 2729*f5c631daSSadaf Ebrahimi void orr(Condition cond, 2730*f5c631daSSadaf Ebrahimi EncodingSize size, 2731*f5c631daSSadaf Ebrahimi Register rd, 2732*f5c631daSSadaf Ebrahimi Register rn, 2733*f5c631daSSadaf Ebrahimi const Operand& operand); orr(Register rd,Register rn,const Operand & operand)2734*f5c631daSSadaf Ebrahimi void orr(Register rd, Register rn, const Operand& operand) { 2735*f5c631daSSadaf Ebrahimi orr(al, Best, rd, rn, operand); 2736*f5c631daSSadaf Ebrahimi } orr(Condition cond,Register rd,Register rn,const Operand & operand)2737*f5c631daSSadaf Ebrahimi void orr(Condition cond, Register rd, Register rn, const Operand& operand) { 2738*f5c631daSSadaf Ebrahimi orr(cond, Best, rd, rn, operand); 2739*f5c631daSSadaf Ebrahimi } orr(EncodingSize size,Register rd,Register rn,const Operand & operand)2740*f5c631daSSadaf Ebrahimi void orr(EncodingSize size, 2741*f5c631daSSadaf Ebrahimi Register rd, 2742*f5c631daSSadaf Ebrahimi Register rn, 2743*f5c631daSSadaf Ebrahimi const Operand& operand) { 2744*f5c631daSSadaf Ebrahimi orr(al, size, rd, rn, operand); 2745*f5c631daSSadaf Ebrahimi } 2746*f5c631daSSadaf Ebrahimi 2747*f5c631daSSadaf Ebrahimi void orrs(Condition cond, 2748*f5c631daSSadaf Ebrahimi EncodingSize size, 2749*f5c631daSSadaf Ebrahimi Register rd, 2750*f5c631daSSadaf Ebrahimi Register rn, 2751*f5c631daSSadaf Ebrahimi const Operand& operand); orrs(Register rd,Register rn,const Operand & operand)2752*f5c631daSSadaf Ebrahimi void orrs(Register rd, Register rn, const Operand& operand) { 2753*f5c631daSSadaf Ebrahimi orrs(al, Best, rd, rn, operand); 2754*f5c631daSSadaf Ebrahimi } orrs(Condition cond,Register rd,Register rn,const Operand & operand)2755*f5c631daSSadaf Ebrahimi void orrs(Condition cond, Register rd, Register rn, const Operand& operand) { 2756*f5c631daSSadaf Ebrahimi orrs(cond, Best, rd, rn, operand); 2757*f5c631daSSadaf Ebrahimi } orrs(EncodingSize size,Register rd,Register rn,const Operand & operand)2758*f5c631daSSadaf Ebrahimi void orrs(EncodingSize size, 2759*f5c631daSSadaf Ebrahimi Register rd, 2760*f5c631daSSadaf Ebrahimi Register rn, 2761*f5c631daSSadaf Ebrahimi const Operand& operand) { 2762*f5c631daSSadaf Ebrahimi orrs(al, size, rd, rn, operand); 2763*f5c631daSSadaf Ebrahimi } 2764*f5c631daSSadaf Ebrahimi 2765*f5c631daSSadaf Ebrahimi void pkhbt(Condition cond, Register rd, Register rn, const Operand& operand); pkhbt(Register rd,Register rn,const Operand & operand)2766*f5c631daSSadaf Ebrahimi void pkhbt(Register rd, Register rn, const Operand& operand) { 2767*f5c631daSSadaf Ebrahimi pkhbt(al, rd, rn, operand); 2768*f5c631daSSadaf Ebrahimi } 2769*f5c631daSSadaf Ebrahimi 2770*f5c631daSSadaf Ebrahimi void pkhtb(Condition cond, Register rd, Register rn, const Operand& operand); pkhtb(Register rd,Register rn,const Operand & operand)2771*f5c631daSSadaf Ebrahimi void pkhtb(Register rd, Register rn, const Operand& operand) { 2772*f5c631daSSadaf Ebrahimi pkhtb(al, rd, rn, operand); 2773*f5c631daSSadaf Ebrahimi } 2774*f5c631daSSadaf Ebrahimi 2775*f5c631daSSadaf Ebrahimi void pld(Condition cond, Location* location); 2776*f5c631daSSadaf Ebrahimi bool pld_info(Condition cond, 2777*f5c631daSSadaf Ebrahimi Location* location, 2778*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); pld(Location * location)2779*f5c631daSSadaf Ebrahimi void pld(Location* location) { pld(al, location); } 2780*f5c631daSSadaf Ebrahimi 2781*f5c631daSSadaf Ebrahimi void pld(Condition cond, const MemOperand& operand); pld(const MemOperand & operand)2782*f5c631daSSadaf Ebrahimi void pld(const MemOperand& operand) { pld(al, operand); } 2783*f5c631daSSadaf Ebrahimi 2784*f5c631daSSadaf Ebrahimi void pldw(Condition cond, const MemOperand& operand); pldw(const MemOperand & operand)2785*f5c631daSSadaf Ebrahimi void pldw(const MemOperand& operand) { pldw(al, operand); } 2786*f5c631daSSadaf Ebrahimi 2787*f5c631daSSadaf Ebrahimi void pli(Condition cond, const MemOperand& operand); pli(const MemOperand & operand)2788*f5c631daSSadaf Ebrahimi void pli(const MemOperand& operand) { pli(al, operand); } 2789*f5c631daSSadaf Ebrahimi 2790*f5c631daSSadaf Ebrahimi void pli(Condition cond, Location* location); 2791*f5c631daSSadaf Ebrahimi bool pli_info(Condition cond, 2792*f5c631daSSadaf Ebrahimi Location* location, 2793*f5c631daSSadaf Ebrahimi const struct ReferenceInfo** info); pli(Location * location)2794*f5c631daSSadaf Ebrahimi void pli(Location* location) { pli(al, location); } 2795*f5c631daSSadaf Ebrahimi 2796*f5c631daSSadaf Ebrahimi void pop(Condition cond, EncodingSize size, RegisterList registers); pop(RegisterList registers)2797*f5c631daSSadaf Ebrahimi void pop(RegisterList registers) { pop(al, Best, registers); } pop(Condition cond,RegisterList registers)2798*f5c631daSSadaf Ebrahimi void pop(Condition cond, RegisterList registers) { 2799*f5c631daSSadaf Ebrahimi pop(cond, Best, registers); 2800*f5c631daSSadaf Ebrahimi } pop(EncodingSize size,RegisterList registers)2801*f5c631daSSadaf Ebrahimi void pop(EncodingSize size, RegisterList registers) { 2802*f5c631daSSadaf Ebrahimi pop(al, size, registers); 2803*f5c631daSSadaf Ebrahimi } 2804*f5c631daSSadaf Ebrahimi 2805*f5c631daSSadaf Ebrahimi void pop(Condition cond, EncodingSize size, Register rt); pop(Register rt)2806*f5c631daSSadaf Ebrahimi void pop(Register rt) { pop(al, Best, rt); } pop(Condition cond,Register rt)2807*f5c631daSSadaf Ebrahimi void pop(Condition cond, Register rt) { pop(cond, Best, rt); } pop(EncodingSize size,Register rt)2808*f5c631daSSadaf Ebrahimi void pop(EncodingSize size, Register rt) { pop(al, size, rt); } 2809*f5c631daSSadaf Ebrahimi 2810*f5c631daSSadaf Ebrahimi void push(Condition cond, EncodingSize size, RegisterList registers); push(RegisterList registers)2811*f5c631daSSadaf Ebrahimi void push(RegisterList registers) { push(al, Best, registers); } push(Condition cond,RegisterList registers)2812*f5c631daSSadaf Ebrahimi void push(Condition cond, RegisterList registers) { 2813*f5c631daSSadaf Ebrahimi push(cond, Best, registers); 2814*f5c631daSSadaf Ebrahimi } push(EncodingSize size,RegisterList registers)2815*f5c631daSSadaf Ebrahimi void push(EncodingSize size, RegisterList registers) { 2816*f5c631daSSadaf Ebrahimi push(al, size, registers); 2817*f5c631daSSadaf Ebrahimi } 2818*f5c631daSSadaf Ebrahimi 2819*f5c631daSSadaf Ebrahimi void push(Condition cond, EncodingSize size, Register rt); push(Register rt)2820*f5c631daSSadaf Ebrahimi void push(Register rt) { push(al, Best, rt); } push(Condition cond,Register rt)2821*f5c631daSSadaf Ebrahimi void push(Condition cond, Register rt) { push(cond, Best, rt); } push(EncodingSize size,Register rt)2822*f5c631daSSadaf Ebrahimi void push(EncodingSize size, Register rt) { push(al, size, rt); } 2823*f5c631daSSadaf Ebrahimi 2824*f5c631daSSadaf Ebrahimi void qadd(Condition cond, Register rd, Register rm, Register rn); qadd(Register rd,Register rm,Register rn)2825*f5c631daSSadaf Ebrahimi void qadd(Register rd, Register rm, Register rn) { qadd(al, rd, rm, rn); } 2826*f5c631daSSadaf Ebrahimi 2827*f5c631daSSadaf Ebrahimi void qadd16(Condition cond, Register rd, Register rn, Register rm); qadd16(Register rd,Register rn,Register rm)2828*f5c631daSSadaf Ebrahimi void qadd16(Register rd, Register rn, Register rm) { qadd16(al, rd, rn, rm); } 2829*f5c631daSSadaf Ebrahimi 2830*f5c631daSSadaf Ebrahimi void qadd8(Condition cond, Register rd, Register rn, Register rm); qadd8(Register rd,Register rn,Register rm)2831*f5c631daSSadaf Ebrahimi void qadd8(Register rd, Register rn, Register rm) { qadd8(al, rd, rn, rm); } 2832*f5c631daSSadaf Ebrahimi 2833*f5c631daSSadaf Ebrahimi void qasx(Condition cond, Register rd, Register rn, Register rm); qasx(Register rd,Register rn,Register rm)2834*f5c631daSSadaf Ebrahimi void qasx(Register rd, Register rn, Register rm) { qasx(al, rd, rn, rm); } 2835*f5c631daSSadaf Ebrahimi 2836*f5c631daSSadaf Ebrahimi void qdadd(Condition cond, Register rd, Register rm, Register rn); qdadd(Register rd,Register rm,Register rn)2837*f5c631daSSadaf Ebrahimi void qdadd(Register rd, Register rm, Register rn) { qdadd(al, rd, rm, rn); } 2838*f5c631daSSadaf Ebrahimi 2839*f5c631daSSadaf Ebrahimi void qdsub(Condition cond, Register rd, Register rm, Register rn); qdsub(Register rd,Register rm,Register rn)2840*f5c631daSSadaf Ebrahimi void qdsub(Register rd, Register rm, Register rn) { qdsub(al, rd, rm, rn); } 2841*f5c631daSSadaf Ebrahimi 2842*f5c631daSSadaf Ebrahimi void qsax(Condition cond, Register rd, Register rn, Register rm); qsax(Register rd,Register rn,Register rm)2843*f5c631daSSadaf Ebrahimi void qsax(Register rd, Register rn, Register rm) { qsax(al, rd, rn, rm); } 2844*f5c631daSSadaf Ebrahimi 2845*f5c631daSSadaf Ebrahimi void qsub(Condition cond, Register rd, Register rm, Register rn); qsub(Register rd,Register rm,Register rn)2846*f5c631daSSadaf Ebrahimi void qsub(Register rd, Register rm, Register rn) { qsub(al, rd, rm, rn); } 2847*f5c631daSSadaf Ebrahimi 2848*f5c631daSSadaf Ebrahimi void qsub16(Condition cond, Register rd, Register rn, Register rm); qsub16(Register rd,Register rn,Register rm)2849*f5c631daSSadaf Ebrahimi void qsub16(Register rd, Register rn, Register rm) { qsub16(al, rd, rn, rm); } 2850*f5c631daSSadaf Ebrahimi 2851*f5c631daSSadaf Ebrahimi void qsub8(Condition cond, Register rd, Register rn, Register rm); qsub8(Register rd,Register rn,Register rm)2852*f5c631daSSadaf Ebrahimi void qsub8(Register rd, Register rn, Register rm) { qsub8(al, rd, rn, rm); } 2853*f5c631daSSadaf Ebrahimi 2854*f5c631daSSadaf Ebrahimi void rbit(Condition cond, Register rd, Register rm); rbit(Register rd,Register rm)2855*f5c631daSSadaf Ebrahimi void rbit(Register rd, Register rm) { rbit(al, rd, rm); } 2856*f5c631daSSadaf Ebrahimi 2857*f5c631daSSadaf Ebrahimi void rev(Condition cond, EncodingSize size, Register rd, Register rm); rev(Register rd,Register rm)2858*f5c631daSSadaf Ebrahimi void rev(Register rd, Register rm) { rev(al, Best, rd, rm); } rev(Condition cond,Register rd,Register rm)2859*f5c631daSSadaf Ebrahimi void rev(Condition cond, Register rd, Register rm) { 2860*f5c631daSSadaf Ebrahimi rev(cond, Best, rd, rm); 2861*f5c631daSSadaf Ebrahimi } rev(EncodingSize size,Register rd,Register rm)2862*f5c631daSSadaf Ebrahimi void rev(EncodingSize size, Register rd, Register rm) { 2863*f5c631daSSadaf Ebrahimi rev(al, size, rd, rm); 2864*f5c631daSSadaf Ebrahimi } 2865*f5c631daSSadaf Ebrahimi 2866*f5c631daSSadaf Ebrahimi void rev16(Condition cond, EncodingSize size, Register rd, Register rm); rev16(Register rd,Register rm)2867*f5c631daSSadaf Ebrahimi void rev16(Register rd, Register rm) { rev16(al, Best, rd, rm); } rev16(Condition cond,Register rd,Register rm)2868*f5c631daSSadaf Ebrahimi void rev16(Condition cond, Register rd, Register rm) { 2869*f5c631daSSadaf Ebrahimi rev16(cond, Best, rd, rm); 2870*f5c631daSSadaf Ebrahimi } rev16(EncodingSize size,Register rd,Register rm)2871*f5c631daSSadaf Ebrahimi void rev16(EncodingSize size, Register rd, Register rm) { 2872*f5c631daSSadaf Ebrahimi rev16(al, size, rd, rm); 2873*f5c631daSSadaf Ebrahimi } 2874*f5c631daSSadaf Ebrahimi 2875*f5c631daSSadaf Ebrahimi void revsh(Condition cond, EncodingSize size, Register rd, Register rm); revsh(Register rd,Register rm)2876*f5c631daSSadaf Ebrahimi void revsh(Register rd, Register rm) { revsh(al, Best, rd, rm); } revsh(Condition cond,Register rd,Register rm)2877*f5c631daSSadaf Ebrahimi void revsh(Condition cond, Register rd, Register rm) { 2878*f5c631daSSadaf Ebrahimi revsh(cond, Best, rd, rm); 2879*f5c631daSSadaf Ebrahimi } revsh(EncodingSize size,Register rd,Register rm)2880*f5c631daSSadaf Ebrahimi void revsh(EncodingSize size, Register rd, Register rm) { 2881*f5c631daSSadaf Ebrahimi revsh(al, size, rd, rm); 2882*f5c631daSSadaf Ebrahimi } 2883*f5c631daSSadaf Ebrahimi 2884*f5c631daSSadaf Ebrahimi void ror(Condition cond, 2885*f5c631daSSadaf Ebrahimi EncodingSize size, 2886*f5c631daSSadaf Ebrahimi Register rd, 2887*f5c631daSSadaf Ebrahimi Register rm, 2888*f5c631daSSadaf Ebrahimi const Operand& operand); ror(Register rd,Register rm,const Operand & operand)2889*f5c631daSSadaf Ebrahimi void ror(Register rd, Register rm, const Operand& operand) { 2890*f5c631daSSadaf Ebrahimi ror(al, Best, rd, rm, operand); 2891*f5c631daSSadaf Ebrahimi } ror(Condition cond,Register rd,Register rm,const Operand & operand)2892*f5c631daSSadaf Ebrahimi void ror(Condition cond, Register rd, Register rm, const Operand& operand) { 2893*f5c631daSSadaf Ebrahimi ror(cond, Best, rd, rm, operand); 2894*f5c631daSSadaf Ebrahimi } ror(EncodingSize size,Register rd,Register rm,const Operand & operand)2895*f5c631daSSadaf Ebrahimi void ror(EncodingSize size, 2896*f5c631daSSadaf Ebrahimi Register rd, 2897*f5c631daSSadaf Ebrahimi Register rm, 2898*f5c631daSSadaf Ebrahimi const Operand& operand) { 2899*f5c631daSSadaf Ebrahimi ror(al, size, rd, rm, operand); 2900*f5c631daSSadaf Ebrahimi } 2901*f5c631daSSadaf Ebrahimi 2902*f5c631daSSadaf Ebrahimi void rors(Condition cond, 2903*f5c631daSSadaf Ebrahimi EncodingSize size, 2904*f5c631daSSadaf Ebrahimi Register rd, 2905*f5c631daSSadaf Ebrahimi Register rm, 2906*f5c631daSSadaf Ebrahimi const Operand& operand); rors(Register rd,Register rm,const Operand & operand)2907*f5c631daSSadaf Ebrahimi void rors(Register rd, Register rm, const Operand& operand) { 2908*f5c631daSSadaf Ebrahimi rors(al, Best, rd, rm, operand); 2909*f5c631daSSadaf Ebrahimi } rors(Condition cond,Register rd,Register rm,const Operand & operand)2910*f5c631daSSadaf Ebrahimi void rors(Condition cond, Register rd, Register rm, const Operand& operand) { 2911*f5c631daSSadaf Ebrahimi rors(cond, Best, rd, rm, operand); 2912*f5c631daSSadaf Ebrahimi } rors(EncodingSize size,Register rd,Register rm,const Operand & operand)2913*f5c631daSSadaf Ebrahimi void rors(EncodingSize size, 2914*f5c631daSSadaf Ebrahimi Register rd, 2915*f5c631daSSadaf Ebrahimi Register rm, 2916*f5c631daSSadaf Ebrahimi const Operand& operand) { 2917*f5c631daSSadaf Ebrahimi rors(al, size, rd, rm, operand); 2918*f5c631daSSadaf Ebrahimi } 2919*f5c631daSSadaf Ebrahimi 2920*f5c631daSSadaf Ebrahimi void rrx(Condition cond, Register rd, Register rm); rrx(Register rd,Register rm)2921*f5c631daSSadaf Ebrahimi void rrx(Register rd, Register rm) { rrx(al, rd, rm); } 2922*f5c631daSSadaf Ebrahimi 2923*f5c631daSSadaf Ebrahimi void rrxs(Condition cond, Register rd, Register rm); rrxs(Register rd,Register rm)2924*f5c631daSSadaf Ebrahimi void rrxs(Register rd, Register rm) { rrxs(al, rd, rm); } 2925*f5c631daSSadaf Ebrahimi 2926*f5c631daSSadaf Ebrahimi void rsb(Condition cond, 2927*f5c631daSSadaf Ebrahimi EncodingSize size, 2928*f5c631daSSadaf Ebrahimi Register rd, 2929*f5c631daSSadaf Ebrahimi Register rn, 2930*f5c631daSSadaf Ebrahimi const Operand& operand); rsb(Register rd,Register rn,const Operand & operand)2931*f5c631daSSadaf Ebrahimi void rsb(Register rd, Register rn, const Operand& operand) { 2932*f5c631daSSadaf Ebrahimi rsb(al, Best, rd, rn, operand); 2933*f5c631daSSadaf Ebrahimi } rsb(Condition cond,Register rd,Register rn,const Operand & operand)2934*f5c631daSSadaf Ebrahimi void rsb(Condition cond, Register rd, Register rn, const Operand& operand) { 2935*f5c631daSSadaf Ebrahimi rsb(cond, Best, rd, rn, operand); 2936*f5c631daSSadaf Ebrahimi } rsb(EncodingSize size,Register rd,Register rn,const Operand & operand)2937*f5c631daSSadaf Ebrahimi void rsb(EncodingSize size, 2938*f5c631daSSadaf Ebrahimi Register rd, 2939*f5c631daSSadaf Ebrahimi Register rn, 2940*f5c631daSSadaf Ebrahimi const Operand& operand) { 2941*f5c631daSSadaf Ebrahimi rsb(al, size, rd, rn, operand); 2942*f5c631daSSadaf Ebrahimi } 2943*f5c631daSSadaf Ebrahimi 2944*f5c631daSSadaf Ebrahimi void rsbs(Condition cond, 2945*f5c631daSSadaf Ebrahimi EncodingSize size, 2946*f5c631daSSadaf Ebrahimi Register rd, 2947*f5c631daSSadaf Ebrahimi Register rn, 2948*f5c631daSSadaf Ebrahimi const Operand& operand); rsbs(Register rd,Register rn,const Operand & operand)2949*f5c631daSSadaf Ebrahimi void rsbs(Register rd, Register rn, const Operand& operand) { 2950*f5c631daSSadaf Ebrahimi rsbs(al, Best, rd, rn, operand); 2951*f5c631daSSadaf Ebrahimi } rsbs(Condition cond,Register rd,Register rn,const Operand & operand)2952*f5c631daSSadaf Ebrahimi void rsbs(Condition cond, Register rd, Register rn, const Operand& operand) { 2953*f5c631daSSadaf Ebrahimi rsbs(cond, Best, rd, rn, operand); 2954*f5c631daSSadaf Ebrahimi } rsbs(EncodingSize size,Register rd,Register rn,const Operand & operand)2955*f5c631daSSadaf Ebrahimi void rsbs(EncodingSize size, 2956*f5c631daSSadaf Ebrahimi Register rd, 2957*f5c631daSSadaf Ebrahimi Register rn, 2958*f5c631daSSadaf Ebrahimi const Operand& operand) { 2959*f5c631daSSadaf Ebrahimi rsbs(al, size, rd, rn, operand); 2960*f5c631daSSadaf Ebrahimi } 2961*f5c631daSSadaf Ebrahimi 2962*f5c631daSSadaf Ebrahimi void rsc(Condition cond, Register rd, Register rn, const Operand& operand); rsc(Register rd,Register rn,const Operand & operand)2963*f5c631daSSadaf Ebrahimi void rsc(Register rd, Register rn, const Operand& operand) { 2964*f5c631daSSadaf Ebrahimi rsc(al, rd, rn, operand); 2965*f5c631daSSadaf Ebrahimi } 2966*f5c631daSSadaf Ebrahimi 2967*f5c631daSSadaf Ebrahimi void rscs(Condition cond, Register rd, Register rn, const Operand& operand); rscs(Register rd,Register rn,const Operand & operand)2968*f5c631daSSadaf Ebrahimi void rscs(Register rd, Register rn, const Operand& operand) { 2969*f5c631daSSadaf Ebrahimi rscs(al, rd, rn, operand); 2970*f5c631daSSadaf Ebrahimi } 2971*f5c631daSSadaf Ebrahimi 2972*f5c631daSSadaf Ebrahimi void sadd16(Condition cond, Register rd, Register rn, Register rm); sadd16(Register rd,Register rn,Register rm)2973*f5c631daSSadaf Ebrahimi void sadd16(Register rd, Register rn, Register rm) { sadd16(al, rd, rn, rm); } 2974*f5c631daSSadaf Ebrahimi 2975*f5c631daSSadaf Ebrahimi void sadd8(Condition cond, Register rd, Register rn, Register rm); sadd8(Register rd,Register rn,Register rm)2976*f5c631daSSadaf Ebrahimi void sadd8(Register rd, Register rn, Register rm) { sadd8(al, rd, rn, rm); } 2977*f5c631daSSadaf Ebrahimi 2978*f5c631daSSadaf Ebrahimi void sasx(Condition cond, Register rd, Register rn, Register rm); sasx(Register rd,Register rn,Register rm)2979*f5c631daSSadaf Ebrahimi void sasx(Register rd, Register rn, Register rm) { sasx(al, rd, rn, rm); } 2980*f5c631daSSadaf Ebrahimi 2981*f5c631daSSadaf Ebrahimi void sbc(Condition cond, 2982*f5c631daSSadaf Ebrahimi EncodingSize size, 2983*f5c631daSSadaf Ebrahimi Register rd, 2984*f5c631daSSadaf Ebrahimi Register rn, 2985*f5c631daSSadaf Ebrahimi const Operand& operand); sbc(Register rd,Register rn,const Operand & operand)2986*f5c631daSSadaf Ebrahimi void sbc(Register rd, Register rn, const Operand& operand) { 2987*f5c631daSSadaf Ebrahimi sbc(al, Best, rd, rn, operand); 2988*f5c631daSSadaf Ebrahimi } sbc(Condition cond,Register rd,Register rn,const Operand & operand)2989*f5c631daSSadaf Ebrahimi void sbc(Condition cond, Register rd, Register rn, const Operand& operand) { 2990*f5c631daSSadaf Ebrahimi sbc(cond, Best, rd, rn, operand); 2991*f5c631daSSadaf Ebrahimi } sbc(EncodingSize size,Register rd,Register rn,const Operand & operand)2992*f5c631daSSadaf Ebrahimi void sbc(EncodingSize size, 2993*f5c631daSSadaf Ebrahimi Register rd, 2994*f5c631daSSadaf Ebrahimi Register rn, 2995*f5c631daSSadaf Ebrahimi const Operand& operand) { 2996*f5c631daSSadaf Ebrahimi sbc(al, size, rd, rn, operand); 2997*f5c631daSSadaf Ebrahimi } 2998*f5c631daSSadaf Ebrahimi 2999*f5c631daSSadaf Ebrahimi void sbcs(Condition cond, 3000*f5c631daSSadaf Ebrahimi EncodingSize size, 3001*f5c631daSSadaf Ebrahimi Register rd, 3002*f5c631daSSadaf Ebrahimi Register rn, 3003*f5c631daSSadaf Ebrahimi const Operand& operand); sbcs(Register rd,Register rn,const Operand & operand)3004*f5c631daSSadaf Ebrahimi void sbcs(Register rd, Register rn, const Operand& operand) { 3005*f5c631daSSadaf Ebrahimi sbcs(al, Best, rd, rn, operand); 3006*f5c631daSSadaf Ebrahimi } sbcs(Condition cond,Register rd,Register rn,const Operand & operand)3007*f5c631daSSadaf Ebrahimi void sbcs(Condition cond, Register rd, Register rn, const Operand& operand) { 3008*f5c631daSSadaf Ebrahimi sbcs(cond, Best, rd, rn, operand); 3009*f5c631daSSadaf Ebrahimi } sbcs(EncodingSize size,Register rd,Register rn,const Operand & operand)3010*f5c631daSSadaf Ebrahimi void sbcs(EncodingSize size, 3011*f5c631daSSadaf Ebrahimi Register rd, 3012*f5c631daSSadaf Ebrahimi Register rn, 3013*f5c631daSSadaf Ebrahimi const Operand& operand) { 3014*f5c631daSSadaf Ebrahimi sbcs(al, size, rd, rn, operand); 3015*f5c631daSSadaf Ebrahimi } 3016*f5c631daSSadaf Ebrahimi 3017*f5c631daSSadaf Ebrahimi void sbfx( 3018*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, uint32_t lsb, uint32_t width); sbfx(Register rd,Register rn,uint32_t lsb,uint32_t width)3019*f5c631daSSadaf Ebrahimi void sbfx(Register rd, Register rn, uint32_t lsb, uint32_t width) { 3020*f5c631daSSadaf Ebrahimi sbfx(al, rd, rn, lsb, width); 3021*f5c631daSSadaf Ebrahimi } 3022*f5c631daSSadaf Ebrahimi 3023*f5c631daSSadaf Ebrahimi void sdiv(Condition cond, Register rd, Register rn, Register rm); sdiv(Register rd,Register rn,Register rm)3024*f5c631daSSadaf Ebrahimi void sdiv(Register rd, Register rn, Register rm) { sdiv(al, rd, rn, rm); } 3025*f5c631daSSadaf Ebrahimi 3026*f5c631daSSadaf Ebrahimi void sel(Condition cond, Register rd, Register rn, Register rm); sel(Register rd,Register rn,Register rm)3027*f5c631daSSadaf Ebrahimi void sel(Register rd, Register rn, Register rm) { sel(al, rd, rn, rm); } 3028*f5c631daSSadaf Ebrahimi 3029*f5c631daSSadaf Ebrahimi void shadd16(Condition cond, Register rd, Register rn, Register rm); shadd16(Register rd,Register rn,Register rm)3030*f5c631daSSadaf Ebrahimi void shadd16(Register rd, Register rn, Register rm) { 3031*f5c631daSSadaf Ebrahimi shadd16(al, rd, rn, rm); 3032*f5c631daSSadaf Ebrahimi } 3033*f5c631daSSadaf Ebrahimi 3034*f5c631daSSadaf Ebrahimi void shadd8(Condition cond, Register rd, Register rn, Register rm); shadd8(Register rd,Register rn,Register rm)3035*f5c631daSSadaf Ebrahimi void shadd8(Register rd, Register rn, Register rm) { shadd8(al, rd, rn, rm); } 3036*f5c631daSSadaf Ebrahimi 3037*f5c631daSSadaf Ebrahimi void shasx(Condition cond, Register rd, Register rn, Register rm); shasx(Register rd,Register rn,Register rm)3038*f5c631daSSadaf Ebrahimi void shasx(Register rd, Register rn, Register rm) { shasx(al, rd, rn, rm); } 3039*f5c631daSSadaf Ebrahimi 3040*f5c631daSSadaf Ebrahimi void shsax(Condition cond, Register rd, Register rn, Register rm); shsax(Register rd,Register rn,Register rm)3041*f5c631daSSadaf Ebrahimi void shsax(Register rd, Register rn, Register rm) { shsax(al, rd, rn, rm); } 3042*f5c631daSSadaf Ebrahimi 3043*f5c631daSSadaf Ebrahimi void shsub16(Condition cond, Register rd, Register rn, Register rm); shsub16(Register rd,Register rn,Register rm)3044*f5c631daSSadaf Ebrahimi void shsub16(Register rd, Register rn, Register rm) { 3045*f5c631daSSadaf Ebrahimi shsub16(al, rd, rn, rm); 3046*f5c631daSSadaf Ebrahimi } 3047*f5c631daSSadaf Ebrahimi 3048*f5c631daSSadaf Ebrahimi void shsub8(Condition cond, Register rd, Register rn, Register rm); shsub8(Register rd,Register rn,Register rm)3049*f5c631daSSadaf Ebrahimi void shsub8(Register rd, Register rn, Register rm) { shsub8(al, rd, rn, rm); } 3050*f5c631daSSadaf Ebrahimi 3051*f5c631daSSadaf Ebrahimi void smlabb( 3052*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlabb(Register rd,Register rn,Register rm,Register ra)3053*f5c631daSSadaf Ebrahimi void smlabb(Register rd, Register rn, Register rm, Register ra) { 3054*f5c631daSSadaf Ebrahimi smlabb(al, rd, rn, rm, ra); 3055*f5c631daSSadaf Ebrahimi } 3056*f5c631daSSadaf Ebrahimi 3057*f5c631daSSadaf Ebrahimi void smlabt( 3058*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlabt(Register rd,Register rn,Register rm,Register ra)3059*f5c631daSSadaf Ebrahimi void smlabt(Register rd, Register rn, Register rm, Register ra) { 3060*f5c631daSSadaf Ebrahimi smlabt(al, rd, rn, rm, ra); 3061*f5c631daSSadaf Ebrahimi } 3062*f5c631daSSadaf Ebrahimi 3063*f5c631daSSadaf Ebrahimi void smlad( 3064*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlad(Register rd,Register rn,Register rm,Register ra)3065*f5c631daSSadaf Ebrahimi void smlad(Register rd, Register rn, Register rm, Register ra) { 3066*f5c631daSSadaf Ebrahimi smlad(al, rd, rn, rm, ra); 3067*f5c631daSSadaf Ebrahimi } 3068*f5c631daSSadaf Ebrahimi 3069*f5c631daSSadaf Ebrahimi void smladx( 3070*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smladx(Register rd,Register rn,Register rm,Register ra)3071*f5c631daSSadaf Ebrahimi void smladx(Register rd, Register rn, Register rm, Register ra) { 3072*f5c631daSSadaf Ebrahimi smladx(al, rd, rn, rm, ra); 3073*f5c631daSSadaf Ebrahimi } 3074*f5c631daSSadaf Ebrahimi 3075*f5c631daSSadaf Ebrahimi void smlal( 3076*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlal(Register rdlo,Register rdhi,Register rn,Register rm)3077*f5c631daSSadaf Ebrahimi void smlal(Register rdlo, Register rdhi, Register rn, Register rm) { 3078*f5c631daSSadaf Ebrahimi smlal(al, rdlo, rdhi, rn, rm); 3079*f5c631daSSadaf Ebrahimi } 3080*f5c631daSSadaf Ebrahimi 3081*f5c631daSSadaf Ebrahimi void smlalbb( 3082*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlalbb(Register rdlo,Register rdhi,Register rn,Register rm)3083*f5c631daSSadaf Ebrahimi void smlalbb(Register rdlo, Register rdhi, Register rn, Register rm) { 3084*f5c631daSSadaf Ebrahimi smlalbb(al, rdlo, rdhi, rn, rm); 3085*f5c631daSSadaf Ebrahimi } 3086*f5c631daSSadaf Ebrahimi 3087*f5c631daSSadaf Ebrahimi void smlalbt( 3088*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlalbt(Register rdlo,Register rdhi,Register rn,Register rm)3089*f5c631daSSadaf Ebrahimi void smlalbt(Register rdlo, Register rdhi, Register rn, Register rm) { 3090*f5c631daSSadaf Ebrahimi smlalbt(al, rdlo, rdhi, rn, rm); 3091*f5c631daSSadaf Ebrahimi } 3092*f5c631daSSadaf Ebrahimi 3093*f5c631daSSadaf Ebrahimi void smlald( 3094*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlald(Register rdlo,Register rdhi,Register rn,Register rm)3095*f5c631daSSadaf Ebrahimi void smlald(Register rdlo, Register rdhi, Register rn, Register rm) { 3096*f5c631daSSadaf Ebrahimi smlald(al, rdlo, rdhi, rn, rm); 3097*f5c631daSSadaf Ebrahimi } 3098*f5c631daSSadaf Ebrahimi 3099*f5c631daSSadaf Ebrahimi void smlaldx( 3100*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlaldx(Register rdlo,Register rdhi,Register rn,Register rm)3101*f5c631daSSadaf Ebrahimi void smlaldx(Register rdlo, Register rdhi, Register rn, Register rm) { 3102*f5c631daSSadaf Ebrahimi smlaldx(al, rdlo, rdhi, rn, rm); 3103*f5c631daSSadaf Ebrahimi } 3104*f5c631daSSadaf Ebrahimi 3105*f5c631daSSadaf Ebrahimi void smlals( 3106*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlals(Register rdlo,Register rdhi,Register rn,Register rm)3107*f5c631daSSadaf Ebrahimi void smlals(Register rdlo, Register rdhi, Register rn, Register rm) { 3108*f5c631daSSadaf Ebrahimi smlals(al, rdlo, rdhi, rn, rm); 3109*f5c631daSSadaf Ebrahimi } 3110*f5c631daSSadaf Ebrahimi 3111*f5c631daSSadaf Ebrahimi void smlaltb( 3112*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlaltb(Register rdlo,Register rdhi,Register rn,Register rm)3113*f5c631daSSadaf Ebrahimi void smlaltb(Register rdlo, Register rdhi, Register rn, Register rm) { 3114*f5c631daSSadaf Ebrahimi smlaltb(al, rdlo, rdhi, rn, rm); 3115*f5c631daSSadaf Ebrahimi } 3116*f5c631daSSadaf Ebrahimi 3117*f5c631daSSadaf Ebrahimi void smlaltt( 3118*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlaltt(Register rdlo,Register rdhi,Register rn,Register rm)3119*f5c631daSSadaf Ebrahimi void smlaltt(Register rdlo, Register rdhi, Register rn, Register rm) { 3120*f5c631daSSadaf Ebrahimi smlaltt(al, rdlo, rdhi, rn, rm); 3121*f5c631daSSadaf Ebrahimi } 3122*f5c631daSSadaf Ebrahimi 3123*f5c631daSSadaf Ebrahimi void smlatb( 3124*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlatb(Register rd,Register rn,Register rm,Register ra)3125*f5c631daSSadaf Ebrahimi void smlatb(Register rd, Register rn, Register rm, Register ra) { 3126*f5c631daSSadaf Ebrahimi smlatb(al, rd, rn, rm, ra); 3127*f5c631daSSadaf Ebrahimi } 3128*f5c631daSSadaf Ebrahimi 3129*f5c631daSSadaf Ebrahimi void smlatt( 3130*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlatt(Register rd,Register rn,Register rm,Register ra)3131*f5c631daSSadaf Ebrahimi void smlatt(Register rd, Register rn, Register rm, Register ra) { 3132*f5c631daSSadaf Ebrahimi smlatt(al, rd, rn, rm, ra); 3133*f5c631daSSadaf Ebrahimi } 3134*f5c631daSSadaf Ebrahimi 3135*f5c631daSSadaf Ebrahimi void smlawb( 3136*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlawb(Register rd,Register rn,Register rm,Register ra)3137*f5c631daSSadaf Ebrahimi void smlawb(Register rd, Register rn, Register rm, Register ra) { 3138*f5c631daSSadaf Ebrahimi smlawb(al, rd, rn, rm, ra); 3139*f5c631daSSadaf Ebrahimi } 3140*f5c631daSSadaf Ebrahimi 3141*f5c631daSSadaf Ebrahimi void smlawt( 3142*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlawt(Register rd,Register rn,Register rm,Register ra)3143*f5c631daSSadaf Ebrahimi void smlawt(Register rd, Register rn, Register rm, Register ra) { 3144*f5c631daSSadaf Ebrahimi smlawt(al, rd, rn, rm, ra); 3145*f5c631daSSadaf Ebrahimi } 3146*f5c631daSSadaf Ebrahimi 3147*f5c631daSSadaf Ebrahimi void smlsd( 3148*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlsd(Register rd,Register rn,Register rm,Register ra)3149*f5c631daSSadaf Ebrahimi void smlsd(Register rd, Register rn, Register rm, Register ra) { 3150*f5c631daSSadaf Ebrahimi smlsd(al, rd, rn, rm, ra); 3151*f5c631daSSadaf Ebrahimi } 3152*f5c631daSSadaf Ebrahimi 3153*f5c631daSSadaf Ebrahimi void smlsdx( 3154*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smlsdx(Register rd,Register rn,Register rm,Register ra)3155*f5c631daSSadaf Ebrahimi void smlsdx(Register rd, Register rn, Register rm, Register ra) { 3156*f5c631daSSadaf Ebrahimi smlsdx(al, rd, rn, rm, ra); 3157*f5c631daSSadaf Ebrahimi } 3158*f5c631daSSadaf Ebrahimi 3159*f5c631daSSadaf Ebrahimi void smlsld( 3160*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlsld(Register rdlo,Register rdhi,Register rn,Register rm)3161*f5c631daSSadaf Ebrahimi void smlsld(Register rdlo, Register rdhi, Register rn, Register rm) { 3162*f5c631daSSadaf Ebrahimi smlsld(al, rdlo, rdhi, rn, rm); 3163*f5c631daSSadaf Ebrahimi } 3164*f5c631daSSadaf Ebrahimi 3165*f5c631daSSadaf Ebrahimi void smlsldx( 3166*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smlsldx(Register rdlo,Register rdhi,Register rn,Register rm)3167*f5c631daSSadaf Ebrahimi void smlsldx(Register rdlo, Register rdhi, Register rn, Register rm) { 3168*f5c631daSSadaf Ebrahimi smlsldx(al, rdlo, rdhi, rn, rm); 3169*f5c631daSSadaf Ebrahimi } 3170*f5c631daSSadaf Ebrahimi 3171*f5c631daSSadaf Ebrahimi void smmla( 3172*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smmla(Register rd,Register rn,Register rm,Register ra)3173*f5c631daSSadaf Ebrahimi void smmla(Register rd, Register rn, Register rm, Register ra) { 3174*f5c631daSSadaf Ebrahimi smmla(al, rd, rn, rm, ra); 3175*f5c631daSSadaf Ebrahimi } 3176*f5c631daSSadaf Ebrahimi 3177*f5c631daSSadaf Ebrahimi void smmlar( 3178*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smmlar(Register rd,Register rn,Register rm,Register ra)3179*f5c631daSSadaf Ebrahimi void smmlar(Register rd, Register rn, Register rm, Register ra) { 3180*f5c631daSSadaf Ebrahimi smmlar(al, rd, rn, rm, ra); 3181*f5c631daSSadaf Ebrahimi } 3182*f5c631daSSadaf Ebrahimi 3183*f5c631daSSadaf Ebrahimi void smmls( 3184*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smmls(Register rd,Register rn,Register rm,Register ra)3185*f5c631daSSadaf Ebrahimi void smmls(Register rd, Register rn, Register rm, Register ra) { 3186*f5c631daSSadaf Ebrahimi smmls(al, rd, rn, rm, ra); 3187*f5c631daSSadaf Ebrahimi } 3188*f5c631daSSadaf Ebrahimi 3189*f5c631daSSadaf Ebrahimi void smmlsr( 3190*f5c631daSSadaf Ebrahimi Condition cond, Register rd, Register rn, Register rm, Register ra); smmlsr(Register rd,Register rn,Register rm,Register ra)3191*f5c631daSSadaf Ebrahimi void smmlsr(Register rd, Register rn, Register rm, Register ra) { 3192*f5c631daSSadaf Ebrahimi smmlsr(al, rd, rn, rm, ra); 3193*f5c631daSSadaf Ebrahimi } 3194*f5c631daSSadaf Ebrahimi 3195*f5c631daSSadaf Ebrahimi void smmul(Condition cond, Register rd, Register rn, Register rm); smmul(Register rd,Register rn,Register rm)3196*f5c631daSSadaf Ebrahimi void smmul(Register rd, Register rn, Register rm) { smmul(al, rd, rn, rm); } 3197*f5c631daSSadaf Ebrahimi 3198*f5c631daSSadaf Ebrahimi void smmulr(Condition cond, Register rd, Register rn, Register rm); smmulr(Register rd,Register rn,Register rm)3199*f5c631daSSadaf Ebrahimi void smmulr(Register rd, Register rn, Register rm) { smmulr(al, rd, rn, rm); } 3200*f5c631daSSadaf Ebrahimi 3201*f5c631daSSadaf Ebrahimi void smuad(Condition cond, Register rd, Register rn, Register rm); smuad(Register rd,Register rn,Register rm)3202*f5c631daSSadaf Ebrahimi void smuad(Register rd, Register rn, Register rm) { smuad(al, rd, rn, rm); } 3203*f5c631daSSadaf Ebrahimi 3204*f5c631daSSadaf Ebrahimi void smuadx(Condition cond, Register rd, Register rn, Register rm); smuadx(Register rd,Register rn,Register rm)3205*f5c631daSSadaf Ebrahimi void smuadx(Register rd, Register rn, Register rm) { smuadx(al, rd, rn, rm); } 3206*f5c631daSSadaf Ebrahimi 3207*f5c631daSSadaf Ebrahimi void smulbb(Condition cond, Register rd, Register rn, Register rm); smulbb(Register rd,Register rn,Register rm)3208*f5c631daSSadaf Ebrahimi void smulbb(Register rd, Register rn, Register rm) { smulbb(al, rd, rn, rm); } 3209*f5c631daSSadaf Ebrahimi 3210*f5c631daSSadaf Ebrahimi void smulbt(Condition cond, Register rd, Register rn, Register rm); smulbt(Register rd,Register rn,Register rm)3211*f5c631daSSadaf Ebrahimi void smulbt(Register rd, Register rn, Register rm) { smulbt(al, rd, rn, rm); } 3212*f5c631daSSadaf Ebrahimi 3213*f5c631daSSadaf Ebrahimi void smull( 3214*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smull(Register rdlo,Register rdhi,Register rn,Register rm)3215*f5c631daSSadaf Ebrahimi void smull(Register rdlo, Register rdhi, Register rn, Register rm) { 3216*f5c631daSSadaf Ebrahimi smull(al, rdlo, rdhi, rn, rm); 3217*f5c631daSSadaf Ebrahimi } 3218*f5c631daSSadaf Ebrahimi 3219*f5c631daSSadaf Ebrahimi void smulls( 3220*f5c631daSSadaf Ebrahimi Condition cond, Register rdlo, Register rdhi, Register rn, Register rm); smulls(Register rdlo,Register rdhi,Register rn,Register rm)3221*f5c631daSSadaf Ebrahimi void smulls(Register rdlo, Register rdhi, Register rn, Register rm) { 3222*f5c631daSSadaf Ebrahimi smulls(al, rdlo, rdhi, rn, rm); 3223*f5c631daSSadaf Ebrahimi } 3224*f5c631daSSadaf Ebrahimi 3225*f5c631daSSadaf Ebrahimi void smultb(Condition cond, Register rd, Register rn, Register rm); smultb(Register rd,Register rn,Register rm)3226*f5c631daSSadaf Ebrahimi void smultb(Register rd, Register rn, Register rm) { smultb(al, rd, rn, rm); } 3227*f5c631daSSadaf Ebrahimi 3228*f5c631daSSadaf Ebrahimi void smultt(Condition cond, Register rd, Register rn, Register rm); smultt(Register rd,Register rn,Register rm)3229*f5c631daSSadaf Ebrahimi void smultt(Register rd, Register rn, Register rm) { smultt(al, rd, rn, rm); } 3230*f5c631daSSadaf Ebrahimi 3231*f5c631daSSadaf Ebrahimi void smulwb(Condition cond, Register rd, Register rn, Register rm); smulwb(Register rd,Register rn,Register rm)3232*f5c631daSSadaf Ebrahimi void smulwb(Register rd, Register rn, Register rm) { smulwb(al, rd, rn, rm); } 3233*f5c631daSSadaf Ebrahimi 3234*f5c631daSSadaf Ebrahimi void smulwt(Condition cond, Register rd, Register rn, Register rm); smulwt(Register rd,Register rn,Register rm)3235*f5c631daSSadaf Ebrahimi void smulwt(Register rd, Register rn, Register rm) { smulwt(al, rd, rn, rm); } 3236*f5c631daSSadaf Ebrahimi 3237*f5c631daSSadaf Ebrahimi void smusd(Condition cond, Register rd, Register rn, Register rm); smusd(Register rd,Register rn,Register rm)3238*f5c631daSSadaf Ebrahimi void smusd(Register rd, Register rn, Register rm) { smusd(al, rd, rn, rm); } 3239*f5c631daSSadaf Ebrahimi 3240*f5c631daSSadaf Ebrahimi void smusdx(Condition cond, Register rd, Register rn, Register rm); smusdx(Register rd,Register rn,Register rm)3241*f5c631daSSadaf Ebrahimi void smusdx(Register rd, Register rn, Register rm) { smusdx(al, rd, rn, rm); } 3242*f5c631daSSadaf Ebrahimi 3243*f5c631daSSadaf Ebrahimi void ssat(Condition cond, Register rd, uint32_t imm, const Operand& operand); ssat(Register rd,uint32_t imm,const Operand & operand)3244*f5c631daSSadaf Ebrahimi void ssat(Register rd, uint32_t imm, const Operand& operand) { 3245*f5c631daSSadaf Ebrahimi ssat(al, rd, imm, operand); 3246*f5c631daSSadaf Ebrahimi } 3247*f5c631daSSadaf Ebrahimi 3248*f5c631daSSadaf Ebrahimi void ssat16(Condition cond, Register rd, uint32_t imm, Register rn); ssat16(Register rd,uint32_t imm,Register rn)3249*f5c631daSSadaf Ebrahimi void ssat16(Register rd, uint32_t imm, Register rn) { 3250*f5c631daSSadaf Ebrahimi ssat16(al, rd, imm, rn); 3251*f5c631daSSadaf Ebrahimi } 3252*f5c631daSSadaf Ebrahimi 3253*f5c631daSSadaf Ebrahimi void ssax(Condition cond, Register rd, Register rn, Register rm); ssax(Register rd,Register rn,Register rm)3254*f5c631daSSadaf Ebrahimi void ssax(Register rd, Register rn, Register rm) { ssax(al, rd, rn, rm); } 3255*f5c631daSSadaf Ebrahimi 3256*f5c631daSSadaf Ebrahimi void ssub16(Condition cond, Register rd, Register rn, Register rm); ssub16(Register rd,Register rn,Register rm)3257*f5c631daSSadaf Ebrahimi void ssub16(Register rd, Register rn, Register rm) { ssub16(al, rd, rn, rm); } 3258*f5c631daSSadaf Ebrahimi 3259*f5c631daSSadaf Ebrahimi void ssub8(Condition cond, Register rd, Register rn, Register rm); ssub8(Register rd,Register rn,Register rm)3260*f5c631daSSadaf Ebrahimi void ssub8(Register rd, Register rn, Register rm) { ssub8(al, rd, rn, rm); } 3261*f5c631daSSadaf Ebrahimi 3262*f5c631daSSadaf Ebrahimi void stl(Condition cond, Register rt, const MemOperand& operand); stl(Register rt,const MemOperand & operand)3263*f5c631daSSadaf Ebrahimi void stl(Register rt, const MemOperand& operand) { stl(al, rt, operand); } 3264*f5c631daSSadaf Ebrahimi 3265*f5c631daSSadaf Ebrahimi void stlb(Condition cond, Register rt, const MemOperand& operand); stlb(Register rt,const MemOperand & operand)3266*f5c631daSSadaf Ebrahimi void stlb(Register rt, const MemOperand& operand) { stlb(al, rt, operand); } 3267*f5c631daSSadaf Ebrahimi 3268*f5c631daSSadaf Ebrahimi void stlex(Condition cond, 3269*f5c631daSSadaf Ebrahimi Register rd, 3270*f5c631daSSadaf Ebrahimi Register rt, 3271*f5c631daSSadaf Ebrahimi const MemOperand& operand); stlex(Register rd,Register rt,const MemOperand & operand)3272*f5c631daSSadaf Ebrahimi void stlex(Register rd, Register rt, const MemOperand& operand) { 3273*f5c631daSSadaf Ebrahimi stlex(al, rd, rt, operand); 3274*f5c631daSSadaf Ebrahimi } 3275*f5c631daSSadaf Ebrahimi 3276*f5c631daSSadaf Ebrahimi void stlexb(Condition cond, 3277*f5c631daSSadaf Ebrahimi Register rd, 3278*f5c631daSSadaf Ebrahimi Register rt, 3279*f5c631daSSadaf Ebrahimi const MemOperand& operand); stlexb(Register rd,Register rt,const MemOperand & operand)3280*f5c631daSSadaf Ebrahimi void stlexb(Register rd, Register rt, const MemOperand& operand) { 3281*f5c631daSSadaf Ebrahimi stlexb(al, rd, rt, operand); 3282*f5c631daSSadaf Ebrahimi } 3283*f5c631daSSadaf Ebrahimi 3284*f5c631daSSadaf Ebrahimi void stlexd(Condition cond, 3285*f5c631daSSadaf Ebrahimi Register rd, 3286*f5c631daSSadaf Ebrahimi Register rt, 3287*f5c631daSSadaf Ebrahimi Register rt2, 3288*f5c631daSSadaf Ebrahimi const MemOperand& operand); stlexd(Register rd,Register rt,Register rt2,const MemOperand & operand)3289*f5c631daSSadaf Ebrahimi void stlexd(Register rd, 3290*f5c631daSSadaf Ebrahimi Register rt, 3291*f5c631daSSadaf Ebrahimi Register rt2, 3292*f5c631daSSadaf Ebrahimi const MemOperand& operand) { 3293*f5c631daSSadaf Ebrahimi stlexd(al, rd, rt, rt2, operand); 3294*f5c631daSSadaf Ebrahimi } 3295*f5c631daSSadaf Ebrahimi 3296*f5c631daSSadaf Ebrahimi void stlexh(Condition cond, 3297*f5c631daSSadaf Ebrahimi Register rd, 3298*f5c631daSSadaf Ebrahimi Register rt, 3299*f5c631daSSadaf Ebrahimi const MemOperand& operand); stlexh(Register rd,Register rt,const MemOperand & operand)3300*f5c631daSSadaf Ebrahimi void stlexh(Register rd, Register rt, const MemOperand& operand) { 3301*f5c631daSSadaf Ebrahimi stlexh(al, rd, rt, operand); 3302*f5c631daSSadaf Ebrahimi } 3303*f5c631daSSadaf Ebrahimi 3304*f5c631daSSadaf Ebrahimi void stlh(Condition cond, Register rt, const MemOperand& operand); stlh(Register rt,const MemOperand & operand)3305*f5c631daSSadaf Ebrahimi void stlh(Register rt, const MemOperand& operand) { stlh(al, rt, operand); } 3306*f5c631daSSadaf Ebrahimi 3307*f5c631daSSadaf Ebrahimi void stm(Condition cond, 3308*f5c631daSSadaf Ebrahimi EncodingSize size, 3309*f5c631daSSadaf Ebrahimi Register rn, 3310*f5c631daSSadaf Ebrahimi WriteBack write_back, 3311*f5c631daSSadaf Ebrahimi RegisterList registers); stm(Register rn,WriteBack write_back,RegisterList registers)3312*f5c631daSSadaf Ebrahimi void stm(Register rn, WriteBack write_back, RegisterList registers) { 3313*f5c631daSSadaf Ebrahimi stm(al, Best, rn, write_back, registers); 3314*f5c631daSSadaf Ebrahimi } stm(Condition cond,Register rn,WriteBack write_back,RegisterList registers)3315*f5c631daSSadaf Ebrahimi void stm(Condition cond, 3316*f5c631daSSadaf Ebrahimi Register rn, 3317*f5c631daSSadaf Ebrahimi WriteBack write_back, 3318*f5c631daSSadaf Ebrahimi RegisterList registers) { 3319*f5c631daSSadaf Ebrahimi stm(cond, Best, rn, write_back, registers); 3320*f5c631daSSadaf Ebrahimi } stm(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)3321*f5c631daSSadaf Ebrahimi void stm(EncodingSize size, 3322*f5c631daSSadaf Ebrahimi Register rn, 3323*f5c631daSSadaf Ebrahimi WriteBack write_back, 3324*f5c631daSSadaf Ebrahimi RegisterList registers) { 3325*f5c631daSSadaf Ebrahimi stm(al, size, rn, write_back, registers); 3326*f5c631daSSadaf Ebrahimi } 3327*f5c631daSSadaf Ebrahimi 3328*f5c631daSSadaf Ebrahimi void stmda(Condition cond, 3329*f5c631daSSadaf Ebrahimi Register rn, 3330*f5c631daSSadaf Ebrahimi WriteBack write_back, 3331*f5c631daSSadaf Ebrahimi RegisterList registers); stmda(Register rn,WriteBack write_back,RegisterList registers)3332*f5c631daSSadaf Ebrahimi void stmda(Register rn, WriteBack write_back, RegisterList registers) { 3333*f5c631daSSadaf Ebrahimi stmda(al, rn, write_back, registers); 3334*f5c631daSSadaf Ebrahimi } 3335*f5c631daSSadaf Ebrahimi 3336*f5c631daSSadaf Ebrahimi void stmdb(Condition cond, 3337*f5c631daSSadaf Ebrahimi EncodingSize size, 3338*f5c631daSSadaf Ebrahimi Register rn, 3339*f5c631daSSadaf Ebrahimi WriteBack write_back, 3340*f5c631daSSadaf Ebrahimi RegisterList registers); stmdb(Register rn,WriteBack write_back,RegisterList registers)3341*f5c631daSSadaf Ebrahimi void stmdb(Register rn, WriteBack write_back, RegisterList registers) { 3342*f5c631daSSadaf Ebrahimi stmdb(al, Best, rn, write_back, registers); 3343*f5c631daSSadaf Ebrahimi } stmdb(Condition cond,Register rn,WriteBack write_back,RegisterList registers)3344*f5c631daSSadaf Ebrahimi void stmdb(Condition cond, 3345*f5c631daSSadaf Ebrahimi Register rn, 3346*f5c631daSSadaf Ebrahimi WriteBack write_back, 3347*f5c631daSSadaf Ebrahimi RegisterList registers) { 3348*f5c631daSSadaf Ebrahimi stmdb(cond, Best, rn, write_back, registers); 3349*f5c631daSSadaf Ebrahimi } stmdb(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)3350*f5c631daSSadaf Ebrahimi void stmdb(EncodingSize size, 3351*f5c631daSSadaf Ebrahimi Register rn, 3352*f5c631daSSadaf Ebrahimi WriteBack write_back, 3353*f5c631daSSadaf Ebrahimi RegisterList registers) { 3354*f5c631daSSadaf Ebrahimi stmdb(al, size, rn, write_back, registers); 3355*f5c631daSSadaf Ebrahimi } 3356*f5c631daSSadaf Ebrahimi 3357*f5c631daSSadaf Ebrahimi void stmea(Condition cond, 3358*f5c631daSSadaf Ebrahimi EncodingSize size, 3359*f5c631daSSadaf Ebrahimi Register rn, 3360*f5c631daSSadaf Ebrahimi WriteBack write_back, 3361*f5c631daSSadaf Ebrahimi RegisterList registers); stmea(Register rn,WriteBack write_back,RegisterList registers)3362*f5c631daSSadaf Ebrahimi void stmea(Register rn, WriteBack write_back, RegisterList registers) { 3363*f5c631daSSadaf Ebrahimi stmea(al, Best, rn, write_back, registers); 3364*f5c631daSSadaf Ebrahimi } stmea(Condition cond,Register rn,WriteBack write_back,RegisterList registers)3365*f5c631daSSadaf Ebrahimi void stmea(Condition cond, 3366*f5c631daSSadaf Ebrahimi Register rn, 3367*f5c631daSSadaf Ebrahimi WriteBack write_back, 3368*f5c631daSSadaf Ebrahimi RegisterList registers) { 3369*f5c631daSSadaf Ebrahimi stmea(cond, Best, rn, write_back, registers); 3370*f5c631daSSadaf Ebrahimi } stmea(EncodingSize size,Register rn,WriteBack write_back,RegisterList registers)3371*f5c631daSSadaf Ebrahimi void stmea(EncodingSize size, 3372*f5c631daSSadaf Ebrahimi Register rn, 3373*f5c631daSSadaf Ebrahimi WriteBack write_back, 3374*f5c631daSSadaf Ebrahimi RegisterList registers) { 3375*f5c631daSSadaf Ebrahimi stmea(al, size, rn, write_back, registers); 3376*f5c631daSSadaf Ebrahimi } 3377*f5c631daSSadaf Ebrahimi 3378*f5c631daSSadaf Ebrahimi void stmed(Condition cond, 3379*f5c631daSSadaf Ebrahimi Register rn, 3380*f5c631daSSadaf Ebrahimi WriteBack write_back, 3381*f5c631daSSadaf Ebrahimi RegisterList registers); stmed(Register rn,WriteBack write_back,RegisterList registers)3382*f5c631daSSadaf Ebrahimi void stmed(Register rn, WriteBack write_back, RegisterList registers) { 3383*f5c631daSSadaf Ebrahimi stmed(al, rn, write_back, registers); 3384*f5c631daSSadaf Ebrahimi } 3385*f5c631daSSadaf Ebrahimi 3386*f5c631daSSadaf Ebrahimi void stmfa(Condition cond, 3387*f5c631daSSadaf Ebrahimi Register rn, 3388*f5c631daSSadaf Ebrahimi WriteBack write_back, 3389*f5c631daSSadaf Ebrahimi RegisterList registers); stmfa(Register rn,WriteBack write_back,RegisterList registers)3390*f5c631daSSadaf Ebrahimi void stmfa(Register rn, WriteBack write_back, RegisterList registers) { 3391*f5c631daSSadaf Ebrahimi stmfa(al, rn, write_back, registers); 3392*f5c631daSSadaf Ebrahimi } 3393*f5c631daSSadaf Ebrahimi 3394*f5c631daSSadaf Ebrahimi void stmfd(Condition cond, 3395*f5c631daSSadaf Ebrahimi Register rn, 3396*f5c631daSSadaf Ebrahimi WriteBack write_back, 3397*f5c631daSSadaf Ebrahimi RegisterList registers); stmfd(Register rn,WriteBack write_back,RegisterList registers)3398*f5c631daSSadaf Ebrahimi void stmfd(Register rn, WriteBack write_back, RegisterList registers) { 3399*f5c631daSSadaf Ebrahimi stmfd(al, rn, write_back, registers); 3400*f5c631daSSadaf Ebrahimi } 3401*f5c631daSSadaf Ebrahimi 3402*f5c631daSSadaf Ebrahimi void stmib(Condition cond, 3403*f5c631daSSadaf Ebrahimi Register rn, 3404*f5c631daSSadaf Ebrahimi WriteBack write_back, 3405*f5c631daSSadaf Ebrahimi RegisterList registers); stmib(Register rn,WriteBack write_back,RegisterList registers)3406*f5c631daSSadaf Ebrahimi void stmib(Register rn, WriteBack write_back, RegisterList registers) { 3407*f5c631daSSadaf Ebrahimi stmib(al, rn, write_back, registers); 3408*f5c631daSSadaf Ebrahimi } 3409*f5c631daSSadaf Ebrahimi 3410*f5c631daSSadaf Ebrahimi void str(Condition cond, 3411*f5c631daSSadaf Ebrahimi EncodingSize size, 3412*f5c631daSSadaf Ebrahimi Register rt, 3413*f5c631daSSadaf Ebrahimi const MemOperand& operand); str(Register rt,const MemOperand & operand)3414*f5c631daSSadaf Ebrahimi void str(Register rt, const MemOperand& operand) { 3415*f5c631daSSadaf Ebrahimi str(al, Best, rt, operand); 3416*f5c631daSSadaf Ebrahimi } str(Condition cond,Register rt,const MemOperand & operand)3417*f5c631daSSadaf Ebrahimi void str(Condition cond, Register rt, const MemOperand& operand) { 3418*f5c631daSSadaf Ebrahimi str(cond, Best, rt, operand); 3419*f5c631daSSadaf Ebrahimi } str(EncodingSize size,Register rt,const MemOperand & operand)3420*f5c631daSSadaf Ebrahimi void str(EncodingSize size, Register rt, const MemOperand& operand) { 3421*f5c631daSSadaf Ebrahimi str(al, size, rt, operand); 3422*f5c631daSSadaf Ebrahimi } 3423*f5c631daSSadaf Ebrahimi 3424*f5c631daSSadaf Ebrahimi void strb(Condition cond, 3425*f5c631daSSadaf Ebrahimi EncodingSize size, 3426*f5c631daSSadaf Ebrahimi Register rt, 3427*f5c631daSSadaf Ebrahimi const MemOperand& operand); strb(Register rt,const MemOperand & operand)3428*f5c631daSSadaf Ebrahimi void strb(Register rt, const MemOperand& operand) { 3429*f5c631daSSadaf Ebrahimi strb(al, Best, rt, operand); 3430*f5c631daSSadaf Ebrahimi } strb(Condition cond,Register rt,const MemOperand & operand)3431*f5c631daSSadaf Ebrahimi void strb(Condition cond, Register rt, const MemOperand& operand) { 3432*f5c631daSSadaf Ebrahimi strb(cond, Best, rt, operand); 3433*f5c631daSSadaf Ebrahimi } strb(EncodingSize size,Register rt,const MemOperand & operand)3434*f5c631daSSadaf Ebrahimi void strb(EncodingSize size, Register rt, const MemOperand& operand) { 3435*f5c631daSSadaf Ebrahimi strb(al, size, rt, operand); 3436*f5c631daSSadaf Ebrahimi } 3437*f5c631daSSadaf Ebrahimi 3438*f5c631daSSadaf Ebrahimi void strd(Condition cond, 3439*f5c631daSSadaf Ebrahimi Register rt, 3440*f5c631daSSadaf Ebrahimi Register rt2, 3441*f5c631daSSadaf Ebrahimi const MemOperand& operand); strd(Register rt,Register rt2,const MemOperand & operand)3442*f5c631daSSadaf Ebrahimi void strd(Register rt, Register rt2, const MemOperand& operand) { 3443*f5c631daSSadaf Ebrahimi strd(al, rt, rt2, operand); 3444*f5c631daSSadaf Ebrahimi } 3445*f5c631daSSadaf Ebrahimi 3446*f5c631daSSadaf Ebrahimi void strex(Condition cond, 3447*f5c631daSSadaf Ebrahimi Register rd, 3448*f5c631daSSadaf Ebrahimi Register rt, 3449*f5c631daSSadaf Ebrahimi const MemOperand& operand); strex(Register rd,Register rt,const MemOperand & operand)3450*f5c631daSSadaf Ebrahimi void strex(Register rd, Register rt, const MemOperand& operand) { 3451*f5c631daSSadaf Ebrahimi strex(al, rd, rt, operand); 3452*f5c631daSSadaf Ebrahimi } 3453*f5c631daSSadaf Ebrahimi 3454*f5c631daSSadaf Ebrahimi void strexb(Condition cond, 3455*f5c631daSSadaf Ebrahimi Register rd, 3456*f5c631daSSadaf Ebrahimi Register rt, 3457*f5c631daSSadaf Ebrahimi const MemOperand& operand); strexb(Register rd,Register rt,const MemOperand & operand)3458*f5c631daSSadaf Ebrahimi void strexb(Register rd, Register rt, const MemOperand& operand) { 3459*f5c631daSSadaf Ebrahimi strexb(al, rd, rt, operand); 3460*f5c631daSSadaf Ebrahimi } 3461*f5c631daSSadaf Ebrahimi 3462*f5c631daSSadaf Ebrahimi void strexd(Condition cond, 3463*f5c631daSSadaf Ebrahimi Register rd, 3464*f5c631daSSadaf Ebrahimi Register rt, 3465*f5c631daSSadaf Ebrahimi Register rt2, 3466*f5c631daSSadaf Ebrahimi const MemOperand& operand); strexd(Register rd,Register rt,Register rt2,const MemOperand & operand)3467*f5c631daSSadaf Ebrahimi void strexd(Register rd, 3468*f5c631daSSadaf Ebrahimi Register rt, 3469*f5c631daSSadaf Ebrahimi Register rt2, 3470*f5c631daSSadaf Ebrahimi const MemOperand& operand) { 3471*f5c631daSSadaf Ebrahimi strexd(al, rd, rt, rt2, operand); 3472*f5c631daSSadaf Ebrahimi } 3473*f5c631daSSadaf Ebrahimi 3474*f5c631daSSadaf Ebrahimi void strexh(Condition cond, 3475*f5c631daSSadaf Ebrahimi Register rd, 3476*f5c631daSSadaf Ebrahimi Register rt, 3477*f5c631daSSadaf Ebrahimi const MemOperand& operand); strexh(Register rd,Register rt,const MemOperand & operand)3478*f5c631daSSadaf Ebrahimi void strexh(Register rd, Register rt, const MemOperand& operand) { 3479*f5c631daSSadaf Ebrahimi strexh(al, rd, rt, operand); 3480*f5c631daSSadaf Ebrahimi } 3481*f5c631daSSadaf Ebrahimi 3482*f5c631daSSadaf Ebrahimi void strh(Condition cond, 3483*f5c631daSSadaf Ebrahimi EncodingSize size, 3484*f5c631daSSadaf Ebrahimi Register rt, 3485*f5c631daSSadaf Ebrahimi const MemOperand& operand); strh(Register rt,const MemOperand & operand)3486*f5c631daSSadaf Ebrahimi void strh(Register rt, const MemOperand& operand) { 3487*f5c631daSSadaf Ebrahimi strh(al, Best, rt, operand); 3488*f5c631daSSadaf Ebrahimi } strh(Condition cond,Register rt,const MemOperand & operand)3489*f5c631daSSadaf Ebrahimi void strh(Condition cond, Register rt, const MemOperand& operand) { 3490*f5c631daSSadaf Ebrahimi strh(cond, Best, rt, operand); 3491*f5c631daSSadaf Ebrahimi } strh(EncodingSize size,Register rt,const MemOperand & operand)3492*f5c631daSSadaf Ebrahimi void strh(EncodingSize size, Register rt, const MemOperand& operand) { 3493*f5c631daSSadaf Ebrahimi strh(al, size, rt, operand); 3494*f5c631daSSadaf Ebrahimi } 3495*f5c631daSSadaf Ebrahimi 3496*f5c631daSSadaf Ebrahimi void sub(Condition cond, 3497*f5c631daSSadaf Ebrahimi EncodingSize size, 3498*f5c631daSSadaf Ebrahimi Register rd, 3499*f5c631daSSadaf Ebrahimi Register rn, 3500*f5c631daSSadaf Ebrahimi const Operand& operand); sub(Register rd,Register rn,const Operand & operand)3501*f5c631daSSadaf Ebrahimi void sub(Register rd, Register rn, const Operand& operand) { 3502*f5c631daSSadaf Ebrahimi sub(al, Best, rd, rn, operand); 3503*f5c631daSSadaf Ebrahimi } sub(Condition cond,Register rd,Register rn,const Operand & operand)3504*f5c631daSSadaf Ebrahimi void sub(Condition cond, Register rd, Register rn, const Operand& operand) { 3505*f5c631daSSadaf Ebrahimi sub(cond, Best, rd, rn, operand); 3506*f5c631daSSadaf Ebrahimi } sub(EncodingSize size,Register rd,Register rn,const Operand & operand)3507