1*f5c631daSSadaf Ebrahimi // Copyright 2015, 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 10*f5c631daSSadaf Ebrahimi // notice, this list of conditions and the following disclaimer in the 11*f5c631daSSadaf Ebrahimi // documentation and/or other materials provided with the distribution. 12*f5c631daSSadaf Ebrahimi // * Neither the name of ARM Limited nor the names of its contributors may 13*f5c631daSSadaf Ebrahimi // be used to endorse or promote products derived from this software 14*f5c631daSSadaf Ebrahimi // without 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 18*f5c631daSSadaf Ebrahimi // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*f5c631daSSadaf Ebrahimi // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 20*f5c631daSSadaf Ebrahimi // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*f5c631daSSadaf Ebrahimi // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*f5c631daSSadaf Ebrahimi // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*f5c631daSSadaf Ebrahimi // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*f5c631daSSadaf Ebrahimi // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*f5c631daSSadaf Ebrahimi // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*f5c631daSSadaf Ebrahimi // POSSIBILITY OF SUCH DAMAGE. 27*f5c631daSSadaf Ebrahimi 28*f5c631daSSadaf Ebrahimi #ifndef VIXL_CONSTANTS_AARCH32_H_ 29*f5c631daSSadaf Ebrahimi #define VIXL_CONSTANTS_AARCH32_H_ 30*f5c631daSSadaf Ebrahimi 31*f5c631daSSadaf Ebrahimi extern "C" { 32*f5c631daSSadaf Ebrahimi #include <stdint.h> 33*f5c631daSSadaf Ebrahimi } 34*f5c631daSSadaf Ebrahimi 35*f5c631daSSadaf Ebrahimi #include "globals-vixl.h" 36*f5c631daSSadaf Ebrahimi 37*f5c631daSSadaf Ebrahimi 38*f5c631daSSadaf Ebrahimi namespace vixl { 39*f5c631daSSadaf Ebrahimi namespace aarch32 { 40*f5c631daSSadaf Ebrahimi 41*f5c631daSSadaf Ebrahimi enum InstructionSet { A32, T32 }; 42*f5c631daSSadaf Ebrahimi #ifdef VIXL_INCLUDE_TARGET_T32_ONLY 43*f5c631daSSadaf Ebrahimi const InstructionSet kDefaultISA = T32; 44*f5c631daSSadaf Ebrahimi #else 45*f5c631daSSadaf Ebrahimi const InstructionSet kDefaultISA = A32; 46*f5c631daSSadaf Ebrahimi #endif 47*f5c631daSSadaf Ebrahimi 48*f5c631daSSadaf Ebrahimi const unsigned kRegSizeInBits = 32; 49*f5c631daSSadaf Ebrahimi const unsigned kRegSizeInBytes = kRegSizeInBits / 8; 50*f5c631daSSadaf Ebrahimi const unsigned kSRegSizeInBits = 32; 51*f5c631daSSadaf Ebrahimi const unsigned kSRegSizeInBytes = kSRegSizeInBits / 8; 52*f5c631daSSadaf Ebrahimi const unsigned kDRegSizeInBits = 64; 53*f5c631daSSadaf Ebrahimi const unsigned kDRegSizeInBytes = kDRegSizeInBits / 8; 54*f5c631daSSadaf Ebrahimi const unsigned kQRegSizeInBits = 128; 55*f5c631daSSadaf Ebrahimi const unsigned kQRegSizeInBytes = kQRegSizeInBits / 8; 56*f5c631daSSadaf Ebrahimi 57*f5c631daSSadaf Ebrahimi const unsigned kNumberOfRegisters = 16; 58*f5c631daSSadaf Ebrahimi const unsigned kNumberOfSRegisters = 32; 59*f5c631daSSadaf Ebrahimi const unsigned kMaxNumberOfDRegisters = 32; 60*f5c631daSSadaf Ebrahimi const unsigned kNumberOfQRegisters = 16; 61*f5c631daSSadaf Ebrahimi const unsigned kNumberOfT32LowRegisters = 8; 62*f5c631daSSadaf Ebrahimi 63*f5c631daSSadaf Ebrahimi const unsigned kIpCode = 12; 64*f5c631daSSadaf Ebrahimi const unsigned kSpCode = 13; 65*f5c631daSSadaf Ebrahimi const unsigned kLrCode = 14; 66*f5c631daSSadaf Ebrahimi const unsigned kPcCode = 15; 67*f5c631daSSadaf Ebrahimi 68*f5c631daSSadaf Ebrahimi const unsigned kT32PcDelta = 4; 69*f5c631daSSadaf Ebrahimi const unsigned kA32PcDelta = 8; 70*f5c631daSSadaf Ebrahimi 71*f5c631daSSadaf Ebrahimi const unsigned kRRXEncodedValue = 3; 72*f5c631daSSadaf Ebrahimi 73*f5c631daSSadaf Ebrahimi const unsigned kCoprocMask = 0xe; 74*f5c631daSSadaf Ebrahimi const unsigned kInvalidCoprocMask = 0xa; 75*f5c631daSSadaf Ebrahimi 76*f5c631daSSadaf Ebrahimi const unsigned kLowestT32_32Opcode = 0xe8000000; 77*f5c631daSSadaf Ebrahimi 78*f5c631daSSadaf Ebrahimi const uint32_t kUnknownValue = 0xdeadbeef; 79*f5c631daSSadaf Ebrahimi 80*f5c631daSSadaf Ebrahimi const uint32_t kMaxInstructionSizeInBytes = 4; 81*f5c631daSSadaf Ebrahimi const uint32_t kA32InstructionSizeInBytes = 4; 82*f5c631daSSadaf Ebrahimi const uint32_t k32BitT32InstructionSizeInBytes = 4; 83*f5c631daSSadaf Ebrahimi const uint32_t k16BitT32InstructionSizeInBytes = 2; 84*f5c631daSSadaf Ebrahimi 85*f5c631daSSadaf Ebrahimi // Maximum size emitted by a single T32 unconditional macro-instruction. 86*f5c631daSSadaf Ebrahimi const uint32_t kMaxT32MacroInstructionSizeInBytes = 32; 87*f5c631daSSadaf Ebrahimi 88*f5c631daSSadaf Ebrahimi const uint32_t kCallerSavedRegistersMask = 0x500f; 89*f5c631daSSadaf Ebrahimi 90*f5c631daSSadaf Ebrahimi const uint16_t k16BitT32NopOpcode = 0xbf00; 91*f5c631daSSadaf Ebrahimi const uint16_t kCbzCbnzMask = 0xf500; 92*f5c631daSSadaf Ebrahimi const uint16_t kCbzCbnzValue = 0xb100; 93*f5c631daSSadaf Ebrahimi 94*f5c631daSSadaf Ebrahimi const int32_t kCbzCbnzRange = 126; 95*f5c631daSSadaf Ebrahimi const int32_t kBConditionalNarrowRange = 254; 96*f5c631daSSadaf Ebrahimi const int32_t kBNarrowRange = 2046; 97*f5c631daSSadaf Ebrahimi const int32_t kNearLabelRange = kBNarrowRange; 98*f5c631daSSadaf Ebrahimi 99*f5c631daSSadaf Ebrahimi enum SystemFunctionsOpcodes { kPrintfCode }; 100*f5c631daSSadaf Ebrahimi 101*f5c631daSSadaf Ebrahimi enum BranchHint { kNear, kFar, kBranchWithoutHint }; 102*f5c631daSSadaf Ebrahimi 103*f5c631daSSadaf Ebrahimi // Start of generated code. 104*f5c631daSSadaf Ebrahimi // AArch32 version implemented by the library (v8.0). 105*f5c631daSSadaf Ebrahimi // The encoding for vX.Y is: (X << 8) | Y. 106*f5c631daSSadaf Ebrahimi #define AARCH32_VERSION 0x0800 107*f5c631daSSadaf Ebrahimi 108*f5c631daSSadaf Ebrahimi enum InstructionAttribute { 109*f5c631daSSadaf Ebrahimi kNoAttribute = 0, 110*f5c631daSSadaf Ebrahimi kArithmetic = 0x1, 111*f5c631daSSadaf Ebrahimi kBitwise = 0x2, 112*f5c631daSSadaf Ebrahimi kShift = 0x4, 113*f5c631daSSadaf Ebrahimi kAddress = 0x8, 114*f5c631daSSadaf Ebrahimi kBranch = 0x10, 115*f5c631daSSadaf Ebrahimi kSystem = 0x20, 116*f5c631daSSadaf Ebrahimi kFpNeon = 0x40, 117*f5c631daSSadaf Ebrahimi kLoadStore = 0x80, 118*f5c631daSSadaf Ebrahimi kLoadStoreMultiple = 0x100 119*f5c631daSSadaf Ebrahimi }; 120*f5c631daSSadaf Ebrahimi 121*f5c631daSSadaf Ebrahimi enum InstructionType { 122*f5c631daSSadaf Ebrahimi kUndefInstructionType, 123*f5c631daSSadaf Ebrahimi kAdc, 124*f5c631daSSadaf Ebrahimi kAdcs, 125*f5c631daSSadaf Ebrahimi kAdd, 126*f5c631daSSadaf Ebrahimi kAdds, 127*f5c631daSSadaf Ebrahimi kAddw, 128*f5c631daSSadaf Ebrahimi kAdr, 129*f5c631daSSadaf Ebrahimi kAnd, 130*f5c631daSSadaf Ebrahimi kAnds, 131*f5c631daSSadaf Ebrahimi kAsr, 132*f5c631daSSadaf Ebrahimi kAsrs, 133*f5c631daSSadaf Ebrahimi kB, 134*f5c631daSSadaf Ebrahimi kBfc, 135*f5c631daSSadaf Ebrahimi kBfi, 136*f5c631daSSadaf Ebrahimi kBic, 137*f5c631daSSadaf Ebrahimi kBics, 138*f5c631daSSadaf Ebrahimi kBkpt, 139*f5c631daSSadaf Ebrahimi kBl, 140*f5c631daSSadaf Ebrahimi kBlx, 141*f5c631daSSadaf Ebrahimi kBx, 142*f5c631daSSadaf Ebrahimi kBxj, 143*f5c631daSSadaf Ebrahimi kCbnz, 144*f5c631daSSadaf Ebrahimi kCbz, 145*f5c631daSSadaf Ebrahimi kClrex, 146*f5c631daSSadaf Ebrahimi kClz, 147*f5c631daSSadaf Ebrahimi kCmn, 148*f5c631daSSadaf Ebrahimi kCmp, 149*f5c631daSSadaf Ebrahimi kCrc32b, 150*f5c631daSSadaf Ebrahimi kCrc32cb, 151*f5c631daSSadaf Ebrahimi kCrc32ch, 152*f5c631daSSadaf Ebrahimi kCrc32cw, 153*f5c631daSSadaf Ebrahimi kCrc32h, 154*f5c631daSSadaf Ebrahimi kCrc32w, 155*f5c631daSSadaf Ebrahimi kDmb, 156*f5c631daSSadaf Ebrahimi kDsb, 157*f5c631daSSadaf Ebrahimi kEor, 158*f5c631daSSadaf Ebrahimi kEors, 159*f5c631daSSadaf Ebrahimi kFldmdbx, 160*f5c631daSSadaf Ebrahimi kFldmiax, 161*f5c631daSSadaf Ebrahimi kFstmdbx, 162*f5c631daSSadaf Ebrahimi kFstmiax, 163*f5c631daSSadaf Ebrahimi kHlt, 164*f5c631daSSadaf Ebrahimi kHvc, 165*f5c631daSSadaf Ebrahimi kIsb, 166*f5c631daSSadaf Ebrahimi kIt, 167*f5c631daSSadaf Ebrahimi kLda, 168*f5c631daSSadaf Ebrahimi kLdab, 169*f5c631daSSadaf Ebrahimi kLdaex, 170*f5c631daSSadaf Ebrahimi kLdaexb, 171*f5c631daSSadaf Ebrahimi kLdaexd, 172*f5c631daSSadaf Ebrahimi kLdaexh, 173*f5c631daSSadaf Ebrahimi kLdah, 174*f5c631daSSadaf Ebrahimi kLdm, 175*f5c631daSSadaf Ebrahimi kLdmda, 176*f5c631daSSadaf Ebrahimi kLdmdb, 177*f5c631daSSadaf Ebrahimi kLdmea, 178*f5c631daSSadaf Ebrahimi kLdmed, 179*f5c631daSSadaf Ebrahimi kLdmfa, 180*f5c631daSSadaf Ebrahimi kLdmfd, 181*f5c631daSSadaf Ebrahimi kLdmib, 182*f5c631daSSadaf Ebrahimi kLdr, 183*f5c631daSSadaf Ebrahimi kLdrb, 184*f5c631daSSadaf Ebrahimi kLdrd, 185*f5c631daSSadaf Ebrahimi kLdrex, 186*f5c631daSSadaf Ebrahimi kLdrexb, 187*f5c631daSSadaf Ebrahimi kLdrexd, 188*f5c631daSSadaf Ebrahimi kLdrexh, 189*f5c631daSSadaf Ebrahimi kLdrh, 190*f5c631daSSadaf Ebrahimi kLdrsb, 191*f5c631daSSadaf Ebrahimi kLdrsh, 192*f5c631daSSadaf Ebrahimi kLsl, 193*f5c631daSSadaf Ebrahimi kLsls, 194*f5c631daSSadaf Ebrahimi kLsr, 195*f5c631daSSadaf Ebrahimi kLsrs, 196*f5c631daSSadaf Ebrahimi kMla, 197*f5c631daSSadaf Ebrahimi kMlas, 198*f5c631daSSadaf Ebrahimi kMls, 199*f5c631daSSadaf Ebrahimi kMov, 200*f5c631daSSadaf Ebrahimi kMovs, 201*f5c631daSSadaf Ebrahimi kMovt, 202*f5c631daSSadaf Ebrahimi kMovw, 203*f5c631daSSadaf Ebrahimi kMrs, 204*f5c631daSSadaf Ebrahimi kMsr, 205*f5c631daSSadaf Ebrahimi kMul, 206*f5c631daSSadaf Ebrahimi kMuls, 207*f5c631daSSadaf Ebrahimi kMvn, 208*f5c631daSSadaf Ebrahimi kMvns, 209*f5c631daSSadaf Ebrahimi kNop, 210*f5c631daSSadaf Ebrahimi kOrn, 211*f5c631daSSadaf Ebrahimi kOrns, 212*f5c631daSSadaf Ebrahimi kOrr, 213*f5c631daSSadaf Ebrahimi kOrrs, 214*f5c631daSSadaf Ebrahimi kPkhbt, 215*f5c631daSSadaf Ebrahimi kPkhtb, 216*f5c631daSSadaf Ebrahimi kPld, 217*f5c631daSSadaf Ebrahimi kPldw, 218*f5c631daSSadaf Ebrahimi kPli, 219*f5c631daSSadaf Ebrahimi kPop, 220*f5c631daSSadaf Ebrahimi kPush, 221*f5c631daSSadaf Ebrahimi kQadd, 222*f5c631daSSadaf Ebrahimi kQadd16, 223*f5c631daSSadaf Ebrahimi kQadd8, 224*f5c631daSSadaf Ebrahimi kQasx, 225*f5c631daSSadaf Ebrahimi kQdadd, 226*f5c631daSSadaf Ebrahimi kQdsub, 227*f5c631daSSadaf Ebrahimi kQsax, 228*f5c631daSSadaf Ebrahimi kQsub, 229*f5c631daSSadaf Ebrahimi kQsub16, 230*f5c631daSSadaf Ebrahimi kQsub8, 231*f5c631daSSadaf Ebrahimi kRbit, 232*f5c631daSSadaf Ebrahimi kRev, 233*f5c631daSSadaf Ebrahimi kRev16, 234*f5c631daSSadaf Ebrahimi kRevsh, 235*f5c631daSSadaf Ebrahimi kRor, 236*f5c631daSSadaf Ebrahimi kRors, 237*f5c631daSSadaf Ebrahimi kRrx, 238*f5c631daSSadaf Ebrahimi kRrxs, 239*f5c631daSSadaf Ebrahimi kRsb, 240*f5c631daSSadaf Ebrahimi kRsbs, 241*f5c631daSSadaf Ebrahimi kRsc, 242*f5c631daSSadaf Ebrahimi kRscs, 243*f5c631daSSadaf Ebrahimi kSadd16, 244*f5c631daSSadaf Ebrahimi kSadd8, 245*f5c631daSSadaf Ebrahimi kSasx, 246*f5c631daSSadaf Ebrahimi kSbc, 247*f5c631daSSadaf Ebrahimi kSbcs, 248*f5c631daSSadaf Ebrahimi kSbfx, 249*f5c631daSSadaf Ebrahimi kSdiv, 250*f5c631daSSadaf Ebrahimi kSel, 251*f5c631daSSadaf Ebrahimi kShadd16, 252*f5c631daSSadaf Ebrahimi kShadd8, 253*f5c631daSSadaf Ebrahimi kShasx, 254*f5c631daSSadaf Ebrahimi kShsax, 255*f5c631daSSadaf Ebrahimi kShsub16, 256*f5c631daSSadaf Ebrahimi kShsub8, 257*f5c631daSSadaf Ebrahimi kSmlabb, 258*f5c631daSSadaf Ebrahimi kSmlabt, 259*f5c631daSSadaf Ebrahimi kSmlad, 260*f5c631daSSadaf Ebrahimi kSmladx, 261*f5c631daSSadaf Ebrahimi kSmlal, 262*f5c631daSSadaf Ebrahimi kSmlalbb, 263*f5c631daSSadaf Ebrahimi kSmlalbt, 264*f5c631daSSadaf Ebrahimi kSmlald, 265*f5c631daSSadaf Ebrahimi kSmlaldx, 266*f5c631daSSadaf Ebrahimi kSmlals, 267*f5c631daSSadaf Ebrahimi kSmlaltb, 268*f5c631daSSadaf Ebrahimi kSmlaltt, 269*f5c631daSSadaf Ebrahimi kSmlatb, 270*f5c631daSSadaf Ebrahimi kSmlatt, 271*f5c631daSSadaf Ebrahimi kSmlawb, 272*f5c631daSSadaf Ebrahimi kSmlawt, 273*f5c631daSSadaf Ebrahimi kSmlsd, 274*f5c631daSSadaf Ebrahimi kSmlsdx, 275*f5c631daSSadaf Ebrahimi kSmlsld, 276*f5c631daSSadaf Ebrahimi kSmlsldx, 277*f5c631daSSadaf Ebrahimi kSmmla, 278*f5c631daSSadaf Ebrahimi kSmmlar, 279*f5c631daSSadaf Ebrahimi kSmmls, 280*f5c631daSSadaf Ebrahimi kSmmlsr, 281*f5c631daSSadaf Ebrahimi kSmmul, 282*f5c631daSSadaf Ebrahimi kSmmulr, 283*f5c631daSSadaf Ebrahimi kSmuad, 284*f5c631daSSadaf Ebrahimi kSmuadx, 285*f5c631daSSadaf Ebrahimi kSmulbb, 286*f5c631daSSadaf Ebrahimi kSmulbt, 287*f5c631daSSadaf Ebrahimi kSmull, 288*f5c631daSSadaf Ebrahimi kSmulls, 289*f5c631daSSadaf Ebrahimi kSmultb, 290*f5c631daSSadaf Ebrahimi kSmultt, 291*f5c631daSSadaf Ebrahimi kSmulwb, 292*f5c631daSSadaf Ebrahimi kSmulwt, 293*f5c631daSSadaf Ebrahimi kSmusd, 294*f5c631daSSadaf Ebrahimi kSmusdx, 295*f5c631daSSadaf Ebrahimi kSsat, 296*f5c631daSSadaf Ebrahimi kSsat16, 297*f5c631daSSadaf Ebrahimi kSsax, 298*f5c631daSSadaf Ebrahimi kSsub16, 299*f5c631daSSadaf Ebrahimi kSsub8, 300*f5c631daSSadaf Ebrahimi kStl, 301*f5c631daSSadaf Ebrahimi kStlb, 302*f5c631daSSadaf Ebrahimi kStlex, 303*f5c631daSSadaf Ebrahimi kStlexb, 304*f5c631daSSadaf Ebrahimi kStlexd, 305*f5c631daSSadaf Ebrahimi kStlexh, 306*f5c631daSSadaf Ebrahimi kStlh, 307*f5c631daSSadaf Ebrahimi kStm, 308*f5c631daSSadaf Ebrahimi kStmda, 309*f5c631daSSadaf Ebrahimi kStmdb, 310*f5c631daSSadaf Ebrahimi kStmea, 311*f5c631daSSadaf Ebrahimi kStmed, 312*f5c631daSSadaf Ebrahimi kStmfa, 313*f5c631daSSadaf Ebrahimi kStmfd, 314*f5c631daSSadaf Ebrahimi kStmib, 315*f5c631daSSadaf Ebrahimi kStr, 316*f5c631daSSadaf Ebrahimi kStrb, 317*f5c631daSSadaf Ebrahimi kStrd, 318*f5c631daSSadaf Ebrahimi kStrex, 319*f5c631daSSadaf Ebrahimi kStrexb, 320*f5c631daSSadaf Ebrahimi kStrexd, 321*f5c631daSSadaf Ebrahimi kStrexh, 322*f5c631daSSadaf Ebrahimi kStrh, 323*f5c631daSSadaf Ebrahimi kSub, 324*f5c631daSSadaf Ebrahimi kSubs, 325*f5c631daSSadaf Ebrahimi kSubw, 326*f5c631daSSadaf Ebrahimi kSvc, 327*f5c631daSSadaf Ebrahimi kSxtab, 328*f5c631daSSadaf Ebrahimi kSxtab16, 329*f5c631daSSadaf Ebrahimi kSxtah, 330*f5c631daSSadaf Ebrahimi kSxtb, 331*f5c631daSSadaf Ebrahimi kSxtb16, 332*f5c631daSSadaf Ebrahimi kSxth, 333*f5c631daSSadaf Ebrahimi kTbb, 334*f5c631daSSadaf Ebrahimi kTbh, 335*f5c631daSSadaf Ebrahimi kTeq, 336*f5c631daSSadaf Ebrahimi kTst, 337*f5c631daSSadaf Ebrahimi kUadd16, 338*f5c631daSSadaf Ebrahimi kUadd8, 339*f5c631daSSadaf Ebrahimi kUasx, 340*f5c631daSSadaf Ebrahimi kUbfx, 341*f5c631daSSadaf Ebrahimi kUdf, 342*f5c631daSSadaf Ebrahimi kUdiv, 343*f5c631daSSadaf Ebrahimi kUhadd16, 344*f5c631daSSadaf Ebrahimi kUhadd8, 345*f5c631daSSadaf Ebrahimi kUhasx, 346*f5c631daSSadaf Ebrahimi kUhsax, 347*f5c631daSSadaf Ebrahimi kUhsub16, 348*f5c631daSSadaf Ebrahimi kUhsub8, 349*f5c631daSSadaf Ebrahimi kUmaal, 350*f5c631daSSadaf Ebrahimi kUmlal, 351*f5c631daSSadaf Ebrahimi kUmlals, 352*f5c631daSSadaf Ebrahimi kUmull, 353*f5c631daSSadaf Ebrahimi kUmulls, 354*f5c631daSSadaf Ebrahimi kUqadd16, 355*f5c631daSSadaf Ebrahimi kUqadd8, 356*f5c631daSSadaf Ebrahimi kUqasx, 357*f5c631daSSadaf Ebrahimi kUqsax, 358*f5c631daSSadaf Ebrahimi kUqsub16, 359*f5c631daSSadaf Ebrahimi kUqsub8, 360*f5c631daSSadaf Ebrahimi kUsad8, 361*f5c631daSSadaf Ebrahimi kUsada8, 362*f5c631daSSadaf Ebrahimi kUsat, 363*f5c631daSSadaf Ebrahimi kUsat16, 364*f5c631daSSadaf Ebrahimi kUsax, 365*f5c631daSSadaf Ebrahimi kUsub16, 366*f5c631daSSadaf Ebrahimi kUsub8, 367*f5c631daSSadaf Ebrahimi kUxtab, 368*f5c631daSSadaf Ebrahimi kUxtab16, 369*f5c631daSSadaf Ebrahimi kUxtah, 370*f5c631daSSadaf Ebrahimi kUxtb, 371*f5c631daSSadaf Ebrahimi kUxtb16, 372*f5c631daSSadaf Ebrahimi kUxth, 373*f5c631daSSadaf Ebrahimi kVaba, 374*f5c631daSSadaf Ebrahimi kVabal, 375*f5c631daSSadaf Ebrahimi kVabd, 376*f5c631daSSadaf Ebrahimi kVabdl, 377*f5c631daSSadaf Ebrahimi kVabs, 378*f5c631daSSadaf Ebrahimi kVacge, 379*f5c631daSSadaf Ebrahimi kVacgt, 380*f5c631daSSadaf Ebrahimi kVacle, 381*f5c631daSSadaf Ebrahimi kVaclt, 382*f5c631daSSadaf Ebrahimi kVadd, 383*f5c631daSSadaf Ebrahimi kVaddhn, 384*f5c631daSSadaf Ebrahimi kVaddl, 385*f5c631daSSadaf Ebrahimi kVaddw, 386*f5c631daSSadaf Ebrahimi kVand, 387*f5c631daSSadaf Ebrahimi kVbic, 388*f5c631daSSadaf Ebrahimi kVbif, 389*f5c631daSSadaf Ebrahimi kVbit, 390*f5c631daSSadaf Ebrahimi kVbsl, 391*f5c631daSSadaf Ebrahimi kVceq, 392*f5c631daSSadaf Ebrahimi kVcge, 393*f5c631daSSadaf Ebrahimi kVcgt, 394*f5c631daSSadaf Ebrahimi kVcle, 395*f5c631daSSadaf Ebrahimi kVcls, 396*f5c631daSSadaf Ebrahimi kVclt, 397*f5c631daSSadaf Ebrahimi kVclz, 398*f5c631daSSadaf Ebrahimi kVcmp, 399*f5c631daSSadaf Ebrahimi kVcmpe, 400*f5c631daSSadaf Ebrahimi kVcnt, 401*f5c631daSSadaf Ebrahimi kVcvt, 402*f5c631daSSadaf Ebrahimi kVcvta, 403*f5c631daSSadaf Ebrahimi kVcvtb, 404*f5c631daSSadaf Ebrahimi kVcvtm, 405*f5c631daSSadaf Ebrahimi kVcvtn, 406*f5c631daSSadaf Ebrahimi kVcvtp, 407*f5c631daSSadaf Ebrahimi kVcvtr, 408*f5c631daSSadaf Ebrahimi kVcvtt, 409*f5c631daSSadaf Ebrahimi kVdiv, 410*f5c631daSSadaf Ebrahimi kVdup, 411*f5c631daSSadaf Ebrahimi kVeor, 412*f5c631daSSadaf Ebrahimi kVext, 413*f5c631daSSadaf Ebrahimi kVfma, 414*f5c631daSSadaf Ebrahimi kVfms, 415*f5c631daSSadaf Ebrahimi kVfnma, 416*f5c631daSSadaf Ebrahimi kVfnms, 417*f5c631daSSadaf Ebrahimi kVhadd, 418*f5c631daSSadaf Ebrahimi kVhsub, 419*f5c631daSSadaf Ebrahimi kVld1, 420*f5c631daSSadaf Ebrahimi kVld2, 421*f5c631daSSadaf Ebrahimi kVld3, 422*f5c631daSSadaf Ebrahimi kVld4, 423*f5c631daSSadaf Ebrahimi kVldm, 424*f5c631daSSadaf Ebrahimi kVldmdb, 425*f5c631daSSadaf Ebrahimi kVldmia, 426*f5c631daSSadaf Ebrahimi kVldr, 427*f5c631daSSadaf Ebrahimi kVmax, 428*f5c631daSSadaf Ebrahimi kVmaxnm, 429*f5c631daSSadaf Ebrahimi kVmin, 430*f5c631daSSadaf Ebrahimi kVminnm, 431*f5c631daSSadaf Ebrahimi kVmla, 432*f5c631daSSadaf Ebrahimi kVmlal, 433*f5c631daSSadaf Ebrahimi kVmls, 434*f5c631daSSadaf Ebrahimi kVmlsl, 435*f5c631daSSadaf Ebrahimi kVmov, 436*f5c631daSSadaf Ebrahimi kVmovl, 437*f5c631daSSadaf Ebrahimi kVmovn, 438*f5c631daSSadaf Ebrahimi kVmrs, 439*f5c631daSSadaf Ebrahimi kVmsr, 440*f5c631daSSadaf Ebrahimi kVmul, 441*f5c631daSSadaf Ebrahimi kVmull, 442*f5c631daSSadaf Ebrahimi kVmvn, 443*f5c631daSSadaf Ebrahimi kVneg, 444*f5c631daSSadaf Ebrahimi kVnmla, 445*f5c631daSSadaf Ebrahimi kVnmls, 446*f5c631daSSadaf Ebrahimi kVnmul, 447*f5c631daSSadaf Ebrahimi kVorn, 448*f5c631daSSadaf Ebrahimi kVorr, 449*f5c631daSSadaf Ebrahimi kVpadal, 450*f5c631daSSadaf Ebrahimi kVpadd, 451*f5c631daSSadaf Ebrahimi kVpaddl, 452*f5c631daSSadaf Ebrahimi kVpmax, 453*f5c631daSSadaf Ebrahimi kVpmin, 454*f5c631daSSadaf Ebrahimi kVpop, 455*f5c631daSSadaf Ebrahimi kVpush, 456*f5c631daSSadaf Ebrahimi kVqabs, 457*f5c631daSSadaf Ebrahimi kVqadd, 458*f5c631daSSadaf Ebrahimi kVqdmlal, 459*f5c631daSSadaf Ebrahimi kVqdmlsl, 460*f5c631daSSadaf Ebrahimi kVqdmulh, 461*f5c631daSSadaf Ebrahimi kVqdmull, 462*f5c631daSSadaf Ebrahimi kVqmovn, 463*f5c631daSSadaf Ebrahimi kVqmovun, 464*f5c631daSSadaf Ebrahimi kVqneg, 465*f5c631daSSadaf Ebrahimi kVqrdmulh, 466*f5c631daSSadaf Ebrahimi kVqrshl, 467*f5c631daSSadaf Ebrahimi kVqrshrn, 468*f5c631daSSadaf Ebrahimi kVqrshrun, 469*f5c631daSSadaf Ebrahimi kVqshl, 470*f5c631daSSadaf Ebrahimi kVqshlu, 471*f5c631daSSadaf Ebrahimi kVqshrn, 472*f5c631daSSadaf Ebrahimi kVqshrun, 473*f5c631daSSadaf Ebrahimi kVqsub, 474*f5c631daSSadaf Ebrahimi kVraddhn, 475*f5c631daSSadaf Ebrahimi kVrecpe, 476*f5c631daSSadaf Ebrahimi kVrecps, 477*f5c631daSSadaf Ebrahimi kVrev16, 478*f5c631daSSadaf Ebrahimi kVrev32, 479*f5c631daSSadaf Ebrahimi kVrev64, 480*f5c631daSSadaf Ebrahimi kVrhadd, 481*f5c631daSSadaf Ebrahimi kVrinta, 482*f5c631daSSadaf Ebrahimi kVrintm, 483*f5c631daSSadaf Ebrahimi kVrintn, 484*f5c631daSSadaf Ebrahimi kVrintp, 485*f5c631daSSadaf Ebrahimi kVrintr, 486*f5c631daSSadaf Ebrahimi kVrintx, 487*f5c631daSSadaf Ebrahimi kVrintz, 488*f5c631daSSadaf Ebrahimi kVrshl, 489*f5c631daSSadaf Ebrahimi kVrshr, 490*f5c631daSSadaf Ebrahimi kVrshrn, 491*f5c631daSSadaf Ebrahimi kVrsqrte, 492*f5c631daSSadaf Ebrahimi kVrsqrts, 493*f5c631daSSadaf Ebrahimi kVrsra, 494*f5c631daSSadaf Ebrahimi kVrsubhn, 495*f5c631daSSadaf Ebrahimi kVseleq, 496*f5c631daSSadaf Ebrahimi kVselge, 497*f5c631daSSadaf Ebrahimi kVselgt, 498*f5c631daSSadaf Ebrahimi kVselvs, 499*f5c631daSSadaf Ebrahimi kVshl, 500*f5c631daSSadaf Ebrahimi kVshll, 501*f5c631daSSadaf Ebrahimi kVshr, 502*f5c631daSSadaf Ebrahimi kVshrn, 503*f5c631daSSadaf Ebrahimi kVsli, 504*f5c631daSSadaf Ebrahimi kVsqrt, 505*f5c631daSSadaf Ebrahimi kVsra, 506*f5c631daSSadaf Ebrahimi kVsri, 507*f5c631daSSadaf Ebrahimi kVst1, 508*f5c631daSSadaf Ebrahimi kVst2, 509*f5c631daSSadaf Ebrahimi kVst3, 510*f5c631daSSadaf Ebrahimi kVst4, 511*f5c631daSSadaf Ebrahimi kVstm, 512*f5c631daSSadaf Ebrahimi kVstmdb, 513*f5c631daSSadaf Ebrahimi kVstmia, 514*f5c631daSSadaf Ebrahimi kVstr, 515*f5c631daSSadaf Ebrahimi kVsub, 516*f5c631daSSadaf Ebrahimi kVsubhn, 517*f5c631daSSadaf Ebrahimi kVsubl, 518*f5c631daSSadaf Ebrahimi kVsubw, 519*f5c631daSSadaf Ebrahimi kVswp, 520*f5c631daSSadaf Ebrahimi kVtbl, 521*f5c631daSSadaf Ebrahimi kVtbx, 522*f5c631daSSadaf Ebrahimi kVtrn, 523*f5c631daSSadaf Ebrahimi kVtst, 524*f5c631daSSadaf Ebrahimi kVuzp, 525*f5c631daSSadaf Ebrahimi kVzip, 526*f5c631daSSadaf Ebrahimi kYield 527*f5c631daSSadaf Ebrahimi }; 528*f5c631daSSadaf Ebrahimi 529*f5c631daSSadaf Ebrahimi const char* ToCString(InstructionType type); 530*f5c631daSSadaf Ebrahimi // End of generated code. 531*f5c631daSSadaf Ebrahimi 532*f5c631daSSadaf Ebrahimi inline InstructionAttribute operator|(InstructionAttribute left, 533*f5c631daSSadaf Ebrahimi InstructionAttribute right) { 534*f5c631daSSadaf Ebrahimi return static_cast<InstructionAttribute>(static_cast<uint32_t>(left) | 535*f5c631daSSadaf Ebrahimi static_cast<uint32_t>(right)); 536*f5c631daSSadaf Ebrahimi } 537*f5c631daSSadaf Ebrahimi 538*f5c631daSSadaf Ebrahimi } // namespace aarch32 539*f5c631daSSadaf Ebrahimi } // namespace vixl 540*f5c631daSSadaf Ebrahimi 541*f5c631daSSadaf Ebrahimi #endif // VIXL_CONSTANTS_AARCH32_H_ 542