< prev index next >

src/hotspot/cpu/aarch64/assembler_aarch64.cpp

Print this page
rev 60624 : 8248500: AArch64: Remove the r18 dependency on Windows AArch64 (regenerate tests)
Reviewed-by:
Contributed-by: mbeckwit, luhenry, burban
rev 60629 : 8248656: Add Windows AArch64 platform support code
Reviewed-by:
Contributed-by: mbeckwit, luhenry, burban


  79   // {
  80   //   for (int i = 0; i < 256; i+=16)
  81   //     {
  82   //    printf("\"%20.20g\", ", unpack(i));
  83   //    printf("\"%20.20g\", ", unpack(i+1));
  84   //     }
  85   //   printf("\n");
  86   // }
  87 
  88   Assembler _masm(cb);
  89   address entry = __ pc();
  90 
  91   // Smoke test for assembler
  92 
  93 // BEGIN  Generated code -- do not edit
  94 // Generated by aarch64-asmtest.py
  95     Label back, forth;
  96     __ bind(back);
  97 
  98 // ArithOp
  99     __ add(r26, r23, r13, Assembler::LSL, 32);         //       add     x26, x23, x13, LSL #32
 100     __ sub(r12, r24, r9, Assembler::LSR, 37);          //       sub     x12, x24, x9, LSR #37
 101     __ adds(r28, r15, r8, Assembler::ASR, 39);         //       adds    x28, x15, x8, ASR #39
 102     __ subs(r7, r28, r30, Assembler::ASR, 57);         //       subs    x7, x28, x30, ASR #57
 103     __ addw(r9, r22, r27, Assembler::ASR, 15);         //       add     w9, w22, w27, ASR #15
 104     __ subw(r3, r13, r18, Assembler::ASR, 30);         //       sub     w3, w13, w18, ASR #30
 105     __ addsw(r14, r26, r8, Assembler::ASR, 17);        //       adds    w14, w26, w8, ASR #17
 106     __ subsw(r0, r22, r12, Assembler::ASR, 21);        //       subs    w0, w22, w12, ASR #21
 107     __ andr(r0, r15, r26, Assembler::LSL, 20);         //       and     x0, x15, x26, LSL #20
 108     __ orr(r26, r5, r17, Assembler::LSL, 61);          //       orr     x26, x5, x17, LSL #61
 109     __ eor(r24, r13, r2, Assembler::LSL, 32);          //       eor     x24, x13, x2, LSL #32
 110     __ ands(r28, r3, r17, Assembler::ASR, 35);         //       ands    x28, x3, x17, ASR #35
 111     __ andw(r25, r16, r29, Assembler::LSR, 18);        //       and     w25, w16, w29, LSR #18
 112     __ orrw(r13, r18, r11, Assembler::LSR, 9);         //       orr     w13, w18, w11, LSR #9
 113     __ eorw(r5, r5, r18, Assembler::LSR, 15);          //       eor     w5, w5, w18, LSR #15
 114     __ andsw(r2, r23, r27, Assembler::ASR, 26);        //       ands    w2, w23, w27, ASR #26
 115     __ bic(r27, r28, r16, Assembler::LSR, 45);         //       bic     x27, x28, x16, LSR #45
 116     __ orn(r8, r25, r26, Assembler::ASR, 37);          //       orn     x8, x25, x26, ASR #37
 117     __ eon(r29, r17, r13, Assembler::LSR, 63);         //       eon     x29, x17, x13, LSR #63
 118     __ bics(r28, r24, r2, Assembler::LSR, 31);         //       bics    x28, x24, x2, LSR #31
 119     __ bicw(r19, r26, r7, Assembler::ASR, 3);          //       bic     w19, w26, w7, ASR #3
 120     __ ornw(r6, r24, r10, Assembler::ASR, 3);          //       orn     w6, w24, w10, ASR #3
 121     __ eonw(r4, r21, r1, Assembler::LSR, 29);          //       eon     w4, w21, w1, LSR #29
 122     __ bicsw(r16, r21, r0, Assembler::LSR, 19);        //       bics    w16, w21, w0, LSR #19
 123 
 124 // AddSubImmOp
 125     __ addw(r17, r12, 379u);                           //       add     w17, w12, #379
 126     __ addsw(r30, r1, 22u);                            //       adds    w30, w1, #22
 127     __ subw(r29, r5, 126u);                            //       sub     w29, w5, #126
 128     __ subsw(r6, r24, 960u);                           //       subs    w6, w24, #960
 129     __ add(r0, r13, 104u);                             //       add     x0, x13, #104
 130     __ adds(r8, r6, 663u);                             //       adds    x8, x6, #663
 131     __ sub(r10, r5, 516u);                             //       sub     x10, x5, #516
 132     __ subs(r1, r3, 1012u);                            //       subs    x1, x3, #1012
 133 
 134 // LogicalImmOp
 135     __ andw(r6, r11, 4294049777ull);                   //       and     w6, w11, #0xfff1fff1
 136     __ orrw(r28, r5, 4294966791ull);                   //       orr     w28, w5, #0xfffffe07
 137     __ eorw(r1, r20, 134217216ull);                    //       eor     w1, w20, #0x7fffe00
 138     __ andsw(r7, r18, 1048576ull);                     //       ands    w7, w18, #0x100000
 139     __ andr(r14, r12, 9223372036854775808ull);         //       and     x14, x12, #0x8000000000000000
 140     __ orr(r9, r11, 562675075514368ull);               //       orr     x9, x11, #0x1ffc000000000
 141     __ eor(r17, r0, 18014398509481728ull);             //       eor     x17, x0, #0x3fffffffffff00
 142     __ ands(r1, r8, 18446744073705357315ull);          //       ands    x1, x8, #0xffffffffffc00003
 143 
 144 // AbsOp
 145     __ b(__ pc());                                     //       b       .
 146     __ b(back);                                        //       b       back
 147     __ b(forth);                                       //       b       forth
 148     __ bl(__ pc());                                    //       bl      .
 149     __ bl(back);                                       //       bl      back
 150     __ bl(forth);                                      //       bl      forth
 151 
 152 // RegAndAbsOp
 153     __ cbzw(r10, __ pc());                             //       cbz     w10, .
 154     __ cbzw(r10, back);                                //       cbz     w10, back
 155     __ cbzw(r10, forth);                               //       cbz     w10, forth
 156     __ cbnzw(r8, __ pc());                             //       cbnz    w8, .
 157     __ cbnzw(r8, back);                                //       cbnz    w8, back
 158     __ cbnzw(r8, forth);                               //       cbnz    w8, forth
 159     __ cbz(r11, __ pc());                              //       cbz     x11, .
 160     __ cbz(r11, back);                                 //       cbz     x11, back
 161     __ cbz(r11, forth);                                //       cbz     x11, forth
 162     __ cbnz(r29, __ pc());                             //       cbnz    x29, .
 163     __ cbnz(r29, back);                                //       cbnz    x29, back
 164     __ cbnz(r29, forth);                               //       cbnz    x29, forth
 165     __ adr(r19, __ pc());                              //       adr     x19, .
 166     __ adr(r19, back);                                 //       adr     x19, back
 167     __ adr(r19, forth);                                //       adr     x19, forth
 168     __ _adrp(r19, __ pc());                            //       adrp    x19, .
 169 
 170 // RegImmAbsOp
 171     __ tbz(r22, 6, __ pc());                           //       tbz     x22, #6, .
 172     __ tbz(r22, 6, back);                              //       tbz     x22, #6, back
 173     __ tbz(r22, 6, forth);                             //       tbz     x22, #6, forth
 174     __ tbnz(r12, 11, __ pc());                         //       tbnz    x12, #11, .
 175     __ tbnz(r12, 11, back);                            //       tbnz    x12, #11, back
 176     __ tbnz(r12, 11, forth);                           //       tbnz    x12, #11, forth
 177 
 178 // MoveWideImmOp
 179     __ movnw(r0, 6301, 0);                             //       movn    w0, #6301, lsl 0
 180     __ movzw(r7, 20886, 0);                            //       movz    w7, #20886, lsl 0
 181     __ movkw(r27, 18617, 0);                           //       movk    w27, #18617, lsl 0
 182     __ movn(r12, 22998, 16);                           //       movn    x12, #22998, lsl 16
 183     __ movz(r20, 1532, 16);                            //       movz    x20, #1532, lsl 16
 184     __ movk(r8, 5167, 32);                             //       movk    x8, #5167, lsl 32
 185 
 186 // BitfieldOp
 187     __ sbfm(r15, r17, 24, 28);                         //       sbfm    x15, x17, #24, #28
 188     __ bfmw(r15, r9, 14, 25);                          //       bfm     w15, w9, #14, #25
 189     __ ubfmw(r27, r25, 6, 31);                         //       ubfm    w27, w25, #6, #31
 190     __ sbfm(r19, r2, 23, 31);                          //       sbfm    x19, x2, #23, #31
 191     __ bfm(r12, r21, 10, 6);                           //       bfm     x12, x21, #10, #6
 192     __ ubfm(r22, r0, 26, 16);                          //       ubfm    x22, x0, #26, #16
 193 
 194 // ExtractOp
 195     __ extrw(r3, r3, r20, 27);                         //       extr    w3, w3, w20, #27
 196     __ extr(r8, r30, r3, 54);                          //       extr    x8, x30, x3, #54
 197 
 198 // CondBranchOp
 199     __ br(Assembler::EQ, __ pc());                     //       b.EQ    .
 200     __ br(Assembler::EQ, back);                        //       b.EQ    back
 201     __ br(Assembler::EQ, forth);                       //       b.EQ    forth
 202     __ br(Assembler::NE, __ pc());                     //       b.NE    .
 203     __ br(Assembler::NE, back);                        //       b.NE    back
 204     __ br(Assembler::NE, forth);                       //       b.NE    forth
 205     __ br(Assembler::HS, __ pc());                     //       b.HS    .
 206     __ br(Assembler::HS, back);                        //       b.HS    back
 207     __ br(Assembler::HS, forth);                       //       b.HS    forth
 208     __ br(Assembler::CS, __ pc());                     //       b.CS    .
 209     __ br(Assembler::CS, back);                        //       b.CS    back
 210     __ br(Assembler::CS, forth);                       //       b.CS    forth
 211     __ br(Assembler::LO, __ pc());                     //       b.LO    .
 212     __ br(Assembler::LO, back);                        //       b.LO    back
 213     __ br(Assembler::LO, forth);                       //       b.LO    forth
 214     __ br(Assembler::CC, __ pc());                     //       b.CC    .
 215     __ br(Assembler::CC, back);                        //       b.CC    back
 216     __ br(Assembler::CC, forth);                       //       b.CC    forth


 235     __ br(Assembler::GE, __ pc());                     //       b.GE    .
 236     __ br(Assembler::GE, back);                        //       b.GE    back
 237     __ br(Assembler::GE, forth);                       //       b.GE    forth
 238     __ br(Assembler::LT, __ pc());                     //       b.LT    .
 239     __ br(Assembler::LT, back);                        //       b.LT    back
 240     __ br(Assembler::LT, forth);                       //       b.LT    forth
 241     __ br(Assembler::GT, __ pc());                     //       b.GT    .
 242     __ br(Assembler::GT, back);                        //       b.GT    back
 243     __ br(Assembler::GT, forth);                       //       b.GT    forth
 244     __ br(Assembler::LE, __ pc());                     //       b.LE    .
 245     __ br(Assembler::LE, back);                        //       b.LE    back
 246     __ br(Assembler::LE, forth);                       //       b.LE    forth
 247     __ br(Assembler::AL, __ pc());                     //       b.AL    .
 248     __ br(Assembler::AL, back);                        //       b.AL    back
 249     __ br(Assembler::AL, forth);                       //       b.AL    forth
 250     __ br(Assembler::NV, __ pc());                     //       b.NV    .
 251     __ br(Assembler::NV, back);                        //       b.NV    back
 252     __ br(Assembler::NV, forth);                       //       b.NV    forth
 253 
 254 // ImmOp
 255     __ svc(12999);                                     //       svc     #12999
 256     __ hvc(2665);                                      //       hvc     #2665
 257     __ smc(9002);                                      //       smc     #9002
 258     __ brk(14843);                                     //       brk     #14843
 259     __ hlt(25964);                                     //       hlt     #25964
 260 
 261 // Op
 262     __ nop();                                          //       nop
 263     __ eret();                                         //       eret
 264     __ drps();                                         //       drps
 265     __ isb();                                          //       isb
 266 
 267 // SystemOp
 268     __ dsb(Assembler::ST);                             //       dsb     ST
 269     __ dmb(Assembler::OSHST);                          //       dmb     OSHST
 270 
 271 // OneRegOp
 272     __ br(r16);                                        //       br      x16
 273     __ blr(r20);                                       //       blr     x20
 274 
 275 // LoadStoreExclusiveOp
 276     __ stxr(r10, r27, r8);                             //       stxr    w10, x27, [x8]
 277     __ stlxr(r0, r1, r21);                             //       stlxr   w0, x1, [x21]
 278     __ ldxr(r17, r29);                                 //       ldxr    x17, [x29]
 279     __ ldaxr(r29, r28);                                //       ldaxr   x29, [x28]
 280     __ stlr(r1, r23);                                  //       stlr    x1, [x23]
 281     __ ldar(r21, r20);                                 //       ldar    x21, [x20]
 282 
 283 // LoadStoreExclusiveOp
 284     __ stxrw(r22, r27, r19);                           //       stxr    w22, w27, [x19]
 285     __ stlxrw(r11, r16, r6);                           //       stlxr   w11, w16, [x6]
 286     __ ldxrw(r18, r0);                                 //       ldxr    w18, [x0]
 287     __ ldaxrw(r4, r10);                                //       ldaxr   w4, [x10]
 288     __ stlrw(r24, r22);                                //       stlr    w24, [x22]
 289     __ ldarw(r10, r19);                                //       ldar    w10, [x19]
 290 
 291 // LoadStoreExclusiveOp
 292     __ stxrh(r1, r5, r30);                             //       stxrh   w1, w5, [x30]
 293     __ stlxrh(r8, r12, r17);                           //       stlxrh  w8, w12, [x17]
 294     __ ldxrh(r9, r14);                                 //       ldxrh   w9, [x14]
 295     __ ldaxrh(r7, r1);                                 //       ldaxrh  w7, [x1]
 296     __ stlrh(r5, r16);                                 //       stlrh   w5, [x16]
 297     __ ldarh(r2, r12);                                 //       ldarh   w2, [x12]
 298 
 299 // LoadStoreExclusiveOp
 300     __ stxrb(r10, r12, r3);                            //       stxrb   w10, w12, [x3]
 301     __ stlxrb(r28, r14, r26);                          //       stlxrb  w28, w14, [x26]
 302     __ ldxrb(r30, r10);                                //       ldxrb   w30, [x10]
 303     __ ldaxrb(r14, r21);                               //       ldaxrb  w14, [x21]
 304     __ stlrb(r13, r9);                                 //       stlrb   w13, [x9]
 305     __ ldarb(r22, r27);                                //       ldarb   w22, [x27]
 306 
 307 // LoadStoreExclusiveOp
 308     __ ldxp(r28, r19, r11);                            //       ldxp    x28, x19, [x11]
 309     __ ldaxp(r30, r19, r2);                            //       ldaxp   x30, x19, [x2]
 310     __ stxp(r2, r23, r1, r0);                          //       stxp    w2, x23, x1, [x0]
 311     __ stlxp(r12, r16, r13, r15);                      //       stlxp   w12, x16, x13, [x15]
 312 
 313 // LoadStoreExclusiveOp
 314     __ ldxpw(r18, r21, r13);                           //       ldxp    w18, w21, [x13]
 315     __ ldaxpw(r11, r30, r8);                           //       ldaxp   w11, w30, [x8]
 316     __ stxpw(r24, r13, r11, r1);                       //       stxp    w24, w13, w11, [x1]
 317     __ stlxpw(r26, r21, r27, r13);                     //       stlxp   w26, w21, w27, [x13]
 318 
 319 // base_plus_unscaled_offset
 320 // LoadStoreOp
 321     __ str(r11, Address(r20, -103));                   //       str     x11, [x20, -103]
 322     __ strw(r28, Address(r16, 62));                    //       str     w28, [x16, 62]
 323     __ strb(r27, Address(r9, -9));                     //       strb    w27, [x9, -9]
 324     __ strh(r2, Address(r25, -50));                    //       strh    w2, [x25, -50]
 325     __ ldr(r4, Address(r2, -241));                     //       ldr     x4, [x2, -241]
 326     __ ldrw(r30, Address(r20, -31));                   //       ldr     w30, [x20, -31]
 327     __ ldrb(r18, Address(r23, -23));                   //       ldrb    w18, [x23, -23]
 328     __ ldrh(r29, Address(r26, -1));                    //       ldrh    w29, [x26, -1]
 329     __ ldrsb(r1, Address(r9, 6));                      //       ldrsb   x1, [x9, 6]
 330     __ ldrsh(r11, Address(r12, 19));                   //       ldrsh   x11, [x12, 19]
 331     __ ldrshw(r11, Address(r1, -50));                  //       ldrsh   w11, [x1, -50]
 332     __ ldrsw(r19, Address(r24, 41));                   //       ldrsw   x19, [x24, 41]
 333     __ ldrd(v24, Address(r24, 95));                    //       ldr     d24, [x24, 95]
 334     __ ldrs(v15, Address(r5, -43));                    //       ldr     s15, [x5, -43]
 335     __ strd(v21, Address(r27, 1));                     //       str     d21, [x27, 1]
 336     __ strs(v23, Address(r13, -107));                  //       str     s23, [x13, -107]
 337 
 338 // pre
 339 // LoadStoreOp
 340     __ str(r11, Address(__ pre(r0, 8)));               //       str     x11, [x0, 8]!
 341     __ strw(r3, Address(__ pre(r0, 29)));              //       str     w3, [x0, 29]!
 342     __ strb(r11, Address(__ pre(r14, 9)));             //       strb    w11, [x14, 9]!
 343     __ strh(r29, Address(__ pre(r24, -3)));            //       strh    w29, [x24, -3]!
 344     __ ldr(r13, Address(__ pre(r17, -144)));           //       ldr     x13, [x17, -144]!
 345     __ ldrw(r12, Address(__ pre(r22, -6)));            //       ldr     w12, [x22, -6]!
 346     __ ldrb(r13, Address(__ pre(r12, -10)));           //       ldrb    w13, [x12, -10]!
 347     __ ldrh(r0, Address(__ pre(r21, -21)));            //       ldrh    w0, [x21, -21]!
 348     __ ldrsb(r23, Address(__ pre(r7, 4)));             //       ldrsb   x23, [x7, 4]!
 349     __ ldrsh(r3, Address(__ pre(r7, -53)));            //       ldrsh   x3, [x7, -53]!
 350     __ ldrshw(r28, Address(__ pre(r5, -7)));           //       ldrsh   w28, [x5, -7]!
 351     __ ldrsw(r24, Address(__ pre(r9, -18)));           //       ldrsw   x24, [x9, -18]!
 352     __ ldrd(v14, Address(__ pre(r11, 12)));            //       ldr     d14, [x11, 12]!
 353     __ ldrs(v19, Address(__ pre(r12, -67)));           //       ldr     s19, [x12, -67]!
 354     __ strd(v20, Address(__ pre(r0, -253)));           //       str     d20, [x0, -253]!
 355     __ strs(v8, Address(__ pre(r0, 64)));              //       str     s8, [x0, 64]!
 356 
 357 // post
 358 // LoadStoreOp
 359     __ str(r4, Address(__ post(r28, -94)));            //       str     x4, [x28], -94
 360     __ strw(r12, Address(__ post(r7, -54)));           //       str     w12, [x7], -54
 361     __ strb(r27, Address(__ post(r10, -24)));          //       strb    w27, [x10], -24
 362     __ strh(r6, Address(__ post(r8, 27)));             //       strh    w6, [x8], 27
 363     __ ldr(r14, Address(__ post(r10, -202)));          //       ldr     x14, [x10], -202
 364     __ ldrw(r16, Address(__ post(r5, -41)));           //       ldr     w16, [x5], -41
 365     __ ldrb(r2, Address(__ post(r14, 9)));             //       ldrb    w2, [x14], 9
 366     __ ldrh(r28, Address(__ post(r13, -20)));          //       ldrh    w28, [x13], -20
 367     __ ldrsb(r9, Address(__ post(r13, -31)));          //       ldrsb   x9, [x13], -31
 368     __ ldrsh(r3, Address(__ post(r24, -36)));          //       ldrsh   x3, [x24], -36
 369     __ ldrshw(r20, Address(__ post(r3, 6)));           //       ldrsh   w20, [x3], 6
 370     __ ldrsw(r7, Address(__ post(r19, -1)));           //       ldrsw   x7, [x19], -1
 371     __ ldrd(v30, Address(__ post(r8, -130)));          //       ldr     d30, [x8], -130
 372     __ ldrs(v25, Address(__ post(r15, 21)));           //       ldr     s25, [x15], 21
 373     __ strd(v14, Address(__ post(r23, 90)));           //       str     d14, [x23], 90
 374     __ strs(v8, Address(__ post(r0, -33)));            //       str     s8, [x0], -33
 375 
 376 // base_plus_reg
 377 // LoadStoreOp
 378     __ str(r10, Address(r18, r21, Address::sxtw(3)));  //       str     x10, [x18, w21, sxtw #3]
 379     __ strw(r4, Address(r13, r22, Address::sxtw(2)));  //       str     w4, [x13, w22, sxtw #2]
 380     __ strb(r13, Address(r0, r19, Address::uxtw(0)));  //       strb    w13, [x0, w19, uxtw #0]
 381     __ strh(r12, Address(r27, r6, Address::sxtw(0)));  //       strh    w12, [x27, w6, sxtw #0]
 382     __ ldr(r0, Address(r8, r16, Address::lsl(0)));     //       ldr     x0, [x8, x16, lsl #0]
 383     __ ldrw(r0, Address(r4, r26, Address::sxtx(0)));   //       ldr     w0, [x4, x26, sxtx #0]
 384     __ ldrb(r14, Address(r25, r5, Address::sxtw(0)));  //       ldrb    w14, [x25, w5, sxtw #0]
 385     __ ldrh(r9, Address(r4, r18, Address::uxtw(0)));   //       ldrh    w9, [x4, w18, uxtw #0]
 386     __ ldrsb(r27, Address(r4, r7, Address::lsl(0)));   //       ldrsb   x27, [x4, x7, lsl #0]
 387     __ ldrsh(r15, Address(r17, r30, Address::sxtw(0))); //      ldrsh   x15, [x17, w30, sxtw #0]
 388     __ ldrshw(r16, Address(r0, r22, Address::sxtw(0))); //      ldrsh   w16, [x0, w22, sxtw #0]
 389     __ ldrsw(r22, Address(r10, r30, Address::sxtx(2))); //      ldrsw   x22, [x10, x30, sxtx #2]
 390     __ ldrd(v29, Address(r21, r10, Address::sxtx(3))); //       ldr     d29, [x21, x10, sxtx #3]
 391     __ ldrs(v3, Address(r11, r19, Address::uxtw(0)));  //       ldr     s3, [x11, w19, uxtw #0]
 392     __ strd(v13, Address(r28, r29, Address::uxtw(3))); //       str     d13, [x28, w29, uxtw #3]
 393     __ strs(v23, Address(r29, r5, Address::sxtx(2)));  //       str     s23, [x29, x5, sxtx #2]
 394 
 395 // base_plus_scaled_offset
 396 // LoadStoreOp
 397     __ str(r5, Address(r8, 12600));                    //       str     x5, [x8, 12600]
 398     __ strw(r29, Address(r24, 7880));                  //       str     w29, [x24, 7880]
 399     __ strb(r19, Address(r17, 1566));                  //       strb    w19, [x17, 1566]
 400     __ strh(r13, Address(r19, 3984));                  //       strh    w13, [x19, 3984]
 401     __ ldr(r19, Address(r23, 13632));                  //       ldr     x19, [x23, 13632]
 402     __ ldrw(r23, Address(r29, 6264));                  //       ldr     w23, [x29, 6264]
 403     __ ldrb(r22, Address(r11, 2012));                  //       ldrb    w22, [x11, 2012]
 404     __ ldrh(r3, Address(r10, 3784));                   //       ldrh    w3, [x10, 3784]
 405     __ ldrsb(r8, Address(r16, 1951));                  //       ldrsb   x8, [x16, 1951]
 406     __ ldrsh(r23, Address(r20, 3346));                 //       ldrsh   x23, [x20, 3346]
 407     __ ldrshw(r2, Address(r1, 3994));                  //       ldrsh   w2, [x1, 3994]
 408     __ ldrsw(r4, Address(r17, 7204));                  //       ldrsw   x4, [x17, 7204]
 409     __ ldrd(v20, Address(r27, 14400));                 //       ldr     d20, [x27, 14400]
 410     __ ldrs(v25, Address(r14, 8096));                  //       ldr     s25, [x14, 8096]
 411     __ strd(v26, Address(r10, 15024));                 //       str     d26, [x10, 15024]
 412     __ strs(v9, Address(r3, 6936));                    //       str     s9, [x3, 6936]
 413 
 414 // pcrel
 415 // LoadStoreOp
 416     __ ldr(r27, forth);                                //       ldr     x27, forth
 417     __ ldrw(r11, __ pc());                             //       ldr     w11, .
 418 
 419 // LoadStoreOp
 420     __ prfm(Address(r3, -187));                        //       prfm    PLDL1KEEP, [x3, -187]
 421 
 422 // LoadStoreOp
 423     __ prfm(__ pc());                                  //       prfm    PLDL1KEEP, .
 424 
 425 // LoadStoreOp
 426     __ prfm(Address(r29, r14, Address::lsl(0)));       //       prfm    PLDL1KEEP, [x29, x14, lsl #0]
 427 
 428 // LoadStoreOp
 429     __ prfm(Address(r4, 13312));                       //       prfm    PLDL1KEEP, [x4, 13312]
 430 
 431 // AddSubCarryOp
 432     __ adcw(r21, r1, r7);                              //       adc     w21, w1, w7
 433     __ adcsw(r8, r5, r7);                              //       adcs    w8, w5, w7
 434     __ sbcw(r7, r27, r14);                             //       sbc     w7, w27, w14
 435     __ sbcsw(r27, r4, r17);                            //       sbcs    w27, w4, w17
 436     __ adc(r0, r28, r0);                               //       adc     x0, x28, x0
 437     __ adcs(r12, r24, r30);                            //       adcs    x12, x24, x30
 438     __ sbc(r0, r25, r15);                              //       sbc     x0, x25, x15
 439     __ sbcs(r1, r24, r3);                              //       sbcs    x1, x24, x3
 440 
 441 // AddSubExtendedOp
 442     __ addw(r18, r24, r20, ext::uxtb, 2);              //       add     w18, w24, w20, uxtb #2
 443     __ addsw(r13, r28, r10, ext::uxth, 1);             //       adds    w13, w28, w10, uxth #1
 444     __ sub(r15, r16, r2, ext::sxth, 2);                //       sub     x15, x16, x2, sxth #2
 445     __ subsw(r29, r13, r13, ext::uxth, 2);             //       subs    w29, w13, w13, uxth #2
 446     __ add(r12, r20, r12, ext::sxtw, 3);               //       add     x12, x20, x12, sxtw #3
 447     __ adds(r30, r27, r11, ext::sxtb, 1);              //       adds    x30, x27, x11, sxtb #1
 448     __ sub(r14, r7, r1, ext::sxtw, 2);                 //       sub     x14, x7, x1, sxtw #2
 449     __ subs(r29, r3, r27, ext::sxth, 1);               //       subs    x29, x3, x27, sxth #1
 450 
 451 // ConditionalCompareOp
 452     __ ccmnw(r0, r13, 14u, Assembler::MI);             //       ccmn    w0, w13, #14, MI
 453     __ ccmpw(r22, r18, 6u, Assembler::CC);             //       ccmp    w22, w18, #6, CC
 454     __ ccmn(r18, r30, 14u, Assembler::VS);             //       ccmn    x18, x30, #14, VS
 455     __ ccmp(r10, r19, 12u, Assembler::HI);             //       ccmp    x10, x19, #12, HI
 456 
 457 // ConditionalCompareImmedOp
 458     __ ccmnw(r6, 18, 2, Assembler::LE);                //       ccmn    w6, #18, #2, LE
 459     __ ccmpw(r9, 13, 4, Assembler::HI);                //       ccmp    w9, #13, #4, HI
 460     __ ccmn(r21, 11, 11, Assembler::LO);               //       ccmn    x21, #11, #11, LO
 461     __ ccmp(r4, 13, 2, Assembler::VC);                 //       ccmp    x4, #13, #2, VC
 462 
 463 // ConditionalSelectOp
 464     __ cselw(r12, r2, r22, Assembler::HI);             //       csel    w12, w2, w22, HI
 465     __ csincw(r24, r16, r17, Assembler::HS);           //       csinc   w24, w16, w17, HS
 466     __ csinvw(r6, r7, r16, Assembler::LT);             //       csinv   w6, w7, w16, LT
 467     __ csnegw(r11, r27, r22, Assembler::LS);           //       csneg   w11, w27, w22, LS
 468     __ csel(r10, r3, r29, Assembler::LT);              //       csel    x10, x3, x29, LT
 469     __ csinc(r12, r26, r27, Assembler::CC);            //       csinc   x12, x26, x27, CC
 470     __ csinv(r15, r10, r21, Assembler::GT);            //       csinv   x15, x10, x21, GT
 471     __ csneg(r30, r23, r9, Assembler::GT);             //       csneg   x30, x23, x9, GT
 472 
 473 // TwoRegOp
 474     __ rbitw(r30, r10);                                //       rbit    w30, w10
 475     __ rev16w(r29, r15);                               //       rev16   w29, w15
 476     __ revw(r29, r30);                                 //       rev     w29, w30
 477     __ clzw(r25, r21);                                 //       clz     w25, w21
 478     __ clsw(r4, r0);                                   //       cls     w4, w0
 479     __ rbit(r18, r21);                                 //       rbit    x18, x21
 480     __ rev16(r29, r16);                                //       rev16   x29, x16
 481     __ rev32(r21, r20);                                //       rev32   x21, x20
 482     __ rev(r6, r19);                                   //       rev     x6, x19
 483     __ clz(r30, r3);                                   //       clz     x30, x3
 484     __ cls(r21, r19);                                  //       cls     x21, x19
 485 
 486 // ThreeRegOp
 487     __ udivw(r11, r24, r0);                            //       udiv    w11, w24, w0
 488     __ sdivw(r27, r25, r14);                           //       sdiv    w27, w25, w14
 489     __ lslvw(r3, r14, r18);                            //       lslv    w3, w14, w18
 490     __ lsrvw(r7, r15, r24);                            //       lsrv    w7, w15, w24
 491     __ asrvw(r28, r17, r25);                           //       asrv    w28, w17, w25
 492     __ rorvw(r2, r26, r28);                            //       rorv    w2, w26, w28
 493     __ udiv(r5, r25, r26);                             //       udiv    x5, x25, x26
 494     __ sdiv(r27, r16, r18);                            //       sdiv    x27, x16, x18
 495     __ lslv(r6, r21, r12);                             //       lslv    x6, x21, x12
 496     __ lsrv(r0, r4, r12);                              //       lsrv    x0, x4, x12
 497     __ asrv(r27, r17, r28);                            //       asrv    x27, x17, x28
 498     __ rorv(r28, r2, r18);                             //       rorv    x28, x2, x18
 499     __ umulh(r10, r15, r14);                           //       umulh   x10, x15, x14
 500     __ smulh(r14, r3, r25);                            //       smulh   x14, x3, x25
 501 
 502 // FourRegMulOp
 503     __ maddw(r15, r19, r14, r5);                       //       madd    w15, w19, w14, w5
 504     __ msubw(r16, r4, r26, r25);                       //       msub    w16, w4, w26, w25
 505     __ madd(r4, r2, r2, r12);                          //       madd    x4, x2, x2, x12
 506     __ msub(r29, r17, r8, r7);                         //       msub    x29, x17, x8, x7
 507     __ smaddl(r3, r4, r25, r4);                        //       smaddl  x3, w4, w25, x4
 508     __ smsubl(r26, r25, r4, r17);                      //       smsubl  x26, w25, w4, x17
 509     __ umaddl(r0, r26, r17, r23);                      //       umaddl  x0, w26, w17, x23
 510     __ umsubl(r15, r21, r28, r17);                     //       umsubl  x15, w21, w28, x17
 511 
 512 // ThreeRegFloatOp
 513     __ fmuls(v27, v10, v3);                            //       fmul    s27, s10, s3
 514     __ fdivs(v0, v7, v25);                             //       fdiv    s0, s7, s25
 515     __ fadds(v9, v6, v15);                             //       fadd    s9, s6, s15
 516     __ fsubs(v29, v15, v10);                           //       fsub    s29, s15, s10
 517     __ fmuls(v2, v17, v7);                             //       fmul    s2, s17, s7
 518     __ fmuld(v11, v11, v23);                           //       fmul    d11, d11, d23
 519     __ fdivd(v7, v29, v23);                            //       fdiv    d7, d29, d23
 520     __ faddd(v14, v27, v11);                           //       fadd    d14, d27, d11
 521     __ fsubd(v11, v4, v24);                            //       fsub    d11, d4, d24
 522     __ fmuld(v12, v15, v14);                           //       fmul    d12, d15, d14
 523 
 524 // FourRegFloatOp
 525     __ fmadds(v20, v11, v28, v13);                     //       fmadd   s20, s11, s28, s13
 526     __ fmsubs(v11, v12, v23, v30);                     //       fmsub   s11, s12, s23, s30
 527     __ fnmadds(v26, v14, v9, v13);                     //       fnmadd  s26, s14, s9, s13
 528     __ fnmadds(v10, v7, v5, v29);                      //       fnmadd  s10, s7, s5, s29
 529     __ fmaddd(v15, v3, v11, v12);                      //       fmadd   d15, d3, d11, d12
 530     __ fmsubd(v15, v30, v30, v17);                     //       fmsub   d15, d30, d30, d17
 531     __ fnmaddd(v19, v20, v15, v15);                    //       fnmadd  d19, d20, d15, d15
 532     __ fnmaddd(v9, v21, v2, v9);                       //       fnmadd  d9, d21, d2, d9
 533 
 534 // TwoRegFloatOp
 535     __ fmovs(v27, v7);                                 //       fmov    s27, s7
 536     __ fabss(v29, v30);                                //       fabs    s29, s30
 537     __ fnegs(v17, v1);                                 //       fneg    s17, s1
 538     __ fsqrts(v2, v6);                                 //       fsqrt   s2, s6
 539     __ fcvts(v10, v3);                                 //       fcvt    d10, s3
 540     __ fmovd(v24, v11);                                //       fmov    d24, d11
 541     __ fabsd(v7, v1);                                  //       fabs    d7, d1
 542     __ fnegd(v11, v0);                                 //       fneg    d11, d0
 543     __ fsqrtd(v3, v18);                                //       fsqrt   d3, d18
 544     __ fcvtd(v28, v6);                                 //       fcvt    s28, d6
 545 
 546 // FloatConvertOp
 547     __ fcvtzsw(r22, v6);                               //       fcvtzs  w22, s6
 548     __ fcvtzs(r0, v27);                                //       fcvtzs  x0, s27
 549     __ fcvtzdw(r26, v2);                               //       fcvtzs  w26, d2
 550     __ fcvtzd(r5, v7);                                 //       fcvtzs  x5, d7
 551     __ scvtfws(v28, r11);                              //       scvtf   s28, w11
 552     __ scvtfs(v25, r13);                               //       scvtf   s25, x13
 553     __ scvtfwd(v11, r23);                              //       scvtf   d11, w23
 554     __ scvtfd(v19, r8);                                //       scvtf   d19, x8
 555     __ fmovs(r18, v21);                                //       fmov    w18, s21
 556     __ fmovd(r25, v20);                                //       fmov    x25, d20
 557     __ fmovs(v19, r18);                                //       fmov    s19, w18
 558     __ fmovd(v2, r29);                                 //       fmov    d2, x29
 559 
 560 // TwoRegFloatOp
 561     __ fcmps(v22, v8);                                 //       fcmp    s22, s8
 562     __ fcmpd(v21, v19);                                //       fcmp    d21, d19
 563     __ fcmps(v20, 0.0);                                //       fcmp    s20, #0.0
 564     __ fcmpd(v11, 0.0);                                //       fcmp    d11, #0.0
 565 
 566 // LoadStorePairOp
 567     __ stpw(r20, r6, Address(r15, -32));               //       stp     w20, w6, [x15, #-32]
 568     __ ldpw(r27, r14, Address(r3, -208));              //       ldp     w27, w14, [x3, #-208]
 569     __ ldpsw(r17, r10, Address(r11, -80));             //       ldpsw   x17, x10, [x11, #-80]
 570     __ stp(r7, r7, Address(r14, 64));                  //       stp     x7, x7, [x14, #64]
 571     __ ldp(r12, r23, Address(r0, 112));                //       ldp     x12, x23, [x0, #112]
 572 
 573 // LoadStorePairOp
 574     __ stpw(r13, r7, Address(__ pre(r6, -80)));        //       stp     w13, w7, [x6, #-80]!
 575     __ ldpw(r30, r16, Address(__ pre(r2, -144)));      //       ldp     w30, w16, [x2, #-144]!
 576     __ ldpsw(r4, r1, Address(__ pre(r26, -144)));      //       ldpsw   x4, x1, [x26, #-144]!
 577     __ stp(r23, r14, Address(__ pre(r11, 64)));        //       stp     x23, x14, [x11, #64]!
 578     __ ldp(r29, r27, Address(__ pre(r21, -192)));      //       ldp     x29, x27, [x21, #-192]!
 579 
 580 // LoadStorePairOp
 581     __ stpw(r22, r5, Address(__ post(r21, -48)));      //       stp     w22, w5, [x21], #-48
 582     __ ldpw(r27, r17, Address(__ post(r6, -32)));      //       ldp     w27, w17, [x6], #-32
 583     __ ldpsw(r17, r6, Address(__ post(r1, -80)));      //       ldpsw   x17, x6, [x1], #-80
 584     __ stp(r13, r20, Address(__ post(r21, -208)));     //       stp     x13, x20, [x21], #-208
 585     __ ldp(r30, r27, Address(__ post(r10, 80)));       //       ldp     x30, x27, [x10], #80
 586 
 587 // LoadStorePairOp
 588     __ stnpw(r5, r17, Address(r11, 16));               //       stnp    w5, w17, [x11, #16]
 589     __ ldnpw(r14, r4, Address(r26, -96));              //       ldnp    w14, w4, [x26, #-96]
 590     __ stnp(r23, r29, Address(r12, 32));               //       stnp    x23, x29, [x12, #32]
 591     __ ldnp(r0, r6, Address(r21, -80));                //       ldnp    x0, x6, [x21, #-80]
 592 
 593 // LdStSIMDOp
 594     __ ld1(v15, __ T8B, Address(r26));                 //       ld1     {v15.8B}, [x26]
 595     __ ld1(v23, v24, __ T16B, Address(__ post(r11, 32))); //    ld1     {v23.16B, v24.16B}, [x11], 32
 596     __ ld1(v8, v9, v10, __ T1D, Address(__ post(r23, r7))); //  ld1     {v8.1D, v9.1D, v10.1D}, [x23], x7
 597     __ ld1(v19, v20, v21, v22, __ T8H, Address(__ post(r25, 64))); //   ld1     {v19.8H, v20.8H, v21.8H, v22.8H}, [x25], 64
 598     __ ld1r(v29, __ T8B, Address(r17));                //       ld1r    {v29.8B}, [x17]
 599     __ ld1r(v24, __ T4S, Address(__ post(r23, 4)));    //       ld1r    {v24.4S}, [x23], 4
 600     __ ld1r(v10, __ T1D, Address(__ post(r5, r25)));   //       ld1r    {v10.1D}, [x5], x25
 601     __ ld2(v18, v19, __ T2D, Address(r10));            //       ld2     {v18.2D, v19.2D}, [x10]
 602     __ ld2(v12, v13, __ T4H, Address(__ post(r15, 16))); //     ld2     {v12.4H, v13.4H}, [x15], 16
 603     __ ld2r(v25, v26, __ T16B, Address(r18));          //       ld2r    {v25.16B, v26.16B}, [x18]
 604     __ ld2r(v1, v2, __ T2S, Address(__ post(r30, 8))); //       ld2r    {v1.2S, v2.2S}, [x30], 8
 605     __ ld2r(v16, v17, __ T2D, Address(__ post(r18, r9))); //    ld2r    {v16.2D, v17.2D}, [x18], x9
 606     __ ld3(v25, v26, v27, __ T4S, Address(__ post(r12, r2))); //        ld3     {v25.4S, v26.4S, v27.4S}, [x12], x2
 607     __ ld3(v26, v27, v28, __ T2S, Address(r19));       //       ld3     {v26.2S, v27.2S, v28.2S}, [x19]
 608     __ ld3r(v15, v16, v17, __ T8H, Address(r21));      //       ld3r    {v15.8H, v16.8H, v17.8H}, [x21]
 609     __ ld3r(v25, v26, v27, __ T4S, Address(__ post(r13, 12))); //       ld3r    {v25.4S, v26.4S, v27.4S}, [x13], 12
 610     __ ld3r(v14, v15, v16, __ T1D, Address(__ post(r28, r29))); //      ld3r    {v14.1D, v15.1D, v16.1D}, [x28], x29
 611     __ ld4(v17, v18, v19, v20, __ T8H, Address(__ post(r29, 64))); //   ld4     {v17.8H, v18.8H, v19.8H, v20.8H}, [x29], 64
 612     __ ld4(v27, v28, v29, v30, __ T8B, Address(__ post(r7, r0))); //    ld4     {v27.8B, v28.8B, v29.8B, v30.8B}, [x7], x0
 613     __ ld4r(v24, v25, v26, v27, __ T8B, Address(r18)); //       ld4r    {v24.8B, v25.8B, v26.8B, v27.8B}, [x18]
 614     __ ld4r(v0, v1, v2, v3, __ T4H, Address(__ post(r26, 8))); //       ld4r    {v0.4H, v1.4H, v2.4H, v3.4H}, [x26], 8
 615     __ ld4r(v12, v13, v14, v15, __ T2S, Address(__ post(r25, r2))); //  ld4r    {v12.2S, v13.2S, v14.2S, v15.2S}, [x25], x2
 616 
 617 // SHA512SIMDOp
 618     __ sha512h(v22, __ T2D, v27, v4);                  //       sha512h         q22, q27, v4.2D
 619     __ sha512h2(v7, __ T2D, v6, v1);                   //       sha512h2                q7, q6, v1.2D
 620     __ sha512su0(v26, __ T2D, v15);                    //       sha512su0               v26.2D, v15.2D
 621     __ sha512su1(v2, __ T2D, v13, v13);                //       sha512su1               v2.2D, v13.2D, v13.2D
 622 
 623 // SpecialCases
 624     __ ccmn(zr, zr, 3u, Assembler::LE);                //       ccmn    xzr, xzr, #3, LE
 625     __ ccmnw(zr, zr, 5u, Assembler::EQ);               //       ccmn    wzr, wzr, #5, EQ
 626     __ ccmp(zr, 1, 4u, Assembler::NE);                 //       ccmp    xzr, 1, #4, NE
 627     __ ccmpw(zr, 2, 2, Assembler::GT);                 //       ccmp    wzr, 2, #2, GT
 628     __ extr(zr, zr, zr, 0);                            //       extr    xzr, xzr, xzr, 0
 629     __ stlxp(r0, zr, zr, sp);                          //       stlxp   w0, xzr, xzr, [sp]
 630     __ stlxpw(r2, zr, zr, r3);                         //       stlxp   w2, wzr, wzr, [x3]
 631     __ stxp(r4, zr, zr, r5);                           //       stxp    w4, xzr, xzr, [x5]
 632     __ stxpw(r6, zr, zr, sp);                          //       stxp    w6, wzr, wzr, [sp]
 633     __ dup(v0, __ T16B, zr);                           //       dup     v0.16b, wzr
 634     __ mov(v1, __ T1D, 0, zr);                         //       mov     v1.d[0], xzr
 635     __ mov(v1, __ T2S, 1, zr);                         //       mov     v1.s[1], wzr
 636     __ mov(v1, __ T4H, 2, zr);                         //       mov     v1.h[2], wzr
 637     __ mov(v1, __ T8B, 3, zr);                         //       mov     v1.b[3], wzr
 638     __ ld1(v31, v0, __ T2D, Address(__ post(r1, r0))); //       ld1     {v31.2d, v0.2d}, [x1], x0
 639 
 640 // FloatImmediateOp
 641     __ fmovd(v0, 2.0);                                 //       fmov d0, #2.0


 655     __ fmovd(v0, 1.0);                                 //       fmov d0, #1.0
 656     __ fmovd(v0, 1.0625);                              //       fmov d0, #1.0625
 657     __ fmovd(v0, -2.0);                                //       fmov d0, #-2.0
 658     __ fmovd(v0, -2.125);                              //       fmov d0, #-2.125
 659     __ fmovd(v0, -4.0);                                //       fmov d0, #-4.0
 660     __ fmovd(v0, -4.25);                               //       fmov d0, #-4.25
 661     __ fmovd(v0, -8.0);                                //       fmov d0, #-8.0
 662     __ fmovd(v0, -8.5);                                //       fmov d0, #-8.5
 663     __ fmovd(v0, -16.0);                               //       fmov d0, #-16.0
 664     __ fmovd(v0, -17.0);                               //       fmov d0, #-17.0
 665     __ fmovd(v0, -0.125);                              //       fmov d0, #-0.125
 666     __ fmovd(v0, -0.1328125);                          //       fmov d0, #-0.1328125
 667     __ fmovd(v0, -0.25);                               //       fmov d0, #-0.25
 668     __ fmovd(v0, -0.265625);                           //       fmov d0, #-0.265625
 669     __ fmovd(v0, -0.5);                                //       fmov d0, #-0.5
 670     __ fmovd(v0, -0.53125);                            //       fmov d0, #-0.53125
 671     __ fmovd(v0, -1.0);                                //       fmov d0, #-1.0
 672     __ fmovd(v0, -1.0625);                             //       fmov d0, #-1.0625
 673 
 674 // LSEOp
 675     __ swp(Assembler::xword, r24, r24, r4);            //       swp     x24, x24, [x4]
 676     __ ldadd(Assembler::xword, r20, r16, r0);          //       ldadd   x20, x16, [x0]
 677     __ ldbic(Assembler::xword, r4, r21, r11);          //       ldclr   x4, x21, [x11]
 678     __ ldeor(Assembler::xword, r30, r16, r22);         //       ldeor   x30, x16, [x22]
 679     __ ldorr(Assembler::xword, r4, r15, r23);          //       ldset   x4, x15, [x23]
 680     __ ldsmin(Assembler::xword, r26, r6, r12);         //       ldsmin  x26, x6, [x12]
 681     __ ldsmax(Assembler::xword, r15, r14, r15);        //       ldsmax  x15, x14, [x15]
 682     __ ldumin(Assembler::xword, r9, r25, r29);         //       ldumin  x9, x25, [x29]
 683     __ ldumax(Assembler::xword, r11, r20, r12);        //       ldumax  x11, x20, [x12]
 684 
 685 // LSEOp
 686     __ swpa(Assembler::xword, r18, r22, r16);          //       swpa    x18, x22, [x16]
 687     __ ldadda(Assembler::xword, r21, r24, r26);        //       ldadda  x21, x24, [x26]
 688     __ ldbica(Assembler::xword, r6, r6, r16);          //       ldclra  x6, x6, [x16]
 689     __ ldeora(Assembler::xword, r16, r25, r16);        //       ldeora  x16, x25, [x16]
 690     __ ldorra(Assembler::xword, r28, r24, r16);        //       ldseta  x28, x24, [x16]
 691     __ ldsmina(Assembler::xword, r26, r15, r10);       //       ldsmina x26, x15, [x10]
 692     __ ldsmaxa(Assembler::xword, r13, r14, r20);       //       ldsmaxa x13, x14, [x20]
 693     __ ldumina(Assembler::xword, r1, r23, r30);        //       ldumina x1, x23, [x30]
 694     __ ldumaxa(Assembler::xword, r14, r2, r6);         //       ldumaxa x14, x2, [x6]
 695 
 696 // LSEOp
 697     __ swpal(Assembler::xword, r3, r8, r25);           //       swpal   x3, x8, [x25]
 698     __ ldaddal(Assembler::xword, r0, r27, r30);        //       ldaddal x0, x27, [x30]
 699     __ ldbical(Assembler::xword, r5, r5, r30);         //       ldclral x5, x5, [x30]
 700     __ ldeoral(Assembler::xword, r11, r25, r0);        //       ldeoral x11, x25, [x0]
 701     __ ldorral(Assembler::xword, zr, r0, r19);         //       ldsetal xzr, x0, [x19]
 702     __ ldsminal(Assembler::xword, r29, r26, r9);       //       ldsminal        x29, x26, [x9]
 703     __ ldsmaxal(Assembler::xword, r26, r12, r15);      //       ldsmaxal        x26, x12, [x15]
 704     __ lduminal(Assembler::xword, r11, r11, r18);      //       lduminal        x11, x11, [x18]
 705     __ ldumaxal(Assembler::xword, r25, r22, r24);      //       ldumaxal        x25, x22, [x24]
 706 
 707 // LSEOp
 708     __ swpl(Assembler::xword, r0, r17, r11);           //       swpl    x0, x17, [x11]
 709     __ ldaddl(Assembler::xword, r6, r29, r6);          //       ldaddl  x6, x29, [x6]
 710     __ ldbicl(Assembler::xword, r5, r5, r21);          //       ldclrl  x5, x5, [x21]
 711     __ ldeorl(Assembler::xword, r19, r16, r18);        //       ldeorl  x19, x16, [x18]
 712     __ ldorrl(Assembler::xword, r30, r27, r28);        //       ldsetl  x30, x27, [x28]
 713     __ ldsminl(Assembler::xword, r1, r28, r1);         //       ldsminl x1, x28, [x1]
 714     __ ldsmaxl(Assembler::xword, r20, r29, r16);       //       ldsmaxl x20, x29, [x16]
 715     __ lduminl(Assembler::xword, r13, r10, r29);       //       lduminl x13, x10, [x29]
 716     __ ldumaxl(Assembler::xword, r29, r19, r22);       //       ldumaxl x29, x19, [x22]
 717 
 718 // LSEOp
 719     __ swp(Assembler::word, r10, r4, sp);              //       swp     w10, w4, [sp]
 720     __ ldadd(Assembler::word, r21, r8, sp);            //       ldadd   w21, w8, [sp]
 721     __ ldbic(Assembler::word, r19, r10, r28);          //       ldclr   w19, w10, [x28]
 722     __ ldeor(Assembler::word, r2, r25, r5);            //       ldeor   w2, w25, [x5]
 723     __ ldorr(Assembler::word, r3, r8, r22);            //       ldset   w3, w8, [x22]
 724     __ ldsmin(Assembler::word, r19, r13, r5);          //       ldsmin  w19, w13, [x5]
 725     __ ldsmax(Assembler::word, r29, r24, r21);         //       ldsmax  w29, w24, [x21]
 726     __ ldumin(Assembler::word, r26, r24, r3);          //       ldumin  w26, w24, [x3]
 727     __ ldumax(Assembler::word, r24, r26, r23);         //       ldumax  w24, w26, [x23]
 728 
 729 // LSEOp
 730     __ swpa(Assembler::word, r15, r21, r3);            //       swpa    w15, w21, [x3]
 731     __ ldadda(Assembler::word, r24, r8, r25);          //       ldadda  w24, w8, [x25]
 732     __ ldbica(Assembler::word, r20, r16, r17);         //       ldclra  w20, w16, [x17]
 733     __ ldeora(Assembler::word, r2, r1, r0);            //       ldeora  w2, w1, [x0]
 734     __ ldorra(Assembler::word, r24, r4, r3);           //       ldseta  w24, w4, [x3]
 735     __ ldsmina(Assembler::word, r12, zr, r28);         //       ldsmina w12, wzr, [x28]
 736     __ ldsmaxa(Assembler::word, r10, r26, r2);         //       ldsmaxa w10, w26, [x2]
 737     __ ldumina(Assembler::word, r12, r18, sp);         //       ldumina w12, w18, [sp]
 738     __ ldumaxa(Assembler::word, r1, r13, r29);         //       ldumaxa w1, w13, [x29]
 739 
 740 // LSEOp
 741     __ swpal(Assembler::word, r0, r19, r12);           //       swpal   w0, w19, [x12]
 742     __ ldaddal(Assembler::word, r17, r22, r13);        //       ldaddal w17, w22, [x13]
 743     __ ldbical(Assembler::word, r28, r30, sp);         //       ldclral w28, w30, [sp]
 744     __ ldeoral(Assembler::word, r1, r26, r28);         //       ldeoral w1, w26, [x28]
 745     __ ldorral(Assembler::word, r4, r30, r4);          //       ldsetal w4, w30, [x4]
 746     __ ldsminal(Assembler::word, r6, r30, r26);        //       ldsminal        w6, w30, [x26]
 747     __ ldsmaxal(Assembler::word, r18, r9, r8);         //       ldsmaxal        w18, w9, [x8]
 748     __ lduminal(Assembler::word, r12, r0, r20);        //       lduminal        w12, w0, [x20]
 749     __ ldumaxal(Assembler::word, r1, r24, r2);         //       ldumaxal        w1, w24, [x2]
 750 
 751 // LSEOp
 752     __ swpl(Assembler::word, r0, r9, r24);             //       swpl    w0, w9, [x24]
 753     __ ldaddl(Assembler::word, r26, r16, r30);         //       ldaddl  w26, w16, [x30]
 754     __ ldbicl(Assembler::word, r3, r10, r23);          //       ldclrl  w3, w10, [x23]
 755     __ ldeorl(Assembler::word, r10, r4, r18);          //       ldeorl  w10, w4, [x18]
 756     __ ldorrl(Assembler::word, r2, r11, r8);           //       ldsetl  w2, w11, [x8]
 757     __ ldsminl(Assembler::word, r10, r15, r17);        //       ldsminl w10, w15, [x17]
 758     __ ldsmaxl(Assembler::word, r2, r10, r12);         //       ldsmaxl w2, w10, [x12]
 759     __ lduminl(Assembler::word, r12, r15, r13);        //       lduminl w12, w15, [x13]
 760     __ ldumaxl(Assembler::word, r2, r7, r20);          //       ldumaxl w2, w7, [x20]
 761 
 762     __ bind(forth);
 763 
 764 /*
 765 aarch64ops.o:     file format elf64-littleaarch64
 766 
 767 
 768 Disassembly of section .text:
 769 
 770 0000000000000000 <back>:
 771    0:   8b0d82fa        add     x26, x23, x13, lsl #32
 772    4:   cb49970c        sub     x12, x24, x9, lsr #37
 773    8:   ab889dfc        adds    x28, x15, x8, asr #39
 774    c:   eb9ee787        subs    x7, x28, x30, asr #57
 775   10:   0b9b3ec9        add     w9, w22, w27, asr #15
 776   14:   4b9279a3        sub     w3, w13, w18, asr #30
 777   18:   2b88474e        adds    w14, w26, w8, asr #17
 778   1c:   6b8c56c0        subs    w0, w22, w12, asr #21
 779   20:   8a1a51e0        and     x0, x15, x26, lsl #20
 780   24:   aa11f4ba        orr     x26, x5, x17, lsl #61
 781   28:   ca0281b8        eor     x24, x13, x2, lsl #32
 782   2c:   ea918c7c        ands    x28, x3, x17, asr #35
 783   30:   0a5d4a19        and     w25, w16, w29, lsr #18
 784   34:   2a4b264d        orr     w13, w18, w11, lsr #9
 785   38:   4a523ca5        eor     w5, w5, w18, lsr #15
 786   3c:   6a9b6ae2        ands    w2, w23, w27, asr #26
 787   40:   8a70b79b        bic     x27, x28, x16, lsr #45
 788   44:   aaba9728        orn     x8, x25, x26, asr #37
 789   48:   ca6dfe3d        eon     x29, x17, x13, lsr #63
 790   4c:   ea627f1c        bics    x28, x24, x2, lsr #31
 791   50:   0aa70f53        bic     w19, w26, w7, asr #3
 792   54:   2aaa0f06        orn     w6, w24, w10, asr #3
 793   58:   4a6176a4        eon     w4, w21, w1, lsr #29
 794   5c:   6a604eb0        bics    w16, w21, w0, lsr #19
 795   60:   1105ed91        add     w17, w12, #0x17b
 796   64:   3100583e        adds    w30, w1, #0x16
 797   68:   5101f8bd        sub     w29, w5, #0x7e
 798   6c:   710f0306        subs    w6, w24, #0x3c0
 799   70:   9101a1a0        add     x0, x13, #0x68
 800   74:   b10a5cc8        adds    x8, x6, #0x297
 801   78:   d10810aa        sub     x10, x5, #0x204
 802   7c:   f10fd061        subs    x1, x3, #0x3f4
 803   80:   120cb166        and     w6, w11, #0xfff1fff1
 804   84:   321764bc        orr     w28, w5, #0xfffffe07
 805   88:   52174681        eor     w1, w20, #0x7fffe00
 806   8c:   720c0247        ands    w7, w18, #0x100000
 807   90:   9241018e        and     x14, x12, #0x8000000000000000
 808   94:   b25a2969        orr     x9, x11, #0x1ffc000000000
 809   98:   d278b411        eor     x17, x0, #0x3fffffffffff00
 810   9c:   f26aad01        ands    x1, x8, #0xffffffffffc00003
 811   a0:   14000000        b       a0 <back+0xa0>
 812   a4:   17ffffd7        b       0 <back>
 813   a8:   140001f2        b       870 <forth>
 814   ac:   94000000        bl      ac <back+0xac>
 815   b0:   97ffffd4        bl      0 <back>
 816   b4:   940001ef        bl      870 <forth>
 817   b8:   3400000a        cbz     w10, b8 <back+0xb8>
 818   bc:   34fffa2a        cbz     w10, 0 <back>
 819   c0:   34003d8a        cbz     w10, 870 <forth>
 820   c4:   35000008        cbnz    w8, c4 <back+0xc4>
 821   c8:   35fff9c8        cbnz    w8, 0 <back>
 822   cc:   35003d28        cbnz    w8, 870 <forth>
 823   d0:   b400000b        cbz     x11, d0 <back+0xd0>
 824   d4:   b4fff96b        cbz     x11, 0 <back>
 825   d8:   b4003ccb        cbz     x11, 870 <forth>
 826   dc:   b500001d        cbnz    x29, dc <back+0xdc>
 827   e0:   b5fff91d        cbnz    x29, 0 <back>
 828   e4:   b5003c7d        cbnz    x29, 870 <forth>
 829   e8:   10000013        adr     x19, e8 <back+0xe8>
 830   ec:   10fff8b3        adr     x19, 0 <back>
 831   f0:   10003c13        adr     x19, 870 <forth>
 832   f4:   90000013        adrp    x19, 0 <back>
 833   f8:   36300016        tbz     w22, #6, f8 <back+0xf8>
 834   fc:   3637f836        tbz     w22, #6, 0 <back>
 835  100:   36303b96        tbz     w22, #6, 870 <forth>
 836  104:   3758000c        tbnz    w12, #11, 104 <back+0x104>
 837  108:   375ff7cc        tbnz    w12, #11, 0 <back>
 838  10c:   37583b2c        tbnz    w12, #11, 870 <forth>
 839  110:   128313a0        mov     w0, #0xffffe762                 // #-6302
 840  114:   528a32c7        mov     w7, #0x5196                     // #20886
 841  118:   7289173b        movk    w27, #0x48b9
 842  11c:   92ab3acc        mov     x12, #0xffffffffa629ffff        // #-1507196929
 843  120:   d2a0bf94        mov     x20, #0x5fc0000                 // #100401152
 844  124:   f2c285e8        movk    x8, #0x142f, lsl #32
 845  128:   9358722f        sbfx    x15, x17, #24, #5
 846  12c:   330e652f        bfxil   w15, w9, #14, #12
 847  130:   53067f3b        lsr     w27, w25, #6
 848  134:   93577c53        sbfx    x19, x2, #23, #9
 849  138:   b34a1aac        bfi     x12, x21, #54, #7
 850  13c:   d35a4016        ubfiz   x22, x0, #38, #17
 851  140:   13946c63        extr    w3, w3, w20, #27
 852  144:   93c3dbc8        extr    x8, x30, x3, #54
 853  148:   54000000        b.eq    148 <back+0x148>  // b.none
 854  14c:   54fff5a0        b.eq    0 <back>  // b.none
 855  150:   54003900        b.eq    870 <forth>  // b.none
 856  154:   54000001        b.ne    154 <back+0x154>  // b.any
 857  158:   54fff541        b.ne    0 <back>  // b.any
 858  15c:   540038a1        b.ne    870 <forth>  // b.any
 859  160:   54000002        b.cs    160 <back+0x160>  // b.hs, b.nlast
 860  164:   54fff4e2        b.cs    0 <back>  // b.hs, b.nlast
 861  168:   54003842        b.cs    870 <forth>  // b.hs, b.nlast
 862  16c:   54000002        b.cs    16c <back+0x16c>  // b.hs, b.nlast
 863  170:   54fff482        b.cs    0 <back>  // b.hs, b.nlast
 864  174:   540037e2        b.cs    870 <forth>  // b.hs, b.nlast
 865  178:   54000003        b.cc    178 <back+0x178>  // b.lo, b.ul, b.last
 866  17c:   54fff423        b.cc    0 <back>  // b.lo, b.ul, b.last
 867  180:   54003783        b.cc    870 <forth>  // b.lo, b.ul, b.last
 868  184:   54000003        b.cc    184 <back+0x184>  // b.lo, b.ul, b.last
 869  188:   54fff3c3        b.cc    0 <back>  // b.lo, b.ul, b.last
 870  18c:   54003723        b.cc    870 <forth>  // b.lo, b.ul, b.last
 871  190:   54000004        b.mi    190 <back+0x190>  // b.first
 872  194:   54fff364        b.mi    0 <back>  // b.first
 873  198:   540036c4        b.mi    870 <forth>  // b.first
 874  19c:   54000005        b.pl    19c <back+0x19c>  // b.nfrst
 875  1a0:   54fff305        b.pl    0 <back>  // b.nfrst
 876  1a4:   54003665        b.pl    870 <forth>  // b.nfrst
 877  1a8:   54000006        b.vs    1a8 <back+0x1a8>
 878  1ac:   54fff2a6        b.vs    0 <back>
 879  1b0:   54003606        b.vs    870 <forth>
 880  1b4:   54000007        b.vc    1b4 <back+0x1b4>
 881  1b8:   54fff247        b.vc    0 <back>
 882  1bc:   540035a7        b.vc    870 <forth>
 883  1c0:   54000008        b.hi    1c0 <back+0x1c0>  // b.pmore
 884  1c4:   54fff1e8        b.hi    0 <back>  // b.pmore
 885  1c8:   54003548        b.hi    870 <forth>  // b.pmore
 886  1cc:   54000009        b.ls    1cc <back+0x1cc>  // b.plast
 887  1d0:   54fff189        b.ls    0 <back>  // b.plast
 888  1d4:   540034e9        b.ls    870 <forth>  // b.plast
 889  1d8:   5400000a        b.ge    1d8 <back+0x1d8>  // b.tcont
 890  1dc:   54fff12a        b.ge    0 <back>  // b.tcont
 891  1e0:   5400348a        b.ge    870 <forth>  // b.tcont
 892  1e4:   5400000b        b.lt    1e4 <back+0x1e4>  // b.tstop
 893  1e8:   54fff0cb        b.lt    0 <back>  // b.tstop
 894  1ec:   5400342b        b.lt    870 <forth>  // b.tstop
 895  1f0:   5400000c        b.gt    1f0 <back+0x1f0>
 896  1f4:   54fff06c        b.gt    0 <back>
 897  1f8:   540033cc        b.gt    870 <forth>
 898  1fc:   5400000d        b.le    1fc <back+0x1fc>
 899  200:   54fff00d        b.le    0 <back>
 900  204:   5400336d        b.le    870 <forth>
 901  208:   5400000e        b.al    208 <back+0x208>
 902  20c:   54ffefae        b.al    0 <back>
 903  210:   5400330e        b.al    870 <forth>
 904  214:   5400000f        b.nv    214 <back+0x214>
 905  218:   54ffef4f        b.nv    0 <back>
 906  21c:   540032af        b.nv    870 <forth>
 907  220:   d40658e1        svc     #0x32c7
 908  224:   d4014d22        hvc     #0xa69
 909  228:   d4046543        smc     #0x232a
 910  22c:   d4273f60        brk     #0x39fb
 911  230:   d44cad80        hlt     #0x656c
 912  234:   d503201f        nop
 913  238:   d69f03e0        eret
 914  23c:   d6bf03e0        drps
 915  240:   d5033fdf        isb
 916  244:   d5033e9f        dsb     st
 917  248:   d50332bf        dmb     oshst
 918  24c:   d61f0200        br      x16
 919  250:   d63f0280        blr     x20
 920  254:   c80a7d1b        stxr    w10, x27, [x8]
 921  258:   c800fea1        stlxr   w0, x1, [x21]
 922  25c:   c85f7fb1        ldxr    x17, [x29]
 923  260:   c85fff9d        ldaxr   x29, [x28]
 924  264:   c89ffee1        stlr    x1, [x23]
 925  268:   c8dffe95        ldar    x21, [x20]
 926  26c:   88167e7b        stxr    w22, w27, [x19]
 927  270:   880bfcd0        stlxr   w11, w16, [x6]
 928  274:   885f7c12        ldxr    w18, [x0]
 929  278:   885ffd44        ldaxr   w4, [x10]
 930  27c:   889ffed8        stlr    w24, [x22]
 931  280:   88dffe6a        ldar    w10, [x19]
 932  284:   48017fc5        stxrh   w1, w5, [x30]
 933  288:   4808fe2c        stlxrh  w8, w12, [x17]
 934  28c:   485f7dc9        ldxrh   w9, [x14]
 935  290:   485ffc27        ldaxrh  w7, [x1]
 936  294:   489ffe05        stlrh   w5, [x16]
 937  298:   48dffd82        ldarh   w2, [x12]
 938  29c:   080a7c6c        stxrb   w10, w12, [x3]
 939  2a0:   081cff4e        stlxrb  w28, w14, [x26]
 940  2a4:   085f7d5e        ldxrb   w30, [x10]
 941  2a8:   085ffeae        ldaxrb  w14, [x21]
 942  2ac:   089ffd2d        stlrb   w13, [x9]
 943  2b0:   08dfff76        ldarb   w22, [x27]
 944  2b4:   c87f4d7c        ldxp    x28, x19, [x11]
 945  2b8:   c87fcc5e        ldaxp   x30, x19, [x2]
 946  2bc:   c8220417        stxp    w2, x23, x1, [x0]
 947  2c0:   c82cb5f0        stlxp   w12, x16, x13, [x15]
 948  2c4:   887f55b2        ldxp    w18, w21, [x13]
 949  2c8:   887ff90b        ldaxp   w11, w30, [x8]
 950  2cc:   88382c2d        stxp    w24, w13, w11, [x1]
 951  2d0:   883aedb5        stlxp   w26, w21, w27, [x13]
 952  2d4:   f819928b        stur    x11, [x20, #-103]
 953  2d8:   b803e21c        stur    w28, [x16, #62]
 954  2dc:   381f713b        sturb   w27, [x9, #-9]
 955  2e0:   781ce322        sturh   w2, [x25, #-50]
 956  2e4:   f850f044        ldur    x4, [x2, #-241]
 957  2e8:   b85e129e        ldur    w30, [x20, #-31]
 958  2ec:   385e92f2        ldurb   w18, [x23, #-23]
 959  2f0:   785ff35d        ldurh   w29, [x26, #-1]
 960  2f4:   39801921        ldrsb   x1, [x9, #6]
 961  2f8:   7881318b        ldursh  x11, [x12, #19]
 962  2fc:   78dce02b        ldursh  w11, [x1, #-50]
 963  300:   b8829313        ldursw  x19, [x24, #41]
 964  304:   fc45f318        ldur    d24, [x24, #95]
 965  308:   bc5d50af        ldur    s15, [x5, #-43]
 966  30c:   fc001375        stur    d21, [x27, #1]
 967  310:   bc1951b7        stur    s23, [x13, #-107]
 968  314:   f8008c0b        str     x11, [x0, #8]!
 969  318:   b801dc03        str     w3, [x0, #29]!
 970  31c:   38009dcb        strb    w11, [x14, #9]!
 971  320:   781fdf1d        strh    w29, [x24, #-3]!
 972  324:   f8570e2d        ldr     x13, [x17, #-144]!
 973  328:   b85faecc        ldr     w12, [x22, #-6]!
 974  32c:   385f6d8d        ldrb    w13, [x12, #-10]!
 975  330:   785ebea0        ldrh    w0, [x21, #-21]!
 976  334:   38804cf7        ldrsb   x23, [x7, #4]!
 977  338:   789cbce3        ldrsh   x3, [x7, #-53]!
 978  33c:   78df9cbc        ldrsh   w28, [x5, #-7]!
 979  340:   b89eed38        ldrsw   x24, [x9, #-18]!
 980  344:   fc40cd6e        ldr     d14, [x11, #12]!
 981  348:   bc5bdd93        ldr     s19, [x12, #-67]!
 982  34c:   fc103c14        str     d20, [x0, #-253]!
 983  350:   bc040c08        str     s8, [x0, #64]!
 984  354:   f81a2784        str     x4, [x28], #-94
 985  358:   b81ca4ec        str     w12, [x7], #-54
 986  35c:   381e855b        strb    w27, [x10], #-24
 987  360:   7801b506        strh    w6, [x8], #27
 988  364:   f853654e        ldr     x14, [x10], #-202
 989  368:   b85d74b0        ldr     w16, [x5], #-41
 990  36c:   384095c2        ldrb    w2, [x14], #9
 991  370:   785ec5bc        ldrh    w28, [x13], #-20
 992  374:   389e15a9        ldrsb   x9, [x13], #-31
 993  378:   789dc703        ldrsh   x3, [x24], #-36
 994  37c:   78c06474        ldrsh   w20, [x3], #6
 995  380:   b89ff667        ldrsw   x7, [x19], #-1
 996  384:   fc57e51e        ldr     d30, [x8], #-130
 997  388:   bc4155f9        ldr     s25, [x15], #21
 998  38c:   fc05a6ee        str     d14, [x23], #90
 999  390:   bc1df408        str     s8, [x0], #-33
1000  394:   f835da4a        str     x10, [x18, w21, sxtw #3]
1001  398:   b836d9a4        str     w4, [x13, w22, sxtw #2]
1002  39c:   3833580d        strb    w13, [x0, w19, uxtw #0]
1003  3a0:   7826cb6c        strh    w12, [x27, w6, sxtw]
1004  3a4:   f8706900        ldr     x0, [x8, x16]
1005  3a8:   b87ae880        ldr     w0, [x4, x26, sxtx]
1006  3ac:   3865db2e        ldrb    w14, [x25, w5, sxtw #0]
1007  3b0:   78724889        ldrh    w9, [x4, w18, uxtw]
1008  3b4:   38a7789b        ldrsb   x27, [x4, x7, lsl #0]
1009  3b8:   78beca2f        ldrsh   x15, [x17, w30, sxtw]
1010  3bc:   78f6c810        ldrsh   w16, [x0, w22, sxtw]
1011  3c0:   b8bef956        ldrsw   x22, [x10, x30, sxtx #2]
1012  3c4:   fc6afabd        ldr     d29, [x21, x10, sxtx #3]
1013  3c8:   bc734963        ldr     s3, [x11, w19, uxtw]
1014  3cc:   fc3d5b8d        str     d13, [x28, w29, uxtw #3]
1015  3d0:   bc25fbb7        str     s23, [x29, x5, sxtx #2]
1016  3d4:   f9189d05        str     x5, [x8, #12600]
1017  3d8:   b91ecb1d        str     w29, [x24, #7880]
1018  3dc:   39187a33        strb    w19, [x17, #1566]
1019  3e0:   791f226d        strh    w13, [x19, #3984]
1020  3e4:   f95aa2f3        ldr     x19, [x23, #13632]
1021  3e8:   b9587bb7        ldr     w23, [x29, #6264]
1022  3ec:   395f7176        ldrb    w22, [x11, #2012]
1023  3f0:   795d9143        ldrh    w3, [x10, #3784]
1024  3f4:   399e7e08        ldrsb   x8, [x16, #1951]
1025  3f8:   799a2697        ldrsh   x23, [x20, #3346]
1026  3fc:   79df3422        ldrsh   w2, [x1, #3994]
1027  400:   b99c2624        ldrsw   x4, [x17, #7204]
1028  404:   fd5c2374        ldr     d20, [x27, #14400]
1029  408:   bd5fa1d9        ldr     s25, [x14, #8096]
1030  40c:   fd1d595a        str     d26, [x10, #15024]
1031  410:   bd1b1869        str     s9, [x3, #6936]
1032  414:   580022fb        ldr     x27, 870 <forth>
1033  418:   1800000b        ldr     w11, 418 <back+0x418>
1034  41c:   f8945060        prfum   pldl1keep, [x3, #-187]
1035  420:   d8000000        prfm    pldl1keep, 420 <back+0x420>
1036  424:   f8ae6ba0        prfm    pldl1keep, [x29, x14]
1037  428:   f99a0080        prfm    pldl1keep, [x4, #13312]
1038  42c:   1a070035        adc     w21, w1, w7
1039  430:   3a0700a8        adcs    w8, w5, w7
1040  434:   5a0e0367        sbc     w7, w27, w14
1041  438:   7a11009b        sbcs    w27, w4, w17
1042  43c:   9a000380        adc     x0, x28, x0
1043  440:   ba1e030c        adcs    x12, x24, x30
1044  444:   da0f0320        sbc     x0, x25, x15
1045  448:   fa030301        sbcs    x1, x24, x3
1046  44c:   0b340b12        add     w18, w24, w20, uxtb #2
1047  450:   2b2a278d        adds    w13, w28, w10, uxth #1
1048  454:   cb22aa0f        sub     x15, x16, w2, sxth #2
1049  458:   6b2d29bd        subs    w29, w13, w13, uxth #2
1050  45c:   8b2cce8c        add     x12, x20, w12, sxtw #3
1051  460:   ab2b877e        adds    x30, x27, w11, sxtb #1
1052  464:   cb21c8ee        sub     x14, x7, w1, sxtw #2
1053  468:   eb3ba47d        subs    x29, x3, w27, sxth #1
1054  46c:   3a4d400e        ccmn    w0, w13, #0xe, mi  // mi = first
1055  470:   7a5232c6        ccmp    w22, w18, #0x6, cc  // cc = lo, ul, last
1056  474:   ba5e624e        ccmn    x18, x30, #0xe, vs
1057  478:   fa53814c        ccmp    x10, x19, #0xc, hi  // hi = pmore
1058  47c:   3a52d8c2        ccmn    w6, #0x12, #0x2, le
1059  480:   7a4d8924        ccmp    w9, #0xd, #0x4, hi  // hi = pmore
1060  484:   ba4b3aab        ccmn    x21, #0xb, #0xb, cc  // cc = lo, ul, last
1061  488:   fa4d7882        ccmp    x4, #0xd, #0x2, vc
1062  48c:   1a96804c        csel    w12, w2, w22, hi  // hi = pmore
1063  490:   1a912618        csinc   w24, w16, w17, cs  // cs = hs, nlast
1064  494:   5a90b0e6        csinv   w6, w7, w16, lt  // lt = tstop
1065  498:   5a96976b        csneg   w11, w27, w22, ls  // ls = plast
1066  49c:   9a9db06a        csel    x10, x3, x29, lt  // lt = tstop
1067  4a0:   9a9b374c        csinc   x12, x26, x27, cc  // cc = lo, ul, last
1068  4a4:   da95c14f        csinv   x15, x10, x21, gt
1069  4a8:   da89c6fe        csneg   x30, x23, x9, gt
1070  4ac:   5ac0015e        rbit    w30, w10
1071  4b0:   5ac005fd        rev16   w29, w15
1072  4b4:   5ac00bdd        rev     w29, w30
1073  4b8:   5ac012b9        clz     w25, w21
1074  4bc:   5ac01404        cls     w4, w0
1075  4c0:   dac002b2        rbit    x18, x21
1076  4c4:   dac0061d        rev16   x29, x16
1077  4c8:   dac00a95        rev32   x21, x20
1078  4cc:   dac00e66        rev     x6, x19
1079  4d0:   dac0107e        clz     x30, x3
1080  4d4:   dac01675        cls     x21, x19
1081  4d8:   1ac00b0b        udiv    w11, w24, w0
1082  4dc:   1ace0f3b        sdiv    w27, w25, w14
1083  4e0:   1ad221c3        lsl     w3, w14, w18
1084  4e4:   1ad825e7        lsr     w7, w15, w24
1085  4e8:   1ad92a3c        asr     w28, w17, w25
1086  4ec:   1adc2f42        ror     w2, w26, w28
1087  4f0:   9ada0b25        udiv    x5, x25, x26
1088  4f4:   9ad20e1b        sdiv    x27, x16, x18
1089  4f8:   9acc22a6        lsl     x6, x21, x12
1090  4fc:   9acc2480        lsr     x0, x4, x12
1091  500:   9adc2a3b        asr     x27, x17, x28
1092  504:   9ad22c5c        ror     x28, x2, x18
1093  508:   9bce7dea        umulh   x10, x15, x14
1094  50c:   9b597c6e        smulh   x14, x3, x25
1095  510:   1b0e166f        madd    w15, w19, w14, w5
1096  514:   1b1ae490        msub    w16, w4, w26, w25
1097  518:   9b023044        madd    x4, x2, x2, x12
1098  51c:   9b089e3d        msub    x29, x17, x8, x7
1099  520:   9b391083        smaddl  x3, w4, w25, x4
1100  524:   9b24c73a        smsubl  x26, w25, w4, x17
1101  528:   9bb15f40        umaddl  x0, w26, w17, x23
1102  52c:   9bbcc6af        umsubl  x15, w21, w28, x17
1103  530:   1e23095b        fmul    s27, s10, s3
1104  534:   1e3918e0        fdiv    s0, s7, s25
1105  538:   1e2f28c9        fadd    s9, s6, s15
1106  53c:   1e2a39fd        fsub    s29, s15, s10
1107  540:   1e270a22        fmul    s2, s17, s7
1108  544:   1e77096b        fmul    d11, d11, d23
1109  548:   1e771ba7        fdiv    d7, d29, d23
1110  54c:   1e6b2b6e        fadd    d14, d27, d11
1111  550:   1e78388b        fsub    d11, d4, d24
1112  554:   1e6e09ec        fmul    d12, d15, d14
1113  558:   1f1c3574        fmadd   s20, s11, s28, s13
1114  55c:   1f17f98b        fmsub   s11, s12, s23, s30
1115  560:   1f2935da        fnmadd  s26, s14, s9, s13
1116  564:   1f2574ea        fnmadd  s10, s7, s5, s29
1117  568:   1f4b306f        fmadd   d15, d3, d11, d12
1118  56c:   1f5ec7cf        fmsub   d15, d30, d30, d17
1119  570:   1f6f3e93        fnmadd  d19, d20, d15, d15
1120  574:   1f6226a9        fnmadd  d9, d21, d2, d9
1121  578:   1e2040fb        fmov    s27, s7
1122  57c:   1e20c3dd        fabs    s29, s30
1123  580:   1e214031        fneg    s17, s1
1124  584:   1e21c0c2        fsqrt   s2, s6
1125  588:   1e22c06a        fcvt    d10, s3
1126  58c:   1e604178        fmov    d24, d11
1127  590:   1e60c027        fabs    d7, d1
1128  594:   1e61400b        fneg    d11, d0
1129  598:   1e61c243        fsqrt   d3, d18
1130  59c:   1e6240dc        fcvt    s28, d6
1131  5a0:   1e3800d6        fcvtzs  w22, s6
1132  5a4:   9e380360        fcvtzs  x0, s27
1133  5a8:   1e78005a        fcvtzs  w26, d2
1134  5ac:   9e7800e5        fcvtzs  x5, d7
1135  5b0:   1e22017c        scvtf   s28, w11
1136  5b4:   9e2201b9        scvtf   s25, x13
1137  5b8:   1e6202eb        scvtf   d11, w23
1138  5bc:   9e620113        scvtf   d19, x8
1139  5c0:   1e2602b2        fmov    w18, s21
1140  5c4:   9e660299        fmov    x25, d20
1141  5c8:   1e270253        fmov    s19, w18
1142  5cc:   9e6703a2        fmov    d2, x29
1143  5d0:   1e2822c0        fcmp    s22, s8
1144  5d4:   1e7322a0        fcmp    d21, d19
1145  5d8:   1e202288        fcmp    s20, #0.0
1146  5dc:   1e602168        fcmp    d11, #0.0
1147  5e0:   293c19f4        stp     w20, w6, [x15, #-32]
1148  5e4:   2966387b        ldp     w27, w14, [x3, #-208]
1149  5e8:   69762971        ldpsw   x17, x10, [x11, #-80]
1150  5ec:   a9041dc7        stp     x7, x7, [x14, #64]
1151  5f0:   a9475c0c        ldp     x12, x23, [x0, #112]
1152  5f4:   29b61ccd        stp     w13, w7, [x6, #-80]!
1153  5f8:   29ee405e        ldp     w30, w16, [x2, #-144]!
1154  5fc:   69ee0744        ldpsw   x4, x1, [x26, #-144]!
1155  600:   a9843977        stp     x23, x14, [x11, #64]!
1156  604:   a9f46ebd        ldp     x29, x27, [x21, #-192]!
1157  608:   28ba16b6        stp     w22, w5, [x21], #-48
1158  60c:   28fc44db        ldp     w27, w17, [x6], #-32
1159  610:   68f61831        ldpsw   x17, x6, [x1], #-80
1160  614:   a8b352ad        stp     x13, x20, [x21], #-208
1161  618:   a8c56d5e        ldp     x30, x27, [x10], #80
1162  61c:   28024565        stnp    w5, w17, [x11, #16]
1163  620:   2874134e        ldnp    w14, w4, [x26, #-96]
1164  624:   a8027597        stnp    x23, x29, [x12, #32]
1165  628:   a87b1aa0        ldnp    x0, x6, [x21, #-80]
1166  62c:   0c40734f        ld1     {v15.8b}, [x26]
1167  630:   4cdfa177        ld1     {v23.16b, v24.16b}, [x11], #32
1168  634:   0cc76ee8        ld1     {v8.1d-v10.1d}, [x23], x7
1169  638:   4cdf2733        ld1     {v19.8h-v22.8h}, [x25], #64
1170  63c:   0d40c23d        ld1r    {v29.8b}, [x17]
1171  640:   4ddfcaf8        ld1r    {v24.4s}, [x23], #4
1172  644:   0dd9ccaa        ld1r    {v10.1d}, [x5], x25
1173  648:   4c408d52        ld2     {v18.2d, v19.2d}, [x10]
1174  64c:   0cdf85ec        ld2     {v12.4h, v13.4h}, [x15], #16
1175  650:   4d60c259        ld2r    {v25.16b, v26.16b}, [x18]
1176  654:   0dffcbc1        ld2r    {v1.2s, v2.2s}, [x30], #8
1177  658:   4de9ce50        ld2r    {v16.2d, v17.2d}, [x18], x9
1178  65c:   4cc24999        ld3     {v25.4s-v27.4s}, [x12], x2
1179  660:   0c404a7a        ld3     {v26.2s-v28.2s}, [x19]
1180  664:   4d40e6af        ld3r    {v15.8h-v17.8h}, [x21]
1181  668:   4ddfe9b9        ld3r    {v25.4s-v27.4s}, [x13], #12
1182  66c:   0dddef8e        ld3r    {v14.1d-v16.1d}, [x28], x29
1183  670:   4cdf07b1        ld4     {v17.8h-v20.8h}, [x29], #64
1184  674:   0cc000fb        ld4     {v27.8b-v30.8b}, [x7], x0
1185  678:   0d60e258        ld4r    {v24.8b-v27.8b}, [x18]
1186  67c:   0dffe740        ld4r    {v0.4h-v3.4h}, [x26], #8
1187  680:   0de2eb2c        ld4r    {v12.2s-v15.2s}, [x25], x2
1188  684:   ce648376        sha512h q22, q27, v4.2d
1189  688:   ce6184c7        sha512h2        q7, q6, v1.2d
1190  68c:   cec081fa        sha512su0       v26.2d, v15.2d
1191  690:   ce6d89a2        sha512su1       v2.2d, v13.2d, v13.2d
1192  694:   ba5fd3e3        ccmn    xzr, xzr, #0x3, le
1193  698:   3a5f03e5        ccmn    wzr, wzr, #0x5, eq  // eq = none
1194  69c:   fa411be4        ccmp    xzr, #0x1, #0x4, ne  // ne = any
1195  6a0:   7a42cbe2        ccmp    wzr, #0x2, #0x2, gt
1196  6a4:   93df03ff        ror     xzr, xzr, #0
1197  6a8:   c820ffff        stlxp   w0, xzr, xzr, [sp]
1198  6ac:   8822fc7f        stlxp   w2, wzr, wzr, [x3]
1199  6b0:   c8247cbf        stxp    w4, xzr, xzr, [x5]
1200  6b4:   88267fff        stxp    w6, wzr, wzr, [sp]
1201  6b8:   4e010fe0        dup     v0.16b, wzr
1202  6bc:   4e081fe1        mov     v1.d[0], xzr
1203  6c0:   4e0c1fe1        mov     v1.s[1], wzr
1204  6c4:   4e0a1fe1        mov     v1.h[2], wzr
1205  6c8:   4e071fe1        mov     v1.b[3], wzr
1206  6cc:   4cc0ac3f        ld1     {v31.2d, v0.2d}, [x1], x0
1207  6d0:   1e601000        fmov    d0, #2.000000000000000000e+00
1208  6d4:   1e603000        fmov    d0, #2.125000000000000000e+00
1209  6d8:   1e621000        fmov    d0, #4.000000000000000000e+00
1210  6dc:   1e623000        fmov    d0, #4.250000000000000000e+00
1211  6e0:   1e641000        fmov    d0, #8.000000000000000000e+00
1212  6e4:   1e643000        fmov    d0, #8.500000000000000000e+00
1213  6e8:   1e661000        fmov    d0, #1.600000000000000000e+01
1214  6ec:   1e663000        fmov    d0, #1.700000000000000000e+01
1215  6f0:   1e681000        fmov    d0, #1.250000000000000000e-01
1216  6f4:   1e683000        fmov    d0, #1.328125000000000000e-01
1217  6f8:   1e6a1000        fmov    d0, #2.500000000000000000e-01
1218  6fc:   1e6a3000        fmov    d0, #2.656250000000000000e-01
1219  700:   1e6c1000        fmov    d0, #5.000000000000000000e-01
1220  704:   1e6c3000        fmov    d0, #5.312500000000000000e-01
1221  708:   1e6e1000        fmov    d0, #1.000000000000000000e+00
1222  70c:   1e6e3000        fmov    d0, #1.062500000000000000e+00
1223  710:   1e701000        fmov    d0, #-2.000000000000000000e+00
1224  714:   1e703000        fmov    d0, #-2.125000000000000000e+00
1225  718:   1e721000        fmov    d0, #-4.000000000000000000e+00
1226  71c:   1e723000        fmov    d0, #-4.250000000000000000e+00
1227  720:   1e741000        fmov    d0, #-8.000000000000000000e+00
1228  724:   1e743000        fmov    d0, #-8.500000000000000000e+00
1229  728:   1e761000        fmov    d0, #-1.600000000000000000e+01
1230  72c:   1e763000        fmov    d0, #-1.700000000000000000e+01
1231  730:   1e781000        fmov    d0, #-1.250000000000000000e-01
1232  734:   1e783000        fmov    d0, #-1.328125000000000000e-01
1233  738:   1e7a1000        fmov    d0, #-2.500000000000000000e-01
1234  73c:   1e7a3000        fmov    d0, #-2.656250000000000000e-01
1235  740:   1e7c1000        fmov    d0, #-5.000000000000000000e-01
1236  744:   1e7c3000        fmov    d0, #-5.312500000000000000e-01
1237  748:   1e7e1000        fmov    d0, #-1.000000000000000000e+00
1238  74c:   1e7e3000        fmov    d0, #-1.062500000000000000e+00
1239  750:   f8388098        swp     x24, x24, [x4]
1240  754:   f8340010        ldadd   x20, x16, [x0]
1241  758:   f8241175        ldclr   x4, x21, [x11]
1242  75c:   f83e22d0        ldeor   x30, x16, [x22]
1243  760:   f82432ef        ldset   x4, x15, [x23]
1244  764:   f83a5186        ldsmin  x26, x6, [x12]
1245  768:   f82f41ee        ldsmax  x15, x14, [x15]
1246  76c:   f82973b9        ldumin  x9, x25, [x29]
1247  770:   f82b6194        ldumax  x11, x20, [x12]
1248  774:   f8b28216        swpa    x18, x22, [x16]
1249  778:   f8b50358        ldadda  x21, x24, [x26]
1250  77c:   f8a61206        ldclra  x6, x6, [x16]
1251  780:   f8b02219        ldeora  x16, x25, [x16]
1252  784:   f8bc3218        ldseta  x28, x24, [x16]
1253  788:   f8ba514f        ldsmina x26, x15, [x10]
1254  78c:   f8ad428e        ldsmaxa x13, x14, [x20]
1255  790:   f8a173d7        ldumina x1, x23, [x30]
1256  794:   f8ae60c2        ldumaxa x14, x2, [x6]
1257  798:   f8e38328        swpal   x3, x8, [x25]
1258  79c:   f8e003db        ldaddal x0, x27, [x30]
1259  7a0:   f8e513c5        ldclral x5, x5, [x30]
1260  7a4:   f8eb2019        ldeoral x11, x25, [x0]
1261  7a8:   f8ff3260        ldsetal xzr, x0, [x19]
1262  7ac:   f8fd513a        ldsminal        x29, x26, [x9]
1263  7b0:   f8fa41ec        ldsmaxal        x26, x12, [x15]
1264  7b4:   f8eb724b        lduminal        x11, x11, [x18]
1265  7b8:   f8f96316        ldumaxal        x25, x22, [x24]
1266  7bc:   f8608171        swpl    x0, x17, [x11]
1267  7c0:   f86600dd        ldaddl  x6, x29, [x6]
1268  7c4:   f86512a5        ldclrl  x5, x5, [x21]
1269  7c8:   f8732250        ldeorl  x19, x16, [x18]
1270  7cc:   f87e339b        ldsetl  x30, x27, [x28]
1271  7d0:   f861503c        ldsminl x1, x28, [x1]
1272  7d4:   f874421d        ldsmaxl x20, x29, [x16]
1273  7d8:   f86d73aa        lduminl x13, x10, [x29]
1274  7dc:   f87d62d3        ldumaxl x29, x19, [x22]
1275  7e0:   b82a83e4        swp     w10, w4, [sp]
1276  7e4:   b83503e8        ldadd   w21, w8, [sp]
1277  7e8:   b833138a        ldclr   w19, w10, [x28]
1278  7ec:   b82220b9        ldeor   w2, w25, [x5]
1279  7f0:   b82332c8        ldset   w3, w8, [x22]
1280  7f4:   b83350ad        ldsmin  w19, w13, [x5]
1281  7f8:   b83d42b8        ldsmax  w29, w24, [x21]
1282  7fc:   b83a7078        ldumin  w26, w24, [x3]
1283  800:   b83862fa        ldumax  w24, w26, [x23]
1284  804:   b8af8075        swpa    w15, w21, [x3]
1285  808:   b8b80328        ldadda  w24, w8, [x25]
1286  80c:   b8b41230        ldclra  w20, w16, [x17]
1287  810:   b8a22001        ldeora  w2, w1, [x0]
1288  814:   b8b83064        ldseta  w24, w4, [x3]
1289  818:   b8ac539f        ldsmina w12, wzr, [x28]
1290  81c:   b8aa405a        ldsmaxa w10, w26, [x2]
1291  820:   b8ac73f2        ldumina w12, w18, [sp]
1292  824:   b8a163ad        ldumaxa w1, w13, [x29]
1293  828:   b8e08193        swpal   w0, w19, [x12]
1294  82c:   b8f101b6        ldaddal w17, w22, [x13]
1295  830:   b8fc13fe        ldclral w28, w30, [sp]
1296  834:   b8e1239a        ldeoral w1, w26, [x28]
1297  838:   b8e4309e        ldsetal w4, w30, [x4]
1298  83c:   b8e6535e        ldsminal        w6, w30, [x26]
1299  840:   b8f24109        ldsmaxal        w18, w9, [x8]
1300  844:   b8ec7280        lduminal        w12, w0, [x20]
1301  848:   b8e16058        ldumaxal        w1, w24, [x2]
1302  84c:   b8608309        swpl    w0, w9, [x24]
1303  850:   b87a03d0        ldaddl  w26, w16, [x30]
1304  854:   b86312ea        ldclrl  w3, w10, [x23]
1305  858:   b86a2244        ldeorl  w10, w4, [x18]
1306  85c:   b862310b        ldsetl  w2, w11, [x8]
1307  860:   b86a522f        ldsminl w10, w15, [x17]
1308  864:   b862418a        ldsmaxl w2, w10, [x12]
1309  868:   b86c71af        lduminl w12, w15, [x13]
1310  86c:   b8626287        ldumaxl w2, w7, [x20]
1311  */
1312 
1313   static const unsigned int insns[] =
1314   {
1315     0x8b0d82fa,     0xcb49970c,     0xab889dfc,     0xeb9ee787,
1316     0x0b9b3ec9,     0x4b9279a3,     0x2b88474e,     0x6b8c56c0,
1317     0x8a1a51e0,     0xaa11f4ba,     0xca0281b8,     0xea918c7c,
1318     0x0a5d4a19,     0x2a4b264d,     0x4a523ca5,     0x6a9b6ae2,
1319     0x8a70b79b,     0xaaba9728,     0xca6dfe3d,     0xea627f1c,
1320     0x0aa70f53,     0x2aaa0f06,     0x4a6176a4,     0x6a604eb0,
1321     0x1105ed91,     0x3100583e,     0x5101f8bd,     0x710f0306,
1322     0x9101a1a0,     0xb10a5cc8,     0xd10810aa,     0xf10fd061,
1323     0x120cb166,     0x321764bc,     0x52174681,     0x720c0247,
1324     0x9241018e,     0xb25a2969,     0xd278b411,     0xf26aad01,
1325     0x14000000,     0x17ffffd7,     0x140001f2,     0x94000000,
1326     0x97ffffd4,     0x940001ef,     0x3400000a,     0x34fffa2a,
1327     0x34003d8a,     0x35000008,     0x35fff9c8,     0x35003d28,
1328     0xb400000b,     0xb4fff96b,     0xb4003ccb,     0xb500001d,
1329     0xb5fff91d,     0xb5003c7d,     0x10000013,     0x10fff8b3,
1330     0x10003c13,     0x90000013,     0x36300016,     0x3637f836,
1331     0x36303b96,     0x3758000c,     0x375ff7cc,     0x37583b2c,
1332     0x128313a0,     0x528a32c7,     0x7289173b,     0x92ab3acc,
1333     0xd2a0bf94,     0xf2c285e8,     0x9358722f,     0x330e652f,
1334     0x53067f3b,     0x93577c53,     0xb34a1aac,     0xd35a4016,
1335     0x13946c63,     0x93c3dbc8,     0x54000000,     0x54fff5a0,
1336     0x54003900,     0x54000001,     0x54fff541,     0x540038a1,
1337     0x54000002,     0x54fff4e2,     0x54003842,     0x54000002,
1338     0x54fff482,     0x540037e2,     0x54000003,     0x54fff423,
1339     0x54003783,     0x54000003,     0x54fff3c3,     0x54003723,
1340     0x54000004,     0x54fff364,     0x540036c4,     0x54000005,
1341     0x54fff305,     0x54003665,     0x54000006,     0x54fff2a6,
1342     0x54003606,     0x54000007,     0x54fff247,     0x540035a7,
1343     0x54000008,     0x54fff1e8,     0x54003548,     0x54000009,
1344     0x54fff189,     0x540034e9,     0x5400000a,     0x54fff12a,
1345     0x5400348a,     0x5400000b,     0x54fff0cb,     0x5400342b,
1346     0x5400000c,     0x54fff06c,     0x540033cc,     0x5400000d,
1347     0x54fff00d,     0x5400336d,     0x5400000e,     0x54ffefae,
1348     0x5400330e,     0x5400000f,     0x54ffef4f,     0x540032af,
1349     0xd40658e1,     0xd4014d22,     0xd4046543,     0xd4273f60,
1350     0xd44cad80,     0xd503201f,     0xd69f03e0,     0xd6bf03e0,
1351     0xd5033fdf,     0xd5033e9f,     0xd50332bf,     0xd61f0200,
1352     0xd63f0280,     0xc80a7d1b,     0xc800fea1,     0xc85f7fb1,
1353     0xc85fff9d,     0xc89ffee1,     0xc8dffe95,     0x88167e7b,
1354     0x880bfcd0,     0x885f7c12,     0x885ffd44,     0x889ffed8,
1355     0x88dffe6a,     0x48017fc5,     0x4808fe2c,     0x485f7dc9,
1356     0x485ffc27,     0x489ffe05,     0x48dffd82,     0x080a7c6c,
1357     0x081cff4e,     0x085f7d5e,     0x085ffeae,     0x089ffd2d,
1358     0x08dfff76,     0xc87f4d7c,     0xc87fcc5e,     0xc8220417,
1359     0xc82cb5f0,     0x887f55b2,     0x887ff90b,     0x88382c2d,
1360     0x883aedb5,     0xf819928b,     0xb803e21c,     0x381f713b,
1361     0x781ce322,     0xf850f044,     0xb85e129e,     0x385e92f2,
1362     0x785ff35d,     0x39801921,     0x7881318b,     0x78dce02b,
1363     0xb8829313,     0xfc45f318,     0xbc5d50af,     0xfc001375,
1364     0xbc1951b7,     0xf8008c0b,     0xb801dc03,     0x38009dcb,
1365     0x781fdf1d,     0xf8570e2d,     0xb85faecc,     0x385f6d8d,
1366     0x785ebea0,     0x38804cf7,     0x789cbce3,     0x78df9cbc,
1367     0xb89eed38,     0xfc40cd6e,     0xbc5bdd93,     0xfc103c14,
1368     0xbc040c08,     0xf81a2784,     0xb81ca4ec,     0x381e855b,
1369     0x7801b506,     0xf853654e,     0xb85d74b0,     0x384095c2,
1370     0x785ec5bc,     0x389e15a9,     0x789dc703,     0x78c06474,
1371     0xb89ff667,     0xfc57e51e,     0xbc4155f9,     0xfc05a6ee,
1372     0xbc1df408,     0xf835da4a,     0xb836d9a4,     0x3833580d,
1373     0x7826cb6c,     0xf8706900,     0xb87ae880,     0x3865db2e,
1374     0x78724889,     0x38a7789b,     0x78beca2f,     0x78f6c810,
1375     0xb8bef956,     0xfc6afabd,     0xbc734963,     0xfc3d5b8d,
1376     0xbc25fbb7,     0xf9189d05,     0xb91ecb1d,     0x39187a33,
1377     0x791f226d,     0xf95aa2f3,     0xb9587bb7,     0x395f7176,
1378     0x795d9143,     0x399e7e08,     0x799a2697,     0x79df3422,
1379     0xb99c2624,     0xfd5c2374,     0xbd5fa1d9,     0xfd1d595a,
1380     0xbd1b1869,     0x580022fb,     0x1800000b,     0xf8945060,
1381     0xd8000000,     0xf8ae6ba0,     0xf99a0080,     0x1a070035,
1382     0x3a0700a8,     0x5a0e0367,     0x7a11009b,     0x9a000380,
1383     0xba1e030c,     0xda0f0320,     0xfa030301,     0x0b340b12,
1384     0x2b2a278d,     0xcb22aa0f,     0x6b2d29bd,     0x8b2cce8c,
1385     0xab2b877e,     0xcb21c8ee,     0xeb3ba47d,     0x3a4d400e,
1386     0x7a5232c6,     0xba5e624e,     0xfa53814c,     0x3a52d8c2,
1387     0x7a4d8924,     0xba4b3aab,     0xfa4d7882,     0x1a96804c,
1388     0x1a912618,     0x5a90b0e6,     0x5a96976b,     0x9a9db06a,
1389     0x9a9b374c,     0xda95c14f,     0xda89c6fe,     0x5ac0015e,
1390     0x5ac005fd,     0x5ac00bdd,     0x5ac012b9,     0x5ac01404,
1391     0xdac002b2,     0xdac0061d,     0xdac00a95,     0xdac00e66,
1392     0xdac0107e,     0xdac01675,     0x1ac00b0b,     0x1ace0f3b,
1393     0x1ad221c3,     0x1ad825e7,     0x1ad92a3c,     0x1adc2f42,
1394     0x9ada0b25,     0x9ad20e1b,     0x9acc22a6,     0x9acc2480,
1395     0x9adc2a3b,     0x9ad22c5c,     0x9bce7dea,     0x9b597c6e,
1396     0x1b0e166f,     0x1b1ae490,     0x9b023044,     0x9b089e3d,
1397     0x9b391083,     0x9b24c73a,     0x9bb15f40,     0x9bbcc6af,
1398     0x1e23095b,     0x1e3918e0,     0x1e2f28c9,     0x1e2a39fd,
1399     0x1e270a22,     0x1e77096b,     0x1e771ba7,     0x1e6b2b6e,
1400     0x1e78388b,     0x1e6e09ec,     0x1f1c3574,     0x1f17f98b,
1401     0x1f2935da,     0x1f2574ea,     0x1f4b306f,     0x1f5ec7cf,
1402     0x1f6f3e93,     0x1f6226a9,     0x1e2040fb,     0x1e20c3dd,
1403     0x1e214031,     0x1e21c0c2,     0x1e22c06a,     0x1e604178,
1404     0x1e60c027,     0x1e61400b,     0x1e61c243,     0x1e6240dc,
1405     0x1e3800d6,     0x9e380360,     0x1e78005a,     0x9e7800e5,
1406     0x1e22017c,     0x9e2201b9,     0x1e6202eb,     0x9e620113,
1407     0x1e2602b2,     0x9e660299,     0x1e270253,     0x9e6703a2,
1408     0x1e2822c0,     0x1e7322a0,     0x1e202288,     0x1e602168,
1409     0x293c19f4,     0x2966387b,     0x69762971,     0xa9041dc7,
1410     0xa9475c0c,     0x29b61ccd,     0x29ee405e,     0x69ee0744,
1411     0xa9843977,     0xa9f46ebd,     0x28ba16b6,     0x28fc44db,
1412     0x68f61831,     0xa8b352ad,     0xa8c56d5e,     0x28024565,
1413     0x2874134e,     0xa8027597,     0xa87b1aa0,     0x0c40734f,
1414     0x4cdfa177,     0x0cc76ee8,     0x4cdf2733,     0x0d40c23d,
1415     0x4ddfcaf8,     0x0dd9ccaa,     0x4c408d52,     0x0cdf85ec,
1416     0x4d60c259,     0x0dffcbc1,     0x4de9ce50,     0x4cc24999,
1417     0x0c404a7a,     0x4d40e6af,     0x4ddfe9b9,     0x0dddef8e,
1418     0x4cdf07b1,     0x0cc000fb,     0x0d60e258,     0x0dffe740,
1419     0x0de2eb2c,     0xce648376,     0xce6184c7,     0xcec081fa,
1420     0xce6d89a2,     0xba5fd3e3,     0x3a5f03e5,     0xfa411be4,
1421     0x7a42cbe2,     0x93df03ff,     0xc820ffff,     0x8822fc7f,
1422     0xc8247cbf,     0x88267fff,     0x4e010fe0,     0x4e081fe1,
1423     0x4e0c1fe1,     0x4e0a1fe1,     0x4e071fe1,     0x4cc0ac3f,
1424     0x1e601000,     0x1e603000,     0x1e621000,     0x1e623000,
1425     0x1e641000,     0x1e643000,     0x1e661000,     0x1e663000,
1426     0x1e681000,     0x1e683000,     0x1e6a1000,     0x1e6a3000,
1427     0x1e6c1000,     0x1e6c3000,     0x1e6e1000,     0x1e6e3000,
1428     0x1e701000,     0x1e703000,     0x1e721000,     0x1e723000,
1429     0x1e741000,     0x1e743000,     0x1e761000,     0x1e763000,
1430     0x1e781000,     0x1e783000,     0x1e7a1000,     0x1e7a3000,
1431     0x1e7c1000,     0x1e7c3000,     0x1e7e1000,     0x1e7e3000,
1432     0xf8388098,     0xf8340010,     0xf8241175,     0xf83e22d0,
1433     0xf82432ef,     0xf83a5186,     0xf82f41ee,     0xf82973b9,
1434     0xf82b6194,     0xf8b28216,     0xf8b50358,     0xf8a61206,
1435     0xf8b02219,     0xf8bc3218,     0xf8ba514f,     0xf8ad428e,
1436     0xf8a173d7,     0xf8ae60c2,     0xf8e38328,     0xf8e003db,
1437     0xf8e513c5,     0xf8eb2019,     0xf8ff3260,     0xf8fd513a,
1438     0xf8fa41ec,     0xf8eb724b,     0xf8f96316,     0xf8608171,
1439     0xf86600dd,     0xf86512a5,     0xf8732250,     0xf87e339b,
1440     0xf861503c,     0xf874421d,     0xf86d73aa,     0xf87d62d3,
1441     0xb82a83e4,     0xb83503e8,     0xb833138a,     0xb82220b9,
1442     0xb82332c8,     0xb83350ad,     0xb83d42b8,     0xb83a7078,
1443     0xb83862fa,     0xb8af8075,     0xb8b80328,     0xb8b41230,
1444     0xb8a22001,     0xb8b83064,     0xb8ac539f,     0xb8aa405a,
1445     0xb8ac73f2,     0xb8a163ad,     0xb8e08193,     0xb8f101b6,
1446     0xb8fc13fe,     0xb8e1239a,     0xb8e4309e,     0xb8e6535e,
1447     0xb8f24109,     0xb8ec7280,     0xb8e16058,     0xb8608309,
1448     0xb87a03d0,     0xb86312ea,     0xb86a2244,     0xb862310b,
1449     0xb86a522f,     0xb862418a,     0xb86c71af,     0xb8626287,
1450 
1451   };
1452 // END  Generated code -- do not edit
1453 
1454   asm_check((unsigned int *)entry, insns, sizeof insns / sizeof insns[0]);
1455 
1456   {
1457     address PC = __ pc();
1458     __ ld1(v0, __ T16B, Address(r16));      // No offset
1459     __ ld1(v0, __ T8H, __ post(r16, 16));   // Post-index
1460     __ ld2(v0, v1, __ T8H, __ post(r24, 16 * 2));   // Post-index
1461     __ ld1(v0, __ T16B, __ post(r16, r17)); // Register post-index
1462     static const unsigned int vector_insns[] = {
1463        0x4c407200, // ld1   {v0.16b}, [x16]
1464        0x4cdf7600, // ld1   {v0.8h}, [x16], #16
1465        0x4cdf8700, // ld2   {v0.8h, v1.8h}, [x24], #32
1466        0x4cd17200, // ld1   {v0.16b}, [x16], x17
1467       };
1468     asm_check((unsigned int *)PC, vector_insns,
1469               sizeof vector_insns / sizeof vector_insns[0]);


1777   return encoding_for_logical_immediate(imm);
1778 }
1779 
1780 unsigned Assembler::pack(double value) {
1781   float val = (float)value;
1782   unsigned result = encoding_for_fp_immediate(val);
1783   guarantee(unpack(result) == value,
1784             "Invalid floating-point immediate operand");
1785   return result;
1786 }
1787 
1788 // Packed operands for  Floating-point Move (immediate)
1789 
1790 static float unpack(unsigned value) {
1791   union {
1792     unsigned ival;
1793     float val;
1794   };
1795   ival = fp_immediate_for_encoding(value, 0);
1796   return val;




1797 }


  79   // {
  80   //   for (int i = 0; i < 256; i+=16)
  81   //     {
  82   //    printf("\"%20.20g\", ", unpack(i));
  83   //    printf("\"%20.20g\", ", unpack(i+1));
  84   //     }
  85   //   printf("\n");
  86   // }
  87 
  88   Assembler _masm(cb);
  89   address entry = __ pc();
  90 
  91   // Smoke test for assembler
  92 
  93 // BEGIN  Generated code -- do not edit
  94 // Generated by aarch64-asmtest.py
  95     Label back, forth;
  96     __ bind(back);
  97 
  98 // ArithOp
  99     __ add(r20, r0, r26, Assembler::LSL, 52);          //       add     x20, x0, x26, LSL #52
 100     __ sub(r5, r28, r3, Assembler::ASR, 54);           //       sub     x5, x28, x3, ASR #54
 101     __ adds(r11, r22, r3, Assembler::ASR, 39);         //       adds    x11, x22, x3, ASR #39
 102     __ subs(r11, r3, r12, Assembler::LSR, 25);         //       subs    x11, x3, x12, LSR #25
 103     __ addw(r27, r12, r13, Assembler::LSL, 14);        //       add     w27, w12, w13, LSL #14
 104     __ subw(r10, r21, r27, Assembler::ASR, 7);         //       sub     w10, w21, w27, ASR #7
 105     __ addsw(r3, r14, r16, Assembler::LSL, 4);         //       adds    w3, w14, w16, LSL #4
 106     __ subsw(r1, r19, r29, Assembler::LSL, 5);         //       subs    w1, w19, w29, LSL #5
 107     __ andr(r16, r17, r27, Assembler::LSR, 6);         //       and     x16, x17, x27, LSR #6
 108     __ orr(r22, r28, r28, Assembler::LSL, 35);         //       orr     x22, x28, x28, LSL #35
 109     __ eor(r11, r10, r28, Assembler::LSR, 51);         //       eor     x11, x10, x28, LSR #51
 110     __ ands(r13, r8, r14, Assembler::ASR, 48);         //       ands    x13, x8, x14, ASR #48
 111     __ andw(r1, r3, r1, Assembler::LSR, 3);            //       and     w1, w3, w1, LSR #3
 112     __ orrw(r9, r8, r5, Assembler::ASR, 22);           //       orr     w9, w8, w5, ASR #22
 113     __ eorw(r2, r28, r27, Assembler::ASR, 19);         //       eor     w2, w28, w27, ASR #19
 114     __ andsw(r24, r9, r7, Assembler::LSL, 14);         //       ands    w24, w9, w7, LSL #14
 115     __ bic(r11, r19, r25, Assembler::ASR, 32);         //       bic     x11, x19, x25, ASR #32
 116     __ orn(r24, r24, r29, Assembler::LSL, 28);         //       orn     x24, x24, x29, LSL #28
 117     __ eon(r11, r16, r17, Assembler::ASR, 27);         //       eon     x11, x16, x17, ASR #27
 118     __ bics(r5, r13, r10, Assembler::LSR, 58);         //       bics    x5, x13, x10, LSR #58
 119     __ bicw(r5, r10, r21, Assembler::LSL, 29);         //       bic     w5, w10, w21, LSL #29
 120     __ ornw(r4, r11, r21, Assembler::LSL, 19);         //       orn     w4, w11, w21, LSL #19
 121     __ eonw(r21, r28, r28, Assembler::LSR, 15);        //       eon     w21, w28, w28, LSR #15
 122     __ bicsw(r6, r10, r14, Assembler::LSL, 28);        //       bics    w6, w10, w14, LSL #28
 123 
 124 // AddSubImmOp
 125     __ addw(r10, r22, 945u);                           //       add     w10, w22, #945
 126     __ addsw(r15, r11, 935u);                          //       adds    w15, w11, #935
 127     __ subw(r5, r6, 703u);                             //       sub     w5, w6, #703
 128     __ subsw(r19, r0, 568u);                           //       subs    w19, w0, #568
 129     __ add(r20, r8, 608u);                             //       add     x20, x8, #608
 130     __ adds(r16, r6, 269u);                            //       adds    x16, x6, #269
 131     __ sub(r23, r0, 877u);                             //       sub     x23, x0, #877
 132     __ subs(r26, r25, 801u);                           //       subs    x26, x25, #801
 133 
 134 // LogicalImmOp
 135     __ andw(r12, r16, 4294459391ull);                  //       and     w12, w16, #0xfff83fff
 136     __ orrw(r1, r24, 4229955583ull);                   //       orr     w1, w24, #0xfc1fffff
 137     __ eorw(r19, r3, 16744448ull);                     //       eor     w19, w3, #0xff8000
 138     __ andsw(r29, r9, 4290777087ull);                  //       ands    w29, w9, #0xffc00fff
 139     __ andr(r26, r5, 18446744073172942847ull);         //       and     x26, x5, #0xffffffffe003ffff
 140     __ orr(r24, r14, 1150687262887383032ull);          //       orr     x24, x14, #0xff80ff80ff80ff8
 141     __ eor(r4, r0, 18446744073709289487ull);           //       eor     x4, x0, #0xfffffffffffc000f
 142     __ ands(r28, r6, 536608768ull);                    //       ands    x28, x6, #0x1ffc0000
 143 
 144 // AbsOp
 145     __ b(__ pc());                                     //       b       .
 146     __ b(back);                                        //       b       back
 147     __ b(forth);                                       //       b       forth
 148     __ bl(__ pc());                                    //       bl      .
 149     __ bl(back);                                       //       bl      back
 150     __ bl(forth);                                      //       bl      forth
 151 
 152 // RegAndAbsOp
 153     __ cbzw(r21, __ pc());                             //       cbz     w21, .
 154     __ cbzw(r21, back);                                //       cbz     w21, back
 155     __ cbzw(r21, forth);                               //       cbz     w21, forth
 156     __ cbnzw(r12, __ pc());                            //       cbnz    w12, .
 157     __ cbnzw(r12, back);                               //       cbnz    w12, back
 158     __ cbnzw(r12, forth);                              //       cbnz    w12, forth
 159     __ cbz(r14, __ pc());                              //       cbz     x14, .
 160     __ cbz(r14, back);                                 //       cbz     x14, back
 161     __ cbz(r14, forth);                                //       cbz     x14, forth
 162     __ cbnz(r27, __ pc());                             //       cbnz    x27, .
 163     __ cbnz(r27, back);                                //       cbnz    x27, back
 164     __ cbnz(r27, forth);                               //       cbnz    x27, forth
 165     __ adr(r14, __ pc());                              //       adr     x14, .
 166     __ adr(r14, back);                                 //       adr     x14, back
 167     __ adr(r14, forth);                                //       adr     x14, forth
 168     __ _adrp(r22, __ pc());                            //       adrp    x22, .
 169 
 170 // RegImmAbsOp
 171     __ tbz(r0, 5, __ pc());                            //       tbz     x0, #5, .
 172     __ tbz(r0, 5, back);                               //       tbz     x0, #5, back
 173     __ tbz(r0, 5, forth);                              //       tbz     x0, #5, forth
 174     __ tbnz(r3, 11, __ pc());                          //       tbnz    x3, #11, .
 175     __ tbnz(r3, 11, back);                             //       tbnz    x3, #11, back
 176     __ tbnz(r3, 11, forth);                            //       tbnz    x3, #11, forth
 177 
 178 // MoveWideImmOp
 179     __ movnw(r19, 6842, 0);                            //       movn    w19, #6842, lsl 0
 180     __ movzw(r28, 5843, 16);                           //       movz    w28, #5843, lsl 16
 181     __ movkw(r13, 20344, 16);                          //       movk    w13, #20344, lsl 16
 182     __ movn(r1, 1215, 32);                             //       movn    x1, #1215, lsl 32
 183     __ movz(r26, 28755, 0);                            //       movz    x26, #28755, lsl 0
 184     __ movk(r27, 5762, 48);                            //       movk    x27, #5762, lsl 48
 185 
 186 // BitfieldOp
 187     __ sbfm(r1, r24, 9, 24);                           //       sbfm    x1, x24, #9, #24
 188     __ bfmw(r25, r0, 5, 16);                           //       bfm     w25, w0, #5, #16
 189     __ ubfmw(r16, r27, 15, 7);                         //       ubfm    w16, w27, #15, #7
 190     __ sbfm(r16, r14, 15, 28);                         //       sbfm    x16, x14, #15, #28
 191     __ bfm(r24, r10, 0, 13);                           //       bfm     x24, x10, #0, #13
 192     __ ubfm(r1, r14, 2, 22);                           //       ubfm    x1, x14, #2, #22
 193 
 194 // ExtractOp
 195     __ extrw(r10, r0, r1, 21);                         //       extr    w10, w0, w1, #21
 196     __ extr(r26, r26, r23, 61);                        //       extr    x26, x26, x23, #61
 197 
 198 // CondBranchOp
 199     __ br(Assembler::EQ, __ pc());                     //       b.EQ    .
 200     __ br(Assembler::EQ, back);                        //       b.EQ    back
 201     __ br(Assembler::EQ, forth);                       //       b.EQ    forth
 202     __ br(Assembler::NE, __ pc());                     //       b.NE    .
 203     __ br(Assembler::NE, back);                        //       b.NE    back
 204     __ br(Assembler::NE, forth);                       //       b.NE    forth
 205     __ br(Assembler::HS, __ pc());                     //       b.HS    .
 206     __ br(Assembler::HS, back);                        //       b.HS    back
 207     __ br(Assembler::HS, forth);                       //       b.HS    forth
 208     __ br(Assembler::CS, __ pc());                     //       b.CS    .
 209     __ br(Assembler::CS, back);                        //       b.CS    back
 210     __ br(Assembler::CS, forth);                       //       b.CS    forth
 211     __ br(Assembler::LO, __ pc());                     //       b.LO    .
 212     __ br(Assembler::LO, back);                        //       b.LO    back
 213     __ br(Assembler::LO, forth);                       //       b.LO    forth
 214     __ br(Assembler::CC, __ pc());                     //       b.CC    .
 215     __ br(Assembler::CC, back);                        //       b.CC    back
 216     __ br(Assembler::CC, forth);                       //       b.CC    forth


 235     __ br(Assembler::GE, __ pc());                     //       b.GE    .
 236     __ br(Assembler::GE, back);                        //       b.GE    back
 237     __ br(Assembler::GE, forth);                       //       b.GE    forth
 238     __ br(Assembler::LT, __ pc());                     //       b.LT    .
 239     __ br(Assembler::LT, back);                        //       b.LT    back
 240     __ br(Assembler::LT, forth);                       //       b.LT    forth
 241     __ br(Assembler::GT, __ pc());                     //       b.GT    .
 242     __ br(Assembler::GT, back);                        //       b.GT    back
 243     __ br(Assembler::GT, forth);                       //       b.GT    forth
 244     __ br(Assembler::LE, __ pc());                     //       b.LE    .
 245     __ br(Assembler::LE, back);                        //       b.LE    back
 246     __ br(Assembler::LE, forth);                       //       b.LE    forth
 247     __ br(Assembler::AL, __ pc());                     //       b.AL    .
 248     __ br(Assembler::AL, back);                        //       b.AL    back
 249     __ br(Assembler::AL, forth);                       //       b.AL    forth
 250     __ br(Assembler::NV, __ pc());                     //       b.NV    .
 251     __ br(Assembler::NV, back);                        //       b.NV    back
 252     __ br(Assembler::NV, forth);                       //       b.NV    forth
 253 
 254 // ImmOp
 255     __ svc(15523);                                     //       svc     #15523
 256     __ hvc(3191);                                      //       hvc     #3191
 257     __ smc(18110);                                     //       smc     #18110
 258     __ brk(2818);                                      //       brk     #2818
 259     __ hlt(20860);                                     //       hlt     #20860
 260 
 261 // Op
 262     __ nop();                                          //       nop     
 263     __ eret();                                         //       eret    
 264     __ drps();                                         //       drps    
 265     __ isb();                                          //       isb     
 266 
 267 // SystemOp
 268     __ dsb(Assembler::OSHST);                          //       dsb     OSHST
 269     __ dmb(Assembler::ISHLD);                          //       dmb     ISHLD
 270 
 271 // OneRegOp
 272     __ br(r10);                                        //       br      x10
 273     __ blr(r22);                                       //       blr     x22
 274 
 275 // LoadStoreExclusiveOp
 276     __ stxr(r3, r21, r5);                              //       stxr    w3, x21, [x5]
 277     __ stlxr(r28, r9, r29);                            //       stlxr   w28, x9, [x29]
 278     __ ldxr(r28, r7);                                  //       ldxr    x28, [x7]
 279     __ ldaxr(r10, r23);                                //       ldaxr   x10, [x23]
 280     __ stlr(r7, r26);                                  //       stlr    x7, [x26]
 281     __ ldar(r16, r23);                                 //       ldar    x16, [x23]
 282 
 283 // LoadStoreExclusiveOp
 284     __ stxrw(r11, r7, r12);                            //       stxr    w11, w7, [x12]
 285     __ stlxrw(r16, r13, r26);                          //       stlxr   w16, w13, [x26]
 286     __ ldxrw(r25, r21);                                //       ldxr    w25, [x21]
 287     __ ldaxrw(r14, r4);                                //       ldaxr   w14, [x4]
 288     __ stlrw(r26, r9);                                 //       stlr    w26, [x9]
 289     __ ldarw(r0, r23);                                 //       ldar    w0, [x23]
 290 
 291 // LoadStoreExclusiveOp
 292     __ stxrh(r8, r0, r10);                             //       stxrh   w8, w0, [x10]
 293     __ stlxrh(r11, r1, r4);                            //       stlxrh  w11, w1, [x4]
 294     __ ldxrh(r14, r26);                                //       ldxrh   w14, [x26]
 295     __ ldaxrh(r19, r7);                                //       ldaxrh  w19, [x7]
 296     __ stlrh(r17, r22);                                //       stlrh   w17, [x22]
 297     __ ldarh(r20, r6);                                 //       ldarh   w20, [x6]
 298 
 299 // LoadStoreExclusiveOp
 300     __ stxrb(r25, r8, r6);                             //       stxrb   w25, w8, [x6]
 301     __ stlxrb(r5, r10, r25);                           //       stlxrb  w5, w10, [x25]
 302     __ ldxrb(r0, r22);                                 //       ldxrb   w0, [x22]
 303     __ ldaxrb(r8, r3);                                 //       ldaxrb  w8, [x3]
 304     __ stlrb(r5, r2);                                  //       stlrb   w5, [x2]
 305     __ ldarb(r6, r28);                                 //       ldarb   w6, [x28]
 306 
 307 // LoadStoreExclusiveOp
 308     __ ldxp(r17, r8, r14);                             //       ldxp    x17, x8, [x14]
 309     __ ldaxp(r14, r3, r2);                             //       ldaxp   x14, x3, [x2]
 310     __ stxp(r25, r17, r4, r19);                        //       stxp    w25, x17, x4, [x19]
 311     __ stlxp(r10, r16, r15, r8);                       //       stlxp   w10, x16, x15, [x8]
 312 
 313 // LoadStoreExclusiveOp
 314     __ ldxpw(r1, r11, r3);                             //       ldxp    w1, w11, [x3]
 315     __ ldaxpw(r0, r27, r12);                           //       ldaxp   w0, w27, [x12]
 316     __ stxpw(r4, r20, r21, r29);                       //       stxp    w4, w20, w21, [x29]
 317     __ stlxpw(r0, r9, r5, r29);                        //       stlxp   w0, w9, w5, [x29]
 318 
 319 // base_plus_unscaled_offset 
 320 // LoadStoreOp
 321     __ str(r17, Address(r4, -227));                    //       str     x17, [x4, -227]
 322     __ strw(r6, Address(r4, -33));                     //       str     w6, [x4, -33]
 323     __ strb(r13, Address(r16, 11));                    //       strb    w13, [x16, 11]
 324     __ strh(r23, Address(r22, -64));                   //       strh    w23, [x22, -64]
 325     __ ldr(r2, Address(r3, 13));                       //       ldr     x2, [x3, 13]
 326     __ ldrw(r5, Address(r20, 35));                     //       ldr     w5, [x20, 35]
 327     __ ldrb(r2, Address(r10, -15));                    //       ldrb    w2, [x10, -15]
 328     __ ldrh(r23, Address(r0, -8));                     //       ldrh    w23, [x0, -8]
 329     __ ldrsb(r15, Address(r14, -3));                   //       ldrsb   x15, [x14, -3]
 330     __ ldrsh(r3, Address(r3, -12));                    //       ldrsh   x3, [x3, -12]
 331     __ ldrshw(r25, Address(r24, -7));                  //       ldrsh   w25, [x24, -7]
 332     __ ldrsw(r17, Address(r0, -29));                   //       ldrsw   x17, [x0, -29]
 333     __ ldrd(v7, Address(r9, -79));                     //       ldr     d7, [x9, -79]
 334     __ ldrs(v11, Address(r11, -68));                   //       ldr     s11, [x11, -68]
 335     __ strd(v16, Address(r2, -119));                   //       str     d16, [x2, -119]
 336     __ strs(v25, Address(r28, -124));                  //       str     s25, [x28, -124]
 337 
 338 // pre 
 339 // LoadStoreOp
 340     __ str(r28, Address(__ pre(r19, 82)));             //       str     x28, [x19, 82]!
 341     __ strw(r7, Address(__ pre(r13, 50)));             //       str     w7, [x13, 50]!
 342     __ strb(r2, Address(__ pre(r19, -32)));            //       strb    w2, [x19, -32]!
 343     __ strh(r24, Address(__ pre(r1, -58)));            //       strh    w24, [x1, -58]!
 344     __ ldr(r23, Address(__ pre(r29, -143)));           //       ldr     x23, [x29, -143]!
 345     __ ldrw(r13, Address(__ pre(r27, 0)));             //       ldr     w13, [x27, 0]!
 346     __ ldrb(r11, Address(__ pre(r10, -26)));           //       ldrb    w11, [x10, -26]!
 347     __ ldrh(r3, Address(__ pre(r6, -54)));             //       ldrh    w3, [x6, -54]!
 348     __ ldrsb(r2, Address(__ pre(r9, 3)));              //       ldrsb   x2, [x9, 3]!
 349     __ ldrsh(r28, Address(__ pre(r4, 30)));            //       ldrsh   x28, [x4, 30]!
 350     __ ldrshw(r17, Address(__ pre(r0, -23)));          //       ldrsh   w17, [x0, -23]!
 351     __ ldrsw(r29, Address(__ pre(r25, -117)));         //       ldrsw   x29, [x25, -117]!
 352     __ ldrd(v21, Address(__ pre(r10, -142)));          //       ldr     d21, [x10, -142]!
 353     __ ldrs(v11, Address(__ pre(r20, 35)));            //       ldr     s11, [x20, 35]!
 354     __ strd(v1, Address(__ pre(r15, -214)));           //       str     d1, [x15, -214]!
 355     __ strs(v19, Address(__ pre(r5, -55)));            //       str     s19, [x5, -55]!
 356 
 357 // post 
 358 // LoadStoreOp
 359     __ str(r28, Address(__ post(r17, -20)));           //       str     x28, [x17], -20
 360     __ strw(r8, Address(__ post(r13, -9)));            //       str     w8, [x13], -9
 361     __ strb(r14, Address(__ post(r24, -23)));          //       strb    w14, [x24], -23
 362     __ strh(r2, Address(__ post(r4, -60)));            //       strh    w2, [x4], -60
 363     __ ldr(r24, Address(__ post(r25, 34)));            //       ldr     x24, [x25], 34
 364     __ ldrw(r16, Address(__ post(r28, -27)));          //       ldr     w16, [x28], -27
 365     __ ldrb(r8, Address(__ post(r23, -27)));           //       ldrb    w8, [x23], -27
 366     __ ldrh(r3, Address(__ post(r0, -58)));            //       ldrh    w3, [x0], -58
 367     __ ldrsb(r14, Address(__ post(r15, -10)));         //       ldrsb   x14, [x15], -10
 368     __ ldrsh(r12, Address(__ post(r1, 13)));           //       ldrsh   x12, [x1], 13
 369     __ ldrshw(r9, Address(__ post(r1, -19)));          //       ldrsh   w9, [x1], -19
 370     __ ldrsw(r29, Address(__ post(r10, -61)));         //       ldrsw   x29, [x10], -61
 371     __ ldrd(v13, Address(__ post(r28, -9)));           //       ldr     d13, [x28], -9
 372     __ ldrs(v20, Address(__ post(r27, -88)));          //       ldr     s20, [x27], -88
 373     __ strd(v7, Address(__ post(r11, -199)));          //       str     d7, [x11], -199
 374     __ strs(v20, Address(__ post(r22, -61)));          //       str     s20, [x22], -61
 375 
 376 // base_plus_reg 
 377 // LoadStoreOp
 378     __ str(r3, Address(r10, r16, Address::sxtw(0)));   //       str     x3, [x10, w16, sxtw #0]
 379     __ strw(r1, Address(r29, r21, Address::lsl(2)));   //       str     w1, [x29, x21, lsl #2]
 380     __ strb(r26, Address(r0, r23, Address::uxtw(0)));  //       strb    w26, [x0, w23, uxtw #0]
 381     __ strh(r26, Address(r0, r21, Address::lsl(0)));   //       strh    w26, [x0, x21, lsl #0]
 382     __ ldr(r3, Address(r25, r22, Address::lsl(0)));    //       ldr     x3, [x25, x22, lsl #0]
 383     __ ldrw(r25, Address(r9, r24, Address::uxtw(2)));  //       ldr     w25, [x9, w24, uxtw #2]
 384     __ ldrb(r10, Address(r0, r14, Address::sxtw(0)));  //       ldrb    w10, [x0, w14, sxtw #0]
 385     __ ldrh(r2, Address(r21, r20, Address::lsl(1)));   //       ldrh    w2, [x21, x20, lsl #1]
 386     __ ldrsb(r19, Address(r27, r28, Address::sxtx(0))); //      ldrsb   x19, [x27, x28, sxtx #0]
 387     __ ldrsh(r1, Address(r8, r3, Address::lsl(1)));    //       ldrsh   x1, [x8, x3, lsl #1]
 388     __ ldrshw(r20, Address(r15, r16, Address::sxtx(0))); //     ldrsh   w20, [x15, x16, sxtx #0]
 389     __ ldrsw(r7, Address(r7, r12, Address::lsl(2)));   //       ldrsw   x7, [x7, x12, lsl #2]
 390     __ ldrd(v15, Address(r4, r13, Address::sxtw(3)));  //       ldr     d15, [x4, w13, sxtw #3]
 391     __ ldrs(v14, Address(r10, r3, Address::uxtw(0)));  //       ldr     s14, [x10, w3, uxtw #0]
 392     __ strd(v24, Address(r23, r9, Address::sxtx(3)));  //       str     d24, [x23, x9, sxtx #3]
 393     __ strs(v9, Address(r12, r26, Address::uxtw(2)));  //       str     s9, [x12, w26, uxtw #2]
 394 
 395 // base_plus_scaled_offset 
 396 // LoadStoreOp
 397     __ str(r14, Address(r24, 13472));                  //       str     x14, [x24, 13472]
 398     __ strw(r0, Address(r14, 7392));                   //       str     w0, [x14, 7392]
 399     __ strb(r23, Address(r19, 1536));                  //       strb    w23, [x19, 1536]
 400     __ strh(r15, Address(r11, 3608));                  //       strh    w15, [x11, 3608]
 401     __ ldr(r21, Address(r25, 13672));                  //       ldr     x21, [x25, 13672]
 402     __ ldrw(r23, Address(r7, 6160));                   //       ldr     w23, [x7, 6160]
 403     __ ldrb(r23, Address(r16, 1975));                  //       ldrb    w23, [x16, 1975]
 404     __ ldrh(r24, Address(r24, 3850));                  //       ldrh    w24, [x24, 3850]
 405     __ ldrsb(r12, Address(r9, 1613));                  //       ldrsb   x12, [x9, 1613]
 406     __ ldrsh(r5, Address(r21, 3840));                  //       ldrsh   x5, [x21, 3840]
 407     __ ldrshw(r14, Address(r0, 3590));                 //       ldrsh   w14, [x0, 3590]
 408     __ ldrsw(r13, Address(r2, 7928));                  //       ldrsw   x13, [x2, 7928]
 409     __ ldrd(v15, Address(r19, 15800));                 //       ldr     d15, [x19, 15800]
 410     __ ldrs(v23, Address(r5, 6272));                   //       ldr     s23, [x5, 6272]
 411     __ strd(v6, Address(r6, 15136));                   //       str     d6, [x6, 15136]
 412     __ strs(v9, Address(r11, 6180));                   //       str     s9, [x11, 6180]
 413 
 414 // pcrel 
 415 // LoadStoreOp
 416     __ ldr(r7, forth);                                 //       ldr     x7, forth
 417     __ ldrw(r29, __ pc());                             //       ldr     w29, .
 418 
 419 // LoadStoreOp
 420     __ prfm(Address(r0, -215));                        //       prfm    PLDL1KEEP, [x0, -215]
 421 
 422 // LoadStoreOp
 423     __ prfm(forth);                                    //       prfm    PLDL1KEEP, forth
 424 
 425 // LoadStoreOp
 426     __ prfm(Address(r4, r3, Address::uxtw(0)));        //       prfm    PLDL1KEEP, [x4, w3, uxtw #0]
 427 
 428 // LoadStoreOp
 429     __ prfm(Address(r14, 12360));                      //       prfm    PLDL1KEEP, [x14, 12360]
 430 
 431 // AddSubCarryOp
 432     __ adcw(r7, r6, r4);                               //       adc     w7, w6, w4
 433     __ adcsw(r27, r12, r5);                            //       adcs    w27, w12, w5
 434     __ sbcw(r25, r24, r26);                            //       sbc     w25, w24, w26
 435     __ sbcsw(r5, r7, r23);                             //       sbcs    w5, w7, w23
 436     __ adc(r22, r11, r1);                              //       adc     x22, x11, x1
 437     __ adcs(r13, r9, r29);                             //       adcs    x13, x9, x29
 438     __ sbc(r4, r14, r26);                              //       sbc     x4, x14, x26
 439     __ sbcs(r28, r29, r24);                            //       sbcs    x28, x29, x24
 440 
 441 // AddSubExtendedOp
 442     __ addw(r17, r21, r21, ext::uxtw, 1);              //       add     w17, w21, w21, uxtw #1
 443     __ addsw(r12, r9, r26, ext::sxth, 3);              //       adds    w12, w9, w26, sxth #3
 444     __ sub(r14, r5, r3, ext::uxth, 1);                 //       sub     x14, x5, x3, uxth #1
 445     __ subsw(r17, r26, r6, ext::uxtx, 4);              //       subs    w17, w26, w6, uxtx #4
 446     __ add(r17, r5, r20, ext::sxth, 3);                //       add     x17, x5, x20, sxth #3
 447     __ adds(r16, r1, r25, ext::sxtw, 3);               //       adds    x16, x1, x25, sxtw #3
 448     __ sub(r25, r1, r26, ext::sxtx, 3);                //       sub     x25, x1, x26, sxtx #3
 449     __ subs(r19, r1, r23, ext::sxth, 3);               //       subs    x19, x1, x23, sxth #3
 450 
 451 // ConditionalCompareOp
 452     __ ccmnw(r1, r24, 9u, Assembler::LS);              //       ccmn    w1, w24, #9, LS
 453     __ ccmpw(r14, r10, 4u, Assembler::GT);             //       ccmp    w14, w10, #4, GT
 454     __ ccmn(r9, r29, 0u, Assembler::CC);               //       ccmn    x9, x29, #0, CC
 455     __ ccmp(r6, r6, 13u, Assembler::MI);               //       ccmp    x6, x6, #13, MI
 456 
 457 // ConditionalCompareImmedOp
 458     __ ccmnw(r19, 11, 5, Assembler::NE);               //       ccmn    w19, #11, #5, NE
 459     __ ccmpw(r11, 31, 15, Assembler::GE);              //       ccmp    w11, #31, #15, GE
 460     __ ccmn(r12, 14, 5, Assembler::VS);                //       ccmn    x12, #14, #5, VS
 461     __ ccmp(r1, 7, 10, Assembler::MI);                 //       ccmp    x1, #7, #10, MI
 462 
 463 // ConditionalSelectOp
 464     __ cselw(r6, r2, r22, Assembler::LO);              //       csel    w6, w2, w22, LO
 465     __ csincw(r29, r22, r26, Assembler::VS);           //       csinc   w29, w22, w26, VS
 466     __ csinvw(r26, r25, r11, Assembler::LS);           //       csinv   w26, w25, w11, LS
 467     __ csnegw(r19, r14, r16, Assembler::GT);           //       csneg   w19, w14, w16, GT
 468     __ csel(r13, r21, r20, Assembler::CS);             //       csel    x13, x21, x20, CS
 469     __ csinc(r12, r11, r27, Assembler::HI);            //       csinc   x12, x11, x27, HI
 470     __ csinv(r3, r17, r19, Assembler::LE);             //       csinv   x3, x17, x19, LE
 471     __ csneg(r24, r1, r7, Assembler::VS);              //       csneg   x24, x1, x7, VS
 472 
 473 // TwoRegOp
 474     __ rbitw(r23, r1);                                 //       rbit    w23, w1
 475     __ rev16w(r16, r16);                               //       rev16   w16, w16
 476     __ revw(r24, r25);                                 //       rev     w24, w25
 477     __ clzw(r25, r8);                                  //       clz     w25, w8
 478     __ clsw(r27, r12);                                 //       cls     w27, w12
 479     __ rbit(r21, r5);                                  //       rbit    x21, x5
 480     __ rev16(r20, r9);                                 //       rev16   x20, x9
 481     __ rev32(r20, r9);                                 //       rev32   x20, x9
 482     __ rev(r19, r10);                                  //       rev     x19, x10
 483     __ clz(r8, r2);                                    //       clz     x8, x2
 484     __ cls(r29, r3);                                   //       cls     x29, x3
 485 
 486 // ThreeRegOp
 487     __ udivw(r19, r7, r29);                            //       udiv    w19, w7, w29
 488     __ sdivw(r26, r27, r10);                           //       sdiv    w26, w27, w10
 489     __ lslvw(r0, r24, r16);                            //       lslv    w0, w24, w16
 490     __ lsrvw(r22, r10, r24);                           //       lsrv    w22, w10, w24
 491     __ asrvw(r0, r26, r16);                            //       asrv    w0, w26, w16
 492     __ rorvw(r27, r25, r15);                           //       rorv    w27, w25, w15
 493     __ udiv(r8, r28, r15);                             //       udiv    x8, x28, x15
 494     __ sdiv(r20, r11, r5);                             //       sdiv    x20, x11, x5
 495     __ lslv(r21, r25, r16);                            //       lslv    x21, x25, x16
 496     __ lsrv(r7, r2, r14);                              //       lsrv    x7, x2, x14
 497     __ asrv(r21, r8, r22);                             //       asrv    x21, x8, x22
 498     __ rorv(r7, r5, r15);                              //       rorv    x7, x5, x15
 499     __ umulh(r12, r21, r22);                           //       umulh   x12, x21, x22
 500     __ smulh(r16, r10, r5);                            //       smulh   x16, x10, x5
 501 
 502 // FourRegMulOp
 503     __ maddw(r2, r6, r26, r21);                        //       madd    w2, w6, w26, w21
 504     __ msubw(r27, r19, r3, r27);                       //       msub    w27, w19, w3, w27
 505     __ madd(r27, r5, r8, r3);                          //       madd    x27, x5, x8, x3
 506     __ msub(r8, r13, r28, r13);                        //       msub    x8, x13, x28, x13
 507     __ smaddl(r29, r9, r8, r0);                        //       smaddl  x29, w9, w8, x0
 508     __ smsubl(r14, r9, r14, r23);                      //       smsubl  x14, w9, w14, x23
 509     __ umaddl(r15, r4, r11, r13);                      //       umaddl  x15, w4, w11, x13
 510     __ umsubl(r23, r3, r17, r24);                      //       umsubl  x23, w3, w17, x24
 511 
 512 // ThreeRegFloatOp
 513     __ fmuls(v29, v1, v17);                            //       fmul    s29, s1, s17
 514     __ fdivs(v23, v28, v9);                            //       fdiv    s23, s28, s9
 515     __ fadds(v14, v19, v12);                           //       fadd    s14, s19, s12
 516     __ fsubs(v27, v17, v0);                            //       fsub    s27, s17, s0
 517     __ fmuls(v16, v24, v6);                            //       fmul    s16, s24, s6
 518     __ fmuld(v4, v23, v10);                            //       fmul    d4, d23, d10
 519     __ fdivd(v11, v9, v23);                            //       fdiv    d11, d9, d23
 520     __ faddd(v7, v15, v7);                             //       fadd    d7, d15, d7
 521     __ fsubd(v29, v21, v12);                           //       fsub    d29, d21, d12
 522     __ fmuld(v27, v4, v9);                             //       fmul    d27, d4, d9
 523 
 524 // FourRegFloatOp
 525     __ fmadds(v27, v14, v11, v25);                     //       fmadd   s27, s14, s11, s25
 526     __ fmsubs(v11, v22, v15, v3);                      //       fmsub   s11, s22, s15, s3
 527     __ fnmadds(v10, v27, v24, v4);                     //       fnmadd  s10, s27, s24, s4
 528     __ fnmadds(v4, v6, v1, v1);                        //       fnmadd  s4, s6, s1, s1
 529     __ fmaddd(v13, v28, v3, v2);                       //       fmadd   d13, d28, d3, d2
 530     __ fmsubd(v26, v24, v7, v26);                      //       fmsub   d26, d24, d7, d26
 531     __ fnmaddd(v21, v5, v12, v26);                     //       fnmadd  d21, d5, d12, d26
 532     __ fnmaddd(v11, v16, v20, v3);                     //       fnmadd  d11, d16, d20, d3
 533 
 534 // TwoRegFloatOp
 535     __ fmovs(v5, v17);                                 //       fmov    s5, s17
 536     __ fabss(v7, v9);                                  //       fabs    s7, s9
 537     __ fnegs(v25, v1);                                 //       fneg    s25, s1
 538     __ fsqrts(v24, v6);                                //       fsqrt   s24, s6
 539     __ fcvts(v27, v17);                                //       fcvt    d27, s17
 540     __ fmovd(v22, v2);                                 //       fmov    d22, d2
 541     __ fabsd(v14, v20);                                //       fabs    d14, d20
 542     __ fnegd(v29, v11);                                //       fneg    d29, d11
 543     __ fsqrtd(v28, v12);                               //       fsqrt   d28, d12
 544     __ fcvtd(v4, v3);                                  //       fcvt    s4, d3
 545 
 546 // FloatConvertOp
 547     __ fcvtzsw(r28, v13);                              //       fcvtzs  w28, s13
 548     __ fcvtzs(r7, v28);                                //       fcvtzs  x7, s28
 549     __ fcvtzdw(r12, v15);                              //       fcvtzs  w12, d15
 550     __ fcvtzd(r11, v6);                                //       fcvtzs  x11, d6
 551     __ scvtfws(v22, r22);                              //       scvtf   s22, w22
 552     __ scvtfs(v5, r16);                                //       scvtf   s5, x16
 553     __ scvtfwd(v3, r15);                               //       scvtf   d3, w15
 554     __ scvtfd(v6, r8);                                 //       scvtf   d6, x8
 555     __ fmovs(r26, v29);                                //       fmov    w26, s29
 556     __ fmovd(r24, v17);                                //       fmov    x24, d17
 557     __ fmovs(v2, r19);                                 //       fmov    s2, w19
 558     __ fmovd(v21, r5);                                 //       fmov    d21, x5
 559 
 560 // TwoRegFloatOp
 561     __ fcmps(v23, v8);                                 //       fcmp    s23, s8
 562     __ fcmpd(v12, v2);                                 //       fcmp    d12, d2
 563     __ fcmps(v14, 0.0);                                //       fcmp    s14, #0.0
 564     __ fcmpd(v10, 0.0);                                //       fcmp    d10, #0.0
 565 
 566 // LoadStorePairOp
 567     __ stpw(r8, r17, Address(r12, -96));               //       stp     w8, w17, [x12, #-96]
 568     __ ldpw(r1, r21, Address(r28, -192));              //       ldp     w1, w21, [x28, #-192]
 569     __ ldpsw(r25, r22, Address(r16, -64));             //       ldpsw   x25, x22, [x16, #-64]
 570     __ stp(r6, r8, Address(r23, -128));                //       stp     x6, x8, [x23, #-128]
 571     __ ldp(r25, r16, Address(r19, -112));              //       ldp     x25, x16, [x19, #-112]
 572 
 573 // LoadStorePairOp
 574     __ stpw(r29, r27, Address(__ pre(r13, -240)));     //       stp     w29, w27, [x13, #-240]!
 575     __ ldpw(r12, r20, Address(__ pre(r21, -32)));      //       ldp     w12, w20, [x21, #-32]!
 576     __ ldpsw(r0, r15, Address(__ pre(r4, -144)));      //       ldpsw   x0, x15, [x4, #-144]!
 577     __ stp(r13, r12, Address(__ pre(r19, 128)));       //       stp     x13, x12, [x19, #128]!
 578     __ ldp(r25, r2, Address(__ pre(r9, 96)));          //       ldp     x25, x2, [x9, #96]!
 579 
 580 // LoadStorePairOp
 581     __ stpw(r11, r1, Address(__ post(r26, 128)));      //       stp     w11, w1, [x26], #128
 582     __ ldpw(r26, r25, Address(__ post(r3, 32)));       //       ldp     w26, w25, [x3], #32
 583     __ ldpsw(r10, r14, Address(__ post(r2, -240)));    //       ldpsw   x10, x14, [x2], #-240
 584     __ stp(r1, r3, Address(__ post(r10, 128)));        //       stp     x1, x3, [x10], #128
 585     __ ldp(r23, r12, Address(__ post(r25, -144)));     //       ldp     x23, x12, [x25], #-144
 586 
 587 // LoadStorePairOp
 588     __ stnpw(r5, r8, Address(r25, 64));                //       stnp    w5, w8, [x25, #64]
 589     __ ldnpw(r20, r19, Address(r22, -240));            //       ldnp    w20, w19, [x22, #-240]
 590     __ stnp(r23, r7, Address(r14, -176));              //       stnp    x23, x7, [x14, #-176]
 591     __ ldnp(r14, r28, Address(r21, 64));               //       ldnp    x14, x28, [x21, #64]
 592 
 593 // LdStSIMDOp
 594     __ ld1(v10, __ T8B, Address(r4));                  //       ld1     {v10.8B}, [x4]
 595     __ ld1(v25, v26, __ T16B, Address(__ post(r26, 32))); //    ld1     {v25.16B, v26.16B}, [x26], 32
 596     __ ld1(v27, v28, v29, __ T1D, Address(__ post(r4, r23))); //        ld1     {v27.1D, v28.1D, v29.1D}, [x4], x23
 597     __ ld1(v16, v17, v18, v19, __ T8H, Address(__ post(r6, 64))); //    ld1     {v16.8H, v17.8H, v18.8H, v19.8H}, [x6], 64
 598     __ ld1r(v1, __ T8B, Address(r27));                 //       ld1r    {v1.8B}, [x27]
 599     __ ld1r(v4, __ T4S, Address(__ post(r2, 4)));      //       ld1r    {v4.4S}, [x2], 4
 600     __ ld1r(v21, __ T1D, Address(__ post(r29, r15)));  //       ld1r    {v21.1D}, [x29], x15
 601     __ ld2(v1, v2, __ T2D, Address(r22));              //       ld2     {v1.2D, v2.2D}, [x22]
 602     __ ld2(v29, v30, __ T4H, Address(__ post(r8, 16))); //      ld2     {v29.4H, v30.4H}, [x8], 16
 603     __ ld2r(v24, v25, __ T16B, Address(r4));           //       ld2r    {v24.16B, v25.16B}, [x4]
 604     __ ld2r(v21, v22, __ T2S, Address(__ post(r19, 8))); //     ld2r    {v21.2S, v22.2S}, [x19], 8
 605     __ ld2r(v13, v14, __ T2D, Address(__ post(r13, r6))); //    ld2r    {v13.2D, v14.2D}, [x13], x6
 606     __ ld3(v1, v2, v3, __ T4S, Address(__ post(r4, r17))); //   ld3     {v1.4S, v2.4S, v3.4S}, [x4], x17
 607     __ ld3(v22, v23, v24, __ T2S, Address(r17));       //       ld3     {v22.2S, v23.2S, v24.2S}, [x17]
 608     __ ld3r(v17, v18, v19, __ T8H, Address(r17));      //       ld3r    {v17.8H, v18.8H, v19.8H}, [x17]
 609     __ ld3r(v8, v9, v10, __ T4S, Address(__ post(r28, 12))); // ld3r    {v8.4S, v9.4S, v10.4S}, [x28], 12
 610     __ ld3r(v5, v6, v7, __ T1D, Address(__ post(r1, r19))); //  ld3r    {v5.1D, v6.1D, v7.1D}, [x1], x19
 611     __ ld4(v1, v2, v3, v4, __ T8H, Address(__ post(r15, 64))); //       ld4     {v1.8H, v2.8H, v3.8H, v4.8H}, [x15], 64
 612     __ ld4(v17, v18, v19, v20, __ T8B, Address(__ post(r6, r26))); //   ld4     {v17.8B, v18.8B, v19.8B, v20.8B}, [x6], x26
 613     __ ld4r(v25, v26, v27, v28, __ T8B, Address(r7));  //       ld4r    {v25.8B, v26.8B, v27.8B, v28.8B}, [x7]
 614     __ ld4r(v12, v13, v14, v15, __ T4H, Address(__ post(r8, 8))); //    ld4r    {v12.4H, v13.4H, v14.4H, v15.4H}, [x8], 8
 615     __ ld4r(v9, v10, v11, v12, __ T2S, Address(__ post(r13, r1))); //   ld4r    {v9.2S, v10.2S, v11.2S, v12.2S}, [x13], x1






 616 
 617 // SpecialCases
 618     __ ccmn(zr, zr, 3u, Assembler::LE);                //       ccmn    xzr, xzr, #3, LE
 619     __ ccmnw(zr, zr, 5u, Assembler::EQ);               //       ccmn    wzr, wzr, #5, EQ
 620     __ ccmp(zr, 1, 4u, Assembler::NE);                 //       ccmp    xzr, 1, #4, NE
 621     __ ccmpw(zr, 2, 2, Assembler::GT);                 //       ccmp    wzr, 2, #2, GT
 622     __ extr(zr, zr, zr, 0);                            //       extr    xzr, xzr, xzr, 0
 623     __ stlxp(r0, zr, zr, sp);                          //       stlxp   w0, xzr, xzr, [sp]
 624     __ stlxpw(r2, zr, zr, r3);                         //       stlxp   w2, wzr, wzr, [x3]
 625     __ stxp(r4, zr, zr, r5);                           //       stxp    w4, xzr, xzr, [x5]
 626     __ stxpw(r6, zr, zr, sp);                          //       stxp    w6, wzr, wzr, [sp]
 627     __ dup(v0, __ T16B, zr);                           //       dup     v0.16b, wzr
 628     __ mov(v1, __ T1D, 0, zr);                         //       mov     v1.d[0], xzr
 629     __ mov(v1, __ T2S, 1, zr);                         //       mov     v1.s[1], wzr
 630     __ mov(v1, __ T4H, 2, zr);                         //       mov     v1.h[2], wzr
 631     __ mov(v1, __ T8B, 3, zr);                         //       mov     v1.b[3], wzr
 632     __ ld1(v31, v0, __ T2D, Address(__ post(r1, r0))); //       ld1     {v31.2d, v0.2d}, [x1], x0
 633 
 634 // FloatImmediateOp
 635     __ fmovd(v0, 2.0);                                 //       fmov d0, #2.0


 649     __ fmovd(v0, 1.0);                                 //       fmov d0, #1.0
 650     __ fmovd(v0, 1.0625);                              //       fmov d0, #1.0625
 651     __ fmovd(v0, -2.0);                                //       fmov d0, #-2.0
 652     __ fmovd(v0, -2.125);                              //       fmov d0, #-2.125
 653     __ fmovd(v0, -4.0);                                //       fmov d0, #-4.0
 654     __ fmovd(v0, -4.25);                               //       fmov d0, #-4.25
 655     __ fmovd(v0, -8.0);                                //       fmov d0, #-8.0
 656     __ fmovd(v0, -8.5);                                //       fmov d0, #-8.5
 657     __ fmovd(v0, -16.0);                               //       fmov d0, #-16.0
 658     __ fmovd(v0, -17.0);                               //       fmov d0, #-17.0
 659     __ fmovd(v0, -0.125);                              //       fmov d0, #-0.125
 660     __ fmovd(v0, -0.1328125);                          //       fmov d0, #-0.1328125
 661     __ fmovd(v0, -0.25);                               //       fmov d0, #-0.25
 662     __ fmovd(v0, -0.265625);                           //       fmov d0, #-0.265625
 663     __ fmovd(v0, -0.5);                                //       fmov d0, #-0.5
 664     __ fmovd(v0, -0.53125);                            //       fmov d0, #-0.53125
 665     __ fmovd(v0, -1.0);                                //       fmov d0, #-1.0
 666     __ fmovd(v0, -1.0625);                             //       fmov d0, #-1.0625
 667 
 668 // LSEOp
 669     __ swp(Assembler::xword, r26, r3, r6);             //       swp     x26, x3, [x6]
 670     __ ldadd(Assembler::xword, r20, r12, r4);          //       ldadd   x20, x12, [x4]
 671     __ ldbic(Assembler::xword, r23, r4, r11);          //       ldclr   x23, x4, [x11]
 672     __ ldeor(Assembler::xword, r15, r15, r24);         //       ldeor   x15, x15, [x24]
 673     __ ldorr(Assembler::xword, r29, r2, r17);          //       ldset   x29, x2, [x17]
 674     __ ldsmin(Assembler::xword, r25, r5, r1);          //       ldsmin  x25, x5, [x1]
 675     __ ldsmax(Assembler::xword, r15, r15, r7);         //       ldsmax  x15, x15, [x7]
 676     __ ldumin(Assembler::xword, r28, zr, r29);         //       ldumin  x28, xzr, [x29]
 677     __ ldumax(Assembler::xword, r17, r17, sp);         //       ldumax  x17, x17, [sp]
 678 
 679 // LSEOp
 680     __ swpa(Assembler::xword, r7, r16, r21);           //       swpa    x7, x16, [x21]
 681     __ ldadda(Assembler::xword, r17, r10, r20);        //       ldadda  x17, x10, [x20]
 682     __ ldbica(Assembler::xword, r25, r14, r29);        //       ldclra  x25, x14, [x29]
 683     __ ldeora(Assembler::xword, r25, r13, r3);         //       ldeora  x25, x13, [x3]
 684     __ ldorra(Assembler::xword, r13, r7, r28);         //       ldseta  x13, x7, [x28]
 685     __ ldsmina(Assembler::xword, r20, r25, r7);        //       ldsmina x20, x25, [x7]
 686     __ ldsmaxa(Assembler::xword, r21, r4, r2);         //       ldsmaxa x21, x4, [x2]
 687     __ ldumina(Assembler::xword, r8, r5, r8);          //       ldumina x8, x5, [x8]
 688     __ ldumaxa(Assembler::xword, r10, r12, r6);        //       ldumaxa x10, x12, [x6]
 689 
 690 // LSEOp
 691     __ swpal(Assembler::xword, r25, r12, r10);         //       swpal   x25, x12, [x10]
 692     __ ldaddal(Assembler::xword, r12, r1, r4);         //       ldaddal x12, x1, [x4]
 693     __ ldbical(Assembler::xword, r26, r6, r12);        //       ldclral x26, x6, [x12]
 694     __ ldeoral(Assembler::xword, r1, r14, r12);        //       ldeoral x1, x14, [x12]
 695     __ ldorral(Assembler::xword, r22, r6, r21);        //       ldsetal x22, x6, [x21]
 696     __ ldsminal(Assembler::xword, r15, r4, r6);        //       ldsminal        x15, x4, [x6]
 697     __ ldsmaxal(Assembler::xword, r24, r16, r7);       //       ldsmaxal        x24, x16, [x7]
 698     __ lduminal(Assembler::xword, r5, r3, r11);        //       lduminal        x5, x3, [x11]
 699     __ ldumaxal(Assembler::xword, r22, r2, r25);       //       ldumaxal        x22, x2, [x25]
 700 
 701 // LSEOp
 702     __ swpl(Assembler::xword, r6, r29, r0);            //       swpl    x6, x29, [x0]
 703     __ ldaddl(Assembler::xword, r26, r6, r23);         //       ldaddl  x26, x6, [x23]
 704     __ ldbicl(Assembler::xword, r4, r7, r9);           //       ldclrl  x4, x7, [x9]
 705     __ ldeorl(Assembler::xword, r6, r11, r1);          //       ldeorl  x6, x11, [x1]
 706     __ ldorrl(Assembler::xword, r11, r13, r29);        //       ldsetl  x11, x13, [x29]
 707     __ ldsminl(Assembler::xword, r11, r3, r6);         //       ldsminl x11, x3, [x6]
 708     __ ldsmaxl(Assembler::xword, r21, r0, r11);        //       ldsmaxl x21, x0, [x11]
 709     __ lduminl(Assembler::xword, r11, r23, r9);        //       lduminl x11, x23, [x9]
 710     __ ldumaxl(Assembler::xword, r17, r16, r16);       //       ldumaxl x17, x16, [x16]
 711 
 712 // LSEOp
 713     __ swp(Assembler::word, r21, r5, sp);              //       swp     w21, w5, [sp]
 714     __ ldadd(Assembler::word, r24, r11, r4);           //       ldadd   w24, w11, [x4]
 715     __ ldbic(Assembler::word, r17, r29, r4);           //       ldclr   w17, w29, [x4]
 716     __ ldeor(Assembler::word, r15, r11, r15);          //       ldeor   w15, w11, [x15]
 717     __ ldorr(Assembler::word, r27, r26, r11);          //       ldset   w27, w26, [x11]
 718     __ ldsmin(Assembler::word, r27, r12, r8);          //       ldsmin  w27, w12, [x8]
 719     __ ldsmax(Assembler::word, r6, r20, r1);           //       ldsmax  w6, w20, [x1]
 720     __ ldumin(Assembler::word, r14, r16, r29);         //       ldumin  w14, w16, [x29]
 721     __ ldumax(Assembler::word, r24, r13, r26);         //       ldumax  w24, w13, [x26]
 722 
 723 // LSEOp
 724     __ swpa(Assembler::word, r4, r2, r11);             //       swpa    w4, w2, [x11]
 725     __ ldadda(Assembler::word, r20, r29, r4);          //       ldadda  w20, w29, [x4]
 726     __ ldbica(Assembler::word, r20, zr, r29);          //       ldclra  w20, wzr, [x29]
 727     __ ldeora(Assembler::word, r0, r15, r25);          //       ldeora  w0, w15, [x25]
 728     __ ldorra(Assembler::word, r23, r5, r20);          //       ldseta  w23, w5, [x20]
 729     __ ldsmina(Assembler::word, r29, r26, r19);        //       ldsmina w29, w26, [x19]
 730     __ ldsmaxa(Assembler::word, r21, r20, r22);        //       ldsmaxa w21, w20, [x22]
 731     __ ldumina(Assembler::word, r26, r21, r16);        //       ldumina w26, w21, [x16]
 732     __ ldumaxa(Assembler::word, r8, r21, r10);         //       ldumaxa w8, w21, [x10]
 733 
 734 // LSEOp
 735     __ swpal(Assembler::word, r27, r11, r11);          //       swpal   w27, w11, [x11]
 736     __ ldaddal(Assembler::word, r5, r8, r28);          //       ldaddal w5, w8, [x28]
 737     __ ldbical(Assembler::word, r0, r5, r5);           //       ldclral w0, w5, [x5]
 738     __ ldeoral(Assembler::word, r2, r10, r24);         //       ldeoral w2, w10, [x24]
 739     __ ldorral(Assembler::word, r13, zr, sp);          //       ldsetal w13, wzr, [sp]
 740     __ ldsminal(Assembler::word, r26, r25, r24);       //       ldsminal        w26, w25, [x24]
 741     __ ldsmaxal(Assembler::word, r8, r5, r6);          //       ldsmaxal        w8, w5, [x6]
 742     __ lduminal(Assembler::word, r5, r27, r27);        //       lduminal        w5, w27, [x27]
 743     __ ldumaxal(Assembler::word, r23, r20, r23);       //       ldumaxal        w23, w20, [x23]
 744 
 745 // LSEOp
 746     __ swpl(Assembler::word, r25, r3, r28);            //       swpl    w25, w3, [x28]
 747     __ ldaddl(Assembler::word, r10, r8, r13);          //       ldaddl  w10, w8, [x13]
 748     __ ldbicl(Assembler::word, r21, r11, sp);          //       ldclrl  w21, w11, [sp]
 749     __ ldeorl(Assembler::word, zr, r3, r28);           //       ldeorl  wzr, w3, [x28]
 750     __ ldorrl(Assembler::word, r15, r0, r24);          //       ldsetl  w15, w0, [x24]
 751     __ ldsminl(Assembler::word, r4, r9, r29);          //       ldsminl w4, w9, [x29]
 752     __ ldsmaxl(Assembler::word, r8, r6, r21);          //       ldsmaxl w8, w6, [x21]
 753     __ lduminl(Assembler::word, r9, r22, r3);          //       lduminl w9, w22, [x3]
 754     __ ldumaxl(Assembler::word, r26, r10, r28);        //       ldumaxl w26, w10, [x28]
 755 
 756     __ bind(forth);
 757 
 758 /*
 759 aarch64ops.o:     file format elf64-littleaarch64
 760 
 761 
 762 Disassembly of section .text:
 763 
 764 0000000000000000 <back>:
 765    0:   8b1ad014        add     x20, x0, x26, lsl #52
 766    4:   cb83db85        sub     x5, x28, x3, asr #54
 767    8:   ab839ecb        adds    x11, x22, x3, asr #39
 768    c:   eb4c646b        subs    x11, x3, x12, lsr #25
 769   10:   0b0d399b        add     w27, w12, w13, lsl #14
 770   14:   4b9b1eaa        sub     w10, w21, w27, asr #7
 771   18:   2b1011c3        adds    w3, w14, w16, lsl #4
 772   1c:   6b1d1661        subs    w1, w19, w29, lsl #5
 773   20:   8a5b1a30        and     x16, x17, x27, lsr #6
 774   24:   aa1c8f96        orr     x22, x28, x28, lsl #35
 775   28:   ca5ccd4b        eor     x11, x10, x28, lsr #51
 776   2c:   ea8ec10d        ands    x13, x8, x14, asr #48
 777   30:   0a410c61        and     w1, w3, w1, lsr #3
 778   34:   2a855909        orr     w9, w8, w5, asr #22
 779   38:   4a9b4f82        eor     w2, w28, w27, asr #19
 780   3c:   6a073938        ands    w24, w9, w7, lsl #14
 781   40:   8ab9826b        bic     x11, x19, x25, asr #32
 782   44:   aa3d7318        orn     x24, x24, x29, lsl #28
 783   48:   cab16e0b        eon     x11, x16, x17, asr #27
 784   4c:   ea6ae9a5        bics    x5, x13, x10, lsr #58
 785   50:   0a357545        bic     w5, w10, w21, lsl #29
 786   54:   2a354d64        orn     w4, w11, w21, lsl #19
 787   58:   4a7c3f95        eon     w21, w28, w28, lsr #15
 788   5c:   6a2e7146        bics    w6, w10, w14, lsl #28
 789   60:   110ec6ca        add     w10, w22, #0x3b1
 790   64:   310e9d6f        adds    w15, w11, #0x3a7
 791   68:   510afcc5        sub     w5, w6, #0x2bf
 792   6c:   7108e013        subs    w19, w0, #0x238
 793   70:   91098114        add     x20, x8, #0x260
 794   74:   b10434d0        adds    x16, x6, #0x10d
 795   78:   d10db417        sub     x23, x0, #0x36d
 796   7c:   f10c873a        subs    x26, x25, #0x321
 797   80:   120d6a0c        and     w12, w16, #0xfff83fff
 798   84:   32066b01        orr     w1, w24, #0xfc1fffff
 799   88:   52112073        eor     w19, w3, #0xff8000
 800   8c:   720a553d        ands    w29, w9, #0xffc00fff
 801   90:   9263d0ba        and     x26, x5, #0xffffffffe003ffff
 802   94:   b20da1d8        orr     x24, x14, #0xff80ff80ff80ff8
 803   98:   d26ec404        eor     x4, x0, #0xfffffffffffc000f
 804   9c:   f26e28dc        ands    x28, x6, #0x1ffc0000
 805   a0:   14000000        b       a0 <back+0xa0>
 806   a4:   17ffffd7        b       0 <back>
 807   a8:   140001ee        b       860 <forth>
 808   ac:   94000000        bl      ac <back+0xac>
 809   b0:   97ffffd4        bl      0 <back>
 810   b4:   940001eb        bl      860 <forth>
 811   b8:   34000015        cbz     w21, b8 <back+0xb8>
 812   bc:   34fffa35        cbz     w21, 0 <back>
 813   c0:   34003d15        cbz     w21, 860 <forth>
 814   c4:   3500000c        cbnz    w12, c4 <back+0xc4>
 815   c8:   35fff9cc        cbnz    w12, 0 <back>
 816   cc:   35003cac        cbnz    w12, 860 <forth>
 817   d0:   b400000e        cbz     x14, d0 <back+0xd0>
 818   d4:   b4fff96e        cbz     x14, 0 <back>
 819   d8:   b4003c4e        cbz     x14, 860 <forth>
 820   dc:   b500001b        cbnz    x27, dc <back+0xdc>
 821   e0:   b5fff91b        cbnz    x27, 0 <back>
 822   e4:   b5003bfb        cbnz    x27, 860 <forth>
 823   e8:   1000000e        adr     x14, e8 <back+0xe8>
 824   ec:   10fff8ae        adr     x14, 0 <back>
 825   f0:   10003b8e        adr     x14, 860 <forth>
 826   f4:   90000016        adrp    x22, 0 <back>
 827   f8:   36280000        tbz     w0, #5, f8 <back+0xf8>
 828   fc:   362ff820        tbz     w0, #5, 0 <back>
 829  100:   36283b00        tbz     w0, #5, 860 <forth>
 830  104:   37580003        tbnz    w3, #11, 104 <back+0x104>
 831  108:   375ff7c3        tbnz    w3, #11, 0 <back>
 832  10c:   37583aa3        tbnz    w3, #11, 860 <forth>
 833  110:   12835753        mov     w19, #0xffffe545                // #-6843
 834  114:   52a2da7c        mov     w28, #0x16d30000                // #382926848
 835  118:   72a9ef0d        movk    w13, #0x4f78, lsl #16
 836  11c:   92c097e1        mov     x1, #0xfffffb40ffffffff         // #-5218385264641
 837  120:   d28e0a7a        mov     x26, #0x7053                    // #28755
 838  124:   f2e2d05b        movk    x27, #0x1682, lsl #48
 839  128:   93496301        sbfx    x1, x24, #9, #16
 840  12c:   33054019        bfxil   w25, w0, #5, #12
 841  130:   530f1f70        ubfiz   w16, w27, #17, #8
 842  134:   934f71d0        sbfx    x16, x14, #15, #14
 843  138:   b3403558        bfxil   x24, x10, #0, #14
 844  13c:   d34259c1        ubfx    x1, x14, #2, #21
 845  140:   1381540a        extr    w10, w0, w1, #21
 846  144:   93d7f75a        extr    x26, x26, x23, #61
 847  148:   54000000        b.eq    148 <back+0x148>
 848  14c:   54fff5a0        b.eq    0 <back>
 849  150:   54003880        b.eq    860 <forth>
 850  154:   54000001        b.ne    154 <back+0x154>
 851  158:   54fff541        b.ne    0 <back>
 852  15c:   54003821        b.ne    860 <forth>
 853  160:   54000002        b.cs    160 <back+0x160>
 854  164:   54fff4e2        b.cs    0 <back>
 855  168:   540037c2        b.cs    860 <forth>
 856  16c:   54000002        b.cs    16c <back+0x16c>
 857  170:   54fff482        b.cs    0 <back>
 858  174:   54003762        b.cs    860 <forth>
 859  178:   54000003        b.cc    178 <back+0x178>
 860  17c:   54fff423        b.cc    0 <back>
 861  180:   54003703        b.cc    860 <forth>
 862  184:   54000003        b.cc    184 <back+0x184>
 863  188:   54fff3c3        b.cc    0 <back>
 864  18c:   540036a3        b.cc    860 <forth>
 865  190:   54000004        b.mi    190 <back+0x190>
 866  194:   54fff364        b.mi    0 <back>
 867  198:   54003644        b.mi    860 <forth>
 868  19c:   54000005        b.pl    19c <back+0x19c>
 869  1a0:   54fff305        b.pl    0 <back>
 870  1a4:   540035e5        b.pl    860 <forth>
 871  1a8:   54000006        b.vs    1a8 <back+0x1a8>
 872  1ac:   54fff2a6        b.vs    0 <back>
 873  1b0:   54003586        b.vs    860 <forth>
 874  1b4:   54000007        b.vc    1b4 <back+0x1b4>
 875  1b8:   54fff247        b.vc    0 <back>
 876  1bc:   54003527        b.vc    860 <forth>
 877  1c0:   54000008        b.hi    1c0 <back+0x1c0>
 878  1c4:   54fff1e8        b.hi    0 <back>
 879  1c8:   540034c8        b.hi    860 <forth>
 880  1cc:   54000009        b.ls    1cc <back+0x1cc>
 881  1d0:   54fff189        b.ls    0 <back>
 882  1d4:   54003469        b.ls    860 <forth>
 883  1d8:   5400000a        b.ge    1d8 <back+0x1d8>
 884  1dc:   54fff12a        b.ge    0 <back>
 885  1e0:   5400340a        b.ge    860 <forth>
 886  1e4:   5400000b        b.lt    1e4 <back+0x1e4>
 887  1e8:   54fff0cb        b.lt    0 <back>
 888  1ec:   540033ab        b.lt    860 <forth>
 889  1f0:   5400000c        b.gt    1f0 <back+0x1f0>
 890  1f4:   54fff06c        b.gt    0 <back>
 891  1f8:   5400334c        b.gt    860 <forth>
 892  1fc:   5400000d        b.le    1fc <back+0x1fc>
 893  200:   54fff00d        b.le    0 <back>
 894  204:   540032ed        b.le    860 <forth>
 895  208:   5400000e        b.al    208 <back+0x208>
 896  20c:   54ffefae        b.al    0 <back>
 897  210:   5400328e        b.al    860 <forth>
 898  214:   5400000f        b.nv    214 <back+0x214>
 899  218:   54ffef4f        b.nv    0 <back>
 900  21c:   5400322f        b.nv    860 <forth>
 901  220:   d4079461        svc     #0x3ca3
 902  224:   d4018ee2        hvc     #0xc77
 903  228:   d408d7c3        smc     #0x46be
 904  22c:   d4216040        brk     #0xb02
 905  230:   d44a2f80        hlt     #0x517c
 906  234:   d503201f        nop
 907  238:   d69f03e0        eret
 908  23c:   d6bf03e0        drps
 909  240:   d5033fdf        isb
 910  244:   d503329f        dsb     oshst
 911  248:   d50339bf        dmb     ishld
 912  24c:   d61f0140        br      x10
 913  250:   d63f02c0        blr     x22
 914  254:   c8037cb5        stxr    w3, x21, [x5]
 915  258:   c81cffa9        stlxr   w28, x9, [x29]
 916  25c:   c85f7cfc        ldxr    x28, [x7]
 917  260:   c85ffeea        ldaxr   x10, [x23]
 918  264:   c89fff47        stlr    x7, [x26]
 919  268:   c8dffef0        ldar    x16, [x23]
 920  26c:   880b7d87        stxr    w11, w7, [x12]
 921  270:   8810ff4d        stlxr   w16, w13, [x26]
 922  274:   885f7eb9        ldxr    w25, [x21]
 923  278:   885ffc8e        ldaxr   w14, [x4]
 924  27c:   889ffd3a        stlr    w26, [x9]
 925  280:   88dffee0        ldar    w0, [x23]
 926  284:   48087d40        stxrh   w8, w0, [x10]
 927  288:   480bfc81        stlxrh  w11, w1, [x4]
 928  28c:   485f7f4e        ldxrh   w14, [x26]
 929  290:   485ffcf3        ldaxrh  w19, [x7]
 930  294:   489ffed1        stlrh   w17, [x22]
 931  298:   48dffcd4        ldarh   w20, [x6]
 932  29c:   08197cc8        stxrb   w25, w8, [x6]
 933  2a0:   0805ff2a        stlxrb  w5, w10, [x25]
 934  2a4:   085f7ec0        ldxrb   w0, [x22]
 935  2a8:   085ffc68        ldaxrb  w8, [x3]
 936  2ac:   089ffc45        stlrb   w5, [x2]
 937  2b0:   08dfff86        ldarb   w6, [x28]
 938  2b4:   c87f21d1        ldxp    x17, x8, [x14]
 939  2b8:   c87f8c4e        ldaxp   x14, x3, [x2]
 940  2bc:   c8391271        stxp    w25, x17, x4, [x19]
 941  2c0:   c82abd10        stlxp   w10, x16, x15, [x8]
 942  2c4:   887f2c61        ldxp    w1, w11, [x3]
 943  2c8:   887fed80        ldaxp   w0, w27, [x12]
 944  2cc:   882457b4        stxp    w4, w20, w21, [x29]
 945  2d0:   882097a9        stlxp   w0, w9, w5, [x29]
 946  2d4:   f811d091        stur    x17, [x4,#-227]
 947  2d8:   b81df086        stur    w6, [x4,#-33]
 948  2dc:   39002e0d        strb    w13, [x16,#11]
 949  2e0:   781c02d7        sturh   w23, [x22,#-64]
 950  2e4:   f840d062        ldur    x2, [x3,#13]
 951  2e8:   b8423285        ldur    w5, [x20,#35]
 952  2ec:   385f1142        ldurb   w2, [x10,#-15]
 953  2f0:   785f8017        ldurh   w23, [x0,#-8]
 954  2f4:   389fd1cf        ldursb  x15, [x14,#-3]
 955  2f8:   789f4063        ldursh  x3, [x3,#-12]
 956  2fc:   78df9319        ldursh  w25, [x24,#-7]
 957  300:   b89e3011        ldursw  x17, [x0,#-29]
 958  304:   fc5b1127        ldur    d7, [x9,#-79]
 959  308:   bc5bc16b        ldur    s11, [x11,#-68]
 960  30c:   fc189050        stur    d16, [x2,#-119]
 961  310:   bc184399        stur    s25, [x28,#-124]
 962  314:   f8052e7c        str     x28, [x19,#82]!
 963  318:   b8032da7        str     w7, [x13,#50]!
 964  31c:   381e0e62        strb    w2, [x19,#-32]!
 965  320:   781c6c38        strh    w24, [x1,#-58]!
 966  324:   f8571fb7        ldr     x23, [x29,#-143]!
 967  328:   b8400f6d        ldr     w13, [x27,#0]!
 968  32c:   385e6d4b        ldrb    w11, [x10,#-26]!
 969  330:   785cacc3        ldrh    w3, [x6,#-54]!
 970  334:   38803d22        ldrsb   x2, [x9,#3]!
 971  338:   7881ec9c        ldrsh   x28, [x4,#30]!
 972  33c:   78de9c11        ldrsh   w17, [x0,#-23]!
 973  340:   b898bf3d        ldrsw   x29, [x25,#-117]!
 974  344:   fc572d55        ldr     d21, [x10,#-142]!
 975  348:   bc423e8b        ldr     s11, [x20,#35]!
 976  34c:   fc12ade1        str     d1, [x15,#-214]!
 977  350:   bc1c9cb3        str     s19, [x5,#-55]!
 978  354:   f81ec63c        str     x28, [x17],#-20
 979  358:   b81f75a8        str     w8, [x13],#-9
 980  35c:   381e970e        strb    w14, [x24],#-23
 981  360:   781c4482        strh    w2, [x4],#-60
 982  364:   f8422738        ldr     x24, [x25],#34
 983  368:   b85e5790        ldr     w16, [x28],#-27
 984  36c:   385e56e8        ldrb    w8, [x23],#-27
 985  370:   785c6403        ldrh    w3, [x0],#-58
 986  374:   389f65ee        ldrsb   x14, [x15],#-10
 987  378:   7880d42c        ldrsh   x12, [x1],#13
 988  37c:   78ded429        ldrsh   w9, [x1],#-19
 989  380:   b89c355d        ldrsw   x29, [x10],#-61
 990  384:   fc5f778d        ldr     d13, [x28],#-9
 991  388:   bc5a8774        ldr     s20, [x27],#-88
 992  38c:   fc139567        str     d7, [x11],#-199
 993  390:   bc1c36d4        str     s20, [x22],#-61
 994  394:   f830c943        str     x3, [x10,w16,sxtw]
 995  398:   b8357ba1        str     w1, [x29,x21,lsl #2]
 996  39c:   3837581a        strb    w26, [x0,w23,uxtw #0]
 997  3a0:   7835681a        strh    w26, [x0,x21]
 998  3a4:   f8766b23        ldr     x3, [x25,x22]
 999  3a8:   b8785939        ldr     w25, [x9,w24,uxtw #2]
1000  3ac:   386ed80a        ldrb    w10, [x0,w14,sxtw #0]
1001  3b0:   78747aa2        ldrh    w2, [x21,x20,lsl #1]
1002  3b4:   38bcfb73        ldrsb   x19, [x27,x28,sxtx #0]
1003  3b8:   78a37901        ldrsh   x1, [x8,x3,lsl #1]
1004  3bc:   78f0e9f4        ldrsh   w20, [x15,x16,sxtx]
1005  3c0:   b8ac78e7        ldrsw   x7, [x7,x12,lsl #2]
1006  3c4:   fc6dd88f        ldr     d15, [x4,w13,sxtw #3]
1007  3c8:   bc63494e        ldr     s14, [x10,w3,uxtw]
1008  3cc:   fc29faf8        str     d24, [x23,x9,sxtx #3]
1009  3d0:   bc3a5989        str     s9, [x12,w26,uxtw #2]
1010  3d4:   f91a530e        str     x14, [x24,#13472]
1011  3d8:   b91ce1c0        str     w0, [x14,#7392]
1012  3dc:   39180277        strb    w23, [x19,#1536]
1013  3e0:   791c316f        strh    w15, [x11,#3608]
1014  3e4:   f95ab735        ldr     x21, [x25,#13672]
1015  3e8:   b95810f7        ldr     w23, [x7,#6160]
1016  3ec:   395ede17        ldrb    w23, [x16,#1975]
1017  3f0:   795e1718        ldrh    w24, [x24,#3850]
1018  3f4:   3999352c        ldrsb   x12, [x9,#1613]
1019  3f8:   799e02a5        ldrsh   x5, [x21,#3840]
1020  3fc:   79dc0c0e        ldrsh   w14, [x0,#3590]
1021  400:   b99ef84d        ldrsw   x13, [x2,#7928]
1022  404:   fd5ede6f        ldr     d15, [x19,#15800]
1023  408:   bd5880b7        ldr     s23, [x5,#6272]
1024  40c:   fd1d90c6        str     d6, [x6,#15136]
1025  410:   bd182569        str     s9, [x11,#6180]
1026  414:   58002267        ldr     x7, 860 <forth>
1027  418:   1800001d        ldr     w29, 418 <back+0x418>
1028  41c:   f8929000        prfum   pldl1keep, [x0,#-215]
1029  420:   d8002200        prfm    pldl1keep, 860 <forth>
1030  424:   f8a34880        prfm    pldl1keep, [x4,w3,uxtw]
1031  428:   f99825c0        prfm    pldl1keep, [x14,#12360]
1032  42c:   1a0400c7        adc     w7, w6, w4
1033  430:   3a05019b        adcs    w27, w12, w5
1034  434:   5a1a0319        sbc     w25, w24, w26
1035  438:   7a1700e5        sbcs    w5, w7, w23
1036  43c:   9a010176        adc     x22, x11, x1
1037  440:   ba1d012d        adcs    x13, x9, x29
1038  444:   da1a01c4        sbc     x4, x14, x26
1039  448:   fa1803bc        sbcs    x28, x29, x24
1040  44c:   0b3546b1        add     w17, w21, w21, uxtw #1
1041  450:   2b3aad2c        adds    w12, w9, w26, sxth #3
1042  454:   cb2324ae        sub     x14, x5, w3, uxth #1
1043  458:   6b267351        subs    w17, w26, w6, uxtx #4
1044  45c:   8b34acb1        add     x17, x5, w20, sxth #3
1045  460:   ab39cc30        adds    x16, x1, w25, sxtw #3
1046  464:   cb3aec39        sub     x25, x1, x26, sxtx #3
1047  468:   eb37ac33        subs    x19, x1, w23, sxth #3
1048  46c:   3a589029        ccmn    w1, w24, #0x9, ls
1049  470:   7a4ac1c4        ccmp    w14, w10, #0x4, gt
1050  474:   ba5d3120        ccmn    x9, x29, #0x0, cc
1051  478:   fa4640cd        ccmp    x6, x6, #0xd, mi
1052  47c:   3a4b1a65        ccmn    w19, #0xb, #0x5, ne
1053  480:   7a5fa96f        ccmp    w11, #0x1f, #0xf, ge
1054  484:   ba4e6985        ccmn    x12, #0xe, #0x5, vs
1055  488:   fa47482a        ccmp    x1, #0x7, #0xa, mi
1056  48c:   1a963046        csel    w6, w2, w22, cc
1057  490:   1a9a66dd        csinc   w29, w22, w26, vs
1058  494:   5a8b933a        csinv   w26, w25, w11, ls
1059  498:   5a90c5d3        csneg   w19, w14, w16, gt
1060  49c:   9a9422ad        csel    x13, x21, x20, cs
1061  4a0:   9a9b856c        csinc   x12, x11, x27, hi
1062  4a4:   da93d223        csinv   x3, x17, x19, le
1063  4a8:   da876438        csneg   x24, x1, x7, vs
1064  4ac:   5ac00037        rbit    w23, w1
1065  4b0:   5ac00610        rev16   w16, w16
1066  4b4:   5ac00b38        rev     w24, w25
1067  4b8:   5ac01119        clz     w25, w8
1068  4bc:   5ac0159b        cls     w27, w12
1069  4c0:   dac000b5        rbit    x21, x5
1070  4c4:   dac00534        rev16   x20, x9
1071  4c8:   dac00934        rev32   x20, x9
1072  4cc:   dac00d53        rev     x19, x10
1073  4d0:   dac01048        clz     x8, x2
1074  4d4:   dac0147d        cls     x29, x3
1075  4d8:   1add08f3        udiv    w19, w7, w29
1076  4dc:   1aca0f7a        sdiv    w26, w27, w10
1077  4e0:   1ad02300        lsl     w0, w24, w16
1078  4e4:   1ad82556        lsr     w22, w10, w24
1079  4e8:   1ad02b40        asr     w0, w26, w16
1080  4ec:   1acf2f3b        ror     w27, w25, w15
1081  4f0:   9acf0b88        udiv    x8, x28, x15
1082  4f4:   9ac50d74        sdiv    x20, x11, x5
1083  4f8:   9ad02335        lsl     x21, x25, x16
1084  4fc:   9ace2447        lsr     x7, x2, x14
1085  500:   9ad62915        asr     x21, x8, x22
1086  504:   9acf2ca7        ror     x7, x5, x15
1087  508:   9bd67eac        umulh   x12, x21, x22
1088  50c:   9b457d50        smulh   x16, x10, x5
1089  510:   1b1a54c2        madd    w2, w6, w26, w21
1090  514:   1b03ee7b        msub    w27, w19, w3, w27
1091  518:   9b080cbb        madd    x27, x5, x8, x3
1092  51c:   9b1cb5a8        msub    x8, x13, x28, x13
1093  520:   9b28013d        smaddl  x29, w9, w8, x0
1094  524:   9b2edd2e        smsubl  x14, w9, w14, x23
1095  528:   9bab348f        umaddl  x15, w4, w11, x13
1096  52c:   9bb1e077        umsubl  x23, w3, w17, x24
1097  530:   1e31083d        fmul    s29, s1, s17
1098  534:   1e291b97        fdiv    s23, s28, s9
1099  538:   1e2c2a6e        fadd    s14, s19, s12
1100  53c:   1e203a3b        fsub    s27, s17, s0
1101  540:   1e260b10        fmul    s16, s24, s6
1102  544:   1e6a0ae4        fmul    d4, d23, d10
1103  548:   1e77192b        fdiv    d11, d9, d23
1104  54c:   1e6729e7        fadd    d7, d15, d7
1105  550:   1e6c3abd        fsub    d29, d21, d12
1106  554:   1e69089b        fmul    d27, d4, d9
1107  558:   1f0b65db        fmadd   s27, s14, s11, s25
1108  55c:   1f0f8ecb        fmsub   s11, s22, s15, s3
1109  560:   1f38136a        fnmadd  s10, s27, s24, s4
1110  564:   1f2104c4        fnmadd  s4, s6, s1, s1
1111  568:   1f430b8d        fmadd   d13, d28, d3, d2
1112  56c:   1f47eb1a        fmsub   d26, d24, d7, d26
1113  570:   1f6c68b5        fnmadd  d21, d5, d12, d26
1114  574:   1f740e0b        fnmadd  d11, d16, d20, d3
1115  578:   1e204225        fmov    s5, s17
1116  57c:   1e20c127        fabs    s7, s9
1117  580:   1e214039        fneg    s25, s1
1118  584:   1e21c0d8        fsqrt   s24, s6
1119  588:   1e22c23b        fcvt    d27, s17
1120  58c:   1e604056        fmov    d22, d2
1121  590:   1e60c28e        fabs    d14, d20
1122  594:   1e61417d        fneg    d29, d11
1123  598:   1e61c19c        fsqrt   d28, d12
1124  59c:   1e624064        fcvt    s4, d3
1125  5a0:   1e3801bc        fcvtzs  w28, s13
1126  5a4:   9e380387        fcvtzs  x7, s28
1127  5a8:   1e7801ec        fcvtzs  w12, d15
1128  5ac:   9e7800cb        fcvtzs  x11, d6
1129  5b0:   1e2202d6        scvtf   s22, w22
1130  5b4:   9e220205        scvtf   s5, x16
1131  5b8:   1e6201e3        scvtf   d3, w15
1132  5bc:   9e620106        scvtf   d6, x8
1133  5c0:   1e2603ba        fmov    w26, s29
1134  5c4:   9e660238        fmov    x24, d17
1135  5c8:   1e270262        fmov    s2, w19
1136  5cc:   9e6700b5        fmov    d21, x5
1137  5d0:   1e2822e0        fcmp    s23, s8
1138  5d4:   1e622180        fcmp    d12, d2
1139  5d8:   1e2021c8        fcmp    s14, #0.0
1140  5dc:   1e602148        fcmp    d10, #0.0
1141  5e0:   29344588        stp     w8, w17, [x12,#-96]
1142  5e4:   29685781        ldp     w1, w21, [x28,#-192]
1143  5e8:   69785a19        ldpsw   x25, x22, [x16,#-64]
1144  5ec:   a93822e6        stp     x6, x8, [x23,#-128]
1145  5f0:   a9794279        ldp     x25, x16, [x19,#-112]
1146  5f4:   29a26dbd        stp     w29, w27, [x13,#-240]!
1147  5f8:   29fc52ac        ldp     w12, w20, [x21,#-32]!
1148  5fc:   69ee3c80        ldpsw   x0, x15, [x4,#-144]!
1149  600:   a988326d        stp     x13, x12, [x19,#128]!
1150  604:   a9c60939        ldp     x25, x2, [x9,#96]!
1151  608:   2890074b        stp     w11, w1, [x26],#128
1152  60c:   28c4647a        ldp     w26, w25, [x3],#32
1153  610:   68e2384a        ldpsw   x10, x14, [x2],#-240
1154  614:   a8880d41        stp     x1, x3, [x10],#128
1155  618:   a8f73337        ldp     x23, x12, [x25],#-144
1156  61c:   28082325        stnp    w5, w8, [x25,#64]
1157  620:   28624ed4        ldnp    w20, w19, [x22,#-240]
1158  624:   a8351dd7        stnp    x23, x7, [x14,#-176]
1159  628:   a84472ae        ldnp    x14, x28, [x21,#64]
1160  62c:   0c40708a        ld1     {v10.8b}, [x4]
1161  630:   4cdfa359        ld1     {v25.16b, v26.16b}, [x26], #32
1162  634:   0cd76c9b        ld1     {v27.1d-v29.1d}, [x4], x23
1163  638:   4cdf24d0        ld1     {v16.8h-v19.8h}, [x6], #64
1164  63c:   0d40c361        ld1r    {v1.8b}, [x27]
1165  640:   4ddfc844        ld1r    {v4.4s}, [x2], #4
1166  644:   0dcfcfb5        ld1r    {v21.1d}, [x29], x15
1167  648:   4c408ec1        ld2     {v1.2d, v2.2d}, [x22]
1168  64c:   0cdf851d        ld2     {v29.4h, v30.4h}, [x8], #16
1169  650:   4d60c098        ld2r    {v24.16b, v25.16b}, [x4]
1170  654:   0dffca75        ld2r    {v21.2s, v22.2s}, [x19], #8
1171  658:   4de6cdad        ld2r    {v13.2d, v14.2d}, [x13], x6
1172  65c:   4cd14881        ld3     {v1.4s-v3.4s}, [x4], x17
1173  660:   0c404a36        ld3     {v22.2s-v24.2s}, [x17]
1174  664:   4d40e631        ld3r    {v17.8h-v19.8h}, [x17]
1175  668:   4ddfeb88        ld3r    {v8.4s-v10.4s}, [x28], #12
1176  66c:   0dd3ec25        ld3r    {v5.1d-v7.1d}, [x1], x19
1177  670:   4cdf05e1        ld4     {v1.8h-v4.8h}, [x15], #64
1178  674:   0cda00d1        ld4     {v17.8b-v20.8b}, [x6], x26
1179  678:   0d60e0f9        ld4r    {v25.8b-v28.8b}, [x7]
1180  67c:   0dffe50c        ld4r    {v12.4h-v15.4h}, [x8], #8
1181  680:   0de1e9a9        ld4r    {v9.2s-v12.2s}, [x13], x1
1182  684:   ba5fd3e3        ccmn    xzr, xzr, #0x3, le
1183  688:   3a5f03e5        ccmn    wzr, wzr, #0x5, eq
1184  68c:   fa411be4        ccmp    xzr, #0x1, #0x4, ne
1185  690:   7a42cbe2        ccmp    wzr, #0x2, #0x2, gt
1186  694:   93df03ff        ror     xzr, xzr, #0
1187  698:   c820ffff        stlxp   w0, xzr, xzr, [sp]
1188  69c:   8822fc7f        stlxp   w2, wzr, wzr, [x3]
1189  6a0:   c8247cbf        stxp    w4, xzr, xzr, [x5]
1190  6a4:   88267fff        stxp    w6, wzr, wzr, [sp]
1191  6a8:   4e010fe0        dup     v0.16b, wzr
1192  6ac:   4e081fe1        mov     v1.d[0], xzr
1193  6b0:   4e0c1fe1        mov     v1.s[1], wzr
1194  6b4:   4e0a1fe1        mov     v1.h[2], wzr
1195  6b8:   4e071fe1        mov     v1.b[3], wzr
1196  6bc:   4cc0ac3f        ld1     {v31.2d, v0.2d}, [x1], x0
1197  6c0:   1e601000        fmov    d0, #2.000000000000000000e+00
1198  6c4:   1e603000        fmov    d0, #2.125000000000000000e+00
1199  6c8:   1e621000        fmov    d0, #4.000000000000000000e+00
1200  6cc:   1e623000        fmov    d0, #4.250000000000000000e+00
1201  6d0:   1e641000        fmov    d0, #8.000000000000000000e+00
1202  6d4:   1e643000        fmov    d0, #8.500000000000000000e+00
1203  6d8:   1e661000        fmov    d0, #1.600000000000000000e+01
1204  6dc:   1e663000        fmov    d0, #1.700000000000000000e+01
1205  6e0:   1e681000        fmov    d0, #1.250000000000000000e-01
1206  6e4:   1e683000        fmov    d0, #1.328125000000000000e-01
1207  6e8:   1e6a1000        fmov    d0, #2.500000000000000000e-01
1208  6ec:   1e6a3000        fmov    d0, #2.656250000000000000e-01
1209  6f0:   1e6c1000        fmov    d0, #5.000000000000000000e-01
1210  6f4:   1e6c3000        fmov    d0, #5.312500000000000000e-01
1211  6f8:   1e6e1000        fmov    d0, #1.000000000000000000e+00
1212  6fc:   1e6e3000        fmov    d0, #1.062500000000000000e+00
1213  700:   1e701000        fmov    d0, #-2.000000000000000000e+00
1214  704:   1e703000        fmov    d0, #-2.125000000000000000e+00
1215  708:   1e721000        fmov    d0, #-4.000000000000000000e+00
1216  70c:   1e723000        fmov    d0, #-4.250000000000000000e+00
1217  710:   1e741000        fmov    d0, #-8.000000000000000000e+00
1218  714:   1e743000        fmov    d0, #-8.500000000000000000e+00
1219  718:   1e761000        fmov    d0, #-1.600000000000000000e+01
1220  71c:   1e763000        fmov    d0, #-1.700000000000000000e+01
1221  720:   1e781000        fmov    d0, #-1.250000000000000000e-01
1222  724:   1e783000        fmov    d0, #-1.328125000000000000e-01
1223  728:   1e7a1000        fmov    d0, #-2.500000000000000000e-01
1224  72c:   1e7a3000        fmov    d0, #-2.656250000000000000e-01
1225  730:   1e7c1000        fmov    d0, #-5.000000000000000000e-01
1226  734:   1e7c3000        fmov    d0, #-5.312500000000000000e-01
1227  738:   1e7e1000        fmov    d0, #-1.000000000000000000e+00
1228  73c:   1e7e3000        fmov    d0, #-1.062500000000000000e+00
1229  740:   f83a80c3        swp     x26, x3, [x6]
1230  744:   f834008c        ldadd   x20, x12, [x4]
1231  748:   f8371164        ldclr   x23, x4, [x11]
1232  74c:   f82f230f        ldeor   x15, x15, [x24]
1233  750:   f83d3222        ldset   x29, x2, [x17]
1234  754:   f8395025        ldsmin  x25, x5, [x1]
1235  758:   f82f40ef        ldsmax  x15, x15, [x7]
1236  75c:   f83c73bf        stumin  x28, [x29]
1237  760:   f83163f1        ldumax  x17, x17, [sp]
1238  764:   f8a782b0        swpa    x7, x16, [x21]
1239  768:   f8b1028a        ldadda  x17, x10, [x20]
1240  76c:   f8b913ae        ldclra  x25, x14, [x29]
1241  770:   f8b9206d        ldeora  x25, x13, [x3]
1242  774:   f8ad3387        ldseta  x13, x7, [x28]
1243  778:   f8b450f9        ldsmina x20, x25, [x7]
1244  77c:   f8b54044        ldsmaxa x21, x4, [x2]
1245  780:   f8a87105        ldumina x8, x5, [x8]
1246  784:   f8aa60cc        ldumaxa x10, x12, [x6]
1247  788:   f8f9814c        swpal   x25, x12, [x10]
1248  78c:   f8ec0081        ldaddal x12, x1, [x4]
1249  790:   f8fa1186        ldclral x26, x6, [x12]
1250  794:   f8e1218e        ldeoral x1, x14, [x12]
1251  798:   f8f632a6        ldsetal x22, x6, [x21]
1252  79c:   f8ef50c4        ldsminal        x15, x4, [x6]
1253  7a0:   f8f840f0        ldsmaxal        x24, x16, [x7]
1254  7a4:   f8e57163        lduminal        x5, x3, [x11]
1255  7a8:   f8f66322        ldumaxal        x22, x2, [x25]
1256  7ac:   f866801d        swpl    x6, x29, [x0]
1257  7b0:   f87a02e6        ldaddl  x26, x6, [x23]
1258  7b4:   f8641127        ldclrl  x4, x7, [x9]
1259  7b8:   f866202b        ldeorl  x6, x11, [x1]
1260  7bc:   f86b33ad        ldsetl  x11, x13, [x29]
1261  7c0:   f86b50c3        ldsminl x11, x3, [x6]
1262  7c4:   f8754160        ldsmaxl x21, x0, [x11]
1263  7c8:   f86b7137        lduminl x11, x23, [x9]
1264  7cc:   f8716210        ldumaxl x17, x16, [x16]
1265  7d0:   b83583e5        swp     w21, w5, [sp]
1266  7d4:   b838008b        ldadd   w24, w11, [x4]
1267  7d8:   b831109d        ldclr   w17, w29, [x4]
1268  7dc:   b82f21eb        ldeor   w15, w11, [x15]
1269  7e0:   b83b317a        ldset   w27, w26, [x11]
1270  7e4:   b83b510c        ldsmin  w27, w12, [x8]
1271  7e8:   b8264034        ldsmax  w6, w20, [x1]
1272  7ec:   b82e73b0        ldumin  w14, w16, [x29]
1273  7f0:   b838634d        ldumax  w24, w13, [x26]
1274  7f4:   b8a48162        swpa    w4, w2, [x11]
1275  7f8:   b8b4009d        ldadda  w20, w29, [x4]
1276  7fc:   b8b413bf        ldclra  w20, wzr, [x29]
1277  800:   b8a0232f        ldeora  w0, w15, [x25]
1278  804:   b8b73285        ldseta  w23, w5, [x20]
1279  808:   b8bd527a        ldsmina w29, w26, [x19]
1280  80c:   b8b542d4        ldsmaxa w21, w20, [x22]
1281  810:   b8ba7215        ldumina w26, w21, [x16]
1282  814:   b8a86155        ldumaxa w8, w21, [x10]
1283  818:   b8fb816b        swpal   w27, w11, [x11]
1284  81c:   b8e50388        ldaddal w5, w8, [x28]
1285  820:   b8e010a5        ldclral w0, w5, [x5]
1286  824:   b8e2230a        ldeoral w2, w10, [x24]
1287  828:   b8ed33ff        ldsetal w13, wzr, [sp]
1288  82c:   b8fa5319        ldsminal        w26, w25, [x24]
1289  830:   b8e840c5        ldsmaxal        w8, w5, [x6]
1290  834:   b8e5737b        lduminal        w5, w27, [x27]
1291  838:   b8f762f4        ldumaxal        w23, w20, [x23]
1292  83c:   b8798383        swpl    w25, w3, [x28]
1293  840:   b86a01a8        ldaddl  w10, w8, [x13]
1294  844:   b87513eb        ldclrl  w21, w11, [sp]
1295  848:   b87f2383        ldeorl  wzr, w3, [x28]
1296  84c:   b86f3300        ldsetl  w15, w0, [x24]
1297  850:   b86453a9        ldsminl w4, w9, [x29]
1298  854:   b86842a6        ldsmaxl w8, w6, [x21]
1299  858:   b8697076        lduminl w9, w22, [x3]
1300  85c:   b87a638a        ldumaxl w26, w10, [x28]




1301  */
1302 
1303   static const unsigned int insns[] =
1304   {
1305     0x8b1ad014,     0xcb83db85,     0xab839ecb,     0xeb4c646b,
1306     0x0b0d399b,     0x4b9b1eaa,     0x2b1011c3,     0x6b1d1661,
1307     0x8a5b1a30,     0xaa1c8f96,     0xca5ccd4b,     0xea8ec10d,
1308     0x0a410c61,     0x2a855909,     0x4a9b4f82,     0x6a073938,
1309     0x8ab9826b,     0xaa3d7318,     0xcab16e0b,     0xea6ae9a5,
1310     0x0a357545,     0x2a354d64,     0x4a7c3f95,     0x6a2e7146,
1311     0x110ec6ca,     0x310e9d6f,     0x510afcc5,     0x7108e013,
1312     0x91098114,     0xb10434d0,     0xd10db417,     0xf10c873a,
1313     0x120d6a0c,     0x32066b01,     0x52112073,     0x720a553d,
1314     0x9263d0ba,     0xb20da1d8,     0xd26ec404,     0xf26e28dc,
1315     0x14000000,     0x17ffffd7,     0x140001ee,     0x94000000,
1316     0x97ffffd4,     0x940001eb,     0x34000015,     0x34fffa35,
1317     0x34003d15,     0x3500000c,     0x35fff9cc,     0x35003cac,
1318     0xb400000e,     0xb4fff96e,     0xb4003c4e,     0xb500001b,
1319     0xb5fff91b,     0xb5003bfb,     0x1000000e,     0x10fff8ae,
1320     0x10003b8e,     0x90000016,     0x36280000,     0x362ff820,
1321     0x36283b00,     0x37580003,     0x375ff7c3,     0x37583aa3,
1322     0x12835753,     0x52a2da7c,     0x72a9ef0d,     0x92c097e1,
1323     0xd28e0a7a,     0xf2e2d05b,     0x93496301,     0x33054019,
1324     0x530f1f70,     0x934f71d0,     0xb3403558,     0xd34259c1,
1325     0x1381540a,     0x93d7f75a,     0x54000000,     0x54fff5a0,
1326     0x54003880,     0x54000001,     0x54fff541,     0x54003821,
1327     0x54000002,     0x54fff4e2,     0x540037c2,     0x54000002,
1328     0x54fff482,     0x54003762,     0x54000003,     0x54fff423,
1329     0x54003703,     0x54000003,     0x54fff3c3,     0x540036a3,
1330     0x54000004,     0x54fff364,     0x54003644,     0x54000005,
1331     0x54fff305,     0x540035e5,     0x54000006,     0x54fff2a6,
1332     0x54003586,     0x54000007,     0x54fff247,     0x54003527,
1333     0x54000008,     0x54fff1e8,     0x540034c8,     0x54000009,
1334     0x54fff189,     0x54003469,     0x5400000a,     0x54fff12a,
1335     0x5400340a,     0x5400000b,     0x54fff0cb,     0x540033ab,
1336     0x5400000c,     0x54fff06c,     0x5400334c,     0x5400000d,
1337     0x54fff00d,     0x540032ed,     0x5400000e,     0x54ffefae,
1338     0x5400328e,     0x5400000f,     0x54ffef4f,     0x5400322f,
1339     0xd4079461,     0xd4018ee2,     0xd408d7c3,     0xd4216040,
1340     0xd44a2f80,     0xd503201f,     0xd69f03e0,     0xd6bf03e0,
1341     0xd5033fdf,     0xd503329f,     0xd50339bf,     0xd61f0140,
1342     0xd63f02c0,     0xc8037cb5,     0xc81cffa9,     0xc85f7cfc,
1343     0xc85ffeea,     0xc89fff47,     0xc8dffef0,     0x880b7d87,
1344     0x8810ff4d,     0x885f7eb9,     0x885ffc8e,     0x889ffd3a,
1345     0x88dffee0,     0x48087d40,     0x480bfc81,     0x485f7f4e,
1346     0x485ffcf3,     0x489ffed1,     0x48dffcd4,     0x08197cc8,
1347     0x0805ff2a,     0x085f7ec0,     0x085ffc68,     0x089ffc45,
1348     0x08dfff86,     0xc87f21d1,     0xc87f8c4e,     0xc8391271,
1349     0xc82abd10,     0x887f2c61,     0x887fed80,     0x882457b4,
1350     0x882097a9,     0xf811d091,     0xb81df086,     0x39002e0d,
1351     0x781c02d7,     0xf840d062,     0xb8423285,     0x385f1142,
1352     0x785f8017,     0x389fd1cf,     0x789f4063,     0x78df9319,
1353     0xb89e3011,     0xfc5b1127,     0xbc5bc16b,     0xfc189050,
1354     0xbc184399,     0xf8052e7c,     0xb8032da7,     0x381e0e62,
1355     0x781c6c38,     0xf8571fb7,     0xb8400f6d,     0x385e6d4b,
1356     0x785cacc3,     0x38803d22,     0x7881ec9c,     0x78de9c11,
1357     0xb898bf3d,     0xfc572d55,     0xbc423e8b,     0xfc12ade1,
1358     0xbc1c9cb3,     0xf81ec63c,     0xb81f75a8,     0x381e970e,
1359     0x781c4482,     0xf8422738,     0xb85e5790,     0x385e56e8,
1360     0x785c6403,     0x389f65ee,     0x7880d42c,     0x78ded429,
1361     0xb89c355d,     0xfc5f778d,     0xbc5a8774,     0xfc139567,
1362     0xbc1c36d4,     0xf830c943,     0xb8357ba1,     0x3837581a,
1363     0x7835681a,     0xf8766b23,     0xb8785939,     0x386ed80a,
1364     0x78747aa2,     0x38bcfb73,     0x78a37901,     0x78f0e9f4,
1365     0xb8ac78e7,     0xfc6dd88f,     0xbc63494e,     0xfc29faf8,
1366     0xbc3a5989,     0xf91a530e,     0xb91ce1c0,     0x39180277,
1367     0x791c316f,     0xf95ab735,     0xb95810f7,     0x395ede17,
1368     0x795e1718,     0x3999352c,     0x799e02a5,     0x79dc0c0e,
1369     0xb99ef84d,     0xfd5ede6f,     0xbd5880b7,     0xfd1d90c6,
1370     0xbd182569,     0x58002267,     0x1800001d,     0xf8929000,
1371     0xd8002200,     0xf8a34880,     0xf99825c0,     0x1a0400c7,
1372     0x3a05019b,     0x5a1a0319,     0x7a1700e5,     0x9a010176,
1373     0xba1d012d,     0xda1a01c4,     0xfa1803bc,     0x0b3546b1,
1374     0x2b3aad2c,     0xcb2324ae,     0x6b267351,     0x8b34acb1,
1375     0xab39cc30,     0xcb3aec39,     0xeb37ac33,     0x3a589029,
1376     0x7a4ac1c4,     0xba5d3120,     0xfa4640cd,     0x3a4b1a65,
1377     0x7a5fa96f,     0xba4e6985,     0xfa47482a,     0x1a963046,
1378     0x1a9a66dd,     0x5a8b933a,     0x5a90c5d3,     0x9a9422ad,
1379     0x9a9b856c,     0xda93d223,     0xda876438,     0x5ac00037,
1380     0x5ac00610,     0x5ac00b38,     0x5ac01119,     0x5ac0159b,
1381     0xdac000b5,     0xdac00534,     0xdac00934,     0xdac00d53,
1382     0xdac01048,     0xdac0147d,     0x1add08f3,     0x1aca0f7a,
1383     0x1ad02300,     0x1ad82556,     0x1ad02b40,     0x1acf2f3b,
1384     0x9acf0b88,     0x9ac50d74,     0x9ad02335,     0x9ace2447,
1385     0x9ad62915,     0x9acf2ca7,     0x9bd67eac,     0x9b457d50,
1386     0x1b1a54c2,     0x1b03ee7b,     0x9b080cbb,     0x9b1cb5a8,
1387     0x9b28013d,     0x9b2edd2e,     0x9bab348f,     0x9bb1e077,
1388     0x1e31083d,     0x1e291b97,     0x1e2c2a6e,     0x1e203a3b,
1389     0x1e260b10,     0x1e6a0ae4,     0x1e77192b,     0x1e6729e7,
1390     0x1e6c3abd,     0x1e69089b,     0x1f0b65db,     0x1f0f8ecb,
1391     0x1f38136a,     0x1f2104c4,     0x1f430b8d,     0x1f47eb1a,
1392     0x1f6c68b5,     0x1f740e0b,     0x1e204225,     0x1e20c127,
1393     0x1e214039,     0x1e21c0d8,     0x1e22c23b,     0x1e604056,
1394     0x1e60c28e,     0x1e61417d,     0x1e61c19c,     0x1e624064,
1395     0x1e3801bc,     0x9e380387,     0x1e7801ec,     0x9e7800cb,
1396     0x1e2202d6,     0x9e220205,     0x1e6201e3,     0x9e620106,
1397     0x1e2603ba,     0x9e660238,     0x1e270262,     0x9e6700b5,
1398     0x1e2822e0,     0x1e622180,     0x1e2021c8,     0x1e602148,
1399     0x29344588,     0x29685781,     0x69785a19,     0xa93822e6,
1400     0xa9794279,     0x29a26dbd,     0x29fc52ac,     0x69ee3c80,
1401     0xa988326d,     0xa9c60939,     0x2890074b,     0x28c4647a,
1402     0x68e2384a,     0xa8880d41,     0xa8f73337,     0x28082325,
1403     0x28624ed4,     0xa8351dd7,     0xa84472ae,     0x0c40708a,
1404     0x4cdfa359,     0x0cd76c9b,     0x4cdf24d0,     0x0d40c361,
1405     0x4ddfc844,     0x0dcfcfb5,     0x4c408ec1,     0x0cdf851d,
1406     0x4d60c098,     0x0dffca75,     0x4de6cdad,     0x4cd14881,
1407     0x0c404a36,     0x4d40e631,     0x4ddfeb88,     0x0dd3ec25,
1408     0x4cdf05e1,     0x0cda00d1,     0x0d60e0f9,     0x0dffe50c,
1409     0x0de1e9a9,     0xba5fd3e3,     0x3a5f03e5,     0xfa411be4,

1410     0x7a42cbe2,     0x93df03ff,     0xc820ffff,     0x8822fc7f,
1411     0xc8247cbf,     0x88267fff,     0x4e010fe0,     0x4e081fe1,
1412     0x4e0c1fe1,     0x4e0a1fe1,     0x4e071fe1,     0x4cc0ac3f,
1413     0x1e601000,     0x1e603000,     0x1e621000,     0x1e623000,
1414     0x1e641000,     0x1e643000,     0x1e661000,     0x1e663000,
1415     0x1e681000,     0x1e683000,     0x1e6a1000,     0x1e6a3000,
1416     0x1e6c1000,     0x1e6c3000,     0x1e6e1000,     0x1e6e3000,
1417     0x1e701000,     0x1e703000,     0x1e721000,     0x1e723000,
1418     0x1e741000,     0x1e743000,     0x1e761000,     0x1e763000,
1419     0x1e781000,     0x1e783000,     0x1e7a1000,     0x1e7a3000,
1420     0x1e7c1000,     0x1e7c3000,     0x1e7e1000,     0x1e7e3000,
1421     0xf83a80c3,     0xf834008c,     0xf8371164,     0xf82f230f,
1422     0xf83d3222,     0xf8395025,     0xf82f40ef,     0xf83c73bf,
1423     0xf83163f1,     0xf8a782b0,     0xf8b1028a,     0xf8b913ae,
1424     0xf8b9206d,     0xf8ad3387,     0xf8b450f9,     0xf8b54044,
1425     0xf8a87105,     0xf8aa60cc,     0xf8f9814c,     0xf8ec0081,
1426     0xf8fa1186,     0xf8e1218e,     0xf8f632a6,     0xf8ef50c4,
1427     0xf8f840f0,     0xf8e57163,     0xf8f66322,     0xf866801d,
1428     0xf87a02e6,     0xf8641127,     0xf866202b,     0xf86b33ad,
1429     0xf86b50c3,     0xf8754160,     0xf86b7137,     0xf8716210,
1430     0xb83583e5,     0xb838008b,     0xb831109d,     0xb82f21eb,
1431     0xb83b317a,     0xb83b510c,     0xb8264034,     0xb82e73b0,
1432     0xb838634d,     0xb8a48162,     0xb8b4009d,     0xb8b413bf,
1433     0xb8a0232f,     0xb8b73285,     0xb8bd527a,     0xb8b542d4,
1434     0xb8ba7215,     0xb8a86155,     0xb8fb816b,     0xb8e50388,
1435     0xb8e010a5,     0xb8e2230a,     0xb8ed33ff,     0xb8fa5319,
1436     0xb8e840c5,     0xb8e5737b,     0xb8f762f4,     0xb8798383,
1437     0xb86a01a8,     0xb87513eb,     0xb87f2383,     0xb86f3300,
1438     0xb86453a9,     0xb86842a6,     0xb8697076,     0xb87a638a,
1439 
1440   };
1441 // END  Generated code -- do not edit
1442 
1443   asm_check((unsigned int *)entry, insns, sizeof insns / sizeof insns[0]);
1444 
1445   {
1446     address PC = __ pc();
1447     __ ld1(v0, __ T16B, Address(r16));      // No offset
1448     __ ld1(v0, __ T8H, __ post(r16, 16));   // Post-index
1449     __ ld2(v0, v1, __ T8H, __ post(r24, 16 * 2));   // Post-index
1450     __ ld1(v0, __ T16B, __ post(r16, r17)); // Register post-index
1451     static const unsigned int vector_insns[] = {
1452        0x4c407200, // ld1   {v0.16b}, [x16]
1453        0x4cdf7600, // ld1   {v0.8h}, [x16], #16
1454        0x4cdf8700, // ld2   {v0.8h, v1.8h}, [x24], #32
1455        0x4cd17200, // ld1   {v0.16b}, [x16], x17
1456       };
1457     asm_check((unsigned int *)PC, vector_insns,
1458               sizeof vector_insns / sizeof vector_insns[0]);


1766   return encoding_for_logical_immediate(imm);
1767 }
1768 
1769 unsigned Assembler::pack(double value) {
1770   float val = (float)value;
1771   unsigned result = encoding_for_fp_immediate(val);
1772   guarantee(unpack(result) == value,
1773             "Invalid floating-point immediate operand");
1774   return result;
1775 }
1776 
1777 // Packed operands for  Floating-point Move (immediate)
1778 
1779 static float unpack(unsigned value) {
1780   union {
1781     unsigned ival;
1782     float val;
1783   };
1784   ival = fp_immediate_for_encoding(value, 0);
1785   return val;
1786 }
1787 
1788 address Assembler::locate_next_instruction(address inst) {
1789   return inst + Assembler::instruction_size;
1790 }
< prev index next >