Path: blob/master/dep/vixl/src/aarch32/constants-aarch32.cc
4261 views
// Copyright 2016, VIXL authors1// All rights reserved.2//3// Redistribution and use in source and binary forms, with or without4// modification, are permitted provided that the following conditions are met:5//6// * Redistributions of source code must retain the above copyright notice,7// this list of conditions and the following disclaimer.8// * Redistributions in binary form must reproduce the above copyright9// notice, this list of conditions and the following disclaimer in the10// documentation and/or other materials provided with the distribution.11// * Neither the name of ARM Limited nor the names of its contributors may12// be used to endorse or promote products derived from this software13// without specific prior written permission.14//15// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND16// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE17// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE18// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE19// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR20// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF21// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS22// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN23// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)24// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE25// POSSIBILITY OF SUCH DAMAGE.2627#include "aarch32/constants-aarch32.h"28#include "utils-vixl.h"2930namespace vixl {31namespace aarch32 {3233// Start of generated code.34const char* ToCString(InstructionType type) {35switch (type) {36case kAdc:37return "adc";38case kAdcs:39return "adcs";40case kAdd:41return "add";42case kAdds:43return "adds";44case kAddw:45return "addw";46case kAdr:47return "adr";48case kAnd:49return "and";50case kAnds:51return "ands";52case kAsr:53return "asr";54case kAsrs:55return "asrs";56case kB:57return "b";58case kBfc:59return "bfc";60case kBfi:61return "bfi";62case kBic:63return "bic";64case kBics:65return "bics";66case kBkpt:67return "bkpt";68case kBl:69return "bl";70case kBlx:71return "blx";72case kBx:73return "bx";74case kBxj:75return "bxj";76case kCbnz:77return "cbnz";78case kCbz:79return "cbz";80case kClrex:81return "clrex";82case kClz:83return "clz";84case kCmn:85return "cmn";86case kCmp:87return "cmp";88case kCrc32b:89return "crc32b";90case kCrc32cb:91return "crc32cb";92case kCrc32ch:93return "crc32ch";94case kCrc32cw:95return "crc32cw";96case kCrc32h:97return "crc32h";98case kCrc32w:99return "crc32w";100case kDmb:101return "dmb";102case kDsb:103return "dsb";104case kEor:105return "eor";106case kEors:107return "eors";108case kFldmdbx:109return "fldmdbx";110case kFldmiax:111return "fldmiax";112case kFstmdbx:113return "fstmdbx";114case kFstmiax:115return "fstmiax";116case kHlt:117return "hlt";118case kHvc:119return "hvc";120case kIsb:121return "isb";122case kIt:123return "it";124case kLda:125return "lda";126case kLdab:127return "ldab";128case kLdaex:129return "ldaex";130case kLdaexb:131return "ldaexb";132case kLdaexd:133return "ldaexd";134case kLdaexh:135return "ldaexh";136case kLdah:137return "ldah";138case kLdm:139return "ldm";140case kLdmda:141return "ldmda";142case kLdmdb:143return "ldmdb";144case kLdmea:145return "ldmea";146case kLdmed:147return "ldmed";148case kLdmfa:149return "ldmfa";150case kLdmfd:151return "ldmfd";152case kLdmib:153return "ldmib";154case kLdr:155return "ldr";156case kLdrb:157return "ldrb";158case kLdrd:159return "ldrd";160case kLdrex:161return "ldrex";162case kLdrexb:163return "ldrexb";164case kLdrexd:165return "ldrexd";166case kLdrexh:167return "ldrexh";168case kLdrh:169return "ldrh";170case kLdrsb:171return "ldrsb";172case kLdrsh:173return "ldrsh";174case kLsl:175return "lsl";176case kLsls:177return "lsls";178case kLsr:179return "lsr";180case kLsrs:181return "lsrs";182case kMla:183return "mla";184case kMlas:185return "mlas";186case kMls:187return "mls";188case kMov:189return "mov";190case kMovs:191return "movs";192case kMovt:193return "movt";194case kMovw:195return "movw";196case kMrs:197return "mrs";198case kMsr:199return "msr";200case kMul:201return "mul";202case kMuls:203return "muls";204case kMvn:205return "mvn";206case kMvns:207return "mvns";208case kNop:209return "nop";210case kOrn:211return "orn";212case kOrns:213return "orns";214case kOrr:215return "orr";216case kOrrs:217return "orrs";218case kPkhbt:219return "pkhbt";220case kPkhtb:221return "pkhtb";222case kPld:223return "pld";224case kPldw:225return "pldw";226case kPli:227return "pli";228case kPop:229return "pop";230case kPush:231return "push";232case kQadd:233return "qadd";234case kQadd16:235return "qadd16";236case kQadd8:237return "qadd8";238case kQasx:239return "qasx";240case kQdadd:241return "qdadd";242case kQdsub:243return "qdsub";244case kQsax:245return "qsax";246case kQsub:247return "qsub";248case kQsub16:249return "qsub16";250case kQsub8:251return "qsub8";252case kRbit:253return "rbit";254case kRev:255return "rev";256case kRev16:257return "rev16";258case kRevsh:259return "revsh";260case kRor:261return "ror";262case kRors:263return "rors";264case kRrx:265return "rrx";266case kRrxs:267return "rrxs";268case kRsb:269return "rsb";270case kRsbs:271return "rsbs";272case kRsc:273return "rsc";274case kRscs:275return "rscs";276case kSadd16:277return "sadd16";278case kSadd8:279return "sadd8";280case kSasx:281return "sasx";282case kSbc:283return "sbc";284case kSbcs:285return "sbcs";286case kSbfx:287return "sbfx";288case kSdiv:289return "sdiv";290case kSel:291return "sel";292case kShadd16:293return "shadd16";294case kShadd8:295return "shadd8";296case kShasx:297return "shasx";298case kShsax:299return "shsax";300case kShsub16:301return "shsub16";302case kShsub8:303return "shsub8";304case kSmlabb:305return "smlabb";306case kSmlabt:307return "smlabt";308case kSmlad:309return "smlad";310case kSmladx:311return "smladx";312case kSmlal:313return "smlal";314case kSmlalbb:315return "smlalbb";316case kSmlalbt:317return "smlalbt";318case kSmlald:319return "smlald";320case kSmlaldx:321return "smlaldx";322case kSmlals:323return "smlals";324case kSmlaltb:325return "smlaltb";326case kSmlaltt:327return "smlaltt";328case kSmlatb:329return "smlatb";330case kSmlatt:331return "smlatt";332case kSmlawb:333return "smlawb";334case kSmlawt:335return "smlawt";336case kSmlsd:337return "smlsd";338case kSmlsdx:339return "smlsdx";340case kSmlsld:341return "smlsld";342case kSmlsldx:343return "smlsldx";344case kSmmla:345return "smmla";346case kSmmlar:347return "smmlar";348case kSmmls:349return "smmls";350case kSmmlsr:351return "smmlsr";352case kSmmul:353return "smmul";354case kSmmulr:355return "smmulr";356case kSmuad:357return "smuad";358case kSmuadx:359return "smuadx";360case kSmulbb:361return "smulbb";362case kSmulbt:363return "smulbt";364case kSmull:365return "smull";366case kSmulls:367return "smulls";368case kSmultb:369return "smultb";370case kSmultt:371return "smultt";372case kSmulwb:373return "smulwb";374case kSmulwt:375return "smulwt";376case kSmusd:377return "smusd";378case kSmusdx:379return "smusdx";380case kSsat:381return "ssat";382case kSsat16:383return "ssat16";384case kSsax:385return "ssax";386case kSsub16:387return "ssub16";388case kSsub8:389return "ssub8";390case kStl:391return "stl";392case kStlb:393return "stlb";394case kStlex:395return "stlex";396case kStlexb:397return "stlexb";398case kStlexd:399return "stlexd";400case kStlexh:401return "stlexh";402case kStlh:403return "stlh";404case kStm:405return "stm";406case kStmda:407return "stmda";408case kStmdb:409return "stmdb";410case kStmea:411return "stmea";412case kStmed:413return "stmed";414case kStmfa:415return "stmfa";416case kStmfd:417return "stmfd";418case kStmib:419return "stmib";420case kStr:421return "str";422case kStrb:423return "strb";424case kStrd:425return "strd";426case kStrex:427return "strex";428case kStrexb:429return "strexb";430case kStrexd:431return "strexd";432case kStrexh:433return "strexh";434case kStrh:435return "strh";436case kSub:437return "sub";438case kSubs:439return "subs";440case kSubw:441return "subw";442case kSvc:443return "svc";444case kSxtab:445return "sxtab";446case kSxtab16:447return "sxtab16";448case kSxtah:449return "sxtah";450case kSxtb:451return "sxtb";452case kSxtb16:453return "sxtb16";454case kSxth:455return "sxth";456case kTbb:457return "tbb";458case kTbh:459return "tbh";460case kTeq:461return "teq";462case kTst:463return "tst";464case kUadd16:465return "uadd16";466case kUadd8:467return "uadd8";468case kUasx:469return "uasx";470case kUbfx:471return "ubfx";472case kUdf:473return "udf";474case kUdiv:475return "udiv";476case kUhadd16:477return "uhadd16";478case kUhadd8:479return "uhadd8";480case kUhasx:481return "uhasx";482case kUhsax:483return "uhsax";484case kUhsub16:485return "uhsub16";486case kUhsub8:487return "uhsub8";488case kUmaal:489return "umaal";490case kUmlal:491return "umlal";492case kUmlals:493return "umlals";494case kUmull:495return "umull";496case kUmulls:497return "umulls";498case kUqadd16:499return "uqadd16";500case kUqadd8:501return "uqadd8";502case kUqasx:503return "uqasx";504case kUqsax:505return "uqsax";506case kUqsub16:507return "uqsub16";508case kUqsub8:509return "uqsub8";510case kUsad8:511return "usad8";512case kUsada8:513return "usada8";514case kUsat:515return "usat";516case kUsat16:517return "usat16";518case kUsax:519return "usax";520case kUsub16:521return "usub16";522case kUsub8:523return "usub8";524case kUxtab:525return "uxtab";526case kUxtab16:527return "uxtab16";528case kUxtah:529return "uxtah";530case kUxtb:531return "uxtb";532case kUxtb16:533return "uxtb16";534case kUxth:535return "uxth";536case kVaba:537return "vaba";538case kVabal:539return "vabal";540case kVabd:541return "vabd";542case kVabdl:543return "vabdl";544case kVabs:545return "vabs";546case kVacge:547return "vacge";548case kVacgt:549return "vacgt";550case kVacle:551return "vacle";552case kVaclt:553return "vaclt";554case kVadd:555return "vadd";556case kVaddhn:557return "vaddhn";558case kVaddl:559return "vaddl";560case kVaddw:561return "vaddw";562case kVand:563return "vand";564case kVbic:565return "vbic";566case kVbif:567return "vbif";568case kVbit:569return "vbit";570case kVbsl:571return "vbsl";572case kVceq:573return "vceq";574case kVcge:575return "vcge";576case kVcgt:577return "vcgt";578case kVcle:579return "vcle";580case kVcls:581return "vcls";582case kVclt:583return "vclt";584case kVclz:585return "vclz";586case kVcmp:587return "vcmp";588case kVcmpe:589return "vcmpe";590case kVcnt:591return "vcnt";592case kVcvt:593return "vcvt";594case kVcvta:595return "vcvta";596case kVcvtb:597return "vcvtb";598case kVcvtm:599return "vcvtm";600case kVcvtn:601return "vcvtn";602case kVcvtp:603return "vcvtp";604case kVcvtr:605return "vcvtr";606case kVcvtt:607return "vcvtt";608case kVdiv:609return "vdiv";610case kVdup:611return "vdup";612case kVeor:613return "veor";614case kVext:615return "vext";616case kVfma:617return "vfma";618case kVfms:619return "vfms";620case kVfnma:621return "vfnma";622case kVfnms:623return "vfnms";624case kVhadd:625return "vhadd";626case kVhsub:627return "vhsub";628case kVld1:629return "vld1";630case kVld2:631return "vld2";632case kVld3:633return "vld3";634case kVld4:635return "vld4";636case kVldm:637return "vldm";638case kVldmdb:639return "vldmdb";640case kVldmia:641return "vldmia";642case kVldr:643return "vldr";644case kVmax:645return "vmax";646case kVmaxnm:647return "vmaxnm";648case kVmin:649return "vmin";650case kVminnm:651return "vminnm";652case kVmla:653return "vmla";654case kVmlal:655return "vmlal";656case kVmls:657return "vmls";658case kVmlsl:659return "vmlsl";660case kVmov:661return "vmov";662case kVmovl:663return "vmovl";664case kVmovn:665return "vmovn";666case kVmrs:667return "vmrs";668case kVmsr:669return "vmsr";670case kVmul:671return "vmul";672case kVmull:673return "vmull";674case kVmvn:675return "vmvn";676case kVneg:677return "vneg";678case kVnmla:679return "vnmla";680case kVnmls:681return "vnmls";682case kVnmul:683return "vnmul";684case kVorn:685return "vorn";686case kVorr:687return "vorr";688case kVpadal:689return "vpadal";690case kVpadd:691return "vpadd";692case kVpaddl:693return "vpaddl";694case kVpmax:695return "vpmax";696case kVpmin:697return "vpmin";698case kVpop:699return "vpop";700case kVpush:701return "vpush";702case kVqabs:703return "vqabs";704case kVqadd:705return "vqadd";706case kVqdmlal:707return "vqdmlal";708case kVqdmlsl:709return "vqdmlsl";710case kVqdmulh:711return "vqdmulh";712case kVqdmull:713return "vqdmull";714case kVqmovn:715return "vqmovn";716case kVqmovun:717return "vqmovun";718case kVqneg:719return "vqneg";720case kVqrdmulh:721return "vqrdmulh";722case kVqrshl:723return "vqrshl";724case kVqrshrn:725return "vqrshrn";726case kVqrshrun:727return "vqrshrun";728case kVqshl:729return "vqshl";730case kVqshlu:731return "vqshlu";732case kVqshrn:733return "vqshrn";734case kVqshrun:735return "vqshrun";736case kVqsub:737return "vqsub";738case kVraddhn:739return "vraddhn";740case kVrecpe:741return "vrecpe";742case kVrecps:743return "vrecps";744case kVrev16:745return "vrev16";746case kVrev32:747return "vrev32";748case kVrev64:749return "vrev64";750case kVrhadd:751return "vrhadd";752case kVrinta:753return "vrinta";754case kVrintm:755return "vrintm";756case kVrintn:757return "vrintn";758case kVrintp:759return "vrintp";760case kVrintr:761return "vrintr";762case kVrintx:763return "vrintx";764case kVrintz:765return "vrintz";766case kVrshl:767return "vrshl";768case kVrshr:769return "vrshr";770case kVrshrn:771return "vrshrn";772case kVrsqrte:773return "vrsqrte";774case kVrsqrts:775return "vrsqrts";776case kVrsra:777return "vrsra";778case kVrsubhn:779return "vrsubhn";780case kVseleq:781return "vseleq";782case kVselge:783return "vselge";784case kVselgt:785return "vselgt";786case kVselvs:787return "vselvs";788case kVshl:789return "vshl";790case kVshll:791return "vshll";792case kVshr:793return "vshr";794case kVshrn:795return "vshrn";796case kVsli:797return "vsli";798case kVsqrt:799return "vsqrt";800case kVsra:801return "vsra";802case kVsri:803return "vsri";804case kVst1:805return "vst1";806case kVst2:807return "vst2";808case kVst3:809return "vst3";810case kVst4:811return "vst4";812case kVstm:813return "vstm";814case kVstmdb:815return "vstmdb";816case kVstmia:817return "vstmia";818case kVstr:819return "vstr";820case kVsub:821return "vsub";822case kVsubhn:823return "vsubhn";824case kVsubl:825return "vsubl";826case kVsubw:827return "vsubw";828case kVswp:829return "vswp";830case kVtbl:831return "vtbl";832case kVtbx:833return "vtbx";834case kVtrn:835return "vtrn";836case kVtst:837return "vtst";838case kVuzp:839return "vuzp";840case kVzip:841return "vzip";842case kYield:843return "yield";844case kUndefInstructionType:845VIXL_UNREACHABLE();846return "";847}848VIXL_UNREACHABLE();849return "";850} // NOLINT(readability/fn_size)851// End of generated code.852853} // namespace aarch32854} // namespace vixl855856857