Path: blob/master/test/hotspot/gtest/aarch64/asmtest.out.h
41145 views
// BEGIN Generated code -- do not edit1// Generated by aarch64-asmtest.py2Label back, forth;3__ bind(back);45// ArithOp6__ add(r26, r23, r13, Assembler::LSL, 32); // add x26, x23, x13, LSL #327__ sub(r12, r24, r9, Assembler::LSR, 37); // sub x12, x24, x9, LSR #378__ adds(r28, r15, r8, Assembler::ASR, 39); // adds x28, x15, x8, ASR #399__ subs(r7, r28, r30, Assembler::ASR, 57); // subs x7, x28, x30, ASR #5710__ addw(r9, r22, r27, Assembler::ASR, 15); // add w9, w22, w27, ASR #1511__ subw(r3, r13, r17, Assembler::ASR, 30); // sub w3, w13, w17, ASR #3012__ addsw(r14, r26, r8, Assembler::ASR, 17); // adds w14, w26, w8, ASR #1713__ subsw(r0, r22, r12, Assembler::ASR, 21); // subs w0, w22, w12, ASR #2114__ andr(r0, r15, r26, Assembler::LSL, 20); // and x0, x15, x26, LSL #2015__ orr(r26, r5, r17, Assembler::LSL, 61); // orr x26, x5, x17, LSL #6116__ eor(r24, r13, r2, Assembler::LSL, 32); // eor x24, x13, x2, LSL #3217__ ands(r28, r3, r17, Assembler::ASR, 35); // ands x28, x3, x17, ASR #3518__ andw(r25, r16, r29, Assembler::LSR, 18); // and w25, w16, w29, LSR #1819__ orrw(r13, r17, r11, Assembler::LSR, 9); // orr w13, w17, w11, LSR #920__ eorw(r5, r5, r17, Assembler::LSR, 15); // eor w5, w5, w17, LSR #1521__ andsw(r2, r23, r27, Assembler::ASR, 26); // ands w2, w23, w27, ASR #2622__ bic(r27, r28, r16, Assembler::LSR, 45); // bic x27, x28, x16, LSR #4523__ orn(r8, r25, r26, Assembler::ASR, 37); // orn x8, x25, x26, ASR #3724__ eon(r29, r17, r13, Assembler::LSR, 63); // eon x29, x17, x13, LSR #6325__ bics(r28, r24, r2, Assembler::LSR, 31); // bics x28, x24, x2, LSR #3126__ bicw(r19, r26, r7, Assembler::ASR, 3); // bic w19, w26, w7, ASR #327__ ornw(r6, r24, r10, Assembler::ASR, 3); // orn w6, w24, w10, ASR #328__ eonw(r4, r21, r1, Assembler::LSR, 29); // eon w4, w21, w1, LSR #2929__ bicsw(r16, r21, r0, Assembler::LSR, 19); // bics w16, w21, w0, LSR #193031// AddSubImmOp32__ addw(r17, r12, 379u); // add w17, w12, #37933__ addsw(r30, r1, 22u); // adds w30, w1, #2234__ subw(r29, r5, 126u); // sub w29, w5, #12635__ subsw(r6, r24, 960u); // subs w6, w24, #96036__ add(r0, r13, 104u); // add x0, x13, #10437__ adds(r8, r6, 663u); // adds x8, x6, #66338__ sub(r10, r5, 516u); // sub x10, x5, #51639__ subs(r1, r3, 1012u); // subs x1, x3, #10124041// LogicalImmOp42__ andw(r6, r11, 4294049777ull); // and w6, w11, #0xfff1fff143__ orrw(r28, r5, 4294966791ull); // orr w28, w5, #0xfffffe0744__ eorw(r1, r20, 134217216ull); // eor w1, w20, #0x7fffe0045__ andsw(r7, r17, 1048576ull); // ands w7, w17, #0x10000046__ andr(r14, r12, 9223372036854775808ull); // and x14, x12, #0x800000000000000047__ orr(r9, r11, 562675075514368ull); // orr x9, x11, #0x1ffc00000000048__ eor(r17, r0, 18014398509481728ull); // eor x17, x0, #0x3fffffffffff0049__ ands(r1, r8, 18446744073705357315ull); // ands x1, x8, #0xffffffffffc000035051// AbsOp52__ b(__ pc()); // b .53__ b(back); // b back54__ b(forth); // b forth55__ bl(__ pc()); // bl .56__ bl(back); // bl back57__ bl(forth); // bl forth5859// RegAndAbsOp60__ cbzw(r10, __ pc()); // cbz w10, .61__ cbzw(r10, back); // cbz w10, back62__ cbzw(r10, forth); // cbz w10, forth63__ cbnzw(r8, __ pc()); // cbnz w8, .64__ cbnzw(r8, back); // cbnz w8, back65__ cbnzw(r8, forth); // cbnz w8, forth66__ cbz(r11, __ pc()); // cbz x11, .67__ cbz(r11, back); // cbz x11, back68__ cbz(r11, forth); // cbz x11, forth69__ cbnz(r29, __ pc()); // cbnz x29, .70__ cbnz(r29, back); // cbnz x29, back71__ cbnz(r29, forth); // cbnz x29, forth72__ adr(r19, __ pc()); // adr x19, .73__ adr(r19, back); // adr x19, back74__ adr(r19, forth); // adr x19, forth75__ _adrp(r19, __ pc()); // adrp x19, .7677// RegImmAbsOp78__ tbz(r22, 6, __ pc()); // tbz x22, #6, .79__ tbz(r22, 6, back); // tbz x22, #6, back80__ tbz(r22, 6, forth); // tbz x22, #6, forth81__ tbnz(r12, 11, __ pc()); // tbnz x12, #11, .82__ tbnz(r12, 11, back); // tbnz x12, #11, back83__ tbnz(r12, 11, forth); // tbnz x12, #11, forth8485// MoveWideImmOp86__ movnw(r0, 6301, 0); // movn w0, #6301, lsl 087__ movzw(r7, 20886, 0); // movz w7, #20886, lsl 088__ movkw(r27, 18617, 0); // movk w27, #18617, lsl 089__ movn(r12, 22998, 16); // movn x12, #22998, lsl 1690__ movz(r20, 1532, 16); // movz x20, #1532, lsl 1691__ movk(r8, 5167, 32); // movk x8, #5167, lsl 329293// BitfieldOp94__ sbfm(r15, r17, 24, 28); // sbfm x15, x17, #24, #2895__ bfmw(r15, r9, 14, 25); // bfm w15, w9, #14, #2596__ ubfmw(r27, r25, 6, 31); // ubfm w27, w25, #6, #3197__ sbfm(r19, r2, 23, 31); // sbfm x19, x2, #23, #3198__ bfm(r12, r21, 10, 6); // bfm x12, x21, #10, #699__ ubfm(r22, r0, 26, 16); // ubfm x22, x0, #26, #16100101// ExtractOp102__ extrw(r3, r3, r20, 27); // extr w3, w3, w20, #27103__ extr(r8, r30, r3, 54); // extr x8, x30, x3, #54104105// CondBranchOp106__ br(Assembler::EQ, __ pc()); // b.EQ .107__ br(Assembler::EQ, back); // b.EQ back108__ br(Assembler::EQ, forth); // b.EQ forth109__ br(Assembler::NE, __ pc()); // b.NE .110__ br(Assembler::NE, back); // b.NE back111__ br(Assembler::NE, forth); // b.NE forth112__ br(Assembler::HS, __ pc()); // b.HS .113__ br(Assembler::HS, back); // b.HS back114__ br(Assembler::HS, forth); // b.HS forth115__ br(Assembler::CS, __ pc()); // b.CS .116__ br(Assembler::CS, back); // b.CS back117__ br(Assembler::CS, forth); // b.CS forth118__ br(Assembler::LO, __ pc()); // b.LO .119__ br(Assembler::LO, back); // b.LO back120__ br(Assembler::LO, forth); // b.LO forth121__ br(Assembler::CC, __ pc()); // b.CC .122__ br(Assembler::CC, back); // b.CC back123__ br(Assembler::CC, forth); // b.CC forth124__ br(Assembler::MI, __ pc()); // b.MI .125__ br(Assembler::MI, back); // b.MI back126__ br(Assembler::MI, forth); // b.MI forth127__ br(Assembler::PL, __ pc()); // b.PL .128__ br(Assembler::PL, back); // b.PL back129__ br(Assembler::PL, forth); // b.PL forth130__ br(Assembler::VS, __ pc()); // b.VS .131__ br(Assembler::VS, back); // b.VS back132__ br(Assembler::VS, forth); // b.VS forth133__ br(Assembler::VC, __ pc()); // b.VC .134__ br(Assembler::VC, back); // b.VC back135__ br(Assembler::VC, forth); // b.VC forth136__ br(Assembler::HI, __ pc()); // b.HI .137__ br(Assembler::HI, back); // b.HI back138__ br(Assembler::HI, forth); // b.HI forth139__ br(Assembler::LS, __ pc()); // b.LS .140__ br(Assembler::LS, back); // b.LS back141__ br(Assembler::LS, forth); // b.LS forth142__ br(Assembler::GE, __ pc()); // b.GE .143__ br(Assembler::GE, back); // b.GE back144__ br(Assembler::GE, forth); // b.GE forth145__ br(Assembler::LT, __ pc()); // b.LT .146__ br(Assembler::LT, back); // b.LT back147__ br(Assembler::LT, forth); // b.LT forth148__ br(Assembler::GT, __ pc()); // b.GT .149__ br(Assembler::GT, back); // b.GT back150__ br(Assembler::GT, forth); // b.GT forth151__ br(Assembler::LE, __ pc()); // b.LE .152__ br(Assembler::LE, back); // b.LE back153__ br(Assembler::LE, forth); // b.LE forth154__ br(Assembler::AL, __ pc()); // b.AL .155__ br(Assembler::AL, back); // b.AL back156__ br(Assembler::AL, forth); // b.AL forth157__ br(Assembler::NV, __ pc()); // b.NV .158__ br(Assembler::NV, back); // b.NV back159__ br(Assembler::NV, forth); // b.NV forth160161// ImmOp162__ svc(12999); // svc #12999163__ hvc(2665); // hvc #2665164__ smc(9002); // smc #9002165__ brk(14843); // brk #14843166__ hlt(25964); // hlt #25964167168// Op169__ nop(); // nop170__ eret(); // eret171__ drps(); // drps172__ isb(); // isb173174// SystemOp175__ dsb(Assembler::ST); // dsb ST176__ dmb(Assembler::OSHST); // dmb OSHST177178// OneRegOp179__ br(r16); // br x16180__ blr(r20); // blr x20181182// LoadStoreExclusiveOp183__ stxr(r10, r27, r8); // stxr w10, x27, [x8]184__ stlxr(r0, r1, r21); // stlxr w0, x1, [x21]185__ ldxr(r17, r29); // ldxr x17, [x29]186__ ldaxr(r29, r28); // ldaxr x29, [x28]187__ stlr(r1, r23); // stlr x1, [x23]188__ ldar(r21, r20); // ldar x21, [x20]189190// LoadStoreExclusiveOp191__ stxrw(r22, r27, r19); // stxr w22, w27, [x19]192__ stlxrw(r11, r16, r6); // stlxr w11, w16, [x6]193__ ldxrw(r17, r0); // ldxr w17, [x0]194__ ldaxrw(r4, r10); // ldaxr w4, [x10]195__ stlrw(r24, r22); // stlr w24, [x22]196__ ldarw(r10, r19); // ldar w10, [x19]197198// LoadStoreExclusiveOp199__ stxrh(r1, r5, r30); // stxrh w1, w5, [x30]200__ stlxrh(r8, r12, r17); // stlxrh w8, w12, [x17]201__ ldxrh(r9, r14); // ldxrh w9, [x14]202__ ldaxrh(r7, r1); // ldaxrh w7, [x1]203__ stlrh(r5, r16); // stlrh w5, [x16]204__ ldarh(r2, r12); // ldarh w2, [x12]205206// LoadStoreExclusiveOp207__ stxrb(r10, r12, r3); // stxrb w10, w12, [x3]208__ stlxrb(r28, r14, r26); // stlxrb w28, w14, [x26]209__ ldxrb(r30, r10); // ldxrb w30, [x10]210__ ldaxrb(r14, r21); // ldaxrb w14, [x21]211__ stlrb(r13, r9); // stlrb w13, [x9]212__ ldarb(r22, r27); // ldarb w22, [x27]213214// LoadStoreExclusiveOp215__ ldxp(r28, r19, r11); // ldxp x28, x19, [x11]216__ ldaxp(r30, r19, r2); // ldaxp x30, x19, [x2]217__ stxp(r2, r23, r1, r0); // stxp w2, x23, x1, [x0]218__ stlxp(r12, r16, r13, r15); // stlxp w12, x16, x13, [x15]219220// LoadStoreExclusiveOp221__ ldxpw(r17, r21, r13); // ldxp w17, w21, [x13]222__ ldaxpw(r11, r30, r8); // ldaxp w11, w30, [x8]223__ stxpw(r24, r13, r11, r1); // stxp w24, w13, w11, [x1]224__ stlxpw(r26, r21, r27, r13); // stlxp w26, w21, w27, [x13]225226// base_plus_unscaled_offset227// LoadStoreOp228__ str(r11, Address(r20, -103)); // str x11, [x20, -103]229__ strw(r28, Address(r16, 62)); // str w28, [x16, 62]230__ strb(r27, Address(r9, -9)); // strb w27, [x9, -9]231__ strh(r2, Address(r25, -50)); // strh w2, [x25, -50]232__ ldr(r4, Address(r2, -241)); // ldr x4, [x2, -241]233__ ldrw(r30, Address(r20, -31)); // ldr w30, [x20, -31]234__ ldrb(r17, Address(r23, -23)); // ldrb w17, [x23, -23]235__ ldrh(r29, Address(r26, -1)); // ldrh w29, [x26, -1]236__ ldrsb(r1, Address(r9, 6)); // ldrsb x1, [x9, 6]237__ ldrsh(r11, Address(r12, 19)); // ldrsh x11, [x12, 19]238__ ldrshw(r11, Address(r1, -50)); // ldrsh w11, [x1, -50]239__ ldrsw(r19, Address(r24, 41)); // ldrsw x19, [x24, 41]240__ ldrd(v24, Address(r24, 95)); // ldr d24, [x24, 95]241__ ldrs(v15, Address(r5, -43)); // ldr s15, [x5, -43]242__ strd(v21, Address(r27, 1)); // str d21, [x27, 1]243__ strs(v23, Address(r13, -107)); // str s23, [x13, -107]244245// pre246// LoadStoreOp247__ str(r10, Address(__ pre(r0, 8))); // str x10, [x0, 8]!248__ strw(r3, Address(__ pre(r0, 29))); // str w3, [x0, 29]!249__ strb(r10, Address(__ pre(r14, 9))); // strb w10, [x14, 9]!250__ strh(r29, Address(__ pre(r25, -3))); // strh w29, [x25, -3]!251__ ldr(r12, Address(__ pre(r16, -144))); // ldr x12, [x16, -144]!252__ ldrw(r12, Address(__ pre(r22, -6))); // ldr w12, [x22, -6]!253__ ldrb(r13, Address(__ pre(r11, -10))); // ldrb w13, [x11, -10]!254__ ldrh(r0, Address(__ pre(r21, -21))); // ldrh w0, [x21, -21]!255__ ldrsb(r23, Address(__ pre(r6, 4))); // ldrsb x23, [x6, 4]!256__ ldrsh(r3, Address(__ pre(r7, -53))); // ldrsh x3, [x7, -53]!257__ ldrshw(r28, Address(__ pre(r4, -7))); // ldrsh w28, [x4, -7]!258__ ldrsw(r24, Address(__ pre(r8, -18))); // ldrsw x24, [x8, -18]!259__ ldrd(v14, Address(__ pre(r11, 12))); // ldr d14, [x11, 12]!260__ ldrs(v19, Address(__ pre(r12, -67))); // ldr s19, [x12, -67]!261__ strd(v20, Address(__ pre(r0, -253))); // str d20, [x0, -253]!262__ strs(v8, Address(__ pre(r0, 64))); // str s8, [x0, 64]!263264// post265// LoadStoreOp266__ str(r3, Address(__ post(r28, -94))); // str x3, [x28], -94267__ strw(r11, Address(__ post(r7, -54))); // str w11, [x7], -54268__ strb(r27, Address(__ post(r10, -24))); // strb w27, [x10], -24269__ strh(r6, Address(__ post(r7, 27))); // strh w6, [x7], 27270__ ldr(r13, Address(__ post(r10, -202))); // ldr x13, [x10], -202271__ ldrw(r15, Address(__ post(r5, -41))); // ldr w15, [x5], -41272__ ldrb(r2, Address(__ post(r13, 9))); // ldrb w2, [x13], 9273__ ldrh(r28, Address(__ post(r13, -20))); // ldrh w28, [x13], -20274__ ldrsb(r9, Address(__ post(r13, -31))); // ldrsb x9, [x13], -31275__ ldrsh(r3, Address(__ post(r24, -36))); // ldrsh x3, [x24], -36276__ ldrshw(r20, Address(__ post(r3, 6))); // ldrsh w20, [x3], 6277__ ldrsw(r7, Address(__ post(r19, -1))); // ldrsw x7, [x19], -1278__ ldrd(v30, Address(__ post(r8, -130))); // ldr d30, [x8], -130279__ ldrs(v25, Address(__ post(r15, 21))); // ldr s25, [x15], 21280__ strd(v14, Address(__ post(r23, 90))); // str d14, [x23], 90281__ strs(v8, Address(__ post(r0, -33))); // str s8, [x0], -33282283// base_plus_reg284// LoadStoreOp285__ str(r10, Address(r17, r21, Address::sxtw(3))); // str x10, [x17, w21, sxtw #3]286__ strw(r4, Address(r13, r22, Address::sxtw(2))); // str w4, [x13, w22, sxtw #2]287__ strb(r13, Address(r0, r19, Address::uxtw(0))); // strb w13, [x0, w19, uxtw #0]288__ strh(r12, Address(r27, r6, Address::sxtw(0))); // strh w12, [x27, w6, sxtw #0]289__ ldr(r0, Address(r8, r16, Address::lsl(0))); // ldr x0, [x8, x16, lsl #0]290__ ldrw(r0, Address(r4, r26, Address::sxtx(0))); // ldr w0, [x4, x26, sxtx #0]291__ ldrb(r14, Address(r25, r5, Address::sxtw(0))); // ldrb w14, [x25, w5, sxtw #0]292__ ldrh(r9, Address(r4, r17, Address::uxtw(0))); // ldrh w9, [x4, w17, uxtw #0]293__ ldrsb(r27, Address(r4, r7, Address::lsl(0))); // ldrsb x27, [x4, x7, lsl #0]294__ ldrsh(r15, Address(r17, r30, Address::sxtw(0))); // ldrsh x15, [x17, w30, sxtw #0]295__ ldrshw(r16, Address(r0, r22, Address::sxtw(0))); // ldrsh w16, [x0, w22, sxtw #0]296__ ldrsw(r22, Address(r10, r30, Address::sxtx(2))); // ldrsw x22, [x10, x30, sxtx #2]297__ ldrd(v29, Address(r21, r10, Address::sxtx(3))); // ldr d29, [x21, x10, sxtx #3]298__ ldrs(v3, Address(r11, r19, Address::uxtw(0))); // ldr s3, [x11, w19, uxtw #0]299__ strd(v13, Address(r28, r29, Address::uxtw(3))); // str d13, [x28, w29, uxtw #3]300__ strs(v23, Address(r29, r5, Address::sxtx(2))); // str s23, [x29, x5, sxtx #2]301302// base_plus_scaled_offset303// LoadStoreOp304__ str(r5, Address(r8, 12600)); // str x5, [x8, 12600]305__ strw(r29, Address(r24, 7880)); // str w29, [x24, 7880]306__ strb(r19, Address(r17, 1566)); // strb w19, [x17, 1566]307__ strh(r13, Address(r19, 3984)); // strh w13, [x19, 3984]308__ ldr(r19, Address(r23, 13632)); // ldr x19, [x23, 13632]309__ ldrw(r23, Address(r29, 6264)); // ldr w23, [x29, 6264]310__ ldrb(r22, Address(r11, 2012)); // ldrb w22, [x11, 2012]311__ ldrh(r3, Address(r10, 3784)); // ldrh w3, [x10, 3784]312__ ldrsb(r8, Address(r16, 1951)); // ldrsb x8, [x16, 1951]313__ ldrsh(r23, Address(r20, 3346)); // ldrsh x23, [x20, 3346]314__ ldrshw(r2, Address(r1, 3994)); // ldrsh w2, [x1, 3994]315__ ldrsw(r4, Address(r17, 7204)); // ldrsw x4, [x17, 7204]316__ ldrd(v20, Address(r27, 14400)); // ldr d20, [x27, 14400]317__ ldrs(v25, Address(r14, 8096)); // ldr s25, [x14, 8096]318__ strd(v26, Address(r10, 15024)); // str d26, [x10, 15024]319__ strs(v9, Address(r3, 6936)); // str s9, [x3, 6936]320321// pcrel322// LoadStoreOp323__ ldr(r27, forth); // ldr x27, forth324__ ldrw(r11, __ pc()); // ldr w11, .325326// LoadStoreOp327__ prfm(Address(r3, -187)); // prfm PLDL1KEEP, [x3, -187]328329// LoadStoreOp330__ prfm(__ pc()); // prfm PLDL1KEEP, .331332// LoadStoreOp333__ prfm(Address(r29, r14, Address::lsl(0))); // prfm PLDL1KEEP, [x29, x14, lsl #0]334335// LoadStoreOp336__ prfm(Address(r4, 13312)); // prfm PLDL1KEEP, [x4, 13312]337338// AddSubCarryOp339__ adcw(r21, r1, r7); // adc w21, w1, w7340__ adcsw(r8, r5, r7); // adcs w8, w5, w7341__ sbcw(r7, r27, r14); // sbc w7, w27, w14342__ sbcsw(r27, r4, r17); // sbcs w27, w4, w17343__ adc(r0, r28, r0); // adc x0, x28, x0344__ adcs(r12, r24, r30); // adcs x12, x24, x30345__ sbc(r0, r25, r15); // sbc x0, x25, x15346__ sbcs(r1, r24, r3); // sbcs x1, x24, x3347348// AddSubExtendedOp349__ addw(r17, r24, r20, ext::uxtb, 2); // add w17, w24, w20, uxtb #2350__ addsw(r13, r28, r10, ext::uxth, 1); // adds w13, w28, w10, uxth #1351__ sub(r15, r16, r2, ext::sxth, 2); // sub x15, x16, x2, sxth #2352__ subsw(r29, r13, r13, ext::uxth, 2); // subs w29, w13, w13, uxth #2353__ add(r12, r20, r12, ext::sxtw, 3); // add x12, x20, x12, sxtw #3354__ adds(r30, r27, r11, ext::sxtb, 1); // adds x30, x27, x11, sxtb #1355__ sub(r14, r7, r1, ext::sxtw, 2); // sub x14, x7, x1, sxtw #2356__ subs(r29, r3, r27, ext::sxth, 1); // subs x29, x3, x27, sxth #1357358// ConditionalCompareOp359__ ccmnw(r0, r13, 14u, Assembler::MI); // ccmn w0, w13, #14, MI360__ ccmpw(r22, r17, 6u, Assembler::CC); // ccmp w22, w17, #6, CC361__ ccmn(r17, r30, 14u, Assembler::VS); // ccmn x17, x30, #14, VS362__ ccmp(r10, r19, 12u, Assembler::HI); // ccmp x10, x19, #12, HI363364// ConditionalCompareImmedOp365__ ccmnw(r6, 18, 2, Assembler::LE); // ccmn w6, #18, #2, LE366__ ccmpw(r9, 13, 4, Assembler::HI); // ccmp w9, #13, #4, HI367__ ccmn(r21, 11, 11, Assembler::LO); // ccmn x21, #11, #11, LO368__ ccmp(r4, 13, 2, Assembler::VC); // ccmp x4, #13, #2, VC369370// ConditionalSelectOp371__ cselw(r12, r2, r22, Assembler::HI); // csel w12, w2, w22, HI372__ csincw(r24, r16, r17, Assembler::HS); // csinc w24, w16, w17, HS373__ csinvw(r6, r7, r16, Assembler::LT); // csinv w6, w7, w16, LT374__ csnegw(r11, r27, r22, Assembler::LS); // csneg w11, w27, w22, LS375__ csel(r10, r3, r29, Assembler::LT); // csel x10, x3, x29, LT376__ csinc(r12, r26, r27, Assembler::CC); // csinc x12, x26, x27, CC377__ csinv(r15, r10, r21, Assembler::GT); // csinv x15, x10, x21, GT378__ csneg(r30, r23, r9, Assembler::GT); // csneg x30, x23, x9, GT379380// TwoRegOp381__ rbitw(r30, r10); // rbit w30, w10382__ rev16w(r29, r15); // rev16 w29, w15383__ revw(r29, r30); // rev w29, w30384__ clzw(r25, r21); // clz w25, w21385__ clsw(r4, r0); // cls w4, w0386__ rbit(r17, r21); // rbit x17, x21387__ rev16(r29, r16); // rev16 x29, x16388__ rev32(r21, r20); // rev32 x21, x20389__ rev(r6, r19); // rev x6, x19390__ clz(r30, r3); // clz x30, x3391__ cls(r21, r19); // cls x21, x19392393// ThreeRegOp394__ udivw(r11, r24, r0); // udiv w11, w24, w0395__ sdivw(r27, r25, r14); // sdiv w27, w25, w14396__ lslvw(r3, r14, r17); // lslv w3, w14, w17397__ lsrvw(r7, r15, r24); // lsrv w7, w15, w24398__ asrvw(r28, r17, r25); // asrv w28, w17, w25399__ rorvw(r2, r26, r28); // rorv w2, w26, w28400__ udiv(r5, r25, r26); // udiv x5, x25, x26401__ sdiv(r27, r16, r17); // sdiv x27, x16, x17402__ lslv(r6, r21, r12); // lslv x6, x21, x12403__ lsrv(r0, r4, r12); // lsrv x0, x4, x12404__ asrv(r27, r17, r28); // asrv x27, x17, x28405__ rorv(r28, r2, r17); // rorv x28, x2, x17406__ umulh(r10, r15, r14); // umulh x10, x15, x14407__ smulh(r14, r3, r25); // smulh x14, x3, x25408409// FourRegMulOp410__ maddw(r15, r19, r14, r5); // madd w15, w19, w14, w5411__ msubw(r16, r4, r26, r25); // msub w16, w4, w26, w25412__ madd(r4, r2, r2, r12); // madd x4, x2, x2, x12413__ msub(r29, r17, r8, r7); // msub x29, x17, x8, x7414__ smaddl(r3, r4, r25, r4); // smaddl x3, w4, w25, x4415__ smsubl(r26, r25, r4, r17); // smsubl x26, w25, w4, x17416__ umaddl(r0, r26, r17, r23); // umaddl x0, w26, w17, x23417__ umsubl(r15, r21, r28, r17); // umsubl x15, w21, w28, x17418419// ThreeRegFloatOp420__ fabds(v27, v10, v3); // fabd s27, s10, s3421__ fmuls(v0, v7, v25); // fmul s0, s7, s25422__ fdivs(v9, v6, v15); // fdiv s9, s6, s15423__ fadds(v29, v15, v10); // fadd s29, s15, s10424__ fsubs(v2, v17, v7); // fsub s2, s17, s7425__ fabdd(v11, v11, v23); // fabd d11, d11, d23426__ fmuld(v7, v29, v23); // fmul d7, d29, d23427__ fdivd(v14, v27, v11); // fdiv d14, d27, d11428__ faddd(v11, v4, v24); // fadd d11, d4, d24429__ fsubd(v12, v15, v14); // fsub d12, d15, d14430431// FourRegFloatOp432__ fmadds(v20, v11, v28, v13); // fmadd s20, s11, s28, s13433__ fmsubs(v11, v12, v23, v30); // fmsub s11, s12, s23, s30434__ fnmadds(v26, v14, v9, v13); // fnmadd s26, s14, s9, s13435__ fnmadds(v10, v7, v5, v29); // fnmadd s10, s7, s5, s29436__ fmaddd(v15, v3, v11, v12); // fmadd d15, d3, d11, d12437__ fmsubd(v15, v30, v30, v17); // fmsub d15, d30, d30, d17438__ fnmaddd(v19, v20, v15, v15); // fnmadd d19, d20, d15, d15439__ fnmaddd(v9, v21, v2, v9); // fnmadd d9, d21, d2, d9440441// TwoRegFloatOp442__ fmovs(v27, v7); // fmov s27, s7443__ fabss(v29, v30); // fabs s29, s30444__ fnegs(v17, v1); // fneg s17, s1445__ fsqrts(v2, v6); // fsqrt s2, s6446__ fcvts(v10, v3); // fcvt d10, s3447__ fmovd(v24, v11); // fmov d24, d11448__ fabsd(v7, v1); // fabs d7, d1449__ fnegd(v11, v0); // fneg d11, d0450__ fsqrtd(v3, v17); // fsqrt d3, d17451__ fcvtd(v28, v6); // fcvt s28, d6452453// FloatConvertOp454__ fcvtzsw(r22, v6); // fcvtzs w22, s6455__ fcvtzs(r0, v27); // fcvtzs x0, s27456__ fcvtzdw(r26, v2); // fcvtzs w26, d2457__ fcvtzd(r5, v7); // fcvtzs x5, d7458__ scvtfws(v28, r11); // scvtf s28, w11459__ scvtfs(v25, r13); // scvtf s25, x13460__ scvtfwd(v11, r23); // scvtf d11, w23461__ scvtfd(v19, r8); // scvtf d19, x8462__ fmovs(r17, v21); // fmov w17, s21463__ fmovd(r25, v20); // fmov x25, d20464__ fmovs(v19, r17); // fmov s19, w17465__ fmovd(v2, r29); // fmov d2, x29466467// TwoRegFloatOp468__ fcmps(v22, v8); // fcmp s22, s8469__ fcmpd(v21, v19); // fcmp d21, d19470__ fcmps(v20, 0.0); // fcmp s20, #0.0471__ fcmpd(v11, 0.0); // fcmp d11, #0.0472473// LoadStorePairOp474__ stpw(r20, r6, Address(r15, -32)); // stp w20, w6, [x15, #-32]475__ ldpw(r27, r14, Address(r3, -208)); // ldp w27, w14, [x3, #-208]476__ ldpsw(r16, r10, Address(r11, -80)); // ldpsw x16, x10, [x11, #-80]477__ stp(r7, r7, Address(r14, 64)); // stp x7, x7, [x14, #64]478__ ldp(r12, r23, Address(r0, 112)); // ldp x12, x23, [x0, #112]479480// LoadStorePairOp481__ stpw(r13, r7, Address(__ pre(r6, -80))); // stp w13, w7, [x6, #-80]!482__ ldpw(r30, r15, Address(__ pre(r2, -144))); // ldp w30, w15, [x2, #-144]!483__ ldpsw(r4, r1, Address(__ pre(r27, -144))); // ldpsw x4, x1, [x27, #-144]!484__ stp(r23, r14, Address(__ pre(r11, 64))); // stp x23, x14, [x11, #64]!485__ ldp(r29, r27, Address(__ pre(r21, -192))); // ldp x29, x27, [x21, #-192]!486487// LoadStorePairOp488__ stpw(r22, r5, Address(__ post(r21, -48))); // stp w22, w5, [x21], #-48489__ ldpw(r27, r17, Address(__ post(r6, -32))); // ldp w27, w17, [x6], #-32490__ ldpsw(r16, r5, Address(__ post(r1, -80))); // ldpsw x16, x5, [x1], #-80491__ stp(r13, r20, Address(__ post(r22, -208))); // stp x13, x20, [x22], #-208492__ ldp(r30, r27, Address(__ post(r10, 80))); // ldp x30, x27, [x10], #80493494// LoadStorePairOp495__ stnpw(r5, r17, Address(r11, 16)); // stnp w5, w17, [x11, #16]496__ ldnpw(r14, r4, Address(r26, -96)); // ldnp w14, w4, [x26, #-96]497__ stnp(r23, r29, Address(r12, 32)); // stnp x23, x29, [x12, #32]498__ ldnp(r0, r6, Address(r21, -80)); // ldnp x0, x6, [x21, #-80]499500// LdStNEONOp501__ ld1(v15, __ T8B, Address(r26)); // ld1 {v15.8B}, [x26]502__ ld1(v23, v24, __ T16B, Address(__ post(r11, 32))); // ld1 {v23.16B, v24.16B}, [x11], 32503__ ld1(v8, v9, v10, __ T1D, Address(__ post(r23, r7))); // ld1 {v8.1D, v9.1D, v10.1D}, [x23], x7504__ ld1(v19, v20, v21, v22, __ T8H, Address(__ post(r25, 64))); // ld1 {v19.8H, v20.8H, v21.8H, v22.8H}, [x25], 64505__ ld1r(v29, __ T8B, Address(r17)); // ld1r {v29.8B}, [x17]506__ ld1r(v24, __ T4S, Address(__ post(r23, 4))); // ld1r {v24.4S}, [x23], 4507__ ld1r(v10, __ T1D, Address(__ post(r5, r25))); // ld1r {v10.1D}, [x5], x25508__ ld2(v17, v18, __ T2D, Address(r10)); // ld2 {v17.2D, v18.2D}, [x10]509__ ld2(v12, v13, __ T4H, Address(__ post(r15, 16))); // ld2 {v12.4H, v13.4H}, [x15], 16510__ ld2r(v25, v26, __ T16B, Address(r17)); // ld2r {v25.16B, v26.16B}, [x17]511__ ld2r(v1, v2, __ T2S, Address(__ post(r30, 8))); // ld2r {v1.2S, v2.2S}, [x30], 8512__ ld2r(v16, v17, __ T2D, Address(__ post(r17, r9))); // ld2r {v16.2D, v17.2D}, [x17], x9513__ ld3(v25, v26, v27, __ T4S, Address(__ post(r12, r2))); // ld3 {v25.4S, v26.4S, v27.4S}, [x12], x2514__ ld3(v26, v27, v28, __ T2S, Address(r19)); // ld3 {v26.2S, v27.2S, v28.2S}, [x19]515__ ld3r(v15, v16, v17, __ T8H, Address(r21)); // ld3r {v15.8H, v16.8H, v17.8H}, [x21]516__ ld3r(v25, v26, v27, __ T4S, Address(__ post(r13, 12))); // ld3r {v25.4S, v26.4S, v27.4S}, [x13], 12517__ ld3r(v14, v15, v16, __ T1D, Address(__ post(r28, r29))); // ld3r {v14.1D, v15.1D, v16.1D}, [x28], x29518__ ld4(v17, v18, v19, v20, __ T8H, Address(__ post(r29, 64))); // ld4 {v17.8H, v18.8H, v19.8H, v20.8H}, [x29], 64519__ ld4(v27, v28, v29, v30, __ T8B, Address(__ post(r7, r0))); // ld4 {v27.8B, v28.8B, v29.8B, v30.8B}, [x7], x0520__ ld4r(v24, v25, v26, v27, __ T8B, Address(r17)); // ld4r {v24.8B, v25.8B, v26.8B, v27.8B}, [x17]521__ ld4r(v0, v1, v2, v3, __ T4H, Address(__ post(r26, 8))); // ld4r {v0.4H, v1.4H, v2.4H, v3.4H}, [x26], 8522__ ld4r(v12, v13, v14, v15, __ T2S, Address(__ post(r25, r2))); // ld4r {v12.2S, v13.2S, v14.2S, v15.2S}, [x25], x2523524// NEONReduceInstruction525__ addv(v22, __ T8B, v23); // addv b22, v23.8B526__ addv(v27, __ T16B, v28); // addv b27, v28.16B527__ addv(v4, __ T4H, v5); // addv h4, v5.4H528__ addv(v7, __ T8H, v8); // addv h7, v8.8H529__ addv(v6, __ T4S, v7); // addv s6, v7.4S530__ smaxv(v1, __ T8B, v2); // smaxv b1, v2.8B531__ smaxv(v26, __ T16B, v27); // smaxv b26, v27.16B532__ smaxv(v15, __ T4H, v16); // smaxv h15, v16.4H533__ smaxv(v2, __ T8H, v3); // smaxv h2, v3.8H534__ smaxv(v13, __ T4S, v14); // smaxv s13, v14.4S535__ fmaxv(v13, __ T4S, v14); // fmaxv s13, v14.4S536__ sminv(v24, __ T8B, v25); // sminv b24, v25.8B537__ uminv(v23, __ T8B, v24); // uminv b23, v24.8B538__ sminv(v4, __ T16B, v5); // sminv b4, v5.16B539__ uminv(v19, __ T16B, v20); // uminv b19, v20.16B540__ sminv(v15, __ T4H, v16); // sminv h15, v16.4H541__ uminv(v0, __ T4H, v1); // uminv h0, v1.4H542__ sminv(v4, __ T8H, v5); // sminv h4, v5.8H543__ uminv(v20, __ T8H, v21); // uminv h20, v21.8H544__ sminv(v11, __ T4S, v12); // sminv s11, v12.4S545__ uminv(v29, __ T4S, v30); // uminv s29, v30.4S546__ fminv(v15, __ T4S, v16); // fminv s15, v16.4S547__ fmaxp(v21, v22, __ S); // fmaxp s21, v22.2S548__ fmaxp(v4, v5, __ D); // fmaxp d4, v5.2D549__ fminp(v14, v15, __ S); // fminp s14, v15.2S550__ fminp(v22, v23, __ D); // fminp d22, v23.2D551552// TwoRegNEONOp553__ absr(v25, __ T8B, v26); // abs v25.8B, v26.8B554__ absr(v6, __ T16B, v7); // abs v6.16B, v7.16B555__ absr(v12, __ T4H, v13); // abs v12.4H, v13.4H556__ absr(v14, __ T8H, v15); // abs v14.8H, v15.8H557__ absr(v13, __ T2S, v14); // abs v13.2S, v14.2S558__ absr(v14, __ T4S, v15); // abs v14.4S, v15.4S559__ absr(v9, __ T2D, v10); // abs v9.2D, v10.2D560__ fabs(v25, __ T2S, v26); // fabs v25.2S, v26.2S561__ fabs(v28, __ T4S, v29); // fabs v28.4S, v29.4S562__ fabs(v10, __ T2D, v11); // fabs v10.2D, v11.2D563__ fneg(v19, __ T2S, v20); // fneg v19.2S, v20.2S564__ fneg(v11, __ T4S, v12); // fneg v11.4S, v12.4S565__ fneg(v17, __ T2D, v18); // fneg v17.2D, v18.2D566__ fsqrt(v21, __ T2S, v22); // fsqrt v21.2S, v22.2S567__ fsqrt(v15, __ T4S, v16); // fsqrt v15.4S, v16.4S568__ fsqrt(v20, __ T2D, v21); // fsqrt v20.2D, v21.2D569__ notr(v23, __ T8B, v24); // not v23.8B, v24.8B570__ notr(v26, __ T16B, v27); // not v26.16B, v27.16B571572// ThreeRegNEONOp573__ andr(v5, __ T8B, v6, v7); // and v5.8B, v6.8B, v7.8B574__ andr(v6, __ T16B, v7, v8); // and v6.16B, v7.16B, v8.16B575__ orr(v15, __ T8B, v16, v17); // orr v15.8B, v16.8B, v17.8B576__ orr(v15, __ T16B, v16, v17); // orr v15.16B, v16.16B, v17.16B577__ eor(v25, __ T8B, v26, v27); // eor v25.8B, v26.8B, v27.8B578__ eor(v16, __ T16B, v17, v18); // eor v16.16B, v17.16B, v18.16B579__ addv(v27, __ T8B, v28, v29); // add v27.8B, v28.8B, v29.8B580__ addv(v24, __ T16B, v25, v26); // add v24.16B, v25.16B, v26.16B581__ addv(v15, __ T4H, v16, v17); // add v15.4H, v16.4H, v17.4H582__ addv(v25, __ T8H, v26, v27); // add v25.8H, v26.8H, v27.8H583__ addv(v14, __ T2S, v15, v16); // add v14.2S, v15.2S, v16.2S584__ addv(v10, __ T4S, v11, v12); // add v10.4S, v11.4S, v12.4S585__ addv(v13, __ T2D, v14, v15); // add v13.2D, v14.2D, v15.2D586__ fadd(v14, __ T2S, v15, v16); // fadd v14.2S, v15.2S, v16.2S587__ fadd(v20, __ T4S, v21, v22); // fadd v20.4S, v21.4S, v22.4S588__ fadd(v1, __ T2D, v2, v3); // fadd v1.2D, v2.2D, v3.2D589__ subv(v22, __ T8B, v23, v24); // sub v22.8B, v23.8B, v24.8B590__ subv(v30, __ T16B, v31, v0); // sub v30.16B, v31.16B, v0.16B591__ subv(v14, __ T4H, v15, v16); // sub v14.4H, v15.4H, v16.4H592__ subv(v2, __ T8H, v3, v4); // sub v2.8H, v3.8H, v4.8H593__ subv(v6, __ T2S, v7, v8); // sub v6.2S, v7.2S, v8.2S594__ subv(v3, __ T4S, v4, v5); // sub v3.4S, v4.4S, v5.4S595__ subv(v7, __ T2D, v8, v9); // sub v7.2D, v8.2D, v9.2D596__ fsub(v24, __ T2S, v25, v26); // fsub v24.2S, v25.2S, v26.2S597__ fsub(v0, __ T4S, v1, v2); // fsub v0.4S, v1.4S, v2.4S598__ fsub(v27, __ T2D, v28, v29); // fsub v27.2D, v28.2D, v29.2D599__ mulv(v29, __ T8B, v30, v31); // mul v29.8B, v30.8B, v31.8B600__ mulv(v5, __ T16B, v6, v7); // mul v5.16B, v6.16B, v7.16B601__ mulv(v5, __ T4H, v6, v7); // mul v5.4H, v6.4H, v7.4H602__ mulv(v29, __ T8H, v30, v31); // mul v29.8H, v30.8H, v31.8H603__ mulv(v11, __ T2S, v12, v13); // mul v11.2S, v12.2S, v13.2S604__ mulv(v25, __ T4S, v26, v27); // mul v25.4S, v26.4S, v27.4S605__ fabd(v0, __ T2S, v1, v2); // fabd v0.2S, v1.2S, v2.2S606__ fabd(v30, __ T4S, v31, v0); // fabd v30.4S, v31.4S, v0.4S607__ fabd(v0, __ T2D, v1, v2); // fabd v0.2D, v1.2D, v2.2D608__ fmul(v17, __ T2S, v18, v19); // fmul v17.2S, v18.2S, v19.2S609__ fmul(v28, __ T4S, v29, v30); // fmul v28.4S, v29.4S, v30.4S610__ fmul(v25, __ T2D, v26, v27); // fmul v25.2D, v26.2D, v27.2D611__ mlav(v9, __ T4H, v10, v11); // mla v9.4H, v10.4H, v11.4H612__ mlav(v25, __ T8H, v26, v27); // mla v25.8H, v26.8H, v27.8H613__ mlav(v12, __ T2S, v13, v14); // mla v12.2S, v13.2S, v14.2S614__ mlav(v15, __ T4S, v16, v17); // mla v15.4S, v16.4S, v17.4S615__ fmla(v11, __ T2S, v12, v13); // fmla v11.2S, v12.2S, v13.2S616__ fmla(v10, __ T4S, v11, v12); // fmla v10.4S, v11.4S, v12.4S617__ fmla(v17, __ T2D, v18, v19); // fmla v17.2D, v18.2D, v19.2D618__ mlsv(v24, __ T4H, v25, v26); // mls v24.4H, v25.4H, v26.4H619__ mlsv(v21, __ T8H, v22, v23); // mls v21.8H, v22.8H, v23.8H620__ mlsv(v23, __ T2S, v24, v25); // mls v23.2S, v24.2S, v25.2S621__ mlsv(v0, __ T4S, v1, v2); // mls v0.4S, v1.4S, v2.4S622__ fmls(v16, __ T2S, v17, v18); // fmls v16.2S, v17.2S, v18.2S623__ fmls(v10, __ T4S, v11, v12); // fmls v10.4S, v11.4S, v12.4S624__ fmls(v6, __ T2D, v7, v8); // fmls v6.2D, v7.2D, v8.2D625__ fdiv(v28, __ T2S, v29, v30); // fdiv v28.2S, v29.2S, v30.2S626__ fdiv(v6, __ T4S, v7, v8); // fdiv v6.4S, v7.4S, v8.4S627__ fdiv(v5, __ T2D, v6, v7); // fdiv v5.2D, v6.2D, v7.2D628__ maxv(v5, __ T8B, v6, v7); // smax v5.8B, v6.8B, v7.8B629__ maxv(v20, __ T16B, v21, v22); // smax v20.16B, v21.16B, v22.16B630__ maxv(v17, __ T4H, v18, v19); // smax v17.4H, v18.4H, v19.4H631__ maxv(v15, __ T8H, v16, v17); // smax v15.8H, v16.8H, v17.8H632__ maxv(v17, __ T2S, v18, v19); // smax v17.2S, v18.2S, v19.2S633__ maxv(v29, __ T4S, v30, v31); // smax v29.4S, v30.4S, v31.4S634__ smaxp(v26, __ T8B, v27, v28); // smaxp v26.8B, v27.8B, v28.8B635__ smaxp(v28, __ T16B, v29, v30); // smaxp v28.16B, v29.16B, v30.16B636__ smaxp(v1, __ T4H, v2, v3); // smaxp v1.4H, v2.4H, v3.4H637__ smaxp(v27, __ T8H, v28, v29); // smaxp v27.8H, v28.8H, v29.8H638__ smaxp(v0, __ T2S, v1, v2); // smaxp v0.2S, v1.2S, v2.2S639__ smaxp(v20, __ T4S, v21, v22); // smaxp v20.4S, v21.4S, v22.4S640__ fmax(v28, __ T2S, v29, v30); // fmax v28.2S, v29.2S, v30.2S641__ fmax(v15, __ T4S, v16, v17); // fmax v15.4S, v16.4S, v17.4S642__ fmax(v12, __ T2D, v13, v14); // fmax v12.2D, v13.2D, v14.2D643__ minv(v10, __ T8B, v11, v12); // smin v10.8B, v11.8B, v12.8B644__ minv(v28, __ T16B, v29, v30); // smin v28.16B, v29.16B, v30.16B645__ minv(v28, __ T4H, v29, v30); // smin v28.4H, v29.4H, v30.4H646__ minv(v19, __ T8H, v20, v21); // smin v19.8H, v20.8H, v21.8H647__ minv(v22, __ T2S, v23, v24); // smin v22.2S, v23.2S, v24.2S648__ minv(v10, __ T4S, v11, v12); // smin v10.4S, v11.4S, v12.4S649__ sminp(v4, __ T8B, v5, v6); // sminp v4.8B, v5.8B, v6.8B650__ sminp(v30, __ T16B, v31, v0); // sminp v30.16B, v31.16B, v0.16B651__ sminp(v20, __ T4H, v21, v22); // sminp v20.4H, v21.4H, v22.4H652__ sminp(v8, __ T8H, v9, v10); // sminp v8.8H, v9.8H, v10.8H653__ sminp(v30, __ T2S, v31, v0); // sminp v30.2S, v31.2S, v0.2S654__ sminp(v17, __ T4S, v18, v19); // sminp v17.4S, v18.4S, v19.4S655__ fmin(v10, __ T2S, v11, v12); // fmin v10.2S, v11.2S, v12.2S656__ fmin(v27, __ T4S, v28, v29); // fmin v27.4S, v28.4S, v29.4S657__ fmin(v2, __ T2D, v3, v4); // fmin v2.2D, v3.2D, v4.2D658__ cmeq(v24, __ T8B, v25, v26); // cmeq v24.8B, v25.8B, v26.8B659__ cmeq(v4, __ T16B, v5, v6); // cmeq v4.16B, v5.16B, v6.16B660__ cmeq(v3, __ T4H, v4, v5); // cmeq v3.4H, v4.4H, v5.4H661__ cmeq(v8, __ T8H, v9, v10); // cmeq v8.8H, v9.8H, v10.8H662__ cmeq(v22, __ T2S, v23, v24); // cmeq v22.2S, v23.2S, v24.2S663__ cmeq(v17, __ T4S, v18, v19); // cmeq v17.4S, v18.4S, v19.4S664__ cmeq(v13, __ T2D, v14, v15); // cmeq v13.2D, v14.2D, v15.2D665__ fcmeq(v4, __ T2S, v5, v6); // fcmeq v4.2S, v5.2S, v6.2S666__ fcmeq(v28, __ T4S, v29, v30); // fcmeq v28.4S, v29.4S, v30.4S667__ fcmeq(v23, __ T2D, v24, v25); // fcmeq v23.2D, v24.2D, v25.2D668__ cmgt(v21, __ T8B, v22, v23); // cmgt v21.8B, v22.8B, v23.8B669__ cmgt(v25, __ T16B, v26, v27); // cmgt v25.16B, v26.16B, v27.16B670__ cmgt(v24, __ T4H, v25, v26); // cmgt v24.4H, v25.4H, v26.4H671__ cmgt(v3, __ T8H, v4, v5); // cmgt v3.8H, v4.8H, v5.8H672__ cmgt(v23, __ T2S, v24, v25); // cmgt v23.2S, v24.2S, v25.2S673__ cmgt(v26, __ T4S, v27, v28); // cmgt v26.4S, v27.4S, v28.4S674__ cmgt(v23, __ T2D, v24, v25); // cmgt v23.2D, v24.2D, v25.2D675__ fcmgt(v14, __ T2S, v15, v16); // fcmgt v14.2S, v15.2S, v16.2S676__ fcmgt(v21, __ T4S, v22, v23); // fcmgt v21.4S, v22.4S, v23.4S677__ fcmgt(v3, __ T2D, v4, v5); // fcmgt v3.2D, v4.2D, v5.2D678__ cmge(v23, __ T8B, v24, v25); // cmge v23.8B, v24.8B, v25.8B679__ cmge(v8, __ T16B, v9, v10); // cmge v8.16B, v9.16B, v10.16B680__ cmge(v24, __ T4H, v25, v26); // cmge v24.4H, v25.4H, v26.4H681__ cmge(v19, __ T8H, v20, v21); // cmge v19.8H, v20.8H, v21.8H682__ cmge(v15, __ T2S, v16, v17); // cmge v15.2S, v16.2S, v17.2S683__ cmge(v16, __ T4S, v17, v18); // cmge v16.4S, v17.4S, v18.4S684__ cmge(v2, __ T2D, v3, v4); // cmge v2.2D, v3.2D, v4.2D685__ fcmge(v1, __ T2S, v2, v3); // fcmge v1.2S, v2.2S, v3.2S686__ fcmge(v0, __ T4S, v1, v2); // fcmge v0.4S, v1.4S, v2.4S687__ fcmge(v24, __ T2D, v25, v26); // fcmge v24.2D, v25.2D, v26.2D688689// SpecialCases690__ ccmn(zr, zr, 3u, Assembler::LE); // ccmn xzr, xzr, #3, LE691__ ccmnw(zr, zr, 5u, Assembler::EQ); // ccmn wzr, wzr, #5, EQ692__ ccmp(zr, 1, 4u, Assembler::NE); // ccmp xzr, 1, #4, NE693__ ccmpw(zr, 2, 2, Assembler::GT); // ccmp wzr, 2, #2, GT694__ extr(zr, zr, zr, 0); // extr xzr, xzr, xzr, 0695__ stlxp(r0, zr, zr, sp); // stlxp w0, xzr, xzr, [sp]696__ stlxpw(r2, zr, zr, r3); // stlxp w2, wzr, wzr, [x3]697__ stxp(r4, zr, zr, r5); // stxp w4, xzr, xzr, [x5]698__ stxpw(r6, zr, zr, sp); // stxp w6, wzr, wzr, [sp]699__ dup(v0, __ T16B, zr); // dup v0.16b, wzr700__ mov(v1, __ T1D, 0, zr); // mov v1.d[0], xzr701__ mov(v1, __ T2S, 1, zr); // mov v1.s[1], wzr702__ mov(v1, __ T4H, 2, zr); // mov v1.h[2], wzr703__ mov(v1, __ T8B, 3, zr); // mov v1.b[3], wzr704__ smov(r0, v1, __ S, 0); // smov x0, v1.s[0]705__ smov(r0, v1, __ H, 1); // smov x0, v1.h[1]706__ smov(r0, v1, __ B, 2); // smov x0, v1.b[2]707__ umov(r0, v1, __ D, 0); // umov x0, v1.d[0]708__ umov(r0, v1, __ S, 1); // umov w0, v1.s[1]709__ umov(r0, v1, __ H, 2); // umov w0, v1.h[2]710__ umov(r0, v1, __ B, 3); // umov w0, v1.b[3]711__ ld1(v31, v0, __ T2D, Address(__ post(r1, r0))); // ld1 {v31.2d, v0.2d}, [x1], x0712__ sve_cpy(z0, __ S, p0, v1); // mov z0.s, p0/m, s1713__ sve_inc(r0, __ S); // incw x0714__ sve_dec(r1, __ H); // dech x1715__ sve_lsl(z0, __ B, z1, 7); // lsl z0.b, z1.b, #7716__ sve_lsl(z21, __ H, z1, 15); // lsl z21.h, z1.h, #15717__ sve_lsl(z0, __ S, z1, 31); // lsl z0.s, z1.s, #31718__ sve_lsl(z0, __ D, z1, 63); // lsl z0.d, z1.d, #63719__ sve_lsr(z0, __ B, z1, 7); // lsr z0.b, z1.b, #7720__ sve_asr(z0, __ H, z11, 15); // asr z0.h, z11.h, #15721__ sve_lsr(z30, __ S, z1, 31); // lsr z30.s, z1.s, #31722__ sve_asr(z0, __ D, z1, 63); // asr z0.d, z1.d, #63723__ sve_addvl(sp, r0, 31); // addvl sp, x0, #31724__ sve_addpl(r1, sp, -32); // addpl x1, sp, -32725__ sve_cntp(r8, __ B, p0, p1); // cntp x8, p0, p1.b726__ sve_dup(z0, __ B, 127); // dup z0.b, 127727__ sve_dup(z1, __ H, -128); // dup z1.h, -128728__ sve_dup(z2, __ S, 32512); // dup z2.s, 32512729__ sve_dup(z7, __ D, -32768); // dup z7.d, -32768730__ sve_ld1b(z0, __ B, p0, Address(sp)); // ld1b {z0.b}, p0/z, [sp]731__ sve_ld1h(z10, __ H, p1, Address(sp, -8)); // ld1h {z10.h}, p1/z, [sp, #-8, MUL VL]732__ sve_ld1w(z20, __ S, p2, Address(r0, 7)); // ld1w {z20.s}, p2/z, [x0, #7, MUL VL]733__ sve_ld1b(z30, __ B, p3, Address(sp, r8)); // ld1b {z30.b}, p3/z, [sp, x8]734__ sve_ld1w(z0, __ S, p4, Address(sp, r28)); // ld1w {z0.s}, p4/z, [sp, x28, LSL #2]735__ sve_ld1d(z11, __ D, p5, Address(r0, r1)); // ld1d {z11.d}, p5/z, [x0, x1, LSL #3]736__ sve_st1b(z22, __ B, p6, Address(sp)); // st1b {z22.b}, p6, [sp]737__ sve_st1b(z31, __ B, p7, Address(sp, -8)); // st1b {z31.b}, p7, [sp, #-8, MUL VL]738__ sve_st1w(z0, __ S, p1, Address(r0, 7)); // st1w {z0.s}, p1, [x0, #7, MUL VL]739__ sve_st1b(z0, __ B, p2, Address(sp, r1)); // st1b {z0.b}, p2, [sp, x1]740__ sve_st1h(z0, __ H, p3, Address(sp, r8)); // st1h {z0.h}, p3, [sp, x8, LSL #1]741__ sve_st1d(z0, __ D, p4, Address(r0, r17)); // st1d {z0.d}, p4, [x0, x17, LSL #3]742__ sve_ldr(z0, Address(sp)); // ldr z0, [sp]743__ sve_ldr(z31, Address(sp, -256)); // ldr z31, [sp, #-256, MUL VL]744__ sve_str(z8, Address(r8, 255)); // str z8, [x8, #255, MUL VL]745746// FloatImmediateOp747__ fmovd(v0, 2.0); // fmov d0, #2.0748__ fmovd(v0, 2.125); // fmov d0, #2.125749__ fmovd(v0, 4.0); // fmov d0, #4.0750__ fmovd(v0, 4.25); // fmov d0, #4.25751__ fmovd(v0, 8.0); // fmov d0, #8.0752__ fmovd(v0, 8.5); // fmov d0, #8.5753__ fmovd(v0, 16.0); // fmov d0, #16.0754__ fmovd(v0, 17.0); // fmov d0, #17.0755__ fmovd(v0, 0.125); // fmov d0, #0.125756__ fmovd(v0, 0.1328125); // fmov d0, #0.1328125757__ fmovd(v0, 0.25); // fmov d0, #0.25758__ fmovd(v0, 0.265625); // fmov d0, #0.265625759__ fmovd(v0, 0.5); // fmov d0, #0.5760__ fmovd(v0, 0.53125); // fmov d0, #0.53125761__ fmovd(v0, 1.0); // fmov d0, #1.0762__ fmovd(v0, 1.0625); // fmov d0, #1.0625763__ fmovd(v0, -2.0); // fmov d0, #-2.0764__ fmovd(v0, -2.125); // fmov d0, #-2.125765__ fmovd(v0, -4.0); // fmov d0, #-4.0766__ fmovd(v0, -4.25); // fmov d0, #-4.25767__ fmovd(v0, -8.0); // fmov d0, #-8.0768__ fmovd(v0, -8.5); // fmov d0, #-8.5769__ fmovd(v0, -16.0); // fmov d0, #-16.0770__ fmovd(v0, -17.0); // fmov d0, #-17.0771__ fmovd(v0, -0.125); // fmov d0, #-0.125772__ fmovd(v0, -0.1328125); // fmov d0, #-0.1328125773__ fmovd(v0, -0.25); // fmov d0, #-0.25774__ fmovd(v0, -0.265625); // fmov d0, #-0.265625775__ fmovd(v0, -0.5); // fmov d0, #-0.5776__ fmovd(v0, -0.53125); // fmov d0, #-0.53125777__ fmovd(v0, -1.0); // fmov d0, #-1.0778__ fmovd(v0, -1.0625); // fmov d0, #-1.0625779780// LSEOp781__ swp(Assembler::xword, r4, r3, r12); // swp x4, x3, [x12]782__ ldadd(Assembler::xword, zr, r28, r10); // ldadd xzr, x28, [x10]783__ ldbic(Assembler::xword, r26, r2, r12); // ldclr x26, x2, [x12]784__ ldeor(Assembler::xword, r16, zr, r1); // ldeor x16, xzr, [x1]785__ ldorr(Assembler::xword, r13, r29, r0); // ldset x13, x29, [x0]786__ ldsmin(Assembler::xword, r19, r12, r17); // ldsmin x19, x12, [x17]787__ ldsmax(Assembler::xword, r22, r13, r28); // ldsmax x22, x13, [x28]788__ ldumin(Assembler::xword, r30, zr, r1); // ldumin x30, xzr, [x1]789__ ldumax(Assembler::xword, r26, r28, r4); // ldumax x26, x28, [x4]790791// LSEOp792__ swpa(Assembler::xword, r30, r4, r6); // swpa x30, x4, [x6]793__ ldadda(Assembler::xword, r30, r26, r15); // ldadda x30, x26, [x15]794__ ldbica(Assembler::xword, r9, r8, r12); // ldclra x9, x8, [x12]795__ ldeora(Assembler::xword, r0, r20, r1); // ldeora x0, x20, [x1]796__ ldorra(Assembler::xword, r24, r2, r0); // ldseta x24, x2, [x0]797__ ldsmina(Assembler::xword, r9, r24, r26); // ldsmina x9, x24, [x26]798__ ldsmaxa(Assembler::xword, r16, r30, r3); // ldsmaxa x16, x30, [x3]799__ ldumina(Assembler::xword, r10, r23, r10); // ldumina x10, x23, [x10]800__ ldumaxa(Assembler::xword, r4, r16, r2); // ldumaxa x4, x16, [x2]801802// LSEOp803__ swpal(Assembler::xword, r11, r8, r10); // swpal x11, x8, [x10]804__ ldaddal(Assembler::xword, r15, r17, r2); // ldaddal x15, x17, [x2]805__ ldbical(Assembler::xword, r10, r12, r12); // ldclral x10, x12, [x12]806__ ldeoral(Assembler::xword, r15, r13, r2); // ldeoral x15, x13, [x2]807__ ldorral(Assembler::xword, r7, r20, r26); // ldsetal x7, x20, [x26]808__ ldsminal(Assembler::xword, r16, r4, r2); // ldsminal x16, x4, [x2]809__ ldsmaxal(Assembler::xword, r4, r12, r15); // ldsmaxal x4, x12, [x15]810__ lduminal(Assembler::xword, r21, r16, r15); // lduminal x21, x16, [x15]811__ ldumaxal(Assembler::xword, r11, r21, r23); // ldumaxal x11, x21, [x23]812813// LSEOp814__ swpl(Assembler::xword, r12, r26, r23); // swpl x12, x26, [x23]815__ ldaddl(Assembler::xword, r28, r14, r11); // ldaddl x28, x14, [x11]816__ ldbicl(Assembler::xword, r24, r1, r12); // ldclrl x24, x1, [x12]817__ ldeorl(Assembler::xword, zr, r10, r16); // ldeorl xzr, x10, [x16]818__ ldorrl(Assembler::xword, r7, r2, r3); // ldsetl x7, x2, [x3]819__ ldsminl(Assembler::xword, r13, r19, r17); // ldsminl x13, x19, [x17]820__ ldsmaxl(Assembler::xword, r16, r3, r1); // ldsmaxl x16, x3, [x1]821__ lduminl(Assembler::xword, r11, r30, r5); // lduminl x11, x30, [x5]822__ ldumaxl(Assembler::xword, r8, r15, r29); // ldumaxl x8, x15, [x29]823824// LSEOp825__ swp(Assembler::word, r30, r0, r20); // swp w30, w0, [x20]826__ ldadd(Assembler::word, r7, r20, r23); // ldadd w7, w20, [x23]827__ ldbic(Assembler::word, r28, r21, r27); // ldclr w28, w21, [x27]828__ ldeor(Assembler::word, r25, r5, r1); // ldeor w25, w5, [x1]829__ ldorr(Assembler::word, r23, r16, sp); // ldset w23, w16, [sp]830__ ldsmin(Assembler::word, r5, r12, r9); // ldsmin w5, w12, [x9]831__ ldsmax(Assembler::word, r28, r15, r29); // ldsmax w28, w15, [x29]832__ ldumin(Assembler::word, r22, zr, r19); // ldumin w22, wzr, [x19]833__ ldumax(Assembler::word, zr, r5, r14); // ldumax wzr, w5, [x14]834835// LSEOp836__ swpa(Assembler::word, r16, zr, r15); // swpa w16, wzr, [x15]837__ ldadda(Assembler::word, r27, r20, r16); // ldadda w27, w20, [x16]838__ ldbica(Assembler::word, r12, r11, r9); // ldclra w12, w11, [x9]839__ ldeora(Assembler::word, r6, r30, r17); // ldeora w6, w30, [x17]840__ ldorra(Assembler::word, r27, r28, r30); // ldseta w27, w28, [x30]841__ ldsmina(Assembler::word, r7, r10, r20); // ldsmina w7, w10, [x20]842__ ldsmaxa(Assembler::word, r10, r4, r24); // ldsmaxa w10, w4, [x24]843__ ldumina(Assembler::word, r17, r17, r22); // ldumina w17, w17, [x22]844__ ldumaxa(Assembler::word, r3, r29, r15); // ldumaxa w3, w29, [x15]845846// LSEOp847__ swpal(Assembler::word, r22, r19, r19); // swpal w22, w19, [x19]848__ ldaddal(Assembler::word, r22, r2, r15); // ldaddal w22, w2, [x15]849__ ldbical(Assembler::word, r6, r12, r16); // ldclral w6, w12, [x16]850__ ldeoral(Assembler::word, r11, r13, r23); // ldeoral w11, w13, [x23]851__ ldorral(Assembler::word, r1, r30, r19); // ldsetal w1, w30, [x19]852__ ldsminal(Assembler::word, r5, r17, r2); // ldsminal w5, w17, [x2]853__ ldsmaxal(Assembler::word, r16, r22, r13); // ldsmaxal w16, w22, [x13]854__ lduminal(Assembler::word, r10, r21, r29); // lduminal w10, w21, [x29]855__ ldumaxal(Assembler::word, r27, r12, r27); // ldumaxal w27, w12, [x27]856857// LSEOp858__ swpl(Assembler::word, r3, r1, sp); // swpl w3, w1, [sp]859__ ldaddl(Assembler::word, r24, r19, r17); // ldaddl w24, w19, [x17]860__ ldbicl(Assembler::word, r9, r28, r27); // ldclrl w9, w28, [x27]861__ ldeorl(Assembler::word, r15, r7, r21); // ldeorl w15, w7, [x21]862__ ldorrl(Assembler::word, r23, zr, r25); // ldsetl w23, wzr, [x25]863__ ldsminl(Assembler::word, r2, zr, r27); // ldsminl w2, wzr, [x27]864__ ldsmaxl(Assembler::word, r16, r10, r23); // ldsmaxl w16, w10, [x23]865__ lduminl(Assembler::word, r19, r3, r15); // lduminl w19, w3, [x15]866__ ldumaxl(Assembler::word, r0, r25, r26); // ldumaxl w0, w25, [x26]867868// SHA3SIMDOp869__ bcax(v22, __ T16B, v2, v17, v12); // bcax v22.16B, v2.16B, v17.16B, v12.16B870__ eor3(v3, __ T16B, v27, v29, v28); // eor3 v3.16B, v27.16B, v29.16B, v28.16B871__ rax1(v16, __ T2D, v26, v6); // rax1 v16.2D, v26.2D, v6.2D872__ xar(v9, __ T2D, v28, v17, 14); // xar v9.2D, v28.2D, v17.2D, #14873874// SHA512SIMDOp875__ sha512h(v4, __ T2D, v7, v15); // sha512h q4, q7, v15.2D876__ sha512h2(v9, __ T2D, v22, v8); // sha512h2 q9, q22, v8.2D877__ sha512su0(v2, __ T2D, v27); // sha512su0 v2.2D, v27.2D878__ sha512su1(v20, __ T2D, v30, v5); // sha512su1 v20.2D, v30.2D, v5.2D879880// SVEVectorOp881__ sve_add(z26, __ H, z0, z16); // add z26.h, z0.h, z16.h882__ sve_sub(z3, __ D, z25, z8); // sub z3.d, z25.d, z8.d883__ sve_fadd(z21, __ D, z26, z26); // fadd z21.d, z26.d, z26.d884__ sve_fmul(z22, __ S, z0, z4); // fmul z22.s, z0.s, z4.s885__ sve_fsub(z17, __ S, z0, z3); // fsub z17.s, z0.s, z3.s886__ sve_abs(z1, __ B, p2, z6); // abs z1.b, p2/m, z6.b887__ sve_add(z9, __ S, p7, z7); // add z9.s, p7/m, z9.s, z7.s888__ sve_asr(z22, __ H, p5, z5); // asr z22.h, p5/m, z22.h, z5.h889__ sve_cnt(z8, __ B, p4, z30); // cnt z8.b, p4/m, z30.b890__ sve_lsl(z17, __ D, p0, z11); // lsl z17.d, p0/m, z17.d, z11.d891__ sve_lsr(z28, __ S, p0, z26); // lsr z28.s, p0/m, z28.s, z26.s892__ sve_mul(z28, __ D, p3, z13); // mul z28.d, p3/m, z28.d, z13.d893__ sve_neg(z16, __ B, p6, z5); // neg z16.b, p6/m, z5.b894__ sve_not(z13, __ H, p2, z15); // not z13.h, p2/m, z15.h895__ sve_smax(z26, __ B, p5, z11); // smax z26.b, p5/m, z26.b, z11.b896__ sve_smin(z22, __ B, p4, z4); // smin z22.b, p4/m, z22.b, z4.b897__ sve_sub(z19, __ H, p4, z17); // sub z19.h, p4/m, z19.h, z17.h898__ sve_fabs(z14, __ D, p3, z2); // fabs z14.d, p3/m, z2.d899__ sve_fadd(z3, __ S, p5, z23); // fadd z3.s, p5/m, z3.s, z23.s900__ sve_fdiv(z6, __ S, p1, z17); // fdiv z6.s, p1/m, z6.s, z17.s901__ sve_fmax(z27, __ S, p4, z16); // fmax z27.s, p4/m, z27.s, z16.s902__ sve_fmin(z2, __ S, p7, z3); // fmin z2.s, p7/m, z2.s, z3.s903__ sve_fmul(z6, __ S, p4, z19); // fmul z6.s, p4/m, z6.s, z19.s904__ sve_fneg(z12, __ D, p5, z8); // fneg z12.d, p5/m, z8.d905__ sve_frintm(z19, __ S, p4, z0); // frintm z19.s, p4/m, z0.s906__ sve_frintn(z23, __ D, p1, z19); // frintn z23.d, p1/m, z19.d907__ sve_frintp(z13, __ S, p4, z6); // frintp z13.s, p4/m, z6.s908__ sve_fsqrt(z7, __ D, p3, z17); // fsqrt z7.d, p3/m, z17.d909__ sve_fsub(z8, __ D, p2, z22); // fsub z8.d, p2/m, z8.d, z22.d910__ sve_fmla(z22, __ S, p7, z2, z3); // fmla z22.s, p7/m, z2.s, z3.s911__ sve_fmls(z17, __ D, p5, z7, z4); // fmls z17.d, p5/m, z7.d, z4.d912__ sve_fnmla(z7, __ D, p0, z8, z16); // fnmla z7.d, p0/m, z8.d, z16.d913__ sve_fnmls(z22, __ D, p1, z15, z9); // fnmls z22.d, p1/m, z15.d, z9.d914__ sve_mla(z11, __ S, p6, z5, z30); // mla z11.s, p6/m, z5.s, z30.s915__ sve_mls(z13, __ H, p5, z11, z1); // mls z13.h, p5/m, z11.h, z1.h916__ sve_and(z8, z20, z16); // and z8.d, z20.d, z16.d917__ sve_eor(z15, z4, z4); // eor z15.d, z4.d, z4.d918__ sve_orr(z8, z6, z29); // orr z8.d, z6.d, z29.d919__ sve_bic(z28, z16, z29); // bic z28.d, z16.d, z29.d920921// SVEReductionOp922__ sve_andv(v9, __ H, p3, z2); // andv h9, p3, z2.h923__ sve_orv(v28, __ B, p0, z7); // orv b28, p0, z7.b924__ sve_eorv(v26, __ H, p5, z17); // eorv h26, p5, z17.h925__ sve_smaxv(v8, __ D, p4, z21); // smaxv d8, p4, z21.d926__ sve_sminv(v5, __ S, p5, z21); // sminv s5, p5, z21.s927__ sve_fminv(v22, __ D, p4, z29); // fminv d22, p4, z29.d928__ sve_fmaxv(v19, __ D, p0, z4); // fmaxv d19, p0, z4.d929__ sve_fadda(v23, __ S, p1, z19); // fadda s23, p1, s23, z19.s930__ sve_uaddv(v23, __ B, p6, z19); // uaddv d23, p6, z19.b931932__ bind(forth);933934/*935*/936937static const unsigned int insns[] =938{9390x8b0d82fa, 0xcb49970c, 0xab889dfc, 0xeb9ee787,9400x0b9b3ec9, 0x4b9179a3, 0x2b88474e, 0x6b8c56c0,9410x8a1a51e0, 0xaa11f4ba, 0xca0281b8, 0xea918c7c,9420x0a5d4a19, 0x2a4b262d, 0x4a513ca5, 0x6a9b6ae2,9430x8a70b79b, 0xaaba9728, 0xca6dfe3d, 0xea627f1c,9440x0aa70f53, 0x2aaa0f06, 0x4a6176a4, 0x6a604eb0,9450x1105ed91, 0x3100583e, 0x5101f8bd, 0x710f0306,9460x9101a1a0, 0xb10a5cc8, 0xd10810aa, 0xf10fd061,9470x120cb166, 0x321764bc, 0x52174681, 0x720c0227,9480x9241018e, 0xb25a2969, 0xd278b411, 0xf26aad01,9490x14000000, 0x17ffffd7, 0x140002ed, 0x94000000,9500x97ffffd4, 0x940002ea, 0x3400000a, 0x34fffa2a,9510x34005cea, 0x35000008, 0x35fff9c8, 0x35005c88,9520xb400000b, 0xb4fff96b, 0xb4005c2b, 0xb500001d,9530xb5fff91d, 0xb5005bdd, 0x10000013, 0x10fff8b3,9540x10005b73, 0x90000013, 0x36300016, 0x3637f836,9550x36305af6, 0x3758000c, 0x375ff7cc, 0x37585a8c,9560x128313a0, 0x528a32c7, 0x7289173b, 0x92ab3acc,9570xd2a0bf94, 0xf2c285e8, 0x9358722f, 0x330e652f,9580x53067f3b, 0x93577c53, 0xb34a1aac, 0xd35a4016,9590x13946c63, 0x93c3dbc8, 0x54000000, 0x54fff5a0,9600x54005860, 0x54000001, 0x54fff541, 0x54005801,9610x54000002, 0x54fff4e2, 0x540057a2, 0x54000002,9620x54fff482, 0x54005742, 0x54000003, 0x54fff423,9630x540056e3, 0x54000003, 0x54fff3c3, 0x54005683,9640x54000004, 0x54fff364, 0x54005624, 0x54000005,9650x54fff305, 0x540055c5, 0x54000006, 0x54fff2a6,9660x54005566, 0x54000007, 0x54fff247, 0x54005507,9670x54000008, 0x54fff1e8, 0x540054a8, 0x54000009,9680x54fff189, 0x54005449, 0x5400000a, 0x54fff12a,9690x540053ea, 0x5400000b, 0x54fff0cb, 0x5400538b,9700x5400000c, 0x54fff06c, 0x5400532c, 0x5400000d,9710x54fff00d, 0x540052cd, 0x5400000e, 0x54ffefae,9720x5400526e, 0x5400000f, 0x54ffef4f, 0x5400520f,9730xd40658e1, 0xd4014d22, 0xd4046543, 0xd4273f60,9740xd44cad80, 0xd503201f, 0xd69f03e0, 0xd6bf03e0,9750xd5033fdf, 0xd5033e9f, 0xd50332bf, 0xd61f0200,9760xd63f0280, 0xc80a7d1b, 0xc800fea1, 0xc85f7fb1,9770xc85fff9d, 0xc89ffee1, 0xc8dffe95, 0x88167e7b,9780x880bfcd0, 0x885f7c11, 0x885ffd44, 0x889ffed8,9790x88dffe6a, 0x48017fc5, 0x4808fe2c, 0x485f7dc9,9800x485ffc27, 0x489ffe05, 0x48dffd82, 0x080a7c6c,9810x081cff4e, 0x085f7d5e, 0x085ffeae, 0x089ffd2d,9820x08dfff76, 0xc87f4d7c, 0xc87fcc5e, 0xc8220417,9830xc82cb5f0, 0x887f55b1, 0x887ff90b, 0x88382c2d,9840x883aedb5, 0xf819928b, 0xb803e21c, 0x381f713b,9850x781ce322, 0xf850f044, 0xb85e129e, 0x385e92f1,9860x785ff35d, 0x39801921, 0x7881318b, 0x78dce02b,9870xb8829313, 0xfc45f318, 0xbc5d50af, 0xfc001375,9880xbc1951b7, 0xf8008c0a, 0xb801dc03, 0x38009dca,9890x781fdf3d, 0xf8570e0c, 0xb85faecc, 0x385f6d6d,9900x785ebea0, 0x38804cd7, 0x789cbce3, 0x78df9c9c,9910xb89eed18, 0xfc40cd6e, 0xbc5bdd93, 0xfc103c14,9920xbc040c08, 0xf81a2783, 0xb81ca4eb, 0x381e855b,9930x7801b4e6, 0xf853654d, 0xb85d74af, 0x384095a2,9940x785ec5bc, 0x389e15a9, 0x789dc703, 0x78c06474,9950xb89ff667, 0xfc57e51e, 0xbc4155f9, 0xfc05a6ee,9960xbc1df408, 0xf835da2a, 0xb836d9a4, 0x3833580d,9970x7826cb6c, 0xf8706900, 0xb87ae880, 0x3865db2e,9980x78714889, 0x38a7789b, 0x78beca2f, 0x78f6c810,9990xb8bef956, 0xfc6afabd, 0xbc734963, 0xfc3d5b8d,10000xbc25fbb7, 0xf9189d05, 0xb91ecb1d, 0x39187a33,10010x791f226d, 0xf95aa2f3, 0xb9587bb7, 0x395f7176,10020x795d9143, 0x399e7e08, 0x799a2697, 0x79df3422,10030xb99c2624, 0xfd5c2374, 0xbd5fa1d9, 0xfd1d595a,10040xbd1b1869, 0x5800425b, 0x1800000b, 0xf8945060,10050xd8000000, 0xf8ae6ba0, 0xf99a0080, 0x1a070035,10060x3a0700a8, 0x5a0e0367, 0x7a11009b, 0x9a000380,10070xba1e030c, 0xda0f0320, 0xfa030301, 0x0b340b11,10080x2b2a278d, 0xcb22aa0f, 0x6b2d29bd, 0x8b2cce8c,10090xab2b877e, 0xcb21c8ee, 0xeb3ba47d, 0x3a4d400e,10100x7a5132c6, 0xba5e622e, 0xfa53814c, 0x3a52d8c2,10110x7a4d8924, 0xba4b3aab, 0xfa4d7882, 0x1a96804c,10120x1a912618, 0x5a90b0e6, 0x5a96976b, 0x9a9db06a,10130x9a9b374c, 0xda95c14f, 0xda89c6fe, 0x5ac0015e,10140x5ac005fd, 0x5ac00bdd, 0x5ac012b9, 0x5ac01404,10150xdac002b1, 0xdac0061d, 0xdac00a95, 0xdac00e66,10160xdac0107e, 0xdac01675, 0x1ac00b0b, 0x1ace0f3b,10170x1ad121c3, 0x1ad825e7, 0x1ad92a3c, 0x1adc2f42,10180x9ada0b25, 0x9ad10e1b, 0x9acc22a6, 0x9acc2480,10190x9adc2a3b, 0x9ad12c5c, 0x9bce7dea, 0x9b597c6e,10200x1b0e166f, 0x1b1ae490, 0x9b023044, 0x9b089e3d,10210x9b391083, 0x9b24c73a, 0x9bb15f40, 0x9bbcc6af,10220x7ea3d55b, 0x1e3908e0, 0x1e2f18c9, 0x1e2a29fd,10230x1e273a22, 0x7ef7d56b, 0x1e770ba7, 0x1e6b1b6e,10240x1e78288b, 0x1e6e39ec, 0x1f1c3574, 0x1f17f98b,10250x1f2935da, 0x1f2574ea, 0x1f4b306f, 0x1f5ec7cf,10260x1f6f3e93, 0x1f6226a9, 0x1e2040fb, 0x1e20c3dd,10270x1e214031, 0x1e21c0c2, 0x1e22c06a, 0x1e604178,10280x1e60c027, 0x1e61400b, 0x1e61c223, 0x1e6240dc,10290x1e3800d6, 0x9e380360, 0x1e78005a, 0x9e7800e5,10300x1e22017c, 0x9e2201b9, 0x1e6202eb, 0x9e620113,10310x1e2602b1, 0x9e660299, 0x1e270233, 0x9e6703a2,10320x1e2822c0, 0x1e7322a0, 0x1e202288, 0x1e602168,10330x293c19f4, 0x2966387b, 0x69762970, 0xa9041dc7,10340xa9475c0c, 0x29b61ccd, 0x29ee3c5e, 0x69ee0764,10350xa9843977, 0xa9f46ebd, 0x28ba16b6, 0x28fc44db,10360x68f61430, 0xa8b352cd, 0xa8c56d5e, 0x28024565,10370x2874134e, 0xa8027597, 0xa87b1aa0, 0x0c40734f,10380x4cdfa177, 0x0cc76ee8, 0x4cdf2733, 0x0d40c23d,10390x4ddfcaf8, 0x0dd9ccaa, 0x4c408d51, 0x0cdf85ec,10400x4d60c239, 0x0dffcbc1, 0x4de9ce30, 0x4cc24999,10410x0c404a7a, 0x4d40e6af, 0x4ddfe9b9, 0x0dddef8e,10420x4cdf07b1, 0x0cc000fb, 0x0d60e238, 0x0dffe740,10430x0de2eb2c, 0x0e31baf6, 0x4e31bb9b, 0x0e71b8a4,10440x4e71b907, 0x4eb1b8e6, 0x0e30a841, 0x4e30ab7a,10450x0e70aa0f, 0x4e70a862, 0x4eb0a9cd, 0x6e30f9cd,10460x0e31ab38, 0x2e31ab17, 0x4e31a8a4, 0x6e31aa93,10470x0e71aa0f, 0x2e71a820, 0x4e71a8a4, 0x6e71aab4,10480x4eb1a98b, 0x6eb1abdd, 0x6eb0fa0f, 0x7e30fad5,10490x7e70f8a4, 0x7eb0f9ee, 0x7ef0faf6, 0x0e20bb59,10500x4e20b8e6, 0x0e60b9ac, 0x4e60b9ee, 0x0ea0b9cd,10510x4ea0b9ee, 0x4ee0b949, 0x0ea0fb59, 0x4ea0fbbc,10520x4ee0f96a, 0x2ea0fa93, 0x6ea0f98b, 0x6ee0fa51,10530x2ea1fad5, 0x6ea1fa0f, 0x6ee1fab4, 0x2e205b17,10540x6e205b7a, 0x0e271cc5, 0x4e281ce6, 0x0eb11e0f,10550x4eb11e0f, 0x2e3b1f59, 0x6e321e30, 0x0e3d879b,10560x4e3a8738, 0x0e71860f, 0x4e7b8759, 0x0eb085ee,10570x4eac856a, 0x4eef85cd, 0x0e30d5ee, 0x4e36d6b4,10580x4e63d441, 0x2e3886f6, 0x6e2087fe, 0x2e7085ee,10590x6e648462, 0x2ea884e6, 0x6ea58483, 0x6ee98507,10600x0ebad738, 0x4ea2d420, 0x4efdd79b, 0x0e3f9fdd,10610x4e279cc5, 0x0e679cc5, 0x4e7f9fdd, 0x0ead9d8b,10620x4ebb9f59, 0x2ea2d420, 0x6ea0d7fe, 0x6ee2d420,10630x2e33de51, 0x6e3edfbc, 0x6e7bdf59, 0x0e6b9549,10640x4e7b9759, 0x0eae95ac, 0x4eb1960f, 0x0e2dcd8b,10650x4e2ccd6a, 0x4e73ce51, 0x2e7a9738, 0x6e7796d5,10660x2eb99717, 0x6ea29420, 0x0eb2ce30, 0x4eaccd6a,10670x4ee8cce6, 0x2e3effbc, 0x6e28fce6, 0x6e67fcc5,10680x0e2764c5, 0x4e3666b4, 0x0e736651, 0x4e71660f,10690x0eb36651, 0x4ebf67dd, 0x0e3ca77a, 0x4e3ea7bc,10700x0e63a441, 0x4e7da79b, 0x0ea2a420, 0x4eb6a6b4,10710x0e3ef7bc, 0x4e31f60f, 0x4e6ef5ac, 0x0e2c6d6a,10720x4e3e6fbc, 0x0e7e6fbc, 0x4e756e93, 0x0eb86ef6,10730x4eac6d6a, 0x0e26aca4, 0x4e20affe, 0x0e76aeb4,10740x4e6aad28, 0x0ea0affe, 0x4eb3ae51, 0x0eacf56a,10750x4ebdf79b, 0x4ee4f462, 0x2e3a8f38, 0x6e268ca4,10760x2e658c83, 0x6e6a8d28, 0x2eb88ef6, 0x6eb38e51,10770x6eef8dcd, 0x0e26e4a4, 0x4e3ee7bc, 0x4e79e717,10780x0e3736d5, 0x4e3b3759, 0x0e7a3738, 0x4e653483,10790x0eb93717, 0x4ebc377a, 0x4ef93717, 0x2eb0e5ee,10800x6eb7e6d5, 0x6ee5e483, 0x0e393f17, 0x4e2a3d28,10810x0e7a3f38, 0x4e753e93, 0x0eb13e0f, 0x4eb23e30,10820x4ee43c62, 0x2e23e441, 0x6e22e420, 0x6e7ae738,10830xba5fd3e3, 0x3a5f03e5, 0xfa411be4, 0x7a42cbe2,10840x93df03ff, 0xc820ffff, 0x8822fc7f, 0xc8247cbf,10850x88267fff, 0x4e010fe0, 0x4e081fe1, 0x4e0c1fe1,10860x4e0a1fe1, 0x4e071fe1, 0x4e042c20, 0x4e062c20,10870x4e052c20, 0x4e083c20, 0x0e0c3c20, 0x0e0a3c20,10880x0e073c20, 0x4cc0ac3f, 0x05a08020, 0x04b0e3e0,10890x0470e7e1, 0x042f9c20, 0x043f9c35, 0x047f9c20,10900x04ff9c20, 0x04299420, 0x04319160, 0x0461943e,10910x04a19020, 0x042053ff, 0x047f5401, 0x25208028,10920x2538cfe0, 0x2578d001, 0x25b8efe2, 0x25f8f007,10930xa400a3e0, 0xa4a8a7ea, 0xa547a814, 0xa4084ffe,10940xa55c53e0, 0xa5e1540b, 0xe400fbf6, 0xe408ffff,10950xe547e400, 0xe4014be0, 0xe4a84fe0, 0xe5f15000,10960x858043e0, 0x85a043ff, 0xe59f5d08, 0x1e601000,10970x1e603000, 0x1e621000, 0x1e623000, 0x1e641000,10980x1e643000, 0x1e661000, 0x1e663000, 0x1e681000,10990x1e683000, 0x1e6a1000, 0x1e6a3000, 0x1e6c1000,11000x1e6c3000, 0x1e6e1000, 0x1e6e3000, 0x1e701000,11010x1e703000, 0x1e721000, 0x1e723000, 0x1e741000,11020x1e743000, 0x1e761000, 0x1e763000, 0x1e781000,11030x1e783000, 0x1e7a1000, 0x1e7a3000, 0x1e7c1000,11040x1e7c3000, 0x1e7e1000, 0x1e7e3000, 0xf8248183,11050xf83f015c, 0xf83a1182, 0xf830203f, 0xf82d301d,11060xf833522c, 0xf836438d, 0xf83e703f, 0xf83a609c,11070xf8be80c4, 0xf8be01fa, 0xf8a91188, 0xf8a02034,11080xf8b83002, 0xf8a95358, 0xf8b0407e, 0xf8aa7157,11090xf8a46050, 0xf8eb8148, 0xf8ef0051, 0xf8ea118c,11100xf8ef204d, 0xf8e73354, 0xf8f05044, 0xf8e441ec,11110xf8f571f0, 0xf8eb62f5, 0xf86c82fa, 0xf87c016e,11120xf8781181, 0xf87f220a, 0xf8673062, 0xf86d5233,11130xf8704023, 0xf86b70be, 0xf86863af, 0xb83e8280,11140xb82702f4, 0xb83c1375, 0xb8392025, 0xb83733f0,11150xb825512c, 0xb83c43af, 0xb836727f, 0xb83f61c5,11160xb8b081ff, 0xb8bb0214, 0xb8ac112b, 0xb8a6223e,11170xb8bb33dc, 0xb8a7528a, 0xb8aa4304, 0xb8b172d1,11180xb8a361fd, 0xb8f68273, 0xb8f601e2, 0xb8e6120c,11190xb8eb22ed, 0xb8e1327e, 0xb8e55051, 0xb8f041b6,11200xb8ea73b5, 0xb8fb636c, 0xb86383e1, 0xb8780233,11210xb869137c, 0xb86f22a7, 0xb877333f, 0xb862537f,11220xb87042ea, 0xb87371e3, 0xb8606359, 0xce313056,11230xce1d7363, 0xce668f50, 0xce913b89, 0xce6f80e4,11240xce6886c9, 0xcec08362, 0xce658bd4, 0x0470001a,11250x04e80723, 0x65da0355, 0x65840816, 0x65830411,11260x0416a8c1, 0x04801ce9, 0x045094b6, 0x041ab3c8,11270x04d38171, 0x0491835c, 0x04d00dbc, 0x0417b8b0,11280x045ea9ed, 0x0408157a, 0x040a1096, 0x04411233,11290x04dcac4e, 0x658096e3, 0x658d8626, 0x6586921b,11300x65879c62, 0x65829266, 0x04ddb50c, 0x6582b013,11310x65c0a677, 0x6581b0cd, 0x65cdae27, 0x65c18ac8,11320x65a31c56, 0x65e434f1, 0x65f04107, 0x65e965f6,11330x049e58ab, 0x0441756d, 0x04303288, 0x04a4308f,11340x047d30c8, 0x04fd321c, 0x045a2c49, 0x041820fc,11350x0459363a, 0x04c832a8, 0x048a36a5, 0x65c733b6,11360x65c62093, 0x65982677, 0x04013a77,1137};1138// END Generated code -- do not edit113911401141